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
396 lines
13 KiB
JSON
396 lines
13 KiB
JSON
{
|
|
"family": "fish_drama3",
|
|
"display_name": "Fish Audio Drama 3",
|
|
"description": "Fish Audio Drama 3 native MoE speech generation, voice cloning, and continuation.",
|
|
"category": "tts",
|
|
"status": "experimental",
|
|
"tasks": [
|
|
"tts",
|
|
"clone"
|
|
],
|
|
"modes": [
|
|
"offline",
|
|
"streaming"
|
|
],
|
|
"languages": [
|
|
"auto"
|
|
],
|
|
"capabilities": {
|
|
"tts": [
|
|
"long_form"
|
|
],
|
|
"clone": [
|
|
"speaker_reference"
|
|
]
|
|
},
|
|
"runtime": {
|
|
"tags": [
|
|
"gguf"
|
|
]
|
|
},
|
|
"options": {
|
|
"request": [
|
|
{
|
|
"name": "encode_reference_only",
|
|
"type": "bool",
|
|
"description": "Prepare reference VQ codes without generating speech. Use the task API to receive drama3_reference_v1 acoustic-token artifacts.",
|
|
"required": false,
|
|
"default": false
|
|
},
|
|
{
|
|
"name": "reference_text",
|
|
"type": "string",
|
|
"description": "Transcript of inline reference audio.",
|
|
"required": false
|
|
},
|
|
{
|
|
"name": "multi_reference_cond",
|
|
"type": "string",
|
|
"description": "Ordered references as JSON: [{text, audio_path or vq_codes}]. Speaker tags 0..15 select voices.",
|
|
"required": false
|
|
},
|
|
{
|
|
"name": "references",
|
|
"type": "string",
|
|
"description": "Alias of multi_reference_cond.",
|
|
"required": false
|
|
},
|
|
{
|
|
"name": "previous_takes",
|
|
"type": "string",
|
|
"description": "Continuation/edit history as a JSON array of {text, vq_codes or audio_path}; a string generates that earlier take first.",
|
|
"required": false
|
|
},
|
|
{
|
|
"name": "previous_takes_file",
|
|
"type": "string",
|
|
"description": "JSON history file containing a take object or an ordered array of earlier takes. Avoids the Windows command-line length limit for VQ grids.",
|
|
"required": false
|
|
},
|
|
{
|
|
"name": "max_tokens",
|
|
"type": "int",
|
|
"description": "Maximum generated acoustic frames per text chunk (about 21.5 frames/second).",
|
|
"required": false,
|
|
"min": 1,
|
|
"default": 1024
|
|
},
|
|
{
|
|
"name": "text_chunk_size",
|
|
"type": "int",
|
|
"description": "Maximum characters per long-form chunk.",
|
|
"required": false,
|
|
"min": 1,
|
|
"default": 128
|
|
},
|
|
{
|
|
"name": "text_chunk_mode",
|
|
"type": "enum",
|
|
"description": "Framework text chunking mode.",
|
|
"required": false,
|
|
"preset": "text_chunk_mode_full",
|
|
"default": "tag_aware"
|
|
},
|
|
{
|
|
"name": "temperature",
|
|
"type": "float",
|
|
"description": "Main and residual sampling temperature. Zero makes the initial draws greedy; semantic repeat redraws retain the fixed Drama 3 RAS settings.",
|
|
"required": false,
|
|
"min": 0,
|
|
"default": 1.0
|
|
},
|
|
{
|
|
"name": "top_p",
|
|
"type": "float",
|
|
"description": "Inclusive nucleus cutoff before top-k filtering, matching Drama 3.",
|
|
"required": false,
|
|
"min": 0,
|
|
"max": 1,
|
|
"default": 0.9
|
|
},
|
|
{
|
|
"name": "top_k",
|
|
"type": "int",
|
|
"description": "Top-k candidate count. The default 4097 keeps every candidate (no cap), as Fish's Drama 3 Space does; 30 can stall in long silences.",
|
|
"required": false,
|
|
"min": 1,
|
|
"default": 4097
|
|
},
|
|
{
|
|
"name": "seed",
|
|
"type": "int",
|
|
"description": "Reproducible native sampling seed.",
|
|
"required": false,
|
|
"min": 0
|
|
}
|
|
],
|
|
"session": [
|
|
{
|
|
"name": "perf_mode",
|
|
"type": "enum",
|
|
"description": "AR decode preset. cuda_perf enables fused MoE, 256-row attention buckets and device sampling. F16 KV storage, codec batching/overlap and prefill-cache defaults remain unchanged in both modes. Explicit session options override the preset.",
|
|
"required": false,
|
|
"values": [
|
|
"off",
|
|
"cuda_perf"
|
|
],
|
|
"default": "off"
|
|
},
|
|
{
|
|
"name": "fused_moe",
|
|
"type": "bool",
|
|
"description": "Fuse cached backbone MoE routing and SwiGLU activations. Fused arithmetic may change sampled output; prompt prefill is unchanged.",
|
|
"required": false,
|
|
"default": false
|
|
},
|
|
{
|
|
"name": "kv_cache_alignment",
|
|
"type": "int",
|
|
"description": "Cached decode attention prefix bucket size. Values above 1 retain all history while skipping unused KV capacity; execution shapes may change numerical results.",
|
|
"required": false,
|
|
"min": 1,
|
|
"default": 1
|
|
},
|
|
{
|
|
"name": "kv_cache_type",
|
|
"type": "enum",
|
|
"description": "Storage precision for full-attention backbone KV caches.",
|
|
"required": false,
|
|
"values": [
|
|
"f32",
|
|
"f16"
|
|
],
|
|
"default": "f16"
|
|
},
|
|
{
|
|
"name": "backbone_prefill_cache_mb",
|
|
"type": "int",
|
|
"description": "Bounded cache of backbone prefill graphs, in MiB. Reuses exact shapes and their CUDA captures. One active graph is retained even if larger than this budget. Zero retains only the active graph.",
|
|
"required": false,
|
|
"min": 0,
|
|
"max": 4096,
|
|
"default": 256
|
|
},
|
|
{
|
|
"name": "tower_prefill_cache_mb",
|
|
"type": "int",
|
|
"description": "Bounded cache of audio-tower prefill graphs, in MiB. Reuses exact shapes and their CUDA captures. Zero disables it.",
|
|
"required": false,
|
|
"min": 0,
|
|
"max": 4096,
|
|
"default": 256
|
|
},
|
|
{
|
|
"name": "codec_batch_frames",
|
|
"type": "int",
|
|
"description": "Streaming codec batch ceiling. Starts at one frame and grows to this size; partial final batches are flushed. Offline decoding is unchanged.",
|
|
"required": false,
|
|
"min": 1,
|
|
"default": 4
|
|
},
|
|
{
|
|
"name": "codec_async_decode",
|
|
"type": "bool",
|
|
"description": "Overlap streaming codec decoding with AR generation on the dedicated codec backend. Uses a bounded queue and waits for all audio before completing the request.",
|
|
"required": false,
|
|
"default": true
|
|
},
|
|
{
|
|
"name": "device_sampling",
|
|
"type": "bool",
|
|
"description": "Enable tower decode and codebook sampling in one cached backend graph. Disabled by default; enabled by cuda_perf unless explicitly overridden. Uses F32 probabilities; sampled outputs may differ from the host sampler.",
|
|
"required": false,
|
|
"default": false
|
|
},
|
|
{
|
|
"name": "profile_first_audio",
|
|
"type": "bool",
|
|
"description": "Emit first-audio stage timings to stderr for performance diagnosis. Disabled by default.",
|
|
"required": false,
|
|
"default": false
|
|
},
|
|
{
|
|
"name": "context_length",
|
|
"type": "int",
|
|
"description": "Cache capacity for prompt plus generated frames; includes references and history.",
|
|
"required": false,
|
|
"min": 1,
|
|
"default": 2048
|
|
},
|
|
{
|
|
"name": "cpu_expert_layers",
|
|
"type": "int",
|
|
"description": "Number of the 40 expert banks kept and evaluated on CPU; use 4 for a 24 GB profile or 24 for a 16 GB profile. Dense layers and the tower use the selected backend.",
|
|
"required": false,
|
|
"min": 0,
|
|
"max": 40,
|
|
"default": 4
|
|
},
|
|
{
|
|
"name": "disk_experts",
|
|
"type": "bool",
|
|
"description": "Read routed expert weights from GGUF on demand into a bounded cache instead of keeping full expert banks resident. Trades speed for memory; default false.",
|
|
"required": false,
|
|
"default": false
|
|
},
|
|
{
|
|
"name": "pin_experts",
|
|
"type": "bool",
|
|
"description": "Keep full expert banks in pinned host RAM for direct cache-miss uploads. Requires disk_experts and pinned host-buffer support; default false.",
|
|
"required": false,
|
|
"default": false
|
|
},
|
|
{
|
|
"name": "expert_cache_size",
|
|
"type": "int",
|
|
"description": "Resident expert slots per layer in disk_experts mode; 8 to 256. Larger caches trade memory for fewer disk reads; ignored in resident mode.",
|
|
"required": false,
|
|
"min": 8,
|
|
"max": 256,
|
|
"default": 32
|
|
},
|
|
{
|
|
"name": "disk_expert_read_threads",
|
|
"type": "int",
|
|
"description": "Host workers for copying selected GGUF experts into staging when disk_experts is enabled and pin_experts is false. Default 1 preserves serial reads; values above 1 use OpenMP or Apple dispatch.",
|
|
"required": false,
|
|
"min": 1,
|
|
"max": 64,
|
|
"default": 1
|
|
},
|
|
{
|
|
"name": "codec_encoder_f32_accumulation",
|
|
"type": "bool",
|
|
"description": "Use F32 accumulation for F16 reference-encoder GEMMs on Vulkan. Try this if voice cloning produces incomplete speech or reaches the token limit. Other backends and codec decoding are unchanged.",
|
|
"required": false,
|
|
"default": false
|
|
},
|
|
{
|
|
"name": "codec_encoder_bf16_compute",
|
|
"type": "bool",
|
|
"description": "Use BF16 reference-encoder arithmetic on CUDA with F16/BF16 codec weights; default true. Decoding is unchanged.",
|
|
"required": false,
|
|
"default": true
|
|
},
|
|
{
|
|
"name": "codec_encoder_chunk_samples",
|
|
"type": "int",
|
|
"description": "Reference-encoder convolution chunk size in samples at the codec sample rate. Use 0 for full encoding or a positive multiple of 512; default 0.",
|
|
"required": false,
|
|
"min": 0,
|
|
"default": 0
|
|
},
|
|
{
|
|
"name": "codec_backend",
|
|
"type": "enum",
|
|
"description": "Run the codec on the selected backend or on CPU.",
|
|
"required": false,
|
|
"values": [
|
|
"same",
|
|
"cpu"
|
|
],
|
|
"default": "same"
|
|
}
|
|
],
|
|
"load": []
|
|
},
|
|
"ui": {
|
|
"recommended_package": "fish_drama3_q4_experts_q8_backbone",
|
|
"tags": [
|
|
"TTS",
|
|
"Clone",
|
|
"GGUF"
|
|
],
|
|
"docs": [
|
|
"docs/models/fish_drama3.md",
|
|
"docs/gguf.md"
|
|
]
|
|
},
|
|
"package_defaults": {
|
|
"download": {
|
|
"kind": "huggingface_snapshot",
|
|
"repo": "Jmica/Drama-3-GGUF",
|
|
"revision": "main",
|
|
"gated": false
|
|
}
|
|
},
|
|
"packages": [
|
|
{
|
|
"id": "fish_drama3_q4_experts_q8_backbone",
|
|
"display_name": "Drama 3 Q4_K experts / Q8_0 backbone",
|
|
"description": "Mixed quantization with Q4_K routed experts, Q8_0 backbone matrices, and FP16 audio tower/codec.",
|
|
"default": true,
|
|
"format": "gguf",
|
|
"precision": "q4_k",
|
|
"target_directory": "Drama-3-GGUF",
|
|
"files": ["drama-3-backbone-8bit-experts-Q4_K_S.gguf"]
|
|
},
|
|
{
|
|
"id": "fish_drama3_q3_experts_q8_backbone",
|
|
"display_name": "Drama 3 Q3_K experts / Q8_0 backbone",
|
|
"description": "Mixed quantization with Q3_K routed experts, Q8_0 backbone matrices, and FP16 audio tower/codec. Experimental delivery quality.",
|
|
"format": "gguf",
|
|
"precision": "q3_k_s",
|
|
"target_directory": "Drama-3-GGUF",
|
|
"files": ["drama-3-backbone-8bit-experts-Q3_K_S.gguf"]
|
|
},
|
|
{
|
|
"id": "fish_drama3_q2_experts_q8_backbone",
|
|
"display_name": "Drama 3 Q2_K experts / Q8_0 backbone",
|
|
"description": "Mixed quantization with Q2_K routed experts, Q8_0 backbone matrices, and FP16 audio tower/codec. Use the documented CPU offload settings for smaller GPUs.",
|
|
"format": "gguf",
|
|
"precision": "q2_k",
|
|
"target_directory": "Drama-3-GGUF",
|
|
"files": ["drama-3-backbone-8bit-experts-Q2_K.gguf"]
|
|
},
|
|
{
|
|
"id": "fish_drama3_q4_backbone",
|
|
"display_name": "Drama 3 Q4_K experts / Q4_K backbone",
|
|
"description": "Q4_K routed experts and backbone matrices, Q4_0 text embedding, and FP16 audio tower/codec. Experimental delivery quality.",
|
|
"format": "gguf",
|
|
"precision": "q4_k",
|
|
"target_directory": "Drama-3-GGUF",
|
|
"files": ["drama-3-backbone-4bit-experts-Q4_K_S.gguf"]
|
|
},
|
|
{
|
|
"id": "fish_drama3_small_iq3_xxs",
|
|
"display_name": "Drama3-small IQ3_XXS",
|
|
"format": "gguf",
|
|
"precision": "iq3_xxs",
|
|
"target_directory": "Drama3-small-GGUF",
|
|
"files": ["drama3-small-IQ3_XXS.gguf"],
|
|
"download": {
|
|
"kind": "huggingface_snapshot",
|
|
"repo": "pentacoxian-dev/drama3-small-GGUF",
|
|
"revision": "main",
|
|
"gated": false
|
|
}
|
|
}
|
|
],
|
|
"sources": [
|
|
{
|
|
"format": "gguf",
|
|
"roots": {
|
|
"model": ".",
|
|
"weights": "$gguf"
|
|
},
|
|
"files": {
|
|
"config": "model:config.json",
|
|
"tokenizer_config": "model:tokenizer_config.json",
|
|
"tokenizer_json": "model:tokenizer.json"
|
|
},
|
|
"tensors": {
|
|
"model_weights": {
|
|
"source": "weights:",
|
|
"prefix": "model_weights"
|
|
},
|
|
"codec_weights": {
|
|
"source": "weights:",
|
|
"prefix": "codec_weights"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"schema_version": 1,
|
|
"dependencies": []
|
|
}
|