IF Load Stage II
A ComfyUI node in Zuellni/IF with 4 inputs and 1 output.
- MODEL
Stage II is the middle child of DeepFloyd IF: it doesn't draw anything from scratch, it upscales what Stage I produced, 4×. If Stage I hands you a 64×64 image, Stage II turns it into 256×256 while cleaning it up and filling in coherent detail - using the same prompt embeddings, which is the clever part. This node loads that Stage II model.
What it loads
Two choices in the model dropdown:
- medium →
DeepFloyd/IF-II-M-v1.0 - large →
DeepFloyd/IF-II-L-v1.0
No "extra large" this time - Stage II only comes in two sizes. And notice what you don't get: no width/height. Stage II always upscales its input by exactly 4× per side (the actual stage node computes output dimensions from whatever image you feed it). If you feed it 64×64 you get 256×256; feed it 128×128 and you get 512×512.
Same sampler controls as Stage I
Identical scheduler and karrasSigmas options ride on the loader: default vs sde-dpmsolver++, and Karras sigmas on by default. Same device string semantics too - empty means offload, or pin it to a specific GPU. If you're building an IF workflow, the temptation is to set scheduler and device identically on both stage loaders so the whole chain behaves consistently. Do that. Mixing schedulers between stages is a fast way to get weird, muddy intermediates.
How Stage II fits the pipeline
The full IF stack is: IF Load Encoder → IF Encode → Stage I (text → 64×64) → Stage II (→ 256×256) → IF Stage III (→ 1024×1024). Stage II reuses the same POSITIVE/NEGATIVE embeddings as Stage I rather than re-encoding, which is what keeps the upscale faithful to the original intent. That's also why Stage II needs the embeds wired in, not just the images.
It's a heavy model - another multi-GB download, and the large variant will sweat a 12GB card. Medium is the pragmatic default unless you know you need the extra fidelity.
Install
Part of Zuellni/ComfyUI-Custom-Nodes, via Manager (search "Zuellni") or:
cd ComfyUI/custom_nodes
git clone https://github.com/Zuellni/ComfyUI-Custom-Nodes
Same dependency set as the rest of IF: diffusers, accelerate, transformers, sentencepiece, bitsandbytes (pinned wheel on Windows). Auto-installed on first run of the pack.
The gotchas
- Gated model, token required. Accept DeepFloyd's terms on HuggingFace, then
huggingface-cli login. Same rule as every other IF node. - VRAM. Stage II is the second-most memory-hungry stage. If the whole cascade keeps OOMing on you, Stage II is often the culprit - try the medium variant and leave
deviceempty so offloading kicks in. - Archived pack. The README's own confession: IF "has a lot of issues," and the repo is unmaintained. Works, but budget for diffusers version drift.
Output is an S2_MODEL socket for IF Stage II. Wire it, wire your embeds, and the 64×64 → 256×256 jump takes care of itself.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| model | COMBO | medium | 2 options: medium, large |
| scheduler | COMBO | default | 2 options: default, sde-dpmsolver++ |
| karrasSigmas | BOOLEAN | true | — |
| device | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| MODEL | S2_MODEL | — |