Skip to content

Commit

Permalink
feat(api): add linear blend stage for chain pipeline (#183)
Browse files Browse the repository at this point in the history
  • Loading branch information
ssube committed Apr 11, 2023
1 parent 0a6c99d commit e3540ac
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 0 deletions.
2 changes: 2 additions & 0 deletions api/onnx_web/chain/__init__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from .base import ChainPipeline, PipelineStage, StageCallback, StageParams
from .blend_img2img import blend_img2img
from .blend_inpaint import blend_inpaint
from .blend_linear import blend_linear
from .blend_mask import blend_mask
from .correct_codeformer import correct_codeformer
from .correct_gfpgan import correct_gfpgan
Expand All @@ -21,6 +22,7 @@
CHAIN_STAGES = {
"blend-img2img": blend_img2img,
"blend-inpaint": blend_inpaint,
"blend-linear": blend_linear,
"blend-mask": blend_mask,
"correct-codeformer": correct_codeformer,
"correct-gfpgan": correct_gfpgan,
Expand Down
29 changes: 29 additions & 0 deletions api/onnx_web/chain/blend_linear.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
from logging import getLogger
from typing import List, Optional

from PIL import Image

from ..image import valid_image
from ..params import ImageParams, StageParams
from ..server import ServerContext
from ..worker import ProgressCallback, WorkerContext

logger = getLogger(__name__)


def blend_linear(
_job: WorkerContext,
_server: ServerContext,
_stage: StageParams,
_params: ImageParams,
*,
alpha: float,
sources: Optional[List[Image.Image]] = None,
_callback: Optional[ProgressCallback] = None,
**kwargs,
) -> Image.Image:
logger.info("blending image using linear interpolation")

resized = [valid_image(s) for s in sources]

return Image.blend(resized[1], resized[0], alpha)

0 comments on commit e3540ac

Please sign in to comment.