MarigoldModelLoader
The loader behind Marigold's depth, normals, and lighting models
- marigold_model
This is the first node in the newer half of the Marigold pack, and it's easy to underestimate because it's just one dropdown. Pick a checkpoint, get a MARIGOLDMODEL out, wire it into MarigoldDepthEstimation_v2 or its video sibling. That's the whole job. But the dropdown itself is worth a look before you click through it, because "Marigold" has quietly stopped being just a depth-map tool.
Why this node exists
Marigold is a generative depth estimator - kijai's KB entry on depth estimation explains it well: instead of training a model to discriminate "how far is this pixel," it repurposes Stable Diffusion's own generative prior and treats depth as something to denoise into existence. That's why it generalizes so well to weird inputs (illustrations, synthetic renders, anything a normal depth model has never seen) and why it's slow - you're running an actual diffusion process, not a single forward pass like Depth Anything V2. This loader exists because HuggingFace's Diffusers library shipped an official Marigold pipeline in v0.28.0, and kijai built a clean split around it: one node loads the pipeline, a separate node runs it. That split is why keep_model_loaded exists downstream - load once, reuse across a batch, instead of reloading a multi-gigabyte diffusion pipeline every single run.
The inputs and outputs that matter
There's exactly one input - model, an enum with ten choices - and one output, marigold_model (MARIGOLDMODEL), which only plugs into the v2 estimation nodes. The default is the LCM depth checkpoint, and that's the sane starting point: fast, good enough for most work.
The ten choices break down into four families, and this is the part that surprises people: only three (marigold-v1-0, marigold-depth-lcm-v1-0, marigold-depth-v1-1) are depth. Three more (marigold-normals-v0-1, -lcm-v0-1, -v1-1) estimate surface normals instead - which way each surface faces, useful for texture and lighting work, not distance. Two (GonzaloMG/marigold-e2e-ft-depth and -normals) are end-to-end fine-tuned variants from a follow-up paper, tuned to get good results in far fewer steps than the original ensembling approach needs. And the last two (marigold-iid-lighting-v1-1, marigold-iid-appearance-v1-1) don't touch depth or normals at all - they do intrinsic image decomposition, splitting a photo into its lighting and its base appearance (albedo), which is a relighting tool, not a depth tool. ComfyUI won't stop you from loading a normals or IID model here and feeding it downstream - the type is MARIGOLDMODEL regardless of what's actually inside. Pick the wrong one and you'll get a valid image out that just isn't a depth map.
How to install it
Recommended: ComfyUI Manager, search "marigold", install, restart. Manual install is the same as the rest of the pack:
cd ComfyUI/custom_nodes
git clone https://github.com/kijai/ComfyUI-Marigold
pip install -r ComfyUI-Marigold/requirements.txt
then restart. Unlike the legacy nodes, this loader doesn't need you to hunt down a checkpoint manually - it downloads straight to ComfyUI/models/diffusers the first run you pick a given model, via huggingface_hub. Budget time (and disk) for that first run per checkpoint you try.
Common issues & troubleshooting
First run on a new model hangs or takes forever. That's the download, not a crash - these are full diffusers pipelines, multi-gigabyte each. Check your terminal, not the ComfyUI progress bar, for download progress.
Import errors or deprecation warnings mentioning torch.utils._pytree or Diffusers internals. This pack talks to Diffusers directly, and Diffusers moves fast. If another custom node pack in your install pins a different Diffusers version, you can get real version conflicts, not just cosmetic warnings - people have hit exactly this after installing Marigold. Reinstalling this pack's requirements.txt inside your actual ComfyUI venv (not a system Python) fixes it most of the time.
Downstream node errors about wrong model type despite a green MARIGOLDMODEL connection. You probably loaded a normals or IID checkpoint and fed it to a node expecting a depth-flavored pipeline. Re-check which of the ten you actually picked - the loader won't warn you.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| model | COMBO | marigold-lcm-v1-0 | 10 options: prs-eth/marigold-v1-0, prs-eth/marigold-depth-lcm-v1-0, prs-eth/marigold-depth-v1-1, prs-eth/marigold-normals-v0-1, prs-eth/marigold-normals-lcm-v0-1, prs-eth/marigold-normals-v1-1, +4 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| marigold_model | MARIGOLDMODEL | — |