Minecraft PBR - Save labPBR
Keep the alpha channel
- albedo
- specular
- normal
Here's the trap that catches everyone the first time they try this: you wire the labPBR packer's specular and normal outputs into the stock SaveImage node, run it, and the textures are broken. Not subtly broken - missing-data broken. SaveImage drops alpha, and for labPBR the alpha is the data: emission lives in the _s alpha, POM height lives in the _n alpha. Minecraft PBR - Save labPBR exists to write those files the way a resource pack actually needs them.
What it does
Take the packer's three outputs - albedo, specular, normal - plus a filename_prefix, and it writes a properly-named, linear RGBA set:
minecraft_pbr/material_00001.png (albedo)
minecraft_pbr/material_00001_s.png (specular)
minecraft_pbr/material_00001_n.png (normal)
Three files sharing one auto-incrementing counter, written with no gamma applied - the linear values the packer produced stay linear on disk. The files land in ComfyUI's output folder (whatever folder_paths calls it, normally ComfyUI/output/), and like most output nodes it previews the albedo in the UI so you have something to look at without hunting in the folder.
Inputs that matter
Three IMAGE inputs (albedo, specular, normal) and one string: filename_prefix, default minecraft_pbr/material. Treat the prefix as a path - a slash makes a subfolder, so minecraft_pbr/material writes into output/minecraft_pbr/. To drop the textures directly where your resource pack expects them, name the prefix to match the block path (for example textures/blocks/stone).
Install
ComfyUI Manager → Install Custom Nodes → search "comfy-ui-minecraft-pbr", install, restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/jasonjgardner/comfy-ui-minecraft-pbr
# then restart ComfyUI
No models, no extra dependencies.
Gotchas
The big one is the alpha habit: use this node (or its Bedrock sibling) for the packer's output, never stock SaveImage, or the _s/_n textures come out wrong. Also don't let a viewer re-encode the files - the channels are linear data, and an app that applies gamma on save will silently corrupt the smoothness and height values. And remember the counter: every run writes a fresh numbered set, so either grab the latest number or set the prefix deliberately, or you'll accumulate orphan textures.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| albedo | IMAGE | — | |
| specular | IMAGE | — | |
| normal | IMAGE | — | |
| filename_prefix | STRING | minecraft_pbr/material | — |
Outputs (0)
No outputs