PBR Material Processor (Marigold)
Marigold's Raw Outputs, Polished Into Four Maps
- marigold_appearance
- marigold_lighting
- albedo
- roughness
- metallic
- ao
If PBR Extractor is the "bundle it all into a pipe" version of Marigold material extraction, PBR Material Processor is the "hand me four individual maps" version. It takes the same two Marigold intrinsic-image outputs - appearance and lighting - and returns separate albedo, roughness, metallic, and AO images, with brightness and gamma controls right on the node. When you want to skip the pipeline abstraction and grab the maps directly, this is the one.
It's in the Materials category of amtarr/ComfyUI-TextureAlchemy. The setup trips people up exactly the same way PBR Extractor does, and it's a known first-contact snag (there's a help thread on r/comfyui about it): the marigold_appearance and marigold_lighting inputs are not model names and not secret nodes - they're the outputs of kijai's MarigoldDepthEstimation node run twice, once with the appearance variant and once with the lighting variant. The pack's example workflow files (examples/01_quick_start_pbr_extraction.json) show the wiring if you get stuck.
How it works
Under the hood it unpacks Marigold's batch outputs the same way the Extractor does:
- Albedo - from the lighting output's first image (Marigold's lighting pass carries the clean diffuse color), gamma'd by
albedo_gamma. - Roughness - the red channel of the appearance output's material batch, scaled by
roughness_brightness. - Metallic - the green channel of the same batch. Interesting detail: metallic uses an inverse gamma driven by
metallic_brightness- brighter metallic_brightness actually flattens the metallic response, which is a quirk worth knowing if you're chasing a specific metalness. - AO - grayscale of the lighting output's second image.
Outputs are four separate IMAGEs: albedo, roughness, metallic, ao - no pipe, straight maps you can wire anywhere.
The inputs that matter
marigold_appearance/marigold_lighting- the two Marigold variant outputs.roughness_brightness(0–3, default 1) - roughness scale.metallic_brightness(0–3, default 1) - note the inverse-gamma behavior above.albedo_gamma(0.1–2, default 0.45) - lower = brighter albedo.
Installing it
Two installs, because Marigold is a separate project:
cd ComfyUI/custom_nodes
git clone https://github.com/amtarr/ComfyUI-TextureAlchemy
git clone https://github.com/kijai/ComfyUI-Marigold
restart, load the Marigold IID appearance and IID lighting models (the pack's examples reference prs-eth/marigold-iid-appearance-v1-1 and prs-eth/marigold-iid-lighting-v1-1), and run the two variant passes. The pack adds no pip dependencies; Marigold's install and models are separate.
Gotchas
The metallic-brightness inverse-gamma behavior is the thing nobody expects - if you push metallic_brightness up expecting more metal and get less, that's working as designed, so adjust it and watch the map rather than reasoning from the label. Same appearance/lighting wiring confusion as the Extractor: swap the two inputs and you get a wrong-but-plausible material with no error. And unlike the Extractor, this node hands you raw IMAGEs - if you're feeding a PBR_PIPE-consuming node, you'll need the pack's pipe-building node instead of this one.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| marigold_appearance | IMAGE | — | |
| marigold_lighting | IMAGE | — | |
| roughness_brightness | FLOAT | 1.000–3 | Adjust roughness map brightness |
| metallic_brightness | FLOAT | 1.000–3 | Adjust metallic map brightness |
| albedo_gamma | FLOAT | 0.450.1–2 | Gamma correction for albedo |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| albedo | IMAGE | — |
| roughness | IMAGE | — |
| metallic | IMAGE | — |
| ao | IMAGE | — |