ComfyUI Extension: Comfyui-marigold-intrinsics-PaGeR
Run ComfyUI workflows without the setup
No installs, no CUDA version roulette, no GPU sitting idle on your bill. Bring a workflow and run it in the browser.
This custom node pack provides Marigold IID nodes and PaGeR ERP geometry nodes.
Looking for a different extension?
Custom Nodes (0)
README
ComfyUI Marigold Intrinsics PaGeR
This custom node pack provides Marigold IID nodes and PaGeR ERP geometry nodes.

Included Nodes
TODO: missing PaGeR-Normals PaGeR models 5/6
Marigold IID Loaders
Load Marigold IID Appearance Model(DownloadAndLoadMarigoldIIDAppearanceModel)
- Downloads and loads the Marigold appearance pipeline as
IIDMODEL. - Uses hardcoded in-memory empty conditioning (no precomputed
.safetensorspath).
Load Marigold IID Lighting Model(DownloadAndLoadMarigoldIIDLightingModel)
- Downloads and loads the Marigold lighting pipeline as
IIDMODEL. - Uses hardcoded in-memory empty conditioning (no precomputed
.safetensorspath).
Load Marigold IID Split (UNet/CLIP/VAE)(MarigoldIIDSplitLoader)
- Loads split components as Comfy
MODEL,CLIP,VAE. - Uses runtime-minimal base files by default (scheduler + VAE); text assets are only fetched if
load_comfy_model_clipis enabled. - Supports tiny VAEs, including TAESD-style VAE choices.
Translate Marigold Split -> IIDMODEL(MarigoldIIDSplitToIIDModel)
- Converts split-loaded
MODEL+CLIP+VAEintoIIDMODEL. - Uses hardcoded in-memory empty conditioning and TAESD-compatible VAE adapters.
Marigold IID Inference
Marigold IID Appearance(MarigoldIIDAppearance)
- Runs appearance inference and returns
albedo,roughness,metallicity.
Marigold IID Appearance (with Material)(MarigoldIIDAppearanceExtended)
- Same as above, plus
material.
Marigold IID Lighting (HyperSim)(MarigoldIIDLighting)
- Runs lighting inference and returns
albedo,shading,residual.
PaGeR
Load PaGeR Model(DownloadAndLoadPaGeRModel)
- Loads the three new DA3 checkpoints or an existing legacy PaGeR depth/normal model.
- New nodes default to
DA3 / Depth Anything 3; legacy model selections remain routed to the unchanged SD2.1 loader. - Legacy SD2.1 models use hardcoded in-memory empty conditioning and support the optional Comfy TAESD VAE backend.
- DA3 models do not use the legacy diffusion/UNet/VAE/empty-conditioning path.
PaGeR Infer Cubemap (ERP)(PaGeRInferCubemap)
- Node A in the PaGeR pipeline.
- Runs encode + UNet + decode and returns decoded cubemap predictions.
PaGeR Depth Postprocess (ERP)(PaGeRDepthPostprocess)
- Node B depth postprocess.
- Converts cubemap prediction to ERP outputs:
depthedge_maskdepth_color
PaGeR Normal Postprocess (ERP)(PaGeRNormalPostprocess)
- Node B normal postprocess.
- Converts cubemap prediction to ERP normal visualization.
PaGeR Save Point Cloud (GLB/PLY)(PaGeRSavePointCloud)
- Exports point cloud from
color+depthas.glbor.ply. - Supports
depth_modeauto logic, optional masks, and optional edge filtering.
PaGeR DA3
The DA3 path supports prs-eth/PaGeR, prs-eth/PaGeR-metric-depth, and
prs-eth/PaGeR-normals. It is separate from the legacy SD2.1 cubemap pipeline.
Released DA3 checkpoints auto-download into
ComfyUI/models/marigold_intrinsics/pager_da3/<repo-id>/.
PaGeR DA3 Runtimeruns the selected DA3 checkpoint and returns a modality-aware result.PaGeR DA3 Save Imagessaves raw TIFF maps and PNG previews.PaGeR DA3 Save NPZsaves evaluation arrays and scene/model metadata.PaGeR DA3 Save Point Cloudexports metric-depth point clouds as GLB or PLY.
The unified checkpoint requires an explicit indoor or outdoor selection.
Automatic CLIP scene classification is intentionally not included, so DA3
inference does not load or run another model.
Recommended PaGeR Pipeline
For depth:
Load PaGeR Modelwith a depth checkpoint.PaGeR Infer Cubemap (ERP).PaGeR Depth Postprocess (ERP).- Optional:
PaGeR Save Point Cloud (GLB/PLY).
For normals:
Load PaGeR Modelwith a normals checkpoint.PaGeR Infer Cubemap (ERP).PaGeR Normal Postprocess (ERP).
Hardcoded Empty Conditioning
The Marigold and legacy SD2.1 PaGeR loaders use hardcoded in-memory zero embeddings for empty conditioning:
- No
.safetensorsempty-conditioning file is required. - No precomputed-conditioning inputs are exposed on loader nodes.
- Marigold uses shape
[1, 2, C], whereCis inferred from UNetcross_attention_dim. - Legacy PaGeR uses shape
[1, T, C], whereTdefaults to SD2-style context length andCis inferred from UNet config. - DA3 PaGeR does not use empty conditioning.
TAESD VAE Option
Load PaGeR Model supports an optional Comfy TAESD VAE backend.
Why use it:
- Lower VRAM usage.
- Faster VAE encode/decode on constrained GPUs.
- Useful when fitting PaGeR workflows on smaller cards.
Tradeoff:
- TAESD is a tiny/approximate VAE.
- Output quality can degrade in fine details, smooth gradients, and sharp depth edges.
- In many scenes it is still usable, especially when speed and memory are priority.
8GB VRAM Note
This setup has been tested on an 8GB GPU with practical settings:
- Prefer
fp16precision. - Use hardcoded in-memory empty conditioning (default).
- Enable TAESD VAE when memory is tight.
- Keep PaGeR as
Infer Cubemap -> Postprocess(current default workflow).
Dependencies
Install with:
pip install -r requirements.txt
Citation
Please cite our paper: (Waiting for citation)
Put citations here
License
This code of this work is licensed under the Apache License, Version 2.0 (as defined in the LICENSE).
The models are licensed under RAIL++-M License (as defined in the LICENSE-MODEL)
By downloading and using the code and model you agree to the terms in LICENSE and LICENSE-MODEL respectively.
Acknowledgements
This project builds upon and is inspired by the following repositories and works:
- Marigold-e2e-ft, based on paper Fine-Tuning Image-Conditional Diffusion Models is Easier than You Think.
- Marigold, based on paper Repurposing Diffusion-Based Image Generators for Monocular Depth Estimation.
We thank the authors and maintainers for making their code publicly available.
Run ComfyUI workflows without the setup
No installs, no CUDA version roulette, no GPU sitting idle on your bill. Bring a workflow and run it in the browser.