Skip to content

v0.9.0

Choose a tag to compare

@github-actions github-actions released this 03 Aug 22:12
· 214 commits to main since this release

A mask that binds

--mask now works on comfyui, and it means something stronger there than anywhere else: every pixel outside the mask comes back byte-identical.

$ lucida edit scene.png "a field of sunflowers here" --mask region.png --provider comfyui

Measured rather than claimed, against a two-tone source with the left half masked:

change inside mask change outside
Inpaint conditioning alone 128.03/255 23.84/255 advisory, 5.4×
Plus in-graph compositing 127.47/255 0.00/255 binding
Through the release binary 123.82/255 0.00 mean, 0.00 max binding

This is the one thing the local lane can do that no hosted provider here can, and the reason is structural rather than clever: Lucida builds the ComfyUI graph. OpenAI's mask concentrates change without confining it — the README has always said so, and told callers to composite the result themselves. A local graph can do that compositing before it returns, so you get a guarantee instead of a caveat.

The same mask file works on both providers. Transparent pixels are the region that changes, on openai and comfyui alike — verified against a live server rather than assumed, because guessing wrong inverts every mask and still renders happily.

No new model needed

The roadmap said local inpainting required a Flux.1 Fill checkpoint. It doesn't — Flux.2 does it through InpaintModelConditioning, which one probe settled. That would otherwise have cost a 24 GB download and forced a licence decision that remains open.

Worth stating as a method: it was a claim about a model, and claims about models are testable.