- Add ComfyUI "tooltip" property to all inputs in the `DemucsAudioSeparator` node
- Tooltips are provided in Spanish to explain functionality like `shifts`, `overlap`, `split`, etc.
- Did not add `bfloat16` to options as it's unsupported by cuFFT and would downgrade to `float32` anyways.
Added an "instrumental" boolean toggle and a corresponding output to the DemucsAudioSeparator node. The instrumental track is calculated by subtracting the isolated vocals from the original audio, producing a high-quality mix of all remaining instruments.
Replaces default torchaudio.load() in LoadAudioDirectory.load_directory
with a fallback mechanism that strictly requests the 'soundfile' backend,
and falls back to librosa.load() if it fails. This prevents FFmpeg
linking errors related to torchcodec on Linux.
Also adds soundfile and librosa to requirements.txt.
- Added `LoadAudioDirectory` node to load multiple audio files from a local directory path, utilizing `torchaudio`.
- Set `OUTPUT_IS_LIST = (True,)` so that passing the list of audios to `DemucsAudioSeparator` processes them in a batch.
- Renamed the node category to `"🎵 Demucs-AudioSeparator ⚡"` for both nodes to make them easier to locate in the ComfyUI menu.
- Automatically convert mono audio to stereo by duplicating the channel, as Demucs models require stereo input.
- Ensure audio is processed in `float32` during resampling to prevent `HalfTensor` vs `FloatTensor` mismatch errors in `torchaudio`.
- Convert waveform to the target precision (`dtype`) only after preprocessing is complete.
- Translating comments to English for consistency.
Force `float32` for audio waveform input during the resampling stage to match `torchaudio.transforms.Resample`'s default kernel weights (float32). This resolves a `RuntimeError` when using `float16` inputs ("Input type ... and weight type ... should be the same"). Resampling is now safely performed in single precision before inference.
Adds a 'segment_strategy' option to DemucsAudioSeparator (Auto/Disk/RAM).
Implements `_process_segmented` which splits audio into chunks, processes them, and writes to memory-mapped files on disk.
This prevents Out-Of-Memory errors on system RAM when processing very large files (>1 hour).
- Wrapped the separation logic in `demucs_nodes.py` within a `separate` method.
- Added missing variable definitions (`dtype`, `model_name`).
- Added `.gitignore` to exclude `__pycache__`.
- Renamed repository references in README.md from 'ComfyUI-Demucs-Pro' to 'ComfyUI-Demucs-AudioSeparator'.
- Removed specific mentions of RTX 3090 optimizations and recommendations from README.md.
- Updated node class to 'DemucsAudioSeparator' and category to '🎵 Audio/Separation'.
- Added 'DemucsProNode' as a legacy alias in NODE_CLASS_MAPPINGS to maintain backward compatibility.
- Applied 'Bolt' persona guidelines with emojis in display names and console logs.
- Cleaned up __pycache__ artifacts.
Co-authored-by: Meisoftcoltd <38667978+Meisoftcoltd@users.noreply.github.com>
- Added global model caching with FIFO eviction policy.
- Added support for float16 and bfloat16 precision.
- Updated model list and names for Demucs v4 compatibility.
- Integrated ComfyUI native progress bar with robust callback.
- Updated README and node metadata with emojis (Bolt style).
- Fixed potential OOM and attribute errors.
- Updated requirements.txt with version constraints.
Co-authored-by: Meisoftcoltd <38667978+Meisoftcoltd@users.noreply.github.com>
- Added demucs_nodes.py with DemucsProNode implementation.
- Added __init__.py for node registration.
- Added requirements.txt with necessary dependencies.
- Added README.md with comprehensive documentation and hardware recommendations.
- Integrated model management to download and load models from ComfyUI/models/demucs.
- Implemented resampling and support for shifts, overlap, and split parameters.
Co-authored-by: Meisoftcoltd <38667978+Meisoftcoltd@users.noreply.github.com>