Backend matrix

What runs, what loads, what is only an interface.

This page is generated from CAPABILITIES blocks and BackendRegistry calls in the repository. Status labels are derived from whether synthesize() raises NotImplementedError, not from a feature wishlist.

implemented has a synthesis path scaffold loads, but falls back to a placeholder tone interface model/session loading only

Model backends

The three synthesis families.

pytorch implemented

F5-TTS (PyTorch)

F5TTSBackend · core/backend_f5.py

VRAM FLOOR1.5 GB min
SAMPLE RATE24000 Hz
PRECISIONfp32 · fp16 · int8
PLATFORMSWindows · Linux

The complete path. Uses upstream f5_tts for preprocess_ref_audio_text() and infer_process(), supports zero-shot reference audio, NFE steps, speed control and full checkpoint adapters. Weights: SWivid/F5-TTS (F5TTS_v1_Base).

  • Default backend in both CLI and GUI.
  • INT8 on CUDA is converted to FP16; CPU can use dynamic INT8.
  • Without a reference clip, falls back to the F5 example reference shipped by the package.

Declared speed multiplier: 1.0× · quality rating 5/5. These are capability metadata used by the auto-selector, not measured benchmarks.

fish-speech scaffold

Fish Speech

FishSpeechBackend · core/backend_fish.py

VRAM FLOOR2 GB min
SAMPLE RATE44100 Hz
PRECISIONfp32 · fp16 · int8 · int4
PLATFORMSWindows · Linux

Experimental integration. load() imports the Fish Speech modules, but the inference engine is never assigned, and synthesize() always reaches the placeholder-tone fallback in this revision.

  • Do not use for production or quality comparisons yet.
  • The files document the intended architecture (LLaMA semantic tokens + Firefly/DAC vocoder) but do not implement it.
  • vLLM acceleration is also not wired.

Declared speed multiplier: 1.5× · quality rating 5/5. These are capability metadata used by the auto-selector, not measured benchmarks.

gpt-sovits implemented

GPT-SoVITS

GPTSoVITSBackend · core/backend_gptsovits.py

VRAM FLOOR2 GB min
SAMPLE RATE32000 Hz
PRECISIONfp32 · fp16 · int8
PLATFORMSWindows · Linux

Calls the external GPT_SoVITS.TTS_infer_pack.TTS API with v2 or v1 pretrained paths. It is a real integration, but the dependency and weights live outside this repository.

  • Requires a GPT-SoVITS checkout and pretrained weights.
  • If the import fails, load() stores a stub and synthesis returns a 220 Hz tone with a warning.
  • Language handling follows the upstream package; the CLI passes a hint, not a full language matrix.

Declared speed multiplier: 1.2× · quality rating 5/5. These are capability metadata used by the auto-selector, not measured benchmarks.

Runtime targets

Registered in the registry, status included.

These classes are registered with BackendRegistry. Several can load a compiled model, ONNX session or GGUF file — none of them synthesize audio in this release.

Runtime backend capabilities
TargetTypeStatus VRAMPrecisionCompile PlatformsSynthesis
DirectMLDirectMLBackend runtime interface 2 GB min fp32, fp16 required WIN not implemented
F5-TTS (PyTorch)F5TTSBackend model implemented 1.5 GB min fp32, fp16, int8 no WIN + LINUX yes
Fish SpeechFishSpeechBackend model scaffold 2 GB min fp32, fp16, int8, int4 no WIN + LINUX yes
GPT-SoVITSGPTSoVITSBackend model implemented 2 GB min fp32, fp16, int8 no WIN + LINUX yes
llama.cpp (GGUF)LlamaCppBackend runtime interface 0.5 GB min q2_k, q3_k_m, q4_k_m, q5_k_m, q8_0 no WIN + LINUX not implemented
ONNX RuntimeONNXBackend runtime interface CPU capable fp32, fp16, int8 required WIN + LINUX not implemented
OpenVINOOpenVINOBackend runtime interface CPU capable fp32, fp16, int8 required WIN + LINUX not implemented
TensorRT-LLMTensorRTBackend runtime interface 2 GB min fp16, int8, fp8 required WIN + LINUX not implemented
vLLMVLLMBackend runtime interface 3 GB min fp16, int8, int4-gptq, int4-awq no LINUX not implemented

How a backend is selected

  1. 01
    CLI uses the literal --backend value (default f5-tts).
  2. 02
    GUI switches the inference manager's backend from the TTS/Backend tabs.
  3. 03
    Auto-selector scores registered backends by VRAM, platform and declared quality/speed. It is available as get_best_backend() but the GUI does not force it.
  4. 04
    InferenceManager resolves auto to CUDA when torch reports it, otherwise CPU.

SELECTION CASCADE

--backend → InferenceManager → backend class
--device auto → CUDA if available → CPU
--quantization → backend load → effective precision

The auto-selector can recommend TensorRT or vLLM on capable hardware even though those synthesis paths are incomplete. Treat its recommendation as a capability hint, not a promise.

Precision

What the flags really do.

CLI valueF5-TTS behaviourNotes
fp16Model runs in half precision.The useful GPU default.
int8CUDA → FP16 with a log message; CPU → torch.quantization.quantize_dynamic on Linear layers.CLI default. Not a true CUDA INT8 kernel.
int4Accepted by argparse; no F5-TTS quantization path.Do not expect a VRAM reduction.
gguf-q4 / gguf-q8Accepted by argparse; GGUF conversion is a placeholder in core/quantization.py.Useful only if you already have a compatible GGUF and a working runtime, which this release does not provide.
fp32 / bf16Known to the quantization catalogue; not exposed by the CLI.Backend classes default to FP16.