1
0
Fork 0

fix(api): tile stage masks

This commit is contained in:
Sean Sube 2023-12-20 23:33:13 -06:00
parent f6ff53d0d1
commit 1fbee0ae52
Signed by: ssube
GPG Key ID: 3EED7B957D362AF1
2 changed files with 6 additions and 4 deletions

View File

@ -26,20 +26,22 @@ class BlendMaskStage(BaseStage):
dims: Tuple[int, int, int], dims: Tuple[int, int, int],
stage_source: Optional[Image.Image] = None, stage_source: Optional[Image.Image] = None,
stage_mask: Optional[Image.Image] = None, stage_mask: Optional[Image.Image] = None,
tile_mask: Optional[Image.Image] = None,
_callback: Optional[ProgressCallback] = None, _callback: Optional[ProgressCallback] = None,
**kwargs, **kwargs,
) -> StageResult: ) -> StageResult:
logger.info("blending image using mask") logger.info("blending image using mask")
mult_mask = Image.new(stage_mask.mode, stage_mask.size, color="black") mask_source = tile_mask or stage_mask
mult_mask = Image.alpha_composite(mult_mask, stage_mask) mult_mask = Image.new(mask_source.mode, mask_source.size, color="black")
mult_mask = Image.alpha_composite(mult_mask, mask_source)
mult_mask = mult_mask.convert("L") mult_mask = mult_mask.convert("L")
top, left, tile = dims top, left, tile = dims
stage_source_tile = stage_source.crop((left, top, left + tile, top + tile)) stage_source_tile = stage_source.crop((left, top, left + tile, top + tile))
if is_debug(): if is_debug():
save_image(server, "last-mask.png", stage_mask) save_image(server, "last-mask.png", mask_source)
save_image(server, "last-mult-mask.png", mult_mask) save_image(server, "last-mult-mask.png", mult_mask)
save_image(server, "last-stage-source.png", stage_source_tile) save_image(server, "last-stage-source.png", stage_source_tile)

View File

@ -258,7 +258,7 @@ def process_tile_stack(
sources = stack.as_image() sources = stack.as_image()
width, height = kwargs.get("size", sources[0].size if len(sources) > 0 else None) width, height = kwargs.get("size", sources[0].size if len(sources) > 0 else None)
mask = kwargs.get("mask", None) mask = kwargs.get("mask", kwargs.get("stage_mask", None))
noise_source = kwargs.get("noise_source", noise_source_histogram) noise_source = kwargs.get("noise_source", noise_source_histogram)
fill_color = kwargs.get("fill_color", None) fill_color = kwargs.get("fill_color", None)
if not mask: if not mask: