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

SD3 Load Checkpoint

What that shift slider is actually doing

By liusida·Created 2 years ago·Updated 2 years ago· 8
SD3 Load Checkpoint
    • MODEL
    • VAE
    ckpt_name
    shift3.00

    SD3LoadCheckpoint is a checkpoint loader with one deliberate addition: a shift knob that ComfyUI's plain loaders didn't expose when SD3 launched. Load the sd3_medium.safetensors, twiddle the shift, and it hands you a MODEL and a VAE ready for the KSampler. It's part of liusida/ComfyUI-SD3-nodes, the same launch-week pack as SD3 Empty Latent - written by liusida, the same person behind the ComfyUI-Login password plugin, and frozen since June 2024.

    Here's what the node does under the hood (the source is short and worth reading). It calls ComfyUI's normal load_checkpoint_guess_config, so the checkpoint itself loads like any other. Then it replaces the model's sampling schedule with a flow-matching discrete sampling setup and applies your shift via model_sampling.set_parameters(shift=...). SD3 is a rectified flow model, not a classic UNet, which means its denoising runs on a continuous time scale and the "schedule" decides where each of your steps actually lands. Shift rebalances that schedule: lower values push work toward the noisy end of the process, higher values spread it out. The paper this is based on found 3.0 and 6.0 both behave well - the default here is 3.0, and the bundled workflow runs it at 3.0 with dpmpp_2m and sgm_uniform. Modern ComfyUI applies this sort of shift automatically these days, so the node's real remaining edge is that you can grab the knob and experiment instead of patching the sampler yourself.

    The two required inputs are the whole story:

    • ckpt_name - dropdown of whatever's in your models/checkpoints folder. If it's empty, the file isn't where ComfyUI looks.
    • shift - float from 0 to 100, step 0.01, default 3.0. Stay in the paper's ballpark (3.0–6.0); extremes produce washed-out or noisy results, not art.

    Outputs are MODEL (into KSampler) and VAE (into VAEDecode). One note: the tooltip ComfyUI shows on the VAE output says "The CLIP model used for encoding text prompts" - that's a copy-paste error, it is very much the VAE, and the default workflow wires it into VAEDecode where it belongs. What you will not get here is a CLIP output: SD3 shipped its text encoders as separate files, so prompting needs the SD3 Load CLIPs node next to this one. In a text-to-image graph the chain is Load Checkpoint → (CLIP from Load CLIPs) → both into KSampler, VAE → VAEDecode.

    Install and model download

    Install the pack with ComfyUI Manager (search "ComfyUI-SD3-nodes") or:

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

    Restart ComfyUI. No pip requirements - the README only insists ComfyUI be current. The real download is the model: sd3_medium.safetensors (~4.3GB) lives on HuggingFace behind a gated page, so you'll need to create an account and provide personal info before it will download. Drop it in ComfyUI/models/checkpoints (the bundled workflow uses an SD3/ subfolder).

    Troubleshooting

    • Empty ckpt_name dropdown - model not in models/checkpoints, or ComfyUI hasn't refreshed its folder listing after you dropped the file in.
    • Shift way outside 3–6 - you're past what the paper validated. If output looks off, that's the first thing to snap back to 3.0.
    • A gray, washed image - check the VAE wiring; every node in this pack was built in the SD3 launch week, and SD3's story since has been "underwhelming model, messy license." The output ceiling is the model's, not this loader's. If you're here in 2026 because SD3 keeps disappointing, that's not a settings problem - that's the model.
    Categorysd3

    Inputs (2)

    NameTypeDefaultDescription
    ckpt_nameCOMBO0 options:
    shiftFLOAT3.000–100

    Outputs (2)

    NameTypeDescription
    MODELMODELThe model used for denoising latents.
    VAEVAEThe CLIP model used for encoding text prompts.