[PR #2744] [MERGED] feat: add ComfyUI VRM Pose Editor 3D #2738

Closed
opened 2026-10-28 21:12:12 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/Comfy-Org/ComfyUI-Manager/pull/2744
Author: @ketle-man
Created: 3/30/2026
Status: ✅ Merged
Merged: 3/30/2026
Merged by: @ltdrdata

Base: main ← Head: add-comfyui-vrm-pose-editor


📝 Commits (3)

  • 23056a0 Add ComfyUI 2D Pose Editor node
  • 04e12f4 Merge branch 'Comfy-Org:main' into main
  • 9e5436c feat: add ComfyUI VRM Pose Editor 3D

📊 Changes

1 file changed (+18 additions, -0 deletions)

View changed files

📝 custom-node-list.json (+18 -0)

📄 Description

New Custom Node: ComfyUI VRM Pose Editor 3D

Overview

An interactive 3D pose editor embedded inside a ComfyUI node. Load VRM/GLB/GLTF models directly in the browser, drag bones to pose, and output as IMAGE.

Repository

https://github.com/ketle-man/comfyui-vrm-pose-editor

Features

  • VRM / GLB / GLTF model loading via browser File API (no server changes required)
  • Bone drag — direct-drag control points; X/Y axis by drag direction, Z axis with Alt key
  • Camera — PerspectiveCamera with OrbitControls (rotate / pan / zoom) + view gizmo with axis snap
  • Shape Keys / Expressions — collapsible panel with real-time sliders (morphTargetDictionary for GLB, ExpressionManager for VRM)
  • Background image — loaded as Three.js PlaneGeometry; composited in a single render pass
  • Color correction toggle (sRGB + ACES Filmic) for VROID Studio / Blender models
  • Capture outputs the current pose as a Torch IMAGE tensor

Security checklist

  • All Three.js dependencies (three.module.js, GLTFLoader.js, OrbitControls.js, three-vrm.module.js) are bundled locally in js/vendor/ — no CDN or external network requests at runtime
  • window event listeners (mousemove, mouseup) are cleaned up via node.onRemoved → dispose()
  • File size limit: 50 MB max for VRM/GLB/GLTF and background images
  • Python backend validates PNG/JPEG magic number before decoding base64 input
  • No console.log debug statements in production code

Node I/O

Type Description
Input IMAGE (optional) Background image composited server-side
Input output_size_mode Standard / Background / Custom
Input custom_width/height INT for Custom mode
Output IMAGE Captured pose as Torch tensor

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/Comfy-Org/ComfyUI-Manager/pull/2744 **Author:** [@ketle-man](https://github.com/ketle-man) **Created:** 3/30/2026 **Status:** ✅ Merged **Merged:** 3/30/2026 **Merged by:** [@ltdrdata](https://github.com/ltdrdata) **Base:** `main` ← **Head:** `add-comfyui-vrm-pose-editor` --- ### 📝 Commits (3) - [`23056a0`](https://github.com/Comfy-Org/ComfyUI-Manager/commit/23056a0eb87e9ea422c6f78b02a2224894d048c2) Add ComfyUI 2D Pose Editor node - [`04e12f4`](https://github.com/Comfy-Org/ComfyUI-Manager/commit/04e12f4b3bd04449c0a45f1089cb40f0f1c8447d) Merge branch 'Comfy-Org:main' into main - [`9e5436c`](https://github.com/Comfy-Org/ComfyUI-Manager/commit/9e5436cdc628e6f8e661ec3cec8d7a66aad68b08) feat: add ComfyUI VRM Pose Editor 3D ### 📊 Changes **1 file changed** (+18 additions, -0 deletions) <details> <summary>View changed files</summary> 📝 `custom-node-list.json` (+18 -0) </details> ### 📄 Description ## New Custom Node: ComfyUI VRM Pose Editor 3D ### Overview An interactive 3D pose editor embedded inside a ComfyUI node. Load VRM/GLB/GLTF models directly in the browser, drag bones to pose, and output as IMAGE. ### Repository https://github.com/ketle-man/comfyui-vrm-pose-editor ### Features - **VRM / GLB / GLTF** model loading via browser File API (no server changes required) - **Bone drag** — direct-drag control points; X/Y axis by drag direction, Z axis with Alt key - **Camera** — PerspectiveCamera with OrbitControls (rotate / pan / zoom) + view gizmo with axis snap - **Shape Keys / Expressions** — collapsible panel with real-time sliders (morphTargetDictionary for GLB, ExpressionManager for VRM) - **Background image** — loaded as Three.js PlaneGeometry; composited in a single render pass - **Color correction** toggle (sRGB + ACES Filmic) for VROID Studio / Blender models - **Capture** outputs the current pose as a Torch IMAGE tensor ### Security checklist - [x] All Three.js dependencies (`three.module.js`, `GLTFLoader.js`, `OrbitControls.js`, `three-vrm.module.js`) are **bundled locally** in `js/vendor/` — no CDN or external network requests at runtime - [x] `window` event listeners (`mousemove`, `mouseup`) are cleaned up via `node.onRemoved` → `dispose()` - [x] File size limit: 50 MB max for VRM/GLB/GLTF and background images - [x] Python backend validates PNG/JPEG magic number before decoding base64 input - [x] No `console.log` debug statements in production code ### Node I/O | | Type | Description | |---|---|---| | Input | `IMAGE` (optional) | Background image composited server-side | | Input | `output_size_mode` | Standard / Background / Custom | | Input | `custom_width/height` | INT for Custom mode | | Output | `IMAGE` | Captured pose as Torch tensor | --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-28 21:12:12 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Comfy-Org/ComfyUI-Manager#2738
No description provided.