Load_MatForger
The 10-second node that quietly holds your whole material pipeline
- pipe
If the ComfyUI_PBR_Maker workflow looks suspiciously small, this node is why. Load_MatForger is a single string input with one wire out - and that one wire is carrying an entire text-to-PBR-material diffusion model. It's the checkpoint loader for MatForger, and in a two-node pack it does all the heavy lifting before you've typed a single prompt.
What it is
This is the model loader for the MatForger pipeline, a research material generator from Giuseppe Vecchio's StableMaterials line of work (arXiv:2406.09293), hosted on Hugging Face as gvecchio/MatForger. The node is a thin wrapper around diffusers: it calls DiffusionPipeline.from_pretrained(repo_id, trust_remote_code=True) and hands the result to its sibling, MatForger_Sampler. First run downloads the whole pipeline - prompt encoder, scheduler, UNet, VAE - straight from Hugging Face into your diffusers cache. No API key, no account, nothing cloud-side: once it's downloaded, everything runs on your own GPU.
How it works
From the source, load_matforger does two things after loading the pipeline:
enable_vae_tiling()- lets the VAE decode in tiles, which keeps memory sane at higher resolutions.enable_freeu(s1=0.9, s2=0.2, b1=1.1, b2=1.2)- FreeU with the paper's settings, a post-processing trick that sharpens up material detail.
The one input is repo_id, default gvecchio/MatForger. That's the only thing you'll ever touch here. The author's own code comment says it'll also take a "loacl repo" - so if you've already got the model on disk, point it at that folder path and skip the download. Empty string and it raises.
The output, pipe, has the custom type MatForgerMODEL. That's a private hand-off type - no other pack's nodes will accept it, and you can't plug it into anything else. It exists purely to feed MatForger_Sampler. That's why the graph feels self-contained: this node and its sampler are a matched pair.
Installing it
It's a two-node pack, so the install is short either way. Via ComfyUI Manager, search "ComfyUI_PBR_Maker" and hit install, or clone it yourself:
cd ComfyUI/custom_nodes
git clone https://github.com/smthemex/ComfyUI_PBR_Maker
Restart ComfyUI and the node appears under the MatForger category. Two things to know:
- The model is not a separate download step. The README's "checkpoints" section just documents the layout the repo expects - the actual download happens automatically on your first run of this node. That first run is slow; it's pulling several gigabytes.
- The pack declares zero Python dependencies. No requirements.txt, empty pyproject dependencies. It leans on what your ComfyUI install already has - torch, PIL, numpy, and
diffusers. Most installs have diffusers lying around from other packs; if you hit aModuleNotFoundError: diffusers, that's the fix:pip install diffusersin your ComfyUI venv.
Where people get burned
Two honest caveats. First, trust_remote_code=True means this node executes the pipeline.py shipped inside the Hugging Face repo at load time. That's standard for custom diffusers pipelines, and here it's the model author's own code - but it's the same "arbitrary code runs when the node loads" pattern the ComfyUI ecosystem keeps telling you to be careful about. If you're paranoid, that's the exact line in MatForger_node.py to read before you run it.
Second, don't be surprised when Load_MatForger itself produces nothing visible. There's no preview, no image, no error message - just a slow first load. All the output happens downstream in MatForger_Sampler. If the graph looks dead after loading, it isn't. Give it a second run and check the sampler.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| repo_id | STRING | gvecchio/MatForger | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| pipe | MatForgerMODEL | — |