Skip to content

Latest commit

 

History

History
78 lines (69 loc) · 4.66 KB

DOCKER_README.md

File metadata and controls

78 lines (69 loc) · 4.66 KB

Docker

The Docker image currently works on Windows and Linux, optionally supporting NVIDIA GPUs.

General Remarks

  • The resulting Docker image is 21 GB in size. Building might require even more disk space temporarily.
    • Another 15 GB is required for building DeepSpeed
  • Build time depends on your hardware and internet connection. Expect at least 20-30min to be normal for a full build.
    • This includes building the conda environment as well as DeepSpeed, which is the basis for the alltalk Docker image.
  • The Docker build for alltalk:
    • 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

  1. Make sure the latest nvidia drivers are installed: sudo ubuntu-drivers install
  2. 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
  3. 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

  1. Install WSL2 in PowerShell with wsl --install and restart
  2. Open PowerShell, type and enter ubuntu. It should now load you into wsl2
  3. Remove the original nvidia cache key: sudo apt-key del 7fa2af80
  4. Download CUDA toolkit keyring: wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-keyring_1.1-1_all.deb
  5. Install keyring: sudo dpkg -i cuda-keyring_1.1-1_all.deb
  6. Update package list: sudo apt-get update
  7. Install CUDA toolkit: sudo apt-get -y install cuda-toolkit-12-4
  8. Install Docker Desktop using WSL2 as the backend
  9. Restart
  10. If you wish to monitor the terminal remotely via SSH, follow this guide.
  11. Open PowerShell, type ubuntu, then follow below

Building and Running in Docker

  1. Open a terminal (or Ubuntu WSL) and go where you cloned the repo
  2. Build the image with ./docker-build.sh
  3. Start the container with ./docker-start.sh
  4. Visit http://localhost:7851/ or remotely with http://<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_model allows to choose the TTS model that is used by default. Valid values are piper, vits, xtts. Defaults to xtts.
    • Example: docker-build.sh --tts_model piper
  • --tag allows to choose the docker tag. Defaults to latest.
    • Example: docker-build.sh --tag mytag
  • --clean allows remove existing dependency build like conda environment or DeepSpeed.
    • Example: docker-build.sh --clean

Arguments for docker-start.sh

  • --config lets you choose a config JSON file which can subset of confignew.json. This allows you to change only few values and leave the rest as defined in the default confignew.json file.
    • Example: docker-start.sh --config /my/config/file.json with content {"branding": "My Brand "} will just change the branding in confignew.json.
  • --voices lets you add voices for the TTS engine in WAV format. You have to specify the folder containing all voice files.
    • Example: docker-start.sh --voices /my/voices/dir
  • --rvc_voices similar to voices, this option lets you pick the folder containing the RVC models.
    • Example: docker-start.sh --rvc_voices /my/rvc/voices/dir
  • --no_ui allows you to not expose port 7852 for the gradio interface. Note that you still have to set launch_gradio to false via JSON file passed to --config.
  • --tag allows to choose the docker tag of the image to run. Defaults to latest.
    • Example: docker-start.sh --tag mytag
  • Since the above commands only address the most important options, you might pass additional arbitrary docker commands to the docker-start.sh.