Nodes/SAX Bridge/SAX Diffusion Loader
ComfyUI Node

SAX Diffusion Loader

For the split checkpoints with no single file to load

By so16tm·Created 7 months ago·Updated a day ago· 2
SAX Diffusion Loader
    • PIPE
    • SEED
    ◄unet_name▾►
    ◄weight_dtype▾►
    ◄clip_name▾►
    ◄vae_name▾►
    ◄lora_name▾►
    ◄lora_model_strength1.00►
    ◄seed0►
    ◄steps20►
    ◄cfg8.0►
    ◄sampler_name▾►
    ◄scheduler_name▾►
    ◄denoise1.00►
    ◄width512►
    ◄height512►
    ◄batch_size1►

    Most checkpoints are one file with the model, text encoder, and VAE baked together. A growing slice of the 2026 generation isn't - models like Anima ship as separate UNET, CLIP, and VAE weights you load independently. SAX Diffusion Loader is the SAX_Bridge answer to that: it loads all three from their own folders, plus an optional LoRA, and builds the exact same PIPE that SAX Loader produces, so every downstream SAX node works unchanged. If you're on a split-distribution model, this is the loader you want; if you're on a normal checkpoint, the regular SAX Loader is simpler and this one is irrelevant to you.

    What it loads

    • unet_name - the diffusion model from diffusion_models, with a weight_dtype dropdown (default, or the fp8 options fp8_e4m3fn/fp8_e4m3fn_fast/fp8_e5m2) that applies the same dtype mapping as ComfyUI's built-in UNETLoader.
    • clip_name - the text encoder from text_encoders. The pack auto-detects the CLIP type from the state dict (it knows Anima's Qwen3 0.6B, for instance), so you don't hand-pick an architecture.
    • vae_name - always an external VAE here; there's no baked option.
    • lora_name + lora_model_strength - optional LoRA, applied to both model and CLIP with one strength value.

    Then the same sampler set as SAX Loader: seed, steps, cfg, sampler_name, scheduler_name, denoise, width, height, batch_size. Outputs are the identical PIPE and SEED pair, so you can swap SAX Loader for this node in an existing graph without rewiring anything downstream.

    The clever bit: latent channels

    Split diffusion models don't share the SDXL 4-channel latent. The empty latent this loader creates starts at 4 channels, and the KSampler has a fix_empty_latent_channels step that adapts it to whatever the model actually wants - 16-channel and 3-dimensional latents (the newer flow-matching architectures) need no extra setup on your part. That's exactly the kind of thing that used to be a "why is my latent the wrong shape" detour, now handled inside the pack.

    What's deliberately missing

    There's no clip_skip and no v_pred here, and that's correct, not an omission: these models use flow-based sampling and LLM-style text encoders, where CLIP skip and V-prediction simply don't apply (the KB's concepts doc covers why CLIP skip is meaningless on the new encoders). If you find yourself wishing for a clip_skip field, you're probably loading a model that doesn't need one.

    Installing and using

    Same as the rest of the pack:

    cd ComfyUI/custom_nodes
    git clone https://github.com/so16tm/SAX_Bridge
    

    Restart, and it's under SAX/Bridge/Loader. Drop your files in the standard folders (diffusion_models, text_encoders, vae) and they'll appear in the dropdowns. The fp8 weight dtypes are the move when VRAM is tight - same story as GGUF/fp8 everywhere else: a bit of quality for a chunk of memory. Start with default for quality, switch to fp8 if you're swapping.

    CategorySAX/Bridge/Loader

    Inputs (15)

    NameTypeDefaultDescription
    unet_nameCOMBO0 options:
    weight_dtypeCOMBO4 options: default, fp8_e4m3fn, fp8_e4m3fn_fast, fp8_e5m2
    clip_nameCOMBO0 options:
    vae_nameCOMBO0 options:
    lora_nameCOMBO1 options: None
    lora_model_strengthFLOAT1.00-10–10—
    seedINT00–18446744073709550000—
    stepsINT201–10000—
    cfgFLOAT8.00–100—
    sampler_nameCOMBO44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38
    scheduler_nameCOMBO11 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +5
    denoiseFLOAT1.000–1—
    widthINT5128–8192—
    heightINT5128–8192—
    batch_sizeINT11–4096—

    Outputs (2)

    NameTypeDescription
    PIPEPIPE_LINE—
    SEEDINT—