Stability Control Structure
Keep the composition, change everything else — ControlNet without the setup
- image
- IMAGE
Control Structure does what a structure ControlNet does - regenerate an image following the spatial layout of a reference - minus the entire local apparatus. Locally, that apparatus is real: pick a ControlNet model that matches your checkpoint's architecture, choose a preprocessor, extract a depth or MLSD map, wire the weight and start/end steps. Here it's one node: feed an image and a prompt, and Stability's server keeps your composition while changing the content.
It's a cloud node from the official "Stability API nodes for ComfyUI" pack, calling the stable-image/control/structure endpoint. Zero VRAM, nothing to download, but it costs credits per call and needs a Stability API key. The community has been openly lukewarm on this whole pack - "not local, not interested" - and if you've already got a working ControlNet workflow, you have more control than this node gives you. This is for when you want the structure-controlled result without owning the machinery, or you're on a machine that can't run it.
How it works
The input image is interpreted server-side as the structure condition - think pose and layout rather than pixel content. Your prompt supplies the new subject and scene. What you actually tune:
- control_strength (0.01–1.0, default 0.7) - the control weight, same idea as a local ControlNet weight. High keeps the structure rigid; low lets the prompt wander. If your output barely resembles the input's layout, you're too low. If it's a photocopy with a new coat of paint, you're too high.
- prompt - the new content. This is where the scene, subject, and style-of-content go.
- negative_prompt - the usual steering.
- seed - reproducibility.
Then the pack's shared bits: style + style_preset (preset ignored unless style is true - the recurring quirk), output_format for png/webp/jpeg. One IMAGE out, straight into Save Image or anything downstream.
Installing it
Part of the "Stability API nodes for ComfyUI" pack - ComfyUI Manager, or:
cd ComfyUI/custom_nodes
git clone https://github.com/Stability-AI/ComfyUI-SAI_API
# restart ComfyUI
No model downloads, no requirements.txt beyond requests (already present on any real ComfyUI install). Key setup: SAI_API_KEY env var, a sai_platform_key.txt file beside the node, or api_key_override per node - the last one rides along in the workflow JSON, so don't share those.
Common issues
- Structure ignored -
control_strengthtoo low, or your prompt is fighting the condition with details the structure can't support. Drop the prompt to a simple description and raise the strength. - Garbage in, garbage out - feed a clean reference. A noisy, compressed, or badly upscaled input makes a bad structure map, and the server doesn't clean it up for you.
- Wrong control node - people grab this expecting a style transfer. That's Control Style. This one preserves arrangement, not appearance.
If you need pose/layout fidelity without a ControlNet stack, this is the least-effort path in the pack. Just remember the structure map is whatever the server decides to extract - you don't get to pick the preprocessor, and you can't run it locally when the credits run out.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| prompt | STRING | — | |
| control_strengthopt | FLOAT | 0.700.01–1 | — |
| negative_promptopt | STRING | — | |
| 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 | — |