IF Stage III
A ComfyUI node in Zuellni/IF with 9 inputs and 1 output.
- model
- images
- IMAGES
The last stop on the DeepFloyd IF train: IF Stage III turns your 256×256 Stage II output into a 1024×1024 image, using Stability AI's old-but-solid SD x4 upscaler. It's the least "DeepFloyd" node in the family - it's a Stability model with its own encoder - which is exactly why it has its own quirks.
What it is
IF Stage III takes the S3_MODEL from IF Load Stage III, an images input (usually from IF Stage II), and plain-text positive/negative strings. It runs the SD x4 upscaler, which adds a bit of noise to your input and then re-renders it 4× bigger with detail invented to match the prompt.
The prompt quirk (read this before you run it)
Stage III does not accept the T5 embeddings that Stages I and II use. It carries its own CLIP-class encoder, so its prompt inputs are plain string fields - look at the schema and you'll see positive/negative are multiline strings, not POSITIVE/NEGATIVE sockets. The practical consequence: the sentence-style prompt you wrote for Stage I gets read by a tag-style SD encoder here. Feed it a short, descriptive prompt rather than your full T5 sentence - something like "a cat on a windowsill, golden hour, highly detailed" - and it'll stay much closer to the original image. This mismatch is the #1 cause of "Stage III changed my image."
The inputs that matter
| Input | Default | What it does |
|---|---|---|
| tile_size | 0 | The one that unlocks big images. 0 = no tiling. Set it (e.g. 256/512) to enable the upscaler's tiled VAE mode, letting you process images larger than would otherwise fit in VRAM. |
| noise | 20 | Noise level injected into the low-res input. 20 is the SD x4 upscaler's classic setting - too high and you get hallucinations, too low and it stays mushy. |
| steps | 20 | The diffusion pass. |
| cfg | 8.0 | Lower than the SD x4 upscaler's old 7.5 default, but in the same spirit. |
| seed | 0 | Standard. |
| positive / negative | "" | Plain strings, see above. |
Tiling: the practical bit
The tile_size input is genuinely useful. The SD x4 upscaler's VAE can choke on large images - exactly what you're trying to produce. Set tile_size to something like 256 or 512 and it enables tiled VAE decoding, which keeps VRAM in check at the cost of speed. If you're on a 8GB card pushing to 1024+, this is the difference between success and OOM. Start at 0 (no tiling) if your VRAM is comfortable, and only reach for tiling when it isn't.
Workflow reality
Stage III is the third full diffusion pass in the cascade, and while the x4 upscaler is a small model, the pipeline is cumulative: every stage's time adds up. Expect the whole IF chain to be a minutes-long affair per image. It's the price of DeepFloyd's coherent, high-res output - there's no shortcut, because each stage genuinely needs to run.
Install
Part of Zuellni/ComfyUI-Custom-Nodes - Manager (search "Zuellni") or:
cd ComfyUI/custom_nodes
git clone https://github.com/Zuellni/ComfyUI-Custom-Nodes
Needs diffusers and accelerate. Unlike the DeepFloyd stages, this model is not gated - no HF token needed. And the pack is archived, so treat it as stable-but-unmaintained.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| model | S3_MODEL | — | |
| images | IMAGE | — | |
| tile_size | INT | 00–1024 | — |
| noise | INT | 200–100 | — |
| seed | INT | 00–18446744073709550000 | — |
| steps | INT | 201–10000 | — |
| cfg | FLOAT | 8.000–100 | — |
| positive | STRING | — | |
| negative | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGES | IMAGE | — |