Nodes/ComfyUI-SD3-nodes/SD3 Load CLIPs
ComfyUI Node

SD3 Load CLIPs

Loading SD3's three text encoders without the triple-clip confusion

By liusida·Created 2 years ago·Updated 2 years ago· 8
SD3 Load CLIPs
    • CLIP
    clip_g
    clip_l
    t5xxl

    Stable Diffusion 3 conditions on three text encoders at once: two CLIP variants (CLIP-L and CLIP-G, the SDXL-era double act) plus T5-XXL, a 4.7-billion-parameter language model. Because SD3 shipped its text conditioning as separate files rather than one baked-in bundle, you need a loader that grabs all three and merges them into a single CLIP object your prompt nodes can use. That's this node's entire job, and it's the most honest piece of the liusida/ComfyUI-SD3-nodes pack: it takes ComfyUI's own TripleCLIPLoader and renames its three generic inputs to the names you'd actually look for.

    Mechanically, it's a one-line call into ComfyUI's triple-clip loading - it resolves each file, loads the three encoders, and returns one CLIP output that combines them. That output feeds a CLIPTextEncode, which tokenizes your prompt through all three heads, and the combined conditioning goes to the KSampler alongside the MODEL from SD3 Load Checkpoint. The three required inputs are just file pickers, all reading from your models/text_encoders folder (ComfyUI aliases models/clip into the same list, so either location works):

    • clip_g - the OpenCLIP-G encoder, clip_g.safetensors.
    • clip_l - the CLIP-L encoder, clip_l.safetensors.
    • t5xxl - the T5-XXL encoder, t5xxl_fp8_e4m3fn.safetensors recommended.

    That third file matters more than it looks. T5-XXL is the VRAM elephant - 4.7B params of text encoder, roughly half your budget on a mid-range card. The fp8 version the workflow links is a genuinely free lunch here: SD3's own paper found dropping T5 entirely costs almost nothing in aesthetics, a little in text adherence, and a lot in typography. The fp8 cut preserves most of that while eating far less memory, so unless you're running a big card with room to spare, take the fp8 file and don't think twice. There's a second reason to use the fp8: this pack was written in June 2024 against the ComfyUI of that week, and the SD3 loading API has been rewritten since. On current ComfyUI the built-in Load CLIP node (type sd3) loads the same three files, and a built-in CLIPTextEncode (SD3) even lets you prompt each encoder separately. This node is the launch-era convenience version of that.

    Install

    Via ComfyUI Manager (search "ComfyUI-SD3-nodes"), or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/liusida/ComfyUI-SD3-nodes
    

    Restart ComfyUI - no pip dependencies beyond a current ComfyUI. Then download all three encoder files from the SD3 Medium HuggingFace page (gated, like the checkpoint: account + personal info required) into ComfyUI/models/text_encoders. The bundled workflow keeps them under an SD3/ subfolder.

    Troubleshooting

    • Node errors on run with an attribute error like load_clip - this is the pack hitting ComfyUI's rewritten SD3 API. Don't fight it; use the built-in Load CLIP node with type sd3 and move on.
    • Empty dropdowns - the three files aren't in models/text_encoders (or ComfyUI hasn't rescanned). The node lists only what's actually there.
    • Prompts that read fine but render with scrambled or missing text - T5 does the typography lifting. If you're on the full-precision T5 and low on VRAM, this is the classic symptom of it thrashing; switch to the fp8 file.
    • Everything loads but the image is bad - unfortunately that can just be SD3. This node faithfully feeds the model its prompt; whether SD3 returns a coherent picture is a separate, well-documented tragedy covered in the SD3 story.
    Categoryadvanced/loaders

    Inputs (3)

    NameTypeDefaultDescription
    clip_gCOMBO0 options:
    clip_lCOMBO0 options:
    t5xxlCOMBO0 options:

    Outputs (1)

    NameTypeDescription
    CLIPCLIP