Nodes/Avatar Graph/Object Curves Empty Hair Add
ComfyUI Node

Object Curves Empty Hair Add

Starting a hair-curves system on your character's mesh

By avatechai·Created 3 years ago·Updated 2 years ago· 264
Object Curves Empty Hair Add
  • BPY_OBJ
  • location
  • rotation
  • scale
  • BPY_OBJ
align

This node maps to a genuinely modern piece of Blender: bpy.ops.object.curves_empty_hair_add, which creates an empty hair-curves object attached to your active mesh - the entry point for Blender's newer, curves-based hair system (the one that replaced the old particle-hair approach). In an Avatar Graph rig, this is how you'd start attaching strand-based hair to a character's scalp mesh.

How it works

Rather than adding hair as a particle system, Blender's curves-based hair creates a dedicated Curves object, surface-bound to a target mesh - the mesh your active object becomes the "parent surface" for. Calling this operator creates that empty curves object, positioned by the parameters you give it, attached and ready for strands to be added on top (grown, combed, or generated by whatever comes next in the graph). It's the setup step, not the hair itself.

The inputs and outputs that matter

  • align - WORLD, VIEW, or CURSOR. Controls the orientation the new curves object is created with, relative to world space, the current view, or the 3D cursor. In a headless graph, WORLD is the one that behaves predictably; VIEW depends on a viewport that may not exist in the way it would interactively.
  • location, rotation, scale - standard object-transform vectors for where the new curves object is placed.

Output is the same BPY_OBJ - worth noting this returns the object context, so downstream nodes chain off the same handle rather than a distinct "new object" output.

How to install it

Via ComfyUI Manager - search "Avatar Graph" and install - or manually: cd ComfyUI/custom_nodes && git clone https://github.com/avatechai/avatar-graph-comfyui, cd avatar-graph-comfyui && pip install -r requirements.txt, then restart. This pack needs Python 3.10.x because bpy only ships wheels for that version - install on a newer Python and it either fails or the blender node category never appears. macOS/Linux: dedicated conda env at 3.10; Windows: Avatech's prebuilt Python-3.10 ComfyUI zip, pack installed through Manager afterward.

Common issues & troubleshooting

It creates an object but nothing looks like hair. That's expected - this node only adds the empty curves container attached to your mesh; it doesn't generate strands. You need a following step that actually grows or defines curve geometry on it. If you were expecting visible hair from this node alone, that's the gap.

Depends on Blender version behavior more than most nodes here. Curves-based hair is one of the newer parts of Blender's API (introduced a few major versions back), and its exact toolset has kept evolving. If Avatar Graph's bundled bpy version is older than what you're used to from a recent Blender release, some hair-curves workflow steps you'd expect from current Blender may not exist yet in this pack's environment.

Not covered in the README. Correct, along with the rest of the blender-category nodes - this pack's documented table covers roughly seven higher-level Avatech nodes, none of which include the raw curves-hair operator. Blender's own manual section on hair curves is the real reference for building out a full system from this starting point.

Categoryblender

Inputs (5)

NameTypeDefaultDescription
BPY_OBJoptBPY_OBJ
alignoptCOMBO3 options: WORLD, VIEW, CURSOR
locationoptB_VECTOR3
rotationoptB_VECTOR3
scaleoptB_VECTOR3

Outputs (1)

NameTypeDescription
BPY_OBJBPY_OBJ