Nodes/Q GLB Material Modifier/Q Preset GLB Material Modifier
ComfyUI Node

Q Preset GLB Material Modifier

Q Preset GLB Material Modifier

By angree·Created about a year ago·Updated about a year ago· 1
Q Preset GLB Material Modifier
  • texture_image
  • normal_texture
  • modified_glb_path
  • emissive_mask_preview
  • normal_map_preview
glb_path
presetSpaceship Metal
output_suffix_modified
emissive_modeWith Emissive
absolute_min_brightness128
rendertrue
normal_mode_1No Normal Map
normal_mode_2Disable
normal_algorithmSobel Filter
normal_scale1x (Original)
normal_compressiontrue

If you've generated a single Hunyuan 3D 2.0 model you know the problem: it comes out looking like a matte plastic toy, and every material tuning session turns into a 20-minute slide of sliders. This node is the shortcut. Pick "Chrome Hull" or "Combat Metal" and it hands you back a .glb that looks the part, plus emissive glows on the bright bits and a generated normal map for surface detail. It's the preset sibling of the manual node in the same angree/ComfyUI-Q_GLB_Material_Modifier pack, and it exists for people who want a decent metal finish without learning the PBR math.

No API, no keys, no downloads - it's a thin wrapper that injects a handful of tuned material values and calls the same engine the manual node uses. Which is honestly the whole story: it's a quality-of-life node, not a different tool.

How the presets work

Under the hood QPresetGLBMaterialModifier is a shim. Each preset is a hardcoded dict of material parameters - metallic, smoothness, a tint color, emissive_strength, brightness thresholds, and a normal_noise level - and the node just feeds them into the manual modifier's machinery. It sets the same PBR values (roughness = 1 - smoothness), generates the same normal maps via Sobel or simple gradient, and embeds everything as base64 PNG textures inside the GLB.

The seven presets cover the obvious material chart:

  • Spaceship Metal - balanced metallic, subtle emissive. The default, and a good first try.
  • Brushed Steel - lower smoothness, more surface noise.
  • Chrome Hull - full metallic, very smooth, high reflectivity. Strongest "mirror" look.
  • Chrome Hull Lite - same chrome, softer smoothness, more surface detail so it doesn't look like wet paint.
  • Titanium - matte-ish aerospace metal with a cool tint.
  • Combat Metal - rough and battle-worn, the lowest smoothness and the most noise.
  • Alien Tech - green-tinted, high emissive. The one where the glow is the point.

The inputs you set

The preset node is a trimmed-down version of the manual one - the material knobs are gone because the preset owns them. What's left is the workflow control:

  • glb_path - a string with the path to your GLB, and texture_image - the Hunyuan 3D 2.0 diffuse texture. Those two are the entire data in.
  • emissive_mode - No Emissive, With Emissive, or Both Versions (writes a glowing copy and a plain copy).
  • absolute_min_brightness - the floor for what counts as "bright enough to glow." Lower it if small glows aren't triggering.
  • normal_mode_1 / normal_mode_2 - pick the auto-generated normal presets (SubtleDramatic), or Use Input Texture with the optional normal_texture input. Two enabled normal modes means you get two variants per emissive mode - up to 4 GLBs in one run.
  • render - flip this off to dry-run the settings and get placeholder previews without writing any files.

Outputs match the manual node: modified_glb_path (a string), emissive_mask_preview and normal_map_preview (images).

Installing

cd ComfyUI/custom_nodes
git clone https://github.com/angree/ComfyUI-Q_GLB_Material_Modifier
cd ComfyUI-Q_GLB_Material_Modifier
pip install -r requirements.txt

Restart ComfyUI afterward, or grab it through ComfyUI Manager (search "Q GLB Material Modifier"). It's a light pack: pygltflib, opencv-python, pillow, numpy, plus whatever torch you already have for Hunyuan 3D. No model files. Note the README's clone command has a YOUR_USERNAME placeholder - the real repo is angree/ComfyUI-Q_GLB_Material_Modifier.

Gotchas

The same ones as the manual node: modified_glb_path returns only the filename, and the file is saved next to the source GLB (which is never modified). And because it rewrites every material in the file with the same values, a GLB with multiple distinct materials gets flattened to one finish - fine for Hunyuan 3D 2.0's typical single-texture outputs, a dealbreaker for anything more complex. If you ever see the literal strings RENDER_DISABLED, FILE_NOT_FOUND, NO_PATH_PROVIDED, or PYGLTFLIB_NOT_INSTALLED on the path output, that's the node's error reporting, not a real path - check pygltflib, then check where you pointed it.

Category3d/q_material

Inputs (13)

NameTypeDefaultDescription
glb_pathSTRING
texture_imageIMAGE
presetCOMBOSpaceship Metal7 options: Spaceship Metal, Brushed Steel, Chrome Hull, Chrome Hull Lite, Titanium, Combat Metal, +1
output_suffixSTRING_modified
emissive_modeCOMBOWith Emissive3 options: No Emissive, With Emissive, Both Versions
absolute_min_brightnessINT12850–200
renderBOOLEANtrue
normal_mode_1COMBONo Normal Map7 options: No Normal Map, Use Input Texture, AutoGen Subtle, AutoGen Normal, AutoGen Enhanced, AutoGen Dramatic, +1
normal_mode_2COMBODisable8 options: Disable, No Normal Map, Use Input Texture, AutoGen Subtle, AutoGen Normal, AutoGen Enhanced, +2
normal_algorithmCOMBOSobel Filter2 options: Sobel Filter, Simple Gradient
normal_scaleCOMBO1x (Original)3 options: 1x (Original), 2x (Half Size), 4x (Quarter Size)
normal_compressionBOOLEANtrue
normal_textureoptIMAGE

Outputs (3)

NameTypeDescription
modified_glb_pathSTRING
emissive_mask_previewIMAGE
normal_map_previewIMAGE