Nodes/Avatar Graph/Mesh Primitive Cone Add
ComfyUI Node

Mesh Primitive Cone Add

One node, cones, cylinders, and frustums

By avatechai·Created 3 years ago·Updated 2 years ago· 264
Mesh Primitive Cone Add
  • location
  • rotation
  • scale
  • BPY_OBJ
seed0
vertices32
radius11.00
radius20.00
depth2.00
end_fill_type
calc_uvstrue
enter_editmodefalse
align

People see "cone" in the name and assume that's all it makes. It's not - this single node covers cones, cylinders, and everything in between, purely by how you set two radius values. It's Blender's cone primitive generator, exposed directly as a ComfyUI node.

What it is and why you'd reach for it

This wraps Blender's mesh.primitive_cone_add operator, and like Mesh_PrimitiveCircleAdd, it needs no upstream mesh - it builds its own starting geometry. In this pack's avatar-mesh pipeline, that makes it a handy source for any tapered or cylindrical shape you'd rather generate than extract from a segmented photo: a simple nose shape, a hair spike, a prop or accessory sitting on an otherwise flat 2D-derived avatar.

How it works

The shape comes entirely from the relationship between the two end radii. Set radius2 to 0 (the default) and you get a true cone, tapering to a point. Set radius2 equal to radius1 and you get a cylinder instead - no taper at all. Anything in between gives you a frustum, a cone with the tip cut off. depth controls how tall it is along its own axis.

The inputs and outputs that matter

  • radius1 (default 1) - the base radius.
  • radius2 (default 0) - the top radius; 0 for a point, equal to radius1 for a cylinder, anywhere between for a frustum.
  • depth (default 2) - the height along the shape's axis.
  • vertices (default 32) - how many points make up the circular cross-section; higher is smoother but adds geometry.
  • end_fill_type - NOTHING (open ends), NGON (single-face caps), or TRIFAN (triangle-fan caps, giving each end a center vertex - useful if you want a clean pivot point for later deformation).
  • location, rotation, scale - placement, each a 3-value vector.
  • align - WORLD, VIEW, or CURSOR, the frame of reference for rotation.
  • calc_uvs (default on) - generates basic UVs alongside the geometry.

Output is the pack's standard single BPY_OBJ, a brand-new mesh object.

How to install it

ComfyUI Manager: search Avatar Graph, install, restart. Or manually:

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

Because this pack is built on bpy - Blender packaged as a pip module, which only ships wheels for specific Python minor versions - the README is explicit: you need Python 3.10.x, not a nearby version. Windows users get a dedicated embedded-Python-3.10 zip built for exactly this reason; macOS/Linux users should pin a conda create --name comfyui python=3.10 environment before installing. Restart with --enable-cors-header (--force-fp16 too on Mac) if you want the live avatar preview panel working.

Common issues

If you set out to make a cylinder and got a cone instead, it's almost certainly radius2 still sitting at its default of 0 - bump it up to match radius1. If the shape looks flipped or oriented oddly relative to the rest of your scene, check align - CURSOR places and orients relative to Blender's 3D cursor, not world space, which trips people up if they weren't expecting it. And as with every node in this pack, an install failure pulling in bpy is almost always the Python version, not a broken requirements file - confirm python --version reports 3.10.x before troubleshooting further.

Categoryblender

Inputs (12)

NameTypeDefaultDescription
seedoptINT00–18446744073709550000
verticesoptINT323–10000000
radius1optFLOAT1.000–999999995904
radius2optFLOAT0.000–999999995904
depthoptFLOAT2.000–999999995904
end_fill_typeoptCOMBO3 options: NOTHING, NGON, TRIFAN
calc_uvsoptBOOLEANtrue
enter_editmodeoptBOOLEANfalse
alignoptCOMBO3 options: WORLD, VIEW, CURSOR
locationoptB_VECTOR3
rotationoptB_VECTOR3
scaleoptB_VECTOR3

Outputs (1)

NameTypeDescription
BPY_OBJBPY_OBJ