Skip to content

v0.17.14 — native mask-inpaint + layers_redraw + paste_back

Choose a tag to compare

@yha9806 yha9806 released this 25 Apr 22:20

Surgical 5-patch release closing the P0/P1 gaps surfaced by the parallel codex + superpowers review of the γ Scottish carousel workflow on 2026-04-25. The carousel's slide-4 mask-edit flow is now fully native — no out-of-band Python scaffolding required.

Patches

  • P1 inpaint_artwork(mask_path=...) — native precision-mask path via OpenAI /v1/images/edits. Pass an RGBA PNG where alpha=0 marks pixels to edit and alpha=255 marks pixels to preserve. Gemini/ComfyUI fail loud (NotImplementedError with hint). Legacy region= path unchanged.
  • P2 layers_redraw recontract — opt-in via output_layer_name= for non-destructive output; background_strategy=cream|white|sample_median|transparent to flatten alpha-sparse layers before redraw and stop hallucination of new content into empty regions; preserve_alpha=True to re-apply source alpha. Provider-aware api_key wiring closes the GOOGLE_API_KEY leak that was forcing the wrong env var into every provider.
  • P3 layers_paste_back — new MCP glue verb for the open-loop "edit one layer, paste back into source" flow that previously required manual Image.composite() in Python. Three blend modes (alpha / feathered / hard), pure PIL.
  • P4 Person-path quality gate — mirror v0.17.13 compute_quality_flags into the orchestrated pipeline's person loop. Same silent-success bug closed for symmetry.
  • P5 layers_composite non-destructive — gate the legacy ensure_alpha writeback behind force_alpha_writeback=True. A preview call no longer mutates source layer files.

Review fixes (post-patch)

5 P1 + 5 P2 fixes from the double-review pass — z_index round-trip parity, bbox-from-mask (no more hardcoded {0,0,100,100}), paste_back RGB clamp against alpha=0 black-bleed, provider default rollback for legacy region path (silent billing flip averted), sample_median warning, redraw_merged aspect symmetry, HARD_THRESHOLD module constant, mask convention docstring simplification.

Stats

7 commits, 14 files changed. 35 new tests + 5 review-driven regression tests. 82/82 passing across the v0.17.14 surface.