Some checks failed
Linux Build / Linux cpu (push) Has been cancelled
Linux Build / Linux cpu-clang (push) Has been cancelled
Linux Build / Linux vulkan (push) Has been cancelled
mac-build / macOS CPU (push) Has been cancelled
Nix Build / Nix (cpu) (push) Has been cancelled
Nix Build / Nix (vulkan) (push) Has been cancelled
windows-build / Windows CPU (push) Has been cancelled
242 lines
6.9 KiB
JSON
242 lines
6.9 KiB
JSON
{
|
|
"schema_version": 1,
|
|
"family": "sopro_tts",
|
|
"display_name": "Sopro V2 Turbo",
|
|
"description": "Community Sopro V2 Turbo (samuel-vitorino/sopro-v2-turbo): a 120M zero-shot voice-cloning TTS. SentencePiece text tokenizer, style-prefix conditioned autoregressive semantic LM over FSQ tokens, rectified-flow acoustic DiT and a Vocos ISTFT vocoder at 24 kHz.",
|
|
"category": "tts",
|
|
"status": "community",
|
|
"tasks": [
|
|
"tts",
|
|
"clone"
|
|
],
|
|
"modes": [
|
|
"offline",
|
|
"streaming"
|
|
],
|
|
"languages": [
|
|
"en",
|
|
"pt",
|
|
"fr",
|
|
"de"
|
|
],
|
|
"runtime": {
|
|
"tags": [
|
|
"server"
|
|
]
|
|
},
|
|
"capabilities": {
|
|
"clone": [
|
|
"speaker_reference"
|
|
]
|
|
},
|
|
"options": {
|
|
"request": [
|
|
{
|
|
"name": "language",
|
|
"type": "string",
|
|
"description": "Language tag (en, pt, fr, de); omitted inherits transcript language, then the session default.",
|
|
"required": false
|
|
},
|
|
{
|
|
"name": "temperature",
|
|
"type": "float",
|
|
"description": "Semantic sampling temperature; nonpositive selects greedy decoding. Omitted uses checkpoint generation.temperature.",
|
|
"required": false
|
|
},
|
|
{
|
|
"name": "top_p",
|
|
"type": "float",
|
|
"description": "Semantic nucleus cutoff; values outside [0,1] are disabled/clamped by the sampler. Omitted uses checkpoint generation.top_p.",
|
|
"required": false
|
|
},
|
|
{
|
|
"name": "top_k",
|
|
"type": "int",
|
|
"description": "Semantic top-k; nonpositive disables filtering. Omitted uses checkpoint generation.top_k.",
|
|
"required": false
|
|
},
|
|
{
|
|
"name": "num_inference_steps",
|
|
"type": "int",
|
|
"description": "Positive acoustic sampling steps; omitted uses checkpoint generation.steps.",
|
|
"required": false,
|
|
"min": 1
|
|
},
|
|
{
|
|
"name": "max_duration_sec",
|
|
"type": "float",
|
|
"description": "Positive maximum segment duration; must be >= min_duration_sec. Omitted uses checkpoint generation.max_seconds.",
|
|
"required": false
|
|
},
|
|
{
|
|
"name": "min_duration_sec",
|
|
"type": "float",
|
|
"description": "Nonnegative minimum duration; must be <= max_duration_sec. Omitted uses checkpoint generation.min_seconds.",
|
|
"required": false,
|
|
"min": 0
|
|
},
|
|
{
|
|
"name": "reference_duration_sec",
|
|
"type": "float",
|
|
"description": "Positive reference window in seconds; omitted uses checkpoint generation.ref_seconds.",
|
|
"required": false
|
|
},
|
|
{
|
|
"name": "text_chunk_size",
|
|
"type": "int",
|
|
"description": "Positive codepoint budget per segment; omitted uses checkpoint generation.max_segment_chars.",
|
|
"required": false,
|
|
"min": 1
|
|
},
|
|
{
|
|
"name": "seed",
|
|
"type": "int",
|
|
"description": "Non-negative seed for semantic sampling and the acoustic noise prior; omit for a random seed.",
|
|
"required": false,
|
|
"min": 0
|
|
}
|
|
],
|
|
"session": [
|
|
{
|
|
"name": "language",
|
|
"type": "string",
|
|
"description": "Default language tag for requests that do not set one.",
|
|
"required": false,
|
|
"default": ""
|
|
},
|
|
{
|
|
"name": "voice_cache_slots",
|
|
"type": "int",
|
|
"description": "Reference voices kept prepared between requests, so a repeated voice skips the encoders and, when streaming, the prompt solve. Output is identical with or without it. A streamed 10 s voice holds about 60 MB. Default 0 (off).",
|
|
"required": false,
|
|
"min": 0,
|
|
"default": 0
|
|
},
|
|
{
|
|
"name": "matmul_weight_type",
|
|
"type": "enum",
|
|
"preset": "weight_type_full",
|
|
"description": "Storage type for the matmul weights of every stage (semantic LM, acoustic DiT, encoders, vocoder head).",
|
|
"required": false,
|
|
"default": "f32"
|
|
},
|
|
{
|
|
"name": "conv_weight_type",
|
|
"type": "enum",
|
|
"preset": "weight_type_conv",
|
|
"description": "Storage type for convolution weights (speaker/semantic encoders and the Vocos backbone).",
|
|
"required": false,
|
|
"default": "f32"
|
|
}
|
|
],
|
|
"load": []
|
|
},
|
|
"packages": [
|
|
{
|
|
"id": "sopro_v2_turbo_f16",
|
|
"display_name": "Sopro V2 Turbo F16 GGUF",
|
|
"description": "Single-file GGUF of all four stages with the config and tokenizer embedded: f16 weights, mel front ends kept in f32.",
|
|
"default": true,
|
|
"format": "gguf",
|
|
"precision": "f16",
|
|
"target_directory": "sopro-v2-turbo-GGUF",
|
|
"files": [
|
|
"sopro-v2-turbo-f16.gguf"
|
|
],
|
|
"download": {
|
|
"kind": "huggingface_snapshot",
|
|
"repo": "samuel-vitorino/sopro-v2-turbo",
|
|
"revision": "main",
|
|
"gated": false
|
|
}
|
|
},
|
|
{
|
|
"id": "sopro_v2_turbo_safetensors",
|
|
"display_name": "Sopro V2 Turbo (upstream safetensors)",
|
|
"description": "Upstream checkpoint from samuel-vitorino/sopro-v2-turbo: config.json, tokenizer.model and the four safetensors stages. Runs directly, no conversion needed.",
|
|
"format": "safetensors",
|
|
"precision": "orig",
|
|
"target_directory": "sopro-v2-turbo",
|
|
"files": [
|
|
"config.json",
|
|
"tokenizer.model",
|
|
"model.safetensors",
|
|
"semantic_encoder.safetensors",
|
|
"speaker_encoder.safetensors",
|
|
"vocoder.safetensors"
|
|
],
|
|
"download": {
|
|
"kind": "huggingface_snapshot",
|
|
"repo": "samuel-vitorino/sopro-v2-turbo",
|
|
"revision": "main",
|
|
"gated": false
|
|
}
|
|
}
|
|
],
|
|
"dependencies": [],
|
|
"ui": {
|
|
"recommended_package": "sopro_v2_turbo_safetensors",
|
|
"tags": [
|
|
"TTS",
|
|
"Clone"
|
|
],
|
|
"docs": [
|
|
"docs/models/sopro_tts.md"
|
|
]
|
|
},
|
|
"sources": [
|
|
{
|
|
"format": "gguf",
|
|
"roots": {
|
|
"model": ".",
|
|
"weights": "$gguf"
|
|
},
|
|
"files": {
|
|
"config": "model:config.json",
|
|
"tokenizer": "model:tokenizer.model"
|
|
},
|
|
"tensors": {
|
|
"model": {
|
|
"source": "weights:",
|
|
"prefix": "model"
|
|
},
|
|
"semantic_encoder": {
|
|
"source": "weights:",
|
|
"prefix": "semantic_encoder"
|
|
},
|
|
"speaker_encoder": {
|
|
"source": "weights:",
|
|
"prefix": "speaker_encoder"
|
|
},
|
|
"vocoder": {
|
|
"source": "weights:",
|
|
"prefix": "vocoder"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"format": "safetensors",
|
|
"roots": {
|
|
"model": "."
|
|
},
|
|
"files": {
|
|
"config": "model:config.json",
|
|
"tokenizer": "model:tokenizer.model"
|
|
},
|
|
"tensors": {
|
|
"model": {
|
|
"source": "model:model.safetensors"
|
|
},
|
|
"semantic_encoder": {
|
|
"source": "model:semantic_encoder.safetensors"
|
|
},
|
|
"speaker_encoder": {
|
|
"source": "model:speaker_encoder.safetensors"
|
|
},
|
|
"vocoder": {
|
|
"source": "model:vocoder.safetensors"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|