Transform Resize
ComfyUI Node Guide
- BPY_OBJ
- value
- mouse_dir_constraint
- orient_type
- orient_matrix
- orient_matrix_type
- constraint_axis
- snap_elements
- snap_point
- center_override
- BPY_OBJ
Transform Resize is the ComfyUI face of one of the most-used commands in Blender: hitting S to scale something. It's part of Avatar Graph, Avatech's node pack for rigging static character illustrations into real-time avatars that blink, lipsync, and breathe - and this node is pure mesh-editing plumbing, the kind of thing you reach for constantly once you're actually building rigs rather than something specific to the avatar concept itself.
It's a direct wrapper of Blender's bpy.ops.transform.resize operator - the exact same operator behind the S key in Blender's viewport. Avatar Graph embeds Blender's own Python API inside ComfyUI, so this node is a literal passthrough of that operator's parameters, which is also why the widget list looks intimidating at first glance: Blender's transform operators carry a huge shared parameter surface (snapping, proportional editing, orientation matrices) because the same underlying tool handles interactive viewport dragging, numeric input, and scripted calls all at once.
Here's the part that matters, though: as a beginner you really only need one of these fields.
- value - the XYZ scale vector to apply.
(1, 1, 1)is no change;(0.5, 0.5, 0.5)halves the object's size on every axis; you can scale axes independently too (say,(1, 1, 0.5)to flatten something on Z).
Everything else on this node - orient_type, orient_matrix, constraint_axis, snap, snap_elements, use_proportional_edit, proportional_edit_falloff, mirror, gpencil_strokes, and the rest - are leftovers from Blender's interactive transform tool. They control things like snapping to grid/geometry while dragging in a live viewport, or falling off scale smoothly across nearby vertices (proportional editing). In a scripted ComfyUI graph none of that interactive context exists, so the sane move is to leave them at their defaults and just set value. If you do want proportional editing (softening the effect of a scale across a mesh region rather than a hard cutoff at your selection), flip use_proportional_edit on and adjust proportional_size and proportional_edit_falloff - but that's a deliberate choice, not something a beginner needs out of the gate.
Output is the same BPY_OBJ, resized in place.
Installing it: no standalone install for a single node - this comes with the full Avatar Graph pack. Simplest path is ComfyUI Manager, search "Avatar Graph" or avatar-graph-comfyui. Manually: cd ComfyUI/custom_nodes && git clone https://github.com/avatechai/avatar-graph-comfyui, then cd in and pip install -r requirements.txt, then restart ComfyUI.
The install snag that trips most people up: Avatar Graph requires Python 3.10.x specifically, since its bpy dependency - Blender's API packaged as a library - only ships wheels for that version. A newer Python (the default on most fresh setups) means the install just fails. The README recommends a dedicated environment: conda create --name comfyui python=3.10, activate, install ComfyUI's own requirements first, then this pack's. For the live avatar preview inside Avatech's web editor, also launch with --enable-cors-header (Mac: add --force-fp16); without it, resizing and everything else still work fine, you just export .glb/.gltf instead of seeing a live in-browser update.
One practical note if a scale operation seems to do nothing: check what's actually selected upstream in your graph. Like Blender itself, transform.resize acts on the current selection state of the mesh, not the whole object unconditionally - if nothing's selected, there's nothing to scale.
Inputs (28)
| Name | Type | Default | Description |
|---|---|---|---|
| BPY_OBJopt | BPY_OBJ | — | |
| valueopt | B_VECTOR3 | — | |
| mouse_dir_constraintopt | B_VECTOR3 | — | |
| orient_typeopt | B_ENUM | — | |
| orient_matrixopt | B_VECTOR9 | — | |
| orient_matrix_typeopt | B_ENUM | — | |
| constraint_axisopt | B_BOOLEAN3 | — | |
| mirroropt | BOOLEAN | false | — |
| use_proportional_editopt | BOOLEAN | false | — |
| proportional_edit_falloffopt | COMBO | 8 options: SMOOTH, SPHERE, ROOT, INVERSE_SQUARE, SHARP, LINEAR, +2 | |
| proportional_sizeopt | FLOAT | 1.009.999999974752427e-7–999999995904 | — |
| use_proportional_connectedopt | BOOLEAN | false | — |
| use_proportional_projectedopt | BOOLEAN | false | — |
| snapopt | BOOLEAN | false | — |
| snap_elementsopt | B_ENUM_SET | — | |
| use_snap_projectopt | BOOLEAN | false | — |
| snap_targetopt | COMBO | 4 options: CLOSEST, CENTER, MEDIAN, ACTIVE | |
| use_snap_selfopt | BOOLEAN | true | — |
| use_snap_editopt | BOOLEAN | true | — |
| use_snap_noneditopt | BOOLEAN | true | — |
| use_snap_selectableopt | BOOLEAN | false | — |
| snap_pointopt | B_VECTOR3 | — | |
| gpencil_strokesopt | BOOLEAN | false | — |
| texture_spaceopt | BOOLEAN | false | — |
| remove_on_cancelopt | BOOLEAN | false | — |
| center_overrideopt | B_VECTOR3 | — | |
| release_confirmopt | BOOLEAN | false | — |
| use_accurateopt | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| BPY_OBJ | BPY_OBJ | — |