Load Iris Depth Model
The third 12 GB checkpoint, and don't mix it up with the other two
- IRIS_DEPTH_MODEL
Iris ships three checkpoints, all about 12 GB, all the same architecture, all fine-tuned from the same base: text-to-image, 4x restoration, and monocular depth. This node loads the third one.
Getting that straight saves you an afternoon. Iris depth is not a separate small model like MiDaS or Depth Anything - it's the full 3B DiT adapted to a depth task, roughly 12 GB on disk, and it needs the depth fine-tune specifically. Point this loader at your text-to-image checkpoint and it stops with "X is not an Iris depth model", because it reads the task name out of the config before it loads anything.
Inputs and output
model_name - an enum over models/diffusion_models, filtered to filenames that contain "iris" and "depth". Neither of the other two checkpoints can appear in it. The default is iris-3b-depth.safetensors, downloaded from speridlabs/iris-3b (as the Hub's depth/model.safetensors) on first use if it's missing, 12 GB.
weight_dtype - bf16 (default, ~6 GB resident on the GPU) or fp32 (the shipped precision, ~12 GB, and the tooltip is explicit that it needs well over 16 GB VRAM). bf16 unless you're on a 24 GB card and hunting for the last few percent.
The single output is IRIS_DEPTH_MODEL, and it goes into Iris Depth - the node with the confusingly plain display name.
What gets loaded behind the scenes
Alongside the weights, the loader pulls the task's stored empty-prompt embedding, about 36 MB, from the same Hub repo, and caches it next to the pack. Same pattern as the upscaler: a task-specific conditioning the model was fine-tuned with, no text encoder needed, and no prompt field anywhere downstream. That's why a depth graph in this pack is three nodes and a save, with no CLIP in sight.
The model also parks in system RAM between runs and only visits the GPU for its own pass, so it doesn't compete for VRAM with the DiT or the upscaler in a combined graph. It does compete for RAM. With all three Iris models loaded, expect to need around 22 GB of free system memory, and if you're on a 16 GB machine you'll want to run depth in a separate graph from generation rather than trying to have everything resident at once.
Install
ComfyUI-Manager, search Iris-3B. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/bani4kaskashka/Iris-3B-Comfy-Nodes
pip install -r requirements.txt
One dependency (omegaconf), plus transformers 4.57+ which current ComfyUI already has. Restart, then open Iris-3B Depth from Templates - that workflow chains this loader, Iris Depth, Iris Depth to 3D and ComfyUI's Preview 3D so you can orbit the result.
Where it goes wrong
"X is not an Iris depth model." Wrong checkpoint. Relabel the file so it says depth, or just let the default download.
The dropdown is empty. Same name filter as the other two loaders - the file has to have "iris" and "depth" in its name. If you grabbed depth/model.safetensors off the Hub manually, rename it or give it the Hub layout with its config.yaml beside it.
It loaded, then the first run sat there. It's 12 GB plus the 36 MB empty-prompt file if you haven't run it before. Watch the log line for the download rather than assuming a hang.
You're out of RAM, not VRAM. This is the most common real problem with the depth model, and it looks like a ComfyUI stall rather than a clean error. The DiT, the text encoder and the depth model all camping in system memory at once is what does it. Load depth in its own graph.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| model_name | COMBO | Iris depth weights in models/diffusion_models. iris-3b-depth.safetensors is downloaded on first use if missing (12 GB) | |
| weight_dtype | COMBO | bf16 | bf16 = 6 GB on the GPU. fp32 = 12 GB (the shipped precision) and needs well over 16 GB VRAM |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IRIS_DEPTH_MODEL | IRIS_DEPTH_MODEL | — |