7 Commits
Author SHA1 Message Date
rubenvillarreal cf264d7018 Simplify PoseAlign node to manual-only mode
- Remove all automatic alignment logic and keypoint detection
- Convert to pure manual transformation node using widget sliders
- Remove manual/auto mode toggle and Live UI toggle
- Ensure canvas preview exactly matches output transformations
- Simplify codebase by removing 400+ lines of complex auto-alignment code

Key changes:
- Python: Always use widget values (tx_A, ty_A, scale_A, angle_deg_A, etc.)
- JavaScript: Remove automatic mode detection and Live toggle UI
- Canvas interactions directly update widget values for immediate effect
- Output transformations now perfectly match canvas preview

Fixes issue where manual canvas adjustments weren't reflected in final output.
2025-08-02 09:34:43 +00:00
rubenvillarreal f49156c1f7 Add alignment passthrough functionality to PoseAlignTwoToOne node
- Add optional POSE_ALIGNMENT input for receiving alignment data from other nodes
- Add POSE_ALIGNMENT output to pass alignment data to downstream nodes
- Extract and apply transformation parameters from alignment_input when provided
- Preserve manual mode override behavior
- Update matrix caching logic to work with passthrough alignment data

This enables chaining multiple PoseAlign nodes together while preserving alignment transformations.
2025-08-02 08:38:44 +00:00
rubenvillarreal 14f3ab1171 Fix canvas data to properly handle single pose mode
- Add singlePoseMode flag to canvas data when poseB is None
- Set B transformation matrix to None instead of identity for single pose
- Don't include B dimensions in inputDimensions when no poseB exists
- Pass has_poseB parameter to _store_transform_data_for_canvas
- This should prevent reference poses from appearing as manipulatable in UI
2025-08-01 08:12:29 +00:00
rubenvillarreal 8bf7a55df5 Fix reference poses being manipulatable in single pose mode
- Reference poses are now only used as alignment targets, not manipulatable poses
- In single pose mode, extract reference poses but don't create transformations for them
- Assignment parameter now works correctly to choose which reference pose to align to
- MB transformation is always identity when poseB is None
- This should also fix aspect ratio issues caused by incorrect pose extraction
2025-08-01 08:00:24 +00:00
rubenvillarreal 240679a11a Make poseB inputs optional for single pose alignment
- Moved poseB_img and poseB_json from required to optional inputs
- Updated align() method to handle optional poseB parameters
- Added single pose mode that aligns poseA to first reference person
- Modified preview image generation to work with single pose
- Updated transformation logic to handle missing poseB data
- Output now returns empty B images when only one pose provided

This allows the node to work with just one pose input instead of requiring both poses.
2025-08-01 07:46:01 +00:00
rubenvillarrealandClaude 6320c720f6 Fix module imports and simplify node initialization
- Updated __init__.py to use simplified loading approach
- Fixed import paths to use direct imports instead of relative imports
- Added debug logging for better troubleshooting
- Simplified node registration process
- Fixed utils.js export issue

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-01 07:33:02 +00:00
Ruben Villarreal 9a05c3435f Initial commit: ComfyUI PoseAlign node 2025-07-31 19:17:08 -07:00