How to run XTTS-v2 on a cloud GPU
Rent a GPU on Deploy, then open a terminal in JupyterLab or over SSH. Install Coqui TTS with the command the coqui-ai/TTS README prints, then run the XTTS-v2 voice-cloning example from that README and from the coqui/XTTS-v2 model card. Copy the wav file off the instance before you destroy it. Destroying the instance deletes its disk.
This page follows coqui-ai/TTS because the model card’s Code section links https://github.com/coqui-ai/TTS, and that README does not link a fork. The idiap/coqui-ai-TTS README, on commit eacbf8b60f9bbae6c1e18f2a2c9b739c6edde1f9 (2026-10-24T20:22:41Z), says it is a fork of the original, unmaintained repository, and that the new PyPI package is coqui-tts. This page does not copy the idiap install lines.
Other speech pages: How to run Kokoro TTS on a cloud GPU, How to run Chatterbox TTS on a cloud GPU, How to run F5-TTS on a cloud GPU, How to run GPT-SoVITS on a cloud GPU, How to run Orpheus TTS on a cloud GPU, and How to run Bark text-to-audio on a cloud GPU. If the process runs out of memory: How to fix CUDA out of memory on a cloud GPU. The tunnel for the documented server port is How to use SSH port forwarding on a cloud GPU.
The model card, read 2026-11-13, had gated false, license other, license_name coqui-public-model-license, and license_link https://coqui.ai/cpml. lastModified was 2023-12-11T17:50:00.000Z. A request for https://coqui.ai/cpml the same day returned HTTP 404, and a request for https://coqui.ai/cpml.txt returned HTTP 404. The text this page quotes is LICENSE.txt in the model repository. That file is titled “Coqui Public Model License 1.0.0”. It says: “This license allows only non-commercial use of a machine learning model and its outputs.” It says non-commercial purposes include uses of the model or its output “only so far as you do not receive any direct or indirect payment arising from the use of the model or its output.” The code repository LICENSE.txt is the Mozilla Public License Version 2.0. The GitHub license field the same day was MPL-2.0. The README badge links the MPL 2.0 text. Those are separate files. This page does not merge them into one license. Read each file before you redistribute the program or the weights.
The commands below are copied from the upstream files named in each step. They were not run on a CloudGPU instance for this page. Anything this page adds around them is marked.
What the model card says about memory
The coqui-ai/TTS README does not print a GPU GB figure. The XTTS-v2 model card does not print one. The model card says XTTS clones voices into different languages with a quick 6-second audio clip, supports 17 languages, and uses a 24khz sampling rate. The language names it prints are English (en), Spanish (es), French (fr), German (de), Italian (it), Portuguese (pt), Polish (pl), Turkish (tr), Russian (ru), Dutch (nl), Czech (cs), Arabic (ar), Chinese (zh-cn), Japanese (ja), Hungarian (hu), Korean (ko), and Hindi (hi). In the card source, Hindi (hi) is on the next line, with no comma before it. The README news bullets say ⓍTTSv2 has 16 languages, and a different bullet says the model can speak 13 languages. This page does not collapse those three counts into one. A news bullet says ⓍTTS can stream with <200ms latency. This page did not measure that.
The docs page https://tts.readthedocs.io/en/latest/models/xtts.html, read the same day, is titled “ⓍTTS - TTS 0.22.0 documentation”. It says you can optionally disable sentence splitting for better coherence but more VRAM, and possibly hit the model context length limit. That sentence prints no GB figure.
GET /v1/public/compute-capabilities does not list GPUs. It returns feature flags. The memory column is vram_gb from gpu-prices.json, updated_at 2026-11-13T01:07:50.488Z. GET /v1/public/gpu-catalog the same day (generated_at 2026-11-13T01:07:55.359Z) listed the same names and the same vram_gb values, plus Ascend 910B at 64, which is not in gpu-prices.json and is not listed here. The catalog response also includes an availability field. This page does not copy it. Every prices row has gpu_count 1. Every vram_gb below is 8 or higher. This page does not mark a row as enough, because the README and the model card publish no GB figure to compare. Which listing you can start is on Deploy.
The catalog template list had no XTTS template. The ComfyUI examples top-level directory list on 2026-11-13 had no directory named for this model. Examples HEAD was f9431bb000ce792094ff345446e22cac1ea6cef3, committed 2025-11-26T20:33:58Z. This page does not add a ComfyUI install.
| Catalog name | vram_gb |
|---|---|
| RTX 2080 | 8 |
| RTX 3080 | 10 |
| RTX 2080 Ti | 11 |
| RTX 3080 Ti | 12 |
| V100 16G | 16 |
| A30 | 24 |
| RTX 3090 | 24 |
| RTX 4090 | 24 |
| RTX 4090D | 24 |
| RTX 4080 SUPER 32G | 32 |
| RTX 5090 | 32 |
| RTX 5090D | 32 |
| V100 32G | 32 |
| A100 40G | 40 |
| A800 40G | 40 |
| A40 | 48 |
| RTX 4090 48G | 48 |
| RTX 4090D 48G | 48 |
| RTX A6000 | 48 |
| NVIDIA RTX PRO 5000 72G | 72 |
| RTX PRO 5000 72G | 72 |
| A100 80G | 80 |
| A800 80G | 80 |
| H800 | 80 |
| RTX 6000D | 83 |
| H20 96G | 96 |
| RTX PRO 6000 96G | 96 |
| RTX PRO 6000 Max-Q | 96 |
| H20-3e 141G | 141 |
Install and run the documented example
On Deploy, choose Raw GPU. The deploy page says “SSH access and root within a dedicated container”. The README says 🐸TTS is tested on Ubuntu 18.04 with Python >= 3.9, < 3.12.
For synthesizing speech with the released models, the README says installing from PyPI is the easiest option and prints:
pip install TTS
The local-checkout alternative it prints is git clone https://github.com/coqui-ai/TTS and then pip install -e .[all,dev,notebooks] # Select the relevant extras. It does not print a cd. pip install -e . installs the current directory. The clone creates TTS, so this page adds cd TTS between those two lines. It was not run:
git clone https://github.com/coqui-ai/TTS
cd TTS
pip install -e .[all,dev,notebooks] # Select the relevant extras
The commits API for the default branch dev on 2026-11-13 listed dbf1a08a0d4e47fdad6172e433eeb34bc6b13b4e, committed 2024-02-10T14:20:58Z, message “Update generic_utils.py (#3561)”. The repository object the same day said pushed_at 2024-08-16T12:07:14Z. This page did not install the package.
The README’s multi-lingual example, which names the XTTS-v2 model id, is:
import torch
from TTS.api import TTS
device = "cuda" if torch.cuda.is_available() else "cpu"
tts = TTS("tts_models/multilingual/multi-dataset/xtts_v2").to(device)
wav = tts.tts(text="Hello world!", speaker_wav="my/cloning/audio.wav", language="en")
tts.tts_to_file(text="Hello world!", speaker_wav="my/cloning/audio.wav", language="en", file_path="output.wav")
The README says that because this model is a multi-lingual voice cloning model, you must set the target speaker_wav and language. speaker_wav in that block is a path you already have. This page does not supply a recording.
The model card’s Python block is the same model id with gpu=True, and it also sets file_path to output.wav. Its command-line block does not pass --out_path:
tts --model_name tts_models/multilingual/multi-dataset/xtts_v2 \
--text "Bugün okula gitmek istemiyorum." \
--speaker_wav /path/to/target/speaker.wav \
--language_idx tr \
--use_cuda true
TTS/bin/synthesize.py on the commit above defaults --out_path to tts_output.wav. The save line prints > Saving output to and then args.out_path. This page did not run the CLI.
The server the README ships
The README’s Docker section publishes port 5002 and then starts the server with a different model id:
docker run --rm -it -p 5002:5002 --entrypoint /bin/bash ghcr.io/coqui-ai/tts-cpu
python3 TTS/server/server.py --list_models
python3 TTS/server/server.py --model_name tts_models/en/vctk/vits
The next sentence says you can then use the TTS server at http://[::1]:5002/. TTS/server/server.py on the commit above defines --port with default 5002, and app.run uses host :: and port=args.port. The model name in that Docker example is tts_models/en/vctk/vits, not the XTTS-v2 id. This page did not start the server and did not pass the XTTS-v2 id to it.
The image name in that command is tts-cpu. The README points at the docs for GPU images and does not print a GPU image name in the block above. This page does not add one.
From your own computer, the port in that Docker line is 5002. How to use SSH port forwarding on a cloud GPU is the tunnel. This page does not add a second port.
Where the audio is saved
The README Python example sets file_path to output.wav. The model card Python example sets the same path. The model card CLI block does not pass --out_path, and synthesize.py defaults that flag to tts_output.wav. Copy the file the command you ran actually wrote. This page did not run either command.
When it fails
CUDA out of memory. The README and the model card do not print an out-of-memory flag or a GB target. The docs sentence about disabling sentence splitting says “more VRAM” and prints no GB figure. If the process raises that error, use how to fix CUDA out of memory on a cloud GPU.
“CUDA error: no kernel image is available for execution on the device” on an RTX 5090. The README does not pin torch and does not name compute capability 12.0. The RTX 5090 guide says that card is compute capability 12.0 (sm_120) and that PyTorch 2.7 and later, on a build for CUDA 12.8 or newer, is the line that announced support. This page did not install a torch wheel and did not re-test this package on an RTX 5090. Catalog RTX 5090 and RTX 5090D are 32. That is the catalog number only.
Save the audio, then destroy
Copy output.wav, or tts_output.wav if that is the path the CLI used, off the instance before you destroy it. Save your work before you destroy a cloud GPU is the checklist. The terms say data on local instance storage is permanently deleted when the instance is destroyed.
The pricing page FAQ states the billing rule in these words:
Per-minute options have a 1-minute minimum; unused prepaid minutes are refunded when you destroy the instance. Some configurations use whole-hour billing with a 1-hour minimum; unused time within a charged hour is not refunded on voluntary stop. The billing period, minimum charge and initial prepayment are shown before confirmation. No subscription.
Prices are not copied here.
Frequently asked questions
How much VRAM does the XTTS-v2 model card publish?
The coqui-ai/TTS README and the XTTS-v2 model card publish no GB figure. The model card says voice cloning uses a 6-second audio clip, 17 languages, and a 24khz sampling rate. The README news bullets say 16 languages in one line and 13 languages in another. A news bullet says streaming latency is <200ms. This page did not measure that latency and does not collapse the language counts. The TTS 0.22.0 docs page says disabling sentence splitting uses more VRAM and prints no GB figure. Every vram_gb in https://cloudgpu.app/gpu-prices.json (updated_at 2026-11-13T01:07:50.488Z) is 8 or higher. This page does not mark a row as enough. Which listing you can start is on https://cloudgpu.app/deploy.
Which repository does this page follow?
The model card Code section links https://github.com/coqui-ai/TTS. That README does not link a fork. This page copies pip install TTS and the Python example from that README. The idiap/coqui-ai-TTS README says it is a fork of the original, unmaintained repository, and that the new PyPI package is coqui-tts. This page does not copy the idiap install lines. The commits API for coqui-ai/TTS branch dev listed dbf1a08a0d4e47fdad6172e433eeb34bc6b13b4e, committed 2024-02-10. This page did not install the package.
Where is the audio saved, and does the README open a port?
The README Python example sets file_path to output.wav. The model card Python example sets the same path. The model card CLI block does not pass --out_path. synthesize.py defaults --out_path to tts_output.wav. The Docker section publishes port 5002 and starts TTS/server/server.py with model name tts_models/en/vctk/vits, not the XTTS-v2 id. server.py defaults --port to 5002 and app.run uses host ::. The README then points at http://[::1]:5002/. This page did not start that server.
What license is on the model card?
LICENSE.txt in the model repository is the Coqui Public Model License 1.0.0. It says the license allows only non-commercial use of a machine learning model and its outputs. It says a non-commercial purpose goes only so far as you do not receive any direct or indirect payment arising from the use of the model or its output. A request for the card license_link https://coqui.ai/cpml returned HTTP 404. The code LICENSE.txt is the Mozilla Public License Version 2.0, and the GitHub license field was MPL-2.0. This page does not merge those files.
Sources (read 2026-11-13, Asia/Shanghai)
- coqui-ai/TTS README (Ubuntu 18.04, Python
>= 3.9, < 3.12,pip install TTS, the clone line, the XTTS Python example, Docker port 5002, the vits server example,<200ms, the 16-language and 13-language news bullets): https://github.com/coqui-ai/TTS/blob/dev/README.md commitdbf1a08a0d4e47fdad6172e433eeb34bc6b13b4e TTS/bin/synthesize.py(--out_pathdefaulttts_output.wav) andTTS/server/server.py(--portdefault 5002, host::): that commit- Code
LICENSE.txt(Mozilla Public License Version 2.0): that repository. GitHub license field MPL-2.0 - XTTS-v2 model card (6-second clip, 17 languages, 24 kHz, Python and CLI examples,
license_namecoqui-public-model-license,gatedfalse) andLICENSE.txt(Coqui Public Model License 1.0.0): https://huggingface.co/coqui/XTTS-v2 https://coqui.ai/cpmlandhttps://coqui.ai/cpml.txtreturned HTTP 404 on 2026-11-13- idiap/coqui-ai-TTS README (fork of the original unmaintained repository, PyPI package
coqui-tts): commiteacbf8b60f9bbae6c1e18f2a2c9b739c6edde1f9. This page does not copy its install lines - XTTS docs sentence with no GB figure: https://tts.readthedocs.io/en/latest/models/xtts.html (title TTS 0.22.0)
- ComfyUI examples top-level directories (no XTTS directory): https://github.com/comfyanonymous/ComfyUI_examples commit
f9431bb000ce792094ff345446e22cac1ea6cef3 - Public GPU memory: https://cloudgpu.app/gpu-prices.json (
updated_at2026-11-13T01:07:50.488Z) and https://cloudgpu.app/v1/public/gpu-catalog (generated_at2026-11-13T01:07:55.359Z).GET /v1/public/compute-capabilitiesreturned feature flags and no GPU list.
Cards you can start are on the Deploy page. Prices are on https://cloudgpu.app/pricing and are not repeated here.
Last updated: 2026-11-13 (Asia/Shanghai).