StabilityAI Suite - Inpainting
Cloud inpainting that keeps every unmasked pixel — no local model, no VRAM
- image
- mask
- IMAGE
Inpainting is the original fix-it tool: mask the broken bit, regenerate only that, keep everything that already works. It still exists in 2026 - even while instruction-editing models can swap objects from a single sentence - because of the guarantee: masked inpainting composites the result back over the original, so everything outside the mask is bit-identical. This node gives you that guarantee with the model running on Stability's servers instead of your GPU.
How it works
You feed it an image and a MASK. The node converts the mask to a PNG and posts both to stable-image/edit/inpaint. Stability's model re-denoises inside the mask according to your prompt, and the response comes back as the completed image. No polling, no job IDs, no local checkpoint - the heavy lifting happens entirely on their side.
Inputs that matter
image- what you're fixing.mask- a MASK type, so it wires straight from ComfyUI's mask tools (Mask Editor, Load Image with alpha, Raster masks). Mark the region you want regenerated.prompt- what should appear inside the mask.
negative_prompt, seed, and output_format (png/webp/jpeg) are the usual suspects. Output is an IMAGE - save it or feed it onward.
Install
Same as the rest of the pack. ComfyUI Manager → search "ComfyUI StabilityAI Suite", or:
cd ComfyUI/custom_nodes
git clone https://github.com/florestefano1975/ComfyUI-StabilityAI-Suite
Restart. No dependencies beyond what ComfyUI already ships - this pack is a thin wrapper over the Stability API, so there's nothing heavy to install. Key via SAI_API_KEY env var, sai_platform_key.txt, or the node's api_key_override field.
Where people get burned
- Credits again. Each inpaint call is a paid generation, and a careful mask-and-iterate session can rack up calls fast.
- Mask quality. The node faithfully ships your mask over; a sloppy, jagged mask gives you a sloppy result. Feathering the mask edge before sending is the same skill as with local inpainting.
bad_requesterrors usually mean a malformed prompt or an image/mask mismatch - Stability returns the reasons in the error body, so read them.
If you've already got a local FLUX.1 Fill or an inpaint crop-and-stitch setup, you probably don't need this - free beats per-call pricing. But for occasional fixes on a machine with weak VRAM, or a quick test without committing to a local inpainting stack, this is the zero-setup option.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| mask | MASK | — | |
| prompt | STRING | — | |
| negative_promptopt | STRING | — | |
| seedopt | INT | 00–4294967294 | — |
| output_formatopt | COMBO | 3 options: png, webp, jpeg | |
| api_key_overrideopt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |