Fixed double offset issue where left/right ankles and toes were being
processed twice in proportion transformation, causing extreme stretching
to screen bottom.
Changes:
- Left ankle (keypoint 10): Only moves in ll1 processing, skip ll2
- Right ankle (keypoint 13): Only moves in rl1 processing, skip rl2
- Left toe (keypoint 19): Only moves in ll1 processing, skip ll2
- Right toe (keypoint 18): Only moves in rl1 processing, skip rl2
- Applied fixes across all processing functions: apply_batch_proportion_changes, batch loop, apply_proportion_changes
- Added debug logging to track ankle movements during processing
Root cause: Ankles/toes should move as child nodes with knees, not receive
independent l2/r2 adjustments which caused abnormal ratio values (e.g. rl2_ratio: 4.72)
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Remove duplicate canvas size scaling logic that caused incorrect keypoint
positions when reference and target images had different canvas sizes.
The coordinate conversion functions already handle canvas scaling properly,
so additional scaling resulted in double scaling and malformed output.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Major improvements to ProportionChanger Reference node:
**WanVideo Algorithm Complete Port:**
- Implement all 15-section proportion calculations (neck, shoulders, arms, head, legs)
- Fix neck fixed movement issue with unified ratio calculation from first frame
- Add batch processing with consistent ratios across all frames
- Port noise reduction and correction processing from WanVideo
**Advanced Face Processing Integration:**
- Implement independent X/Y face scaling based on ear distance and face dimensions
- Add nose-to-chin height calculation for natural face proportions
- Perfect nose-to-nose alignment between body and face keypoints
- Fix face positioning issue (was aligned to chest/neck, now to nose)
**Technical Improvements:**
- Unified batch processing: calculate ratios from first frame, apply to all frames
- Complete final position offset implementation for frame consistency
- Enhanced canvas size scaling compatibility
- Robust fallback mechanisms for various keypoint configurations
Resolves neck movement issues, face scaling problems, and noise artifacts.
Face now perfectly aligns with body nose position across all frames.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Modified ProportionChangerReference to support batch processing for multiple frames
- Fixed KeyError in result_keypoint access by handling dict return type correctly
- Each frame in the batch is now processed individually through the proportion changing algorithm
- Maintains compatibility with existing single-frame workflows
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
The score_threshold parameter was defined in INPUT_TYPES but never used in the
actual proportion changing algorithm. This removal simplifies the UI and
prevents user confusion about a parameter that has no effect.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Fix double scaling bug when target and reference images have different canvas sizes
- Remove redundant canvas scaling from proportion processing
- Coordinate conversion functions already handle canvas size differences automatically
- Resolves issue where 512x512 reference → 1024x1024 target produced coordinates outside canvas bounds
- Add test directory to .gitignore for development testing
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Rename nodes/ directory to proportion_changer/ following ComfyUI conventions
- Update __init__.py to use simple relative imports instead of importlib.util
- Fix nodes.py imports to reference .proportion_changer instead of .nodes
- Resolve ImportError caused by Python module vs package name collision
- Follow established ComfyUI custom node patterns (similar to adv_control/)
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>