Nodes/ComfyUI_Diffree/Diffree_Model_Loader
ComfyUI Node

Diffree_Model_Loader

The boring half of a maskless-inpainting combo

By smthemex·Created 2 years ago·Updated about a year ago· 31
Diffree_Model_Loader
    • pipe
    ckpt_name
    vae

    Diffree_Model_Loader is not the interesting half of this pack, and that's fine. It's the node that hands one very specific checkpoint to the sampler that follows, and it will happily eat your evening if you point it at the wrong file. The pack is smthemex/ComfyUI_Diffree, a wrapper around OpenGVLab's Diffree - "Text-Guided Shape Free Object Inpainting," a July 2024 research model. The pitch: give a photo and a sentence, get the photo back with the object added, no mask, no box, background untouched. This node is just the loading dock for that.

    What it actually does

    On the surface it's a LoadCheckpoint clone with a dropdown and an optional VAE. Underneath it loads the Diffree checkpoint through the pack's own config/generate.yaml, wraps the raw model in a k-diffusion CompVisDenoiser, wraps that in a CFGDenoiser, and bundles all three into a Python dict it passes out as the pipe output. Nothing runs yet - no sampling, no VRAM fireworks. It's setup, and the setup is the whole job. The sampler on the other side unpacks that pipe and does the work.

    The inputs that matter

    There are only two, so this is short.

    • ckpt_name - a dropdown populated from ComfyUI/models/checkpoints/. It is looking for exactly one file: diffree-step=000010999.ckpt, downloaded from LiruiZhao/Diffree on HuggingFace. It's an SD1.5-class checkpoint, a couple of GB, and it's the only model this pack was written for. Anything else is a gamble - a mismatched state dict errors at load, or worse, loads and behaves like a model that was never trained. This is the #1 way people burn an hour on this pack.
    • vae - default none, and that's the right answer. The README is explicit that the Diffree checkpoint ships its own VAE. You can force an external one through this input, but there's no reason to.

    The output

    One output, named pipe, typed DIFFREE_MODEL. It wires into exactly one place: the pipe input on Diffree_Sampler. That's the entire graph, and the two nodes were clearly designed as a pair.

    Installing it

    ComfyUI Manager (search "ComfyUI_Diffree"), or the manual route:

    cd ComfyUI/custom_nodes
    git clone https://github.com/smthemex/ComfyUI_Diffree.git
    

    Restart ComfyUI, then drop diffree-step=000010999.ckpt into ComfyUI/models/checkpoints/. The good news on dependencies: because Diffree is built on the SD1.5 stack and the pack vendors its own copy of k-diffusion, most ComfyUI installs need nothing extra - the README says so, and it's mostly true. If you do hit a missing module, the pack's no_need_requirements.txt is your checklist; requirements.txt installs the heavier bits like pytorch-lightning, torchdiffeq, opencv-python, scikit-image, and taming-transformers. Portable Windows builds have to run pip inside the bundled Python:

    cd ComfyUI/python_embeded
    python -m pip install -r requirements.txt
    

    Where people get burned

    Two warnings, both straight from the README, which is refreshingly honest. First, the wrapper holds roughly 4GB of VRAM it never fully releases - the author notes it as a known quirk, so don't chase it as a bug in your setup. Second, sampling runs under autocast("cuda"), which means older CUDA cards can OOM. And one you'll find on your own: this is an October 2024 wrapper for an already-forgotten research model, so if a node errors after a ComfyUI update, it's dependency drift - reinstall requirements.txt before you blame your graph.

    CategoryDiffree

    Inputs (2)

    NameTypeDefaultDescription
    ckpt_nameCOMBO1 options: none
    vaeCOMBO1 options: none

    Outputs (1)

    NameTypeDescription
    pipeDIFFREE_MODEL