Three Environment
The thing metal and glass reflect (yes, you need one)
- image
- environment
If your polished metal or dark glass renders almost black no matter how many lights you add, this is the node you were missing. Lights only strike surfaces directly - a mirror-like material has nothing in the world to reflect, so it reflects nothing and shows you its darkest self. Three Environment fixes that by lighting the scene from all around instead of from lamps alone: it wraps the scene in surroundings that every reflective material can mirror, which is how metal and glass get their shine in real renders and in this one.
It's refreshingly practical about where the surroundings come from. The source menu gives you four choices. studio room is the default and needs nothing wired at all - the pack builds a small lit room around your scene, which is exactly the right starting point and the fastest way to make a metal object stop being black. image takes an equirectangular picture from an IMAGE wire (twice as wide as it's tall). file reads a .hdr or .exr from a menu that lists ComfyUI's input, output and temp folders. none leaves the scene to its lamps.
That HDR vs plain-picture distinction is the pro move. An equirectangular JPG carries intensities only up to 1.0; a .hdr or .exr carries real light intensities above white, which is what gives you strong, believable reflections and lets the environment actually light the scene rather than just tint it. The author says it outright: a real HDR "lights a scene far better than an ordinary picture." If you only remember one thing, remember that a chrome ball in front of an HDR file of a studio is the difference between CG and photography.
Then the taste dials: intensity is how strongly the surroundings light the scene (1.0 is the image as-is, 3.0 a bright studio, 0.3 just a hint of fill). as_background draws the environment behind the scene as well as reflecting it - flip it on for a skybox feel, leave it off to keep Three Scene's own background colour. background_blur softens that background when it's drawn (0.3 throws it nicely out of focus). rotation spins the surroundings in degrees, which is how you move where the highlights fall without moving the model.
The environment output wires into Three Scene's environment socket - note it goes to the scene, not the app or a light socket. Get it wrong and the socket refuses the wire, which is ComfyUI's way of teaching you the data flow.
Installing it
Part of WAS Node Suite v3 - ComfyUI Manager search WAS Node Suite v3, or:
cd ComfyUI/custom_nodes
git clone https://github.com/WASasquatch/was-node-suite-comfyui.git
Restart; needs ComfyUI 0.14.0+ / Python 3.10+. The built-in studio room needs no files; .hdr/.exr files are yours to supply into ComfyUI's folders.
If it looks wrong
Start from studio room before blaming your HDR - if metal still reads black with that on, the material isn't set up for reflections, not the environment. And a background that's sharp and distracting when you wanted a soft studio? That's as_background doing its job; raise background_blur or turn it off.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| source | COMBO | studio room | Where the light comes from. `studio room` needs nothing wired. `image` reads the image input, `file` reads the menu below, and `none` leaves the scene lit by its lamps alone. |
| intensity | FLOAT | 1.000–20 | How strongly the surroundings light the scene. 1.0 is the image as it is, 0.3 a hint of fill, 3.0 a bright studio. |
| as_background | BOOLEAN | false | `true` draws the environment behind the scene as well as reflecting it, `false` keeps Three Scene's own background. |
| background_blur | FLOAT | 0.000–1 | How far the background is blurred when it is drawn. 0.0 is sharp, 0.3 throws it out of focus behind the subject. |
| rotation | FLOAT | 0-360–360 | Turns the surroundings around the scene, in degrees, which moves where the highlights fall. 0.0 leaves it as the image was shot. |
| imageopt | IMAGE | An equirectangular picture, twice as wide as it is tall, used when source is `image`. A batch is read on its first frame alone. | |
| fileopt | COMBO | none | Which `.hdr` or `.exr` to light from, used when source is `file`. The menu lists what is in ComfyUI's input, output and temp folders, under `none`. |
| pathopt | STRING | An environment somewhere else, as a full path such as `D:/hdri/studio_4k.hdr`. Filled in, it is used instead of the menu. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| environment | THREE_ENVIRONMENT | The surroundings, for Three Scene's environment socket. |