Stability Outpainting
Grow the canvas in one call — outpaint on autopilot
- image
- IMAGE
Outpainting is inpainting's lazy sibling, and this node is the laziest version of it yet. Instead of masking a region you want regenerated, you tell it how many pixels to add to each side of the frame and it grows the canvas and fills the new space to match. You feed an image in, set left / right / up / down, and get back a bigger picture where the extension looks like it was always there.
It's a cloud node from Stability's official "Stability API nodes for ComfyUI" pack, hitting the stable-image/edit/outpaint endpoint on Stability's servers. No VRAM used, nothing downloaded - but it needs a Stability API key and burns credits, and the local-first crowd has never warmed to any of this pack ("not local, not interested" has been the chorus since the pack shipped). Locally, outpaint means padding the canvas, masking the padding, and running an inpaint pass that hopes the seams blend. This is that whole dance compressed into one node.
How it works
The four required inputs are just pixel counts: left, right, up, down, each 0–512. That's the whole canvas extension - no percentages, no "auto." Keep the units in mind: on a 1024px image, 512 is a huge new region, so start modest and scale up.
The settings that actually shape the result:
- creativity (0.0–1.0, default 0.5) - how freely the model invents the extension. Low means it clings to the edge pixels and continues them conservatively; high means it's comfortable inventing whole new scenery. For architecture and products you want it low. For landscapes and abstract work, higher is fine.
- prompt - optional but worth writing. Describe the whole scene ("a beach at sunset, the same sky continuing to the right") rather than just the new region; it keeps the extension coherent with what's already in frame.
- seed - set it if you want to re-roll the same extension or keep a version you like.
Standard pack furniture follows: style + style_preset (the preset is ignored unless style is on), output_format for png/webp/jpeg. Output is a single IMAGE tensor - Save Image, Preview, or downstream into any image node.
Installing it
Install the pack once via ComfyUI Manager (search "Stability API nodes for ComfyUI") or:
cd ComfyUI/custom_nodes
git clone https://github.com/Stability-AI/ComfyUI-SAI_API
# restart ComfyUI
No models to download. Set your key as SAI_API_KEY, in a sai_platform_key.txt file next to the node, or per-node via api_key_override - but be aware that last one embeds the key in the workflow, so don't share those.
Common issues
- Visible seams where the original meets the new canvas - the classic outpaint failure. Raise
creativitya little (too conservative extensions blend worse than bold ones) and make sure your prompt describes how the scene continues. - Repeated or tiled-looking extensions - your prompt was too thin. Describe what should be in the new space explicitly.
- "payment_required" - out of credits; the trial credit bucket empties surprisingly fast.
Is it better than a local mask-and-inpaint outpaint? Not necessarily - a careful local pipeline gives you more control over exactly what gets invented. But this one takes ten seconds to set up and zero VRAM, and for "I need a wider crop of this and I don't want to fight the seams" that's usually the whole job.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| left | INT | 00–512 | — |
| right | INT | 00–512 | — |
| up | INT | 00–512 | — |
| down | INT | 00–512 | — |
| promptopt | STRING | — | |
| creativityopt | FLOAT | 0.500–1 | — |
| seedopt | INT | 00–4294967294 | — |
| styleopt | BOOLEAN | false | — |
| style_presetopt | COMBO | 17 options: 3d-model, analog-film, anime, cinematic, comic-book, digital-art, +11 | |
| output_formatopt | COMBO | 3 options: png, webp, jpeg | |
| api_key_overrideopt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |