Marigold V2 See-through Loader - Vathography
Loading Marigold V2's See-through Model the Right Way
- model
Every depth estimator has the same embarrassing hole, and it's a window. Glass reads as a surface, so the map stops at the pane and everything behind it - the street, the room, the view - collapses into a flat grey smear. Depth Anything V2 improved on transparent and reflective surfaces and the community noticed; it's still the classic failure mode. Marigold V2's see-through model fixes it properly, and this loader exists because you can't just load that model the usual way.
Here's the awkward bit: the see-through model isn't a normal fp8 or fp16 checkpoint. It's a 4-bit (nf4) Qwen-Image-Edit-2509 backbone plus a see-through LoRA, and it was trained in that configuration. Load the LoRA onto the regular depth backbone and you don't get an error - you get a map that stops at the glass again, losing part of exactly the depth you came for. The tiled depth node warns you about that case, which is more than most packs bother with.
What it's actually doing
Marigold V2 See-through Loader - Vathography replaces Load Diffusion Model and LoraLoaderModelOnly in the see-through workflow. Two dropdowns, one MODEL out.
The mechanism is worth knowing because it explains the error messages. Rather than requiring bitsandbytes, the loader decodes the nf4 weights in plain torch - two 4-bit indices per byte, high nibble first, looked up in the 16-value table, scaled by the block's absmax and cast to bf16. That's bit-identical to bitsandbytes' own dequant, which is why the node honestly says no extra Python package is needed. The LoRA is applied unmerged, in fp32, on the targeted linear layers - the same computation the reference implementation does with bitsandbytes plus PEFT. The tensors are registered as real parameters, so ComfyUI's model counting, loading and offloading still work, and the layer stays correct on a partial load.
It also stamps a marker on the returned MODEL so the depth node downstream knows it's holding the see-through variant.
The two inputs
Both are dropdowns filled from your model folders, so they're empty until the files are in place and ComfyUI has restarted:
- backbone -
marigold_v2_see_through_qwen_image_edit_2509_nf4.safetensors, inComfyUI/models/diffusion_models/. - lora -
marigold_v2_depth_see_through.safetensors, inComfyUI/models/loras/.
The output is model, and the wiring is: this node → ModelSamplingAuraFlow (shift 1.73, sampling img_to_img_velocity) → Marigold V2 Tiled Depth. You still need the see-through VAE and the Comfy-Org conditioning embedding alongside it:
ComfyUI/models/diffusion_models/marigold_v2_see_through_qwen_image_edit_2509_nf4.safetensors
ComfyUI/models/loras/marigold_v2_depth_see_through.safetensors
ComfyUI/models/vae/marigold_v2_depth_see_through_vae.safetensors
ComfyUI/models/embeddings/marigold_v2_depth_conditioning.safetensors
The backbone and LoRA come from Vathography/marigold-v2-see-through-comfyui, a conversion of Marigold V2 published under Apache-2.0. The conditioning embedding comes from Comfy-Org/marigold-v2-0, same as the base workflow.
Install
Same pack as the depth node - one install covers all three:
cd ComfyUI/custom_nodes
git clone https://github.com/vathography/ComfyUI-Marigold-V2-Tiled-Depth-Vathography
pip install -r ComfyUI-Marigold-V2-Tiled-Depth-Vathography/requirements.txt
Or search Marigold V2 Tiled Depth Vathography in ComfyUI Manager and let it handle dependencies. Restart afterwards. The pack wants ComfyUI v0.36.0 or newer, and it's AGPL-3.0-only - fine for whatever you make with it, worth a glance if you're shipping it inside a product.
Then open example_workflows/Marigold V2 Tiled Depth See-through - Vathography_template.json rather than assembling the graph yourself.
Common issues
The loader is deliberately narrow, and every rejection names the file you should have picked instead. That's a feature - a wrong pairing here fails silently at the image level, not at the code level.
- "…is not the see-through nf4 backbone" - you selected the regular
qwen_image_edit_2509_int8_convrotfile. The loader checks the safetensors metadata for the nf4 format tag, double-quant disabled and a stored model config, and refuses anything else. - "…is not the see-through LoRA" - the regular
marigold_v2_depth_log_stage2LoRA fingerprints differently (the check reads theimg_inLoRA tensor). You're holding the base model's LoRA. - "a LoRA loader was added after the See-through Loader" - don't. This node already applies the LoRA. Stacking
LoraLoaderModelOnlyon top is the one mistake the depth node catches for you. - "the See-through Loader is wired with the depth model's VAE" - load
marigold_v2_depth_see_through_vae.safetensors. Mixing the two VAEs is the kind of mismatch that produces a plausible-looking wrong map. - Empty dropdowns - the files aren't in
diffusion_models/loras, or you haven't restarted since dropping them in.
One caveat on the pack in general: the loader itself genuinely needs nothing extra, but the pack's tiled_core.py imports kornia, so a manual clone without the pip install -r requirements.txt step breaks the whole pack at import time.
Should you use it
If your photograph has windows, a windshield, a glass roof, a shopfront - yes, and there's no real alternative at this quality. If it doesn't, use the plain depth workflow: smaller download, and the see-through recipe deliberately narrows the global pass for the glass case, which does nothing useful for a landscape.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| backbone | COMBO | marigold_v2_see_through_qwen_image_edit_2509_nf4.safetensors (models/diffusion_models). | |
| lora | COMBO | marigold_v2_depth_see_through.safetensors, the see-through LoRA (models/loras). |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| model | MODEL | The see-through model, ready for 'ModelSamplingAuraFlow' and the Marigold V2 Tiled Depth node. |