ComfyUI Extension: DeepExtract2
DeepExtractV2 – lightning-fast, high-quality audio separator. Instantly isolate vocals, drums, bass, and more from any track. Ideal for creators, DJs, and audio pros.
Custom Nodes (0)
README
<a href="https://www.buymeacoffee.com/abdullahozmantar"><img src="https://img.buymeacoffee.com/button-api/?text=Support%20DeepExtract&emoji=%F0%9F%9A%80&slug=abdullahozmantar&button_colour=FFDD00&font_colour=000000&font_family=Poppins&outline_colour=000000&coffee_colour=ffffff"/></a>
<img src="https://github.com/abdozmantar/ComfyUI-DeepExtractV2/blob/main/assets/qr-code.png?raw=true?raw=true" style="border-radius: 24px;" alt="logo" width="116px"/>DeepExtractV2 Node for ComfyUI
</div>Transform any track in seconds: our DeepExtractV2 node isolates each audio element flawlessly, letting you remix, analyze, or enhance your music faster than ever, all from a single, ultra-efficient node.
<div align="center">Installation | Usage | Example | Node Inputs - Outputs
</div>
Installation
Follow these steps to add ComfyUI-DeepExtractV2 to your ComfyUI setup and start separating audio tracks instantly:
1. Navigate to the ComfyUI custom_nodes
Folder
Locate your ComfyUI installation folder. Inside, you will find a folder named custom_nodes
.
Tip: This is where all third-party nodes should be placed.
ComfyUI/
└─ custom_nodes/
2. Clone the Repository
You can clone this repository directly into the custom_nodes
folder. Open a terminal or command prompt and run:
cd path/to/ComfyUI/custom_nodes
git clone https://github.com/abdozmantar/ComfyUI-DeepExtractV2.git
This will download all necessary files into a folder named ComfyUI-DeepExtractV2
.
3. (Optional) Update the Repository
If you already have the repository and want to update it with the latest version:
cd path/to/ComfyUI/custom_nodes/ComfyUI-DeepExtractV2
git pull origin main
4. Install Dependencies
Go to the node folder and install the requirements:
cd path/to/ComfyUI/custom_nodes/ComfyUI-DeepExtractV2
python setup.py
💡 Windows Users: You can alternatively double-click
setup.bat
to install all dependencies automatically.
This will ensure all necessary Python packages are installed in the environment ComfyUI uses.
5. Restart ComfyUI
After installing the node and its dependencies, restart ComfyUI. The DeepExtractV2 node should now appear in the node list under your custom nodes.
6. Add the Node to Your Graph
Double-click anywhere in ComfyUI and search for the node by typing DeepExtractV2
.
Alternatively, right-click anywhere, then navigate to:
Add Node > DeepExtractV2 > DeepExtractV2 - Separator
Click to add it to your graph and start separating audio tracks instantly.
<img src="https://github.com/abdozmantar/ComfyUI-DeepExtractV2/blob/main/assets/NodePath.png?raw=true" style="border-radius: 24px;" alt="webui-demo" width="100%"/>Usage
Overview
- The DeepExtractV2 Node allows you to separate audio tracks into individual stems, such as vocals, drums, bass, and other elements. By connecting your mixed audio to this node in ComfyUI, you can isolate specific components of a song or audio file for further processing, manipulation, or preview.
Example
Suppose you want to separate a song into individual components like vocals, drums, bass, and other instruments. Here’s how you can use the DeepExtractV2 Node to achieve this:
Load an Audio File
First, load your mixed audio track into ComfyUI. This is the input that the DeepExtractV2 Node will process.
Add the DeepExtractV2 Node
Insert the DeepExtractV2 Node into your workflow. You will see options to:
-
Select which stem to isolate: e.g.,
vocals
,drums
,bass
,other
-
Choose the method for the remaining stems:
add
→ sums all other stems into one track (useful for “no_vocals” type outputs)minus
→ subtracts the selected stem from the original tracknone
→ does not produce any complementary track
-
Set processing parameters: device (CPU/GPU), chunk overlap, number of shifts, segment size, bit depth, audio format, etc.
Connect Inputs and Outputs
- Connect your audio file to the track input of the node.
- Specify an output folder for the separated tracks.
- Adjust optional parameters like
clip_mode
oraudio_format
if needed.
Configure Stem Selection
-
Extract all stems: Leave the stem input empty and set other_method = none. This will give you all four audio outputs separately:
vocals
drums
bass
other
-
Extract only one stem: Specify the stem name (e.g.,
vocals
). Then you can choose how to handle the remaining audio:minus_{stem}
→ the original track minus the selected stemno_{stem}
→ sum of all other stems (works if other_method = add)
⚠️ Tip: If you only want all individual stems without combining anything, leave the stem input empty and set other_method = none. This is the recommended way to get
vocals
,drums
,bass
, andother
as separate outputs.
Process the Audio
Run the workflow. The node will separate your audio based on your configuration and save the results in the specified folder. The file names will be automatically generated using the stem name and track name.
Preview and Further Manipulation
- Connect the outputs to Preview Audio nodes to listen to each separated track in real-time.
- You can also route the outputs to other nodes for further processing, effects, or mixing.
Example Workflow for Extracting All Stems:
- Load your song into ComfyUI.
- Add the DeepExtractV2 Node.
- Leave stem empty and set other_method = none.
- Connect outputs to Preview Audio nodes to listen to each stem.
- Run the node → outputs:
vocals.wav
,drums.wav
,bass.wav
,other.wav
This setup ensures you can hear or use every component of your song individually without any missing tracks.
Node Inputs - Outputs
- Purpose: This node separates an input audio track into different stems (e.g., vocals, bass, drums) using AI-based separation.
1. Track
- Type: Audio
- The input audio track to be processed. This is the main file the model will analyze to extract the selected stem.
2. Drums
- Type: Audio Output
- Contains the isolated drum track extracted from the input audio. Useful for remixing or drum-only analysis.
3. Bass
- Type: Audio Output
- Contains the isolated bass line from the original track. Allows you to manipulate or process only the bass.
4. Other
- Type: Audio Output
- Captures all remaining instruments or sounds not classified as drums, bass, or vocals. Useful for background or instrumental extraction.
5. Vocals
- Type:
Audio Output
- Provides the isolated vocal track. Ideal for vocal editing, remixing, or karaoke purposes.
6. Derived Stem
- Type:
Audio Output
Automatically generated complementary stem based on the selected separation method (other_method
). Can represent “everything except selected stem” or a custom mix.
7. Out
- Type:
String
- Defines the folder name where the separated tracks will be saved. This folder is automatically created inside the main ComfyUI directory.
8. Device
- Type: Enum (
cuda
,cpu
)- Selects the processing device. Using
cuda
enables GPU acceleration for faster inference, whilecpu
works on systems without GPU support.
- Selects the processing device. Using
9. Overlap
- Type:
Float (0.0–1.0)
- Controls the overlap between audio chunks during separation. Higher values may improve quality but require more processing time.
10. Shifts
- Type:
Integer (1–20)
- Sets the number of random shifts used to stabilize predictions. More shifts improve quality but increase computation time.
11. Segment
- Type:
Integer (0–600)
- Defines the segment length (in seconds) to split the input audio. Set to
0
to process the full track without splitting.
- Defines the segment length (in seconds) to split the input audio. Set to
12. Bit Depth
- Type: Enum (
default
,int24
,float32
)- Determines the bit depth of the output audio.
int24
provides higher precision, whiledefault
uses system settings.
- Determines the bit depth of the output audio.
13. Clip Mode
- Type: Enum (
rescale
,clamp
,none
)- Controls how clipping is handled in output audio.
rescale
normalizes peaks,clamp
limits them, andnone
disables clipping correction.
- Controls how clipping is handled in output audio.
14. Audio Format
- Type: Enum (
wav
,flac
,mp3
)- Specifies the format of the exported audio files. Choose
wav
for uncompressed output ormp3
for smaller file sizes.
- Specifies the format of the exported audio files. Choose
15. MP3 Bitrate
- Type:
Integer (64–320)
- Sets the bitrate when exporting as MP3. Higher values improve audio quality but increase file size.
16. MP3 Preset
- Type:
Integer (2–7)
- Adjusts the MP3 encoding speed and quality. Lower numbers mean better quality but slower encoding.
17. Jobs
- Type:
Integer (0–32)
- Defines how many parallel jobs (threads) to use. Increasing this speeds up processing on multi-core CPUs.
18. Split
- Type:
Boolean
- Enables splitting the input audio into smaller chunks to save memory. Recommended for long or high-resolution tracks.
19. Other Method
- Type: Enum (
none
,add
,minus
)- Determines how to generate the complementary stem (
no_{STEM}
).add
sums the remaining stems, whileminus
subtracts the selected stem from the original track.
- Determines how to generate the complementary stem (
20. Stem
- Type:
String
- Defines which stem to isolate (e.g.,
vocals
,drums
,bass
). The node will separate only this stem and its complementary version.
- Defines which stem to isolate (e.g.,
21. Filename
- Type:
String
- Sets the naming pattern for output files. You can use variables like
{track}
,{stem}
, and{ext}
to dynamically generate filenames.
Author
Name: Abdullah OZMANTAR
GitHub: https://github.com/abdozmantar
Developed by Abdullah OZMANTAR