ComfyUI Node

IF Load Stage II

A ComfyUI node in Zuellni/IF with 4 inputs and 1 output.

By Zuellni·Created 3 years ago·Updated 3 years ago· 43
IF Load Stage II
    • MODEL
    modelmedium
    schedulerdefault
    karrasSigmastrue
    device

    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:

    • mediumDeepFloyd/IF-II-M-v1.0
    • largeDeepFloyd/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 EncoderIF 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 device empty 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.

    CategoryZuellni/IF

    Inputs (4)

    NameTypeDefaultDescription
    modelCOMBOmedium2 options: medium, large
    schedulerCOMBOdefault2 options: default, sde-dpmsolver++
    karrasSigmasBOOLEANtrue
    deviceSTRING

    Outputs (1)

    NameTypeDescription
    MODELS2_MODEL