Transform Vert Crease
Hold Sharp Edges When Subdividing
- BPY_OBJ
- BPY_OBJ
Transform Vert Crease is a subdivision-surface tool wearing a mesh-editing costume. It wraps Blender's transform.vert_crease, which stamps a crease value onto vertices - a number from -1 to 1 that tells a subdivision surface how hard to hold the surrounding edges. Crease 0 means "let the subdiv smooth this area freely"; high values mean "keep this edge sharp." It does nothing to the mesh by itself. Its entire job is to leave data that a subdivision modifier reads later.
How it works
The node takes a BPY_OBJ, enters edit mode, and runs bpy.ops.transform.vert_crease(value=...). The value float (clamped -1 to 1) is the crease amount written to the vertices. Negative values mark the area to be smoothed out more aggressively; positive values pin the geometry sharp. There's no use_proportional_edit here - just value, mirror, snap, release_confirm, and use_accurate - so this is a blunt whole-mesh stamp, in keeping with the pack's "one object at a time" design.
The honest use case: if you're adding smooth, subdivided geometry to an avatar - a rounded arm, a torus-like detail, anything you'd feed through a subdivision modifier - Vert Crease is how you stop it from turning into a featureless blob. Mark the crease before you subdivide, and the silhouette keeps its intent.
But here's the "when you don't need it": the standard avatar pipeline is flat, image-textured mesh layers, and those don't get subdivided. Subdivision would smear the character texture. So for most readers, this node is a tool you'll reach for only if you're going off-piste and building volumetric extras for your avatar.
Inputs worth knowing
value- the crease amount, -1 to 1. Positive pins edges sharp; negative pushes smooth.mirror- mirrors the crease operation so both sides of a symmetric part match.
Output is BPY_OBJ - the mesh, unchanged in shape, now carrying crease data for whatever node applies subdivision later.
Installing
Vert Crease ships in the Avatar Graph pack (avatechai/avatar-graph-comfyui). The pack's requirement is 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 - only the SAM segmentation model download is pack-wide, and it's optional for your workflow.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| BPY_OBJopt | BPY_OBJ | — | |
| valueopt | FLOAT | 0.00-1–1 | — |
| snapopt | BOOLEAN | false | — |
| release_confirmopt | BOOLEAN | false | — |
| use_accurateopt | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| BPY_OBJ | BPY_OBJ | — |