Commit Graph
8 Commits
Author SHA1 Message Date
gear_machineandClaude c4e9a567fa Fix ProportionChangerReference ankle and toe scaling bug
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>
2025-08-22 17:04:19 +09:00
gear_machineandClaude 0fc3eba017 Fix reference canvas scaling bug in ProportionChangerReference (Issue023)
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>
2025-08-20 00:22:53 +09:00
gear_machineandClaude b362e0f7ca Complete WanVideo pose_extract algorithm port with advanced face processing (Issue022)
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>
2025-08-20 00:08:14 +09:00
gear_machineandClaude 665d266c96 Fix batch processing compatibility in ProportionChangerReference node (Issue019)
- 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>
2025-08-18 13:33:06 +09:00
gear_machineandClaude d585488833 Unify node names and variable naming conventions
- Rename ProportionChanger Ultimate → ProportionChanger Reference
- Rename ProportionChanger DWPose Detector for PoseKeypoint → ProportionChanger DWPose Detector
- Standardize variable names: processed_pose_keypoint → changed_pose_keypoint
- Unify parameter naming: pose_keypoints → pose_keypoint (singular)
- Convert input parameter names to lowercase: POSE_KEYPOINT → pose_keypoint
- Update all NODE_CLASS_MAPPINGS and NODE_DISPLAY_NAME_MAPPINGS
- Fix comment references to use new class names

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-17 11:30:25 +09:00
gear_machineandClaude a4b31faf47 Remove unused score_threshold parameter from ProportionChanger Ultimate
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>
2025-08-17 11:13:59 +09:00
gear_machineandClaude 2f49f45aff Fix ProportionChanger Ultimate canvas size scaling issue
- 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>
2025-08-17 07:46:04 +09:00
gear_machineandClaude 142f043a63 Fix import structure: resolve nodes.py/nodes/ directory naming conflict
- 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>
2025-08-17 05:44:00 +09:00