Skip to content

A GUI and CUDA memory optimizing project based on demucs

License

Notifications You must be signed in to change notification settings

csipapicsa/Demucs-Gui

 
 

Repository files navigation

Icon Demucs GUI

GitHub release (latest by date including pre-releases) GitHub all releases GitHub platform

A new look is going to be designed for 1.1, everybody is welcomed to vote in #35

This is a GUI for python project demucs.

The project aims to let users without any coding experience separate tracks without difficulty. If you have any question about usage or the project, please open an issue to tell us. Since the original project Demucs used scientific library torch, the packed binaries with environment is very large, and we will only pack binaries for formal releases.

Note for macOS users

If the application cannot be launched due to the Mac's security protection feature, try the following:

  1. Right-click on the Demucs-GUI app icon and select "Open".
  2. Click "Open" again in the window that appears as follows. Open Anyway

System requirements

Installing binaries

System version

For Windows: At least Windows 8

For Mac: At least macOS 10.15

For Linux: Any system that can install and run python 3.11 (Because I'll pack the binaries using python 3.11)

Hardware

Memory: About at least 8GB of total memory (physical and swap) would be required. The longer the track you want to separate, the more memory will be required.

GPU: Only NVIDIA GPUs (whose compute capability should be at least 3.5) and Apple MPS are supported. At least 2GB of private memory is required.

Running the codes yourself

At least Python 3.9 is required. Other requirements please refer to Installing binaries.

Downloads

Binaries for download are available here.

Update History

Please refer to history.md.

Usage

If you are using released binaries, please refer to usage.md

This part is written for beta versions

For macOS ARM64 users: There is a bug related to Qt causing crash. To avoid it, please run Python x86_64 using Rosetta 2.

According to Apple Developer Forums, the crash is caused by manipulating the GUI from a thread other than the main thread. This is exactly what Demucs GUI does: the separation process is time-consuming, so it is run in a separate thread to avoid causing the main window to stop responding. This thread will manipulate the GUI to update the progress bar and retrieve separation parameters from time to time.

But it's strange that the crash only happens on Apple Silicon Macs. Besides, Demucs GUI manipulates the GUI from a separate thread more than once, but the crash only happens when loading a model if you've chosen another model (as long as you've opened the drop-down menu for choosing models even if you didn't choose another model). So the solution is to run Python x86_64 using Rosetta 2, or wait for the bug to be fixed.

CPU only or Apple MPS

  1. Install Python (and git if you'd like to clone this repository) to your system.
  2. Download zip of this branch and extract it to a folder, or clone this repository and switch to this branch.
  3. Run pip, conda or other package managers to install all packages in requirements.txt.
# For pip
pip install -r requirements.txt
# For conda
conda install --yes --file requirements.txt
  1. Run GuiMain.py and separate your song!

CUDA acceleration

  1. Install Python (and git if you'd like to clone this repository) to your system.
  2. Download zip of this branch and extract it to a folder, or clone this repository and switch to this branch.
  3. Install torch with cuda under intructions on pyTorch official website. There is no requirement of cuda version, but the version of torch should be at least 2.0.0.
  4. Run pip, conda or other package managers to install all packages in requirements_cuda.txt.
# For pip
pip install -r requirements_cuda.txt
# Conda is not available as this project has dependencies only on PyPI
  1. Run GuiMain.py and separate your song! If your GPU is not listed in the device column, or is labeled "not recommended", this means your GPU is not available or the VRAM is not enough. Please use CPU instead or open an issue to tell us if you think this is a problem.

Acknowledgements

This project includes code of Demucs under MIT license.

About

A GUI and CUDA memory optimizing project based on demucs

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%