Nodes/SP-Nodes/SP_SD3Loader
ComfyUI Node

SP_SD3Loader

SP_SD3Loader — the SD3/SD3.5 loader that handles the negative-prompt quirk for you

By bananasss00·Created 2 years ago·Updated a day ago· 23
SP_SD3Loader
    • sp_pipe
    • model
    • clip
    • vae
    • positive
    • negative
    • latent
    unet_name
    weight_dtype
    vae_name
    clip_name1
    clip_name2
    clip_name3
    lora_name
    lora_strength1.00
    positive
    negative
    resolution1024 x 1024
    empty_latent_width512
    empty_latent_height512

    SD3 and SD3.5 have a reputation problem and most of it is fair: they ignore negative prompts out of the box. The known workaround is fiddly - you zero out the negative conditioning, split it across timestep ranges, and recombine it - and doing that by hand means three extra nodes just to have a negative field that behaves. SP_SD3Loader from the SP-Nodes pack is basically the "someone already fought this fight" node: it's a subclass of the pack's SP_FluxLoader with the SD3 plumbing built in, so one box loads the unet, three text encoders, the VAE, and your prompt, and applies the negative-prompt workaround automatically.

    The mechanism is worth knowing because it's the whole point. In the pack's shared loader core, when the clip type is sd3, the negative text you type gets encoded, then run through ConditioningZeroOut, split with ConditioningSetTimestepRange (your negative for the early timesteps, the zeroed-out version for the rest), and recombined. That zero-out + timestep-range dance is the community-standard fix for SD3's timestep-pooled guidance ignoring the negative - and here it just happens. It's also the only loader in the pack (besides the SD one) that exposes a real negative text box.

    Inputs that matter:

    • unet_name + weight_dtype - same quant ladder as the rest of the pack: fp8 variants, nf4-float8_*, gguf, plus a default option SD3 specifically. SD3/SD3.5's three text encoders are part of why GGUF exists for them.
    • clip_name1 / clip_name2 / clip_name3 - the SD3 family wants all three (t5xxl + clip_l + clip_g) for the full TripleCLIPLoader path; clip_name2 and clip_name3 default to None, which is your "run it degraded because VRAM" lever.
    • lora_name + lora_strength, positive / negative, and the resolution presets (31 including custom, which routes to empty_latent_width/height).

    Outputs are the usual seven - sp_pipe, model, clip, vae, positive, negative, latent - ready to feed the pack's SP_KSampler (the pipe's _model_type is stamped sd3, so the sampler won't apply Flux-style guidance distillation to it) or any stock sampler.

    Install is the shared pack story:

    cd ComfyUI/custom_nodes
    git clone https://github.com/bananasss00/ComfyUI-SP-Nodes
    

    or ComfyUI Manager → SP-Nodes, then restart. Like the Flux loader it leans on ComfyUI-GGUF (all its clip loaders are the GGUF ones) and, for the nf4 dtypes, ComfyUI_bitsandbytes_NF4-Lora - the pack's own dependency table lists both. If you pick a gguf unet without ComfyUI-GGUF installed, the node errors at expansion.

    The honest caveat: SD3-family models are a tougher crowd than Flux - community enthusiasm cooled fast after launch, and by 2026 a lot of people reaching for a triple-CLIP architecture are using Flux or a newer flow-matching model instead. But if your LoRA or your workflow is SD3.5, this is the loader that gets you a working negative field without assembling the workaround by hand.

    CategorySP-Nodes/Group Nodes

    Inputs (13)

    NameTypeDefaultDescription
    unet_nameCOMBO0 options:
    weight_dtypeCOMBO7 options: fp8_e4m3fn, fp8_e4m3fn_fast, fp8_e5m2, nf4-float8_e4m3fn, nf4-float8_e5m2, gguf, +1
    vae_nameCOMBO1 options: pixel_space
    clip_name1COMBO0 options:
    clip_name2COMBO1 options: None
    clip_name3COMBO1 options: None
    lora_nameCOMBO1 options: None
    lora_strengthFLOAT1.00-100–100
    positiveSTRING
    negativeSTRING
    resolutionCOMBO1024 x 102431 options: width x height (custom), 512 x 512, 512 x 768, 576 x 1024, 768 x 512, 768 x 768, +25
    empty_latent_widthINT51264–16384
    empty_latent_heightINT51264–16384

    Outputs (7)

    NameTypeDescription
    sp_pipeSP_PIPE
    modelMODEL
    clipCLIP
    vaeVAE
    positiveCONDITIONING
    negativeCONDITIONING
    latentLATENT