Files
runpod/comfyui/nodes/pivoine_diffrhythm.py
Sebastian Krüger 1981b7b256
All checks were successful
Build and Push RunPod Docker Image / build-and-push (push) Successful in 14s
fix: monkey-patch DiffRhythm infer function to force chunked=False
The previous approach of overriding diffrhythmgen wasn't working because
ComfyUI doesn't pass the chunked parameter when it's not in INPUT_TYPES.
This fix monkey-patches the infer() function at module level to always
force chunked=False, preventing the tensor dimension mismatch error.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-24 17:24:22 +01:00

50 lines
1.3 KiB
Python

"""
Pivoine DiffRhythm Node
Custom wrapper for DiffRhythm that disables chunked decoding to prevent
tensor dimension mismatch errors (32 vs 64) in VAE overlap logic.
Author: valknar@pivoine.art
"""
import sys
sys.path.append('/workspace/ComfyUI/custom_nodes/ComfyUI_DiffRhythm')
# Monkey-patch the infer function to force chunked=False
import DiffRhythmNode
_original_infer = DiffRhythmNode.infer
def patched_infer(*args, **kwargs):
# Force chunked to False if present
if 'chunked' in kwargs:
kwargs['chunked'] = False
return _original_infer(*args, chunked=False, **kwargs)
# Apply the monkey patch
DiffRhythmNode.infer = patched_infer
from DiffRhythmNode import DiffRhythmRun
class PivoineDiffRhythmRun(DiffRhythmRun):
"""
Pivoine version of DiffRhythmRun with chunked decoding forcibly disabled.
Changes from original:
- Monkey-patches the infer() function to always use chunked=False
- Prevents tensor dimension mismatch in VAE (32 vs 64 channel error)
- Requires more VRAM (~12-16GB) but works reliably on RTX 4090
"""
CATEGORY = "🌸Pivoine/Audio"
@classmethod
def INPUT_TYPES(cls):
return super().INPUT_TYPES()
NODE_CLASS_MAPPINGS = {
"PivoineDiffRhythmRun": PivoineDiffRhythmRun,
}
NODE_DISPLAY_NAME_MAPPINGS = {
"PivoineDiffRhythmRun": "Pivoine DiffRhythm Run",
}