ComfyUI Node

Model Assembler

One loader node for full checkpoints and fp8 components

By Santodan·Created about a year ago·Updated 2 months ago· 28
Model Assembler
    • MODEL
    • CLIP
    • VAE
    load_mode
    ckpt_name
    base_model
    weight_dtype
    vae_model
    clip_type
    device
    clip_model_1
    clip_model_2None
    clip_model_3None

    The Model Assembler is a loader node for people who test model variants constantly: it combines the checkpoint loader, UNet loader, CLIP loader, and VAE loader into a single node with two modes. The author's stated reason is pure convenience - "Created so I don't have to change connections when testing full models and fp8 versions." Instead of rewiring four nodes when you switch from a full checkpoint to an fp8 UNet + separate CLIPs + separate VAE, you flip one dropdown.

    It's not a sampler or a merger; it's a front-end that wraps ComfyUI's built-in loading calls and exposes the pieces you'd otherwise wire by hand.

    How it works

    Pick a load_mode:

    • full_checkpoint - the classic: pick one ckpt_name, and the node calls ComfyUI's checkpoint guess-config loader, handing you MODEL, CLIP, and VAE from that single file. This is a one-node replacement for the stock CheckpointLoader.
    • separate_components - build the pipeline yourself: base_model loads as the UNet (a checkpoint file used as a diffusion model, with weight_dtype options default / fp8_e4m3fn / fp8_e4m3fn_fast / fp8_e5m2 - the fp8 modes are the whole point for quantized testing). vae_model loads the VAE, and up to three CLIPs (clip_model_1clip_model_3) load from your text_encoders folder using the clip_type you pick (sdxl, flux, sd3, etc.).

    Both paths return the same three outputs: MODEL, CLIP, VAE.

    The settings that matter

    • load_mode - full checkpoint or separate components.
    • ckpt_name / base_model - the file used in each mode.
    • weight_dtype - fp8 options for the UNet in separate mode; this is where the "test full vs fp8 without rewiring" use case lives.
    • clip_type - the author's tooltip spells it out: "Select the appropriate type for your CLIP model(s). E.g., 'sdxl' for a LoRA/HiRA pair." This is the knob that makes or breaks CLIP loading, because a mismatched type loads a CLIP that doesn't fit the architecture.
    • device - default or force cpu for CLIP loading (handy for memory-strapped setups).
    • clip_model_1clip_model_3 - which text encoders to load; at least one is required in separate mode.

    Gotchas

    • base_model in separate mode is a checkpoint treated as a UNet. ComfyUI's load_diffusion_model is genuinely how you load a full checkpoint as the diffusion model - that's the trick that makes this "one file, fp8-loaded" workflow work - but it means the base checkpoint's own CLIP and VAE are ignored, so you must supply all three separately. Missing one throws a FileNotFoundError / ValueError and the run fails loudly, which is at least clear.
    • fp8 modes change memory, not necessarily quality. fp8_e4m3fn and fp8_e4m3fn_fast are the same dtype, the latter with extra optimizations. If you're testing whether an fp8 quant is "good enough," this node is the fastest way to A/B it against the full checkpoint - that's its real job.
    • The clip_type list is long because it mirrors ComfyUI's own enum. Most people will ever touch sdxl (or flux for FLUX models). Guessing wrong loads something that may fail at encode time, not load time.

    Install

    ComfyUI Manager (search "Santodan"), or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/Santodan/santodan-custom-nodes-comfyui
    

    Restart. No dependencies, no downloads - it loads whatever's already in your checkpoints, vae, and text_encoders folders.

    Categoryloaders

    Inputs (10)

    NameTypeDefaultDescription
    load_modeCOMBO2 options: full_checkpoint, separate_components
    ckpt_nameCOMBO0 options:
    base_modelCOMBO0 options:
    weight_dtypeCOMBO4 options: default, fp8_e4m3fn, fp8_e4m3fn_fast, fp8_e5m2
    vae_modelCOMBO0 options:
    clip_typeCOMBOSelect the appropriate type for your CLIP model(s). E.g., 'sdxl' for a LoRA/HiRA pair.
    deviceCOMBO2 options: default, cpu
    clip_model_1COMBO1 options: None
    clip_model_2optCOMBONone1 options: None
    clip_model_3optCOMBONone1 options: None

    Outputs (3)

    NameTypeDescription
    MODELMODEL
    CLIPCLIP
    VAEVAE