Nodes/BetterNormalCrafterWrapper/NormalCrafter Clean - Load
ComfyUI Node

NormalCrafter Clean - Load

The Load node that keeps your model downloads in one place

By kaski23·Created 2 months ago·Updated 2 months ago· 0
NormalCrafter Clean - Load
    • model
    dtypeauto
    attentionauto
    local_files_onlyfalse
    model_repoYanrui95/NormalCrafter
    base_repostabilityai/stable-video-diffusion-img2vid-xt

    Every NormalCrafter workflow starts here. This node pulls all the pieces of the model together into one object you can hand to the Generate node, and it's the only place you deal with downloads and precision settings. Load it once, wire the model output forward, and stop thinking about it.

    The reason it loads four things at once is that NormalCrafter isn't a single self-contained checkpoint. It's a diffusion recipe built from two repos: NormalCrafter's own fine-tuned UNet and temporal VAE (Yanrui95/NormalCrafter), plus the CLIP vision encoder and Euler scheduler borrowed from Stable Video Diffusion (stabilityai/stable-video-diffusion-img2vid-xt). The pack assembles them into one NormalCrafterModel object - one owner per component, no module-level globals, nothing half-loaded.

    What you actually set

    Three required inputs, and honestly two of them have sane defaults:

    • dtype - auto is the right answer for almost everyone. It selects FP16 on CUDA and FP32 on CPU. If you know you want float16, bfloat16, or float32 explicitly, pick it; note that a CPU-only run gets forced to FP32 regardless, because FP16 CPU kernels are slow and numerically fragile.
    • attention - auto picks a sensible implementation; xformers is there if you've already got it installed and want it forced. Leave it on auto.
    • local_files_only - this is the one worth knowing. False (default) means the loader will hit Hugging Face and download weights on first run if they're not cached. Flip it to True for a fully offline box that only uses what's already in the HF cache - great for air-gapped setups, and it's the only input that changes how the node behaves beyond precision.

    Then there are two optional string fields, model_repo and base_repo, defaulting to the official Yanrui95/NormalCrafter and stabilityai/stable-video-diffusion-img2vid-xt. These exist so you can point at a mirror, a fork, or a local repository path instead of the Hugging Face originals. Most people never touch them.

    The single output is model - a custom NORMALCRAFTER_CLEAN_MODEL type that only wires into the other two nodes in this pack. Important detail: the loader does not move anything to CUDA. The model is created on CPU, and the Generate node decides whether to stage components one at a time or keep them resident. That's the design that keeps VRAM low - the loader never claims the GPU up front.

    Installing

    Same steps as the rest of the pack, done once:

    cd ComfyUI/custom_nodes
    git clone https://github.com/kaski23/BetterNormalCrafterWrapper
    cd BetterNormalCrafterWrapper
    pip install -r requirements.txt
    

    Or search for BetterNormalCrafterWrapper in ComfyUI Manager. Either way, restart ComfyUI afterward. Dependencies are the standard huggingface stack - diffusers, transformers, accelerate, safetensors - so no pip conflicts beyond the usual suspects.

    Gotchas

    Budget for the first run: it downloads multi-gigabyte weights from Hugging Face, and that happens in the loader, so your first workflow execution can look "stuck" while it pulls. That's expected, not a hang. The model sits on CPU until generate runs, so loading itself is cheap on VRAM. If you're on a machine that can't reach Hugging Face, pre-download the repos with the HF CLI and set local_files_only to True - the rest of the workflow won't notice.

    CategoryNormalCrafter/Clean

    Inputs (5)

    NameTypeDefaultDescription
    dtypeCOMBOauto4 options: auto, float16, bfloat16, float32
    attentionCOMBOauto3 options: auto, default, xformers
    local_files_onlyBOOLEANfalse
    model_repooptSTRINGYanrui95/NormalCrafter
    base_repooptSTRINGstabilityai/stable-video-diffusion-img2vid-xt

    Outputs (1)

    NameTypeDescription
    modelNORMALCRAFTER_CLEAN_MODEL