Nodes/SAX Bridge/SAX Diffusion Loader
ComfyUI Node

SAX Diffusion Loader

For the split checkpoints with no single file to load

By so16tm·Created 6 months ago·Updated 3 months ago· 0
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