Nodes/Avatar Graph/Object Lightprobe Add
ComfyUI Node

Object Lightprobe Add

Adding indirect lighting to your avatar's real-time scene

By avatechai·Created 3 years ago·Updated 2 years ago· 264
Object Lightprobe Add
  • BPY_OBJ
  • location
  • rotation
  • scale
  • BPY_OBJ
type
radius1.00
enter_editmodefalse
align

Direct lights are only half a scene's lighting. The other half is indirect light - the bounce that makes shadows feel grounded and corners readable. In Blender's EEVEE (the real-time engine this pack's avatars are aimed at), indirect light comes from light probes: cubemaps for reflections, planar probes for flat surfaces, and irradiance volumes (grids) for ambient light in a volume of space.

Object_LightprobeAdd is the node that drops a probe into the embedded scene - bpy.ops.object.lightprobe_add() exposed in the Avatar Graph pack. If your avatar preview looks flat and the mesh details vanish in shadow, a probe (usually a grid) is the missing piece.

The inputs that matter

  • type - CUBEMAP, PLANAR, or GRID. For a character scene, GRID (irradiance volume) is the workhorse: it samples ambient light through a volume and is what EEVEE uses for soft indirect light. CUBEMAP is for shiny/reflective materials. PLANAR for mirrors/ground planes.
  • location, rotation, scale - B_VECTOR3 values from the pack's Vector 3D (Blender) node. For a GRID probe, location centers it on the avatar and scale sets its size - get the avatar inside the grid or you'll see no benefit.
  • radius - probe radius (mostly relevant to cubemaps).
  • align - WORLD / VIEW / CURSOR orientation at creation.
  • enter_editmode - whether the new probe lands in edit mode (default off; you don't want that in a graph).

BPY_OBJ sets active context and passes through; the probe is added to the scene but not returned by this node.

How it works

It passes your params to the Blender operator, which creates a probe object in the embedded scene. Probes do nothing until you bake them (see Object_LightprobeCacheBake) - adding a probe alone changes nothing visually. So the mental model is: add light → add grid probe around the character → bake → preview looks alive.

When you'd use it in an avatar graph

Whenever the avatar has ambient/skin shading that looks flat under direct light alone. Typical starter setup: one SUN key light, one GRID probe centered on the character with a radius covering head-to-waist, then bake. If the character's cheeks and undersides go dead black, that's missing ambient - the probe fixes it.

Installing it

Part of Avatar Graph (avatechai/avatar-graph-comfyui). ComfyUI Manager: search "Avatar Graph". Manual:

cd ComfyUI/custom_nodes
git clone https://github.com/avatechai/avatar-graph-comfyui
cd avatar-graph-comfyui && python -m pip install -r requirements.txt

Pack constraints: bpy==3.6.0 requires Python 3.10.x, and first launch downloads the SAM ViT-H checkpoint (~2.5 GB) plus MediaPipe models.

Common issues

The biggest one is expecting a probe to do something before baking - it won't; you need Object_LightprobeCacheBake. Second is grid placement: a probe whose volume doesn't cover the character contributes nothing. And if you're exporting a GLB for the web, remember probes are an EEVEE/editor thing - check whether your target viewer supports baked indirect light at all. The README warns the pack is still changing, so probe behavior (heh) can shift between versions.

Categoryblender

Inputs (8)

NameTypeDefaultDescription
BPY_OBJoptBPY_OBJ
typeoptCOMBO3 options: CUBEMAP, PLANAR, GRID
radiusoptFLOAT1.000–999999995904
enter_editmodeoptBOOLEANfalse
alignoptCOMBO3 options: WORLD, VIEW, CURSOR
locationoptB_VECTOR3
rotationoptB_VECTOR3
scaleoptB_VECTOR3

Outputs (1)

NameTypeDescription
BPY_OBJBPY_OBJ