4.2 KiB
4.2 KiB
Docker
The Docker image currently works on Windows and Linux, optionally supporting NVIDIA GPUs.
General Remarks
- The resulting Docker image is 22 GB in size. Building might require even more disk space temporarily.
- Build time depends on your hardware and internet connection. Expect at least 10min to be normal.
- The Docker build:
- Downloads XTTS as default TTS engine
- Enables RVC by default
- Downloads all supported RVC models
- Enables deepspeed by default
- Starting the Docker image should only a few seconds due to all the steps that were already executed during build.
Docker for Linux
Ubuntu Specific Setup for GPUs
- Make sure the latest nvidia drivers are installed:
sudo ubuntu-drivers install - Install Docker your preferred way. One way to do it is to follow the official documentation here.
- Start by uninstalling the old versions
- Follow the "apt" repository installation method
- Check that everything is working with the "hello-world" container
- If, when launching the docker contain, you have an error message saying that the GPU cannot be used, you might have to install Nvidia Docker Container Toolkit.
- Install with the "apt" method
- Run the docker configuration command
sudo nvidia-ctk runtime configure --runtime=docker - Restart docker
Docker for Windows (WSL2)
Windows Specific Setup for GPUs
Make sure your Nvidia drivers are up to date: https://www.nvidia.com/download/index.aspx
- Install WSL2 in PowerShell with
wsl --installand restart - Open PowerShell, type and enter
ubuntu. It should now load you into wsl2 - Remove the original nvidia cache key:
sudo apt-key del 7fa2af80 - Download CUDA toolkit keyring:
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-keyring_1.1-1_all.deb - Install keyring:
sudo dpkg -i cuda-keyring_1.1-1_all.deb - Update package list:
sudo apt-get update - Install CUDA toolkit:
sudo apt-get -y install cuda-toolkit-12-4 - Install Docker Desktop using WSL2 as the backend
- Restart
- If you wish to monitor the terminal remotely via SSH, follow this guide.
- Open PowerShell, type
ubuntu, then follow below
Building and Running in Docker
- Open a terminal (or Ubuntu WSL) and go where you cloned the repo
- Build the image with
./docker-build.sh - Start the container with
./docker-start.sh - Visit
http://localhost:7851/or remotely withhttp://<ip>:7851
Arguments for building and starting docker
There are various arguments to customize the build and start of the docker image.
Arguments for docker-build.sh
--tts_modelallows to choose the TTS model that is used by default. Valid values arepiper,vits,xtts. Defaults toxtts.- Example:
docker-build.sh --tts_model piper
- Example:
--tagallows to choose the docker tag. Defaults tolatest.- Example:
docker-build.sh --tag mytag
- Example:
Arguments for docker-start.sh
--configlets you choose a config JSON file which can subset ofconfignew.json. This allows you to change only few values and leave the rest as defined in the defaultconfignew.jsonfile.- Example:
docker-build.sh --config /my/config/file.jsonwith content{"branding": "My Brand "}will just change the branding inconfignew.json.
- Example:
--voiceslets you add voices for the TTS engine in WAV format. You have to specify the folder containing all voice files.- Example:
docker-build.sh --voices /my/voices/dir
- Example:
--rvc_voicessimilar to voices, this option lets you pick the folder containing the RVC models.- Example:
docker-build.sh --rvc_vices /my/rvc/voices/dir
- Example:
--no_uiallows you to not expose port 7852 for the gradio interface. Note that you still have to setlaunch_gradiotofalsevia JSON file passed to--config.- Since the above commands only address the most important options, you might pass additional arbitrary docker commands
to the
docker-start.sh.