Transform Vertex Warp
Bend a Mesh by View Angle
- BPY_OBJ
- viewmat
- center
- BPY_OBJ
Transform Vertex Warp is the oddest of the Avatar Graph transform nodes, and honestly the least useful for the standard avatar flow - but it's a genuinely interesting operator, so it's worth knowing what it does before you ignore it. It wraps Blender's transform.vertex_warp, which bends a mesh's vertices around a center point based on their angle as seen from a given viewpoint. Imagine drawing a radial "fan" through the mesh and rotating each spoke a different amount by how far around it sits. That's the vibe.
How it works
The node enters edit mode and calls bpy.ops.transform.vertex_warp() with your settings. The inputs:
warp_angle- how much the warp bends. The default is 6.283185, which is 2π - a full circle of warp.offset_angle- where the warp starts around the fan.min/max- the range of vertices affected. Defaults of -1 and 1 frame the region the warp acts on; stretch them to widen the effect.viewmat- a 16-value matrix describing the viewpoint. This is the "as seen from" part of the operation; it's what makes the warp view-dependent. Leave it unless you know what you're doing.center- a 3-value vector for the warp's center pivot. This is the one you'll actually tune.
Output is BPY_OBJ, unchanged except for the warp, ready to chain on.
Do you need it?
In the avatar pipeline, honestly, probably not. The workflow wants clean, texture-safe mesh layers, and Vertex Warp's whole job is to twist geometry into an angle-dependent curve - more at home sculpting a fin, a petal, or an abstract shape than shaping a face. Where it can earn its keep: giving a flat hair or cape layer a subtle "caught in a breeze" curve, or bending a fringe into an arc. If a demo workflow ever contains it and it's making the mesh go weird, bypass it - the mesh just passes through.
Installing
Vertex Warp ships in the Avatar Graph pack (avatechai/avatar-graph-comfyui), pinned to 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 per-node downloads - the pack's only model download is the SAM segmentation model for the segmentation stage.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| BPY_OBJopt | BPY_OBJ | — | |
| warp_angleopt | FLOAT | 6.28-3.402823466385289e+38–3.402823466385289e+38 | — |
| offset_angleopt | FLOAT | 0.00-3.402823466385289e+38–3.402823466385289e+38 | — |
| minopt | FLOAT | -1.00-3.402823466385289e+38–3.402823466385289e+38 | — |
| maxopt | FLOAT | 1.00-3.402823466385289e+38–3.402823466385289e+38 | — |
| viewmatopt | B_VECTOR16 | — | |
| centeropt | B_VECTOR3 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| BPY_OBJ | BPY_OBJ | — |