Diffree_Model_Loader
The boring half of a maskless-inpainting combo
- pipe
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.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| ckpt_name | COMBO | 1 options: none | |
| vae | COMBO | 1 options: none |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| pipe | DIFFREE_MODEL | — |