Nodes/Avatar Graph/Transform Tosphere
ComfyUI Node

Transform Tosphere

Balloon Your Mesh Into a Sphere

By avatechai·Created 3 years ago·Updated 2 years ago· 264
Transform Tosphere
  • BPY_OBJ
  • center_override
  • BPY_OBJ
value0.00
mirrorfalse
use_proportional_editfalse
proportional_edit_falloff
proportional_size1.00
use_proportional_connectedfalse
use_proportional_projectedfalse
snapfalse
gpencil_strokesfalse
release_confirmfalse
use_accuratefalse

Transform Tosphere morphs a mesh toward a perfect sphere, and it's the least subtle node in the Avatar Graph transform kit. value runs 0 to 1: 0 is the untouched mesh, 1 is full sphere. It's the tool behind balloon-head characters, chibi roundness, and the emoji-style avatars that the pack's own demos show off. If you've ever wanted a dignified anime portrait to come out the other end looking like a bouncy mascot, this is how.

How it works

Under the hood it's bpy.ops.transform.tosphere(value=...). Each vertex is pushed along a line toward a target sphere centered on the mesh's bounds (or on center_override if you provide a B_VECTOR3). Because it works on the whole mesh - there's no selection socket - feeding it the head layer is what you want, not the joined character. The result is smooth because every vertex moves proportionally; it's not a cheap "flatten to a ball," it's an actual radial morph.

Inputs that matter:

  • value - 0 to 1, the morph amount. Even 0.3 reads as "cute and rounded"; 0.8+ is full balloon.
  • center_override - a 3-value vector. By default the sphere centers on the mesh bounds, but you can shift it to pull the roundness toward a specific point (like raising the round center to the top of the head).
  • use_proportional_edit + proportional_size - if you want mostly sphere but with the face kept intact, this is the escape hatch. A small falloff leaves the perimeter untouched.

Everything else is the usual Blender operator plumbing: mirror, snap, gpencil_strokes, release_confirm, use_accurate. Output is BPY_OBJ, threaded to the next node.

Where it fits

In the avatar workflow this is a stylization step. The README's own demos lean hard on round, cute avatars (including the dog emoji workflow), and Tosphere is the one-word answer to "how do I get that." Just be aware of the texture: the mesh layer carries the character image as its texture, and a heavy sphere morph will visibly stretch it. Run Match Texture Aspect Ratio after your shape passes, and consider a lower value with proportional editing if the face starts looking smeared.

Installing

Tosphere comes with the Avatar Graph pack (avatechai/avatar-graph-comfyui). The pack needs bpy==3.6.0 → Python 3.10:

conda create --name comfyui python=3.10
conda activate comfyui

Install via ComfyUI Manager (search Avatar Graph) or:

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

Restart with python main.py --enable-cors-header for live preview. No downloads specific to this node - you only hit the pack's SAM model download if you use the segmentation stage.

Categoryblender

Inputs (13)

NameTypeDefaultDescription
BPY_OBJoptBPY_OBJ
valueoptFLOAT0.000–1
mirroroptBOOLEANfalse
use_proportional_editoptBOOLEANfalse
proportional_edit_falloffoptCOMBO8 options: SMOOTH, SPHERE, ROOT, INVERSE_SQUARE, SHARP, LINEAR, +2
proportional_sizeoptFLOAT1.009.999999974752427e-7–999999995904
use_proportional_connectedoptBOOLEANfalse
use_proportional_projectedoptBOOLEANfalse
snapoptBOOLEANfalse
gpencil_strokesoptBOOLEANfalse
center_overrideoptB_VECTOR3
release_confirmoptBOOLEANfalse
use_accurateoptBOOLEANfalse

Outputs (1)

NameTypeDescription
BPY_OBJBPY_OBJ