Nodes/Avatar Graph/Object Text Add
ComfyUI Node

Object Text Add

ComfyUI Node Guide

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

Object Text Add does exactly what it says: it drops a new text object into your scene, the same as hitting Add > Text in Blender's viewport. It's part of Avatar Graph, Avatech's node pack that turns ComfyUI into a rigging tool for real-time 2.5D avatars - you segment a character image, build mesh layers, and wire up a shape-key runtime so it can blink and lipsync live. This particular node is less about the avatar mesh itself and more general-purpose scene setup, since Avatar Graph wraps a huge chunk of Blender's own object-creation API alongside its avatar-specific tools.

Under the hood it's a direct pass-through of bpy.ops.object.text_add - a real Blender operator, not something Avatech wrote custom. Avatar Graph embeds bpy (Blender's Python API, packaged as a library) inside ComfyUI, and many of its nodes, this one included, just expose a Blender operator's own parameters as ComfyUI widgets.

What it produces is a Font/Text object - a 3D-capable text element you can position, scale, and later convert to a mesh if you need actual polygon geometry out of it (that's what the pack's Object Convert node is for). In an avatar context this could be used for on-canvas labels, or as a building block if a workflow wants to bake text into part of a character's scene.

The inputs, all fairly self-explanatory:

  • radius - controls the initial size of the text object. Default is 1.
  • location, rotation, scale - the standard 3D transform vectors for where the new object spawns and how it's oriented.
  • align - WORLD, VIEW, or CURSOR. This controls what the initial rotation is aligned to: world axes, the current viewport camera, or the 3D cursor's orientation. WORLD is the sane default if you're driving everything programmatically rather than interactively.
  • enter_editmode - whether the object is created already in text-edit mode. In a scripted graph context you'll almost always want this off, since there's no interactive session to type into.

Output is a fresh BPY_OBJ representing the new text object, ready to feed into whatever comes next in your graph - transforms, conversion to mesh, or further Blender operations.

Installing it: there's no standalone install for a single node here - you get the whole Avatar Graph pack. Easiest route is ComfyUI Manager, searching "Avatar Graph" or avatar-graph-comfyui. Manual install: cd ComfyUI/custom_nodes, then git clone https://github.com/avatechai/avatar-graph-comfyui, cd into it, pip install -r requirements.txt, restart ComfyUI.

The install snag that actually gets people: Avatar Graph needs Python 3.10.x exactly, because its bpy dependency only ships wheels for that version. Running ComfyUI on a newer Python - the default for most fresh installs these days - means this install just fails. The README's own fix is a dedicated conda environment: conda create --name comfyui python=3.10, activate it, install ComfyUI's requirements, then this pack's. If you want the live preview in Avatech's web-based avatar editor, also launch with --enable-cors-header (Mac users add --force-fp16 too); without that flag everything still runs, you just lose the live in-browser update and export .glb/.gltf files instead.

Since text objects aren't the pack's core use case, don't be surprised if this node feels a little underused compared to the mesh and UV tools - it's there because the whole Blender object-creation surface got wrapped, not because avatar rigging specifically needs text.

Categoryblender

Inputs (7)

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

Outputs (1)

NameTypeDescription
BPY_OBJBPY_OBJ