407 lines
11 KiB
JSON
407 lines
11 KiB
JSON
{
|
|
"schema_version": 1,
|
|
"family": "irodori_tts",
|
|
"display_name": "Irodori-TTS",
|
|
"description": "Japanese TTS model based on RF-DiT continuous audio latents, supporting zero-shot voice cloning, automatic duration prediction, multimodal voice design, and emoji-style control.",
|
|
"category": "tts",
|
|
"status": "supported",
|
|
"tasks": [
|
|
"tts",
|
|
"clone",
|
|
"design"
|
|
],
|
|
"modes": [
|
|
"offline"
|
|
],
|
|
"languages": [
|
|
"ja"
|
|
],
|
|
"capabilities": {
|
|
"clone": [
|
|
"speaker_reference"
|
|
],
|
|
"design": [
|
|
"voice_design"
|
|
]
|
|
},
|
|
"options": {
|
|
"request": [
|
|
{
|
|
"name": "language",
|
|
"type": "string",
|
|
"description": "Text language code; Irodori-TTS supports Japanese only.",
|
|
"required": false,
|
|
"default": "ja"
|
|
},
|
|
{
|
|
"name": "caption",
|
|
"type": "string",
|
|
"description": "VoiceDesign caption describing target voice identity, style, or emotion; supported only by caption-conditioned checkpoints.",
|
|
"required": false
|
|
},
|
|
{
|
|
"name": "no_ref",
|
|
"type": "bool",
|
|
"description": "Use no-reference generation; default true unless a speaker reference is provided.",
|
|
"required": false,
|
|
"default": true
|
|
},
|
|
{
|
|
"name": "num_inference_steps",
|
|
"type": "int",
|
|
"description": "RF diffusion steps; default 40.",
|
|
"required": false,
|
|
"min": 1,
|
|
"default": 40
|
|
},
|
|
{
|
|
"name": "duration_sec",
|
|
"type": "float",
|
|
"description": "Explicit output duration in seconds; must be positive when set, otherwise predicted duration is used.",
|
|
"required": false,
|
|
"min": 0.0
|
|
},
|
|
{
|
|
"name": "duration_scale",
|
|
"type": "float",
|
|
"description": "Predicted-duration multiplier; must be positive when set; default 1.0.",
|
|
"required": false,
|
|
"min": 0.0,
|
|
"default": 1.0
|
|
},
|
|
{
|
|
"name": "text_chunk_mode",
|
|
"type": "enum",
|
|
"description": "Text chunking mode; default endline.",
|
|
"values": [
|
|
"japanese",
|
|
"endline"
|
|
],
|
|
"required": false,
|
|
"default": "endline"
|
|
},
|
|
{
|
|
"name": "text_chunk_size",
|
|
"type": "int",
|
|
"description": "Maximum characters per text chunk; default uses the model text-token window.",
|
|
"required": false,
|
|
"min": 1
|
|
},
|
|
{
|
|
"name": "min_duration_sec",
|
|
"type": "float",
|
|
"description": "Minimum generated duration in seconds; must be positive and no greater than max_duration_sec; default 0.5.",
|
|
"required": false,
|
|
"min": 0.0,
|
|
"default": 0.5
|
|
},
|
|
{
|
|
"name": "max_duration_sec",
|
|
"type": "float",
|
|
"description": "Maximum generated duration in seconds; must be at least min_duration_sec; default 30.",
|
|
"required": false,
|
|
"min": 0.0,
|
|
"default": 30.0
|
|
},
|
|
{
|
|
"name": "text_guidance_scale",
|
|
"type": "float",
|
|
"description": "Text classifier-free guidance scale; default 3.0.",
|
|
"required": false,
|
|
"min": 0.0,
|
|
"default": 3.0
|
|
},
|
|
{
|
|
"name": "speaker_guidance_scale",
|
|
"type": "float",
|
|
"description": "Speaker classifier-free guidance scale; default 5.0.",
|
|
"required": false,
|
|
"min": 0.0,
|
|
"default": 5.0
|
|
},
|
|
{
|
|
"name": "caption_guidance_scale",
|
|
"type": "float",
|
|
"description": "Caption classifier-free guidance scale; default 3.0.",
|
|
"required": false,
|
|
"min": 0.0,
|
|
"default": 3.0
|
|
},
|
|
{
|
|
"name": "guidance_scale",
|
|
"type": "float",
|
|
"description": "Override all classifier-free guidance scales when set.",
|
|
"required": false,
|
|
"min": 0.0
|
|
},
|
|
{
|
|
"name": "guidance_mode",
|
|
"type": "enum",
|
|
"description": "Classifier-free guidance combination mode; default independent.",
|
|
"values": [
|
|
"independent",
|
|
"joint",
|
|
"alternating"
|
|
],
|
|
"required": false,
|
|
"default": "independent"
|
|
},
|
|
{
|
|
"name": "guidance_min_t",
|
|
"type": "float",
|
|
"description": "Minimum diffusion timestep value where guidance is active; default 0.5.",
|
|
"required": false,
|
|
"min": 0.0,
|
|
"default": 0.5
|
|
},
|
|
{
|
|
"name": "guidance_max_t",
|
|
"type": "float",
|
|
"description": "Maximum diffusion timestep value where guidance is active; default 1.0.",
|
|
"required": false,
|
|
"min": 0.0,
|
|
"default": 1.0
|
|
},
|
|
{
|
|
"name": "seed",
|
|
"type": "int",
|
|
"description": "Generation seed for reproducible output; omitted uses a random seed.",
|
|
"required": false,
|
|
"min": 0
|
|
},
|
|
{
|
|
"name": "trim_tail",
|
|
"type": "bool",
|
|
"description": "Trim trailing silence-like samples; default true.",
|
|
"required": false,
|
|
"default": true
|
|
}
|
|
],
|
|
"session": [
|
|
{
|
|
"name": "weight_type",
|
|
"type": "enum",
|
|
"description": "Model weight storage type; default native.",
|
|
"preset": "weight_type_full",
|
|
"required": false,
|
|
"default": "native"
|
|
},
|
|
{
|
|
"name": "codec_weight_type",
|
|
"type": "enum",
|
|
"description": "DACVAE codec weight storage type; default native.",
|
|
"preset": "weight_type_codec_q8",
|
|
"required": false,
|
|
"default": "native"
|
|
},
|
|
{
|
|
"name": "condition_graph_arena_mb",
|
|
"type": "int",
|
|
"description": "Condition encoder graph arena size in MiB; default 256.",
|
|
"required": false,
|
|
"min": 0,
|
|
"default": 256
|
|
},
|
|
{
|
|
"name": "rf_graph_arena_mb",
|
|
"type": "int",
|
|
"description": "RF sampler graph arena size in MiB; default 768.",
|
|
"required": false,
|
|
"min": 0,
|
|
"default": 768
|
|
},
|
|
{
|
|
"name": "codec_graph_arena_mb",
|
|
"type": "int",
|
|
"description": "DACVAE codec graph arena size in MiB; default 512.",
|
|
"required": false,
|
|
"min": 0,
|
|
"default": 512
|
|
},
|
|
{
|
|
"name": "condition_weight_context_mb",
|
|
"type": "int",
|
|
"description": "Condition encoder weight context size in MiB; default 32.",
|
|
"required": false,
|
|
"min": 0,
|
|
"default": 32
|
|
},
|
|
{
|
|
"name": "rf_weight_context_mb",
|
|
"type": "int",
|
|
"description": "RF sampler weight context size in MiB; default 32.",
|
|
"required": false,
|
|
"min": 0,
|
|
"default": 32
|
|
},
|
|
{
|
|
"name": "codec_weight_context_mb",
|
|
"type": "int",
|
|
"description": "DACVAE codec weight context size in MiB; default 32.",
|
|
"required": false,
|
|
"min": 0,
|
|
"default": 32
|
|
},
|
|
{
|
|
"name": "mem_saver",
|
|
"type": "bool",
|
|
"description": "Release staged runtime graphs after request phases; default true.",
|
|
"required": false,
|
|
"default": true
|
|
},
|
|
{
|
|
"name": "reference_cache_slots",
|
|
"type": "int",
|
|
"description": "Prepared reference-speaker cache slots; default 1.",
|
|
"required": false,
|
|
"min": 0,
|
|
"default": 1
|
|
}
|
|
],
|
|
"load": []
|
|
},
|
|
"dependencies": [],
|
|
"runtime": {
|
|
"tags": [
|
|
"gguf"
|
|
]
|
|
},
|
|
"ui": {
|
|
"recommended_package": "irodori_tts_v4_small_q8_0",
|
|
"tags": [
|
|
"TTS",
|
|
"Clone",
|
|
"Design",
|
|
"GGUF"
|
|
],
|
|
"docs": [
|
|
"docs/tts.md",
|
|
"docs/gguf.md"
|
|
]
|
|
},
|
|
"package_defaults": {
|
|
"download": {
|
|
"kind": "huggingface_snapshot",
|
|
"repo": "audio-cpp/audio.cpp-gguf",
|
|
"revision": "main",
|
|
"gated": false
|
|
}
|
|
},
|
|
"packages": [
|
|
{
|
|
"id": "irodori_tts_v4_small_q8_0",
|
|
"display_name": "Irodori-TTS v4 Small Q8_0 GGUF",
|
|
"default": true,
|
|
"format": "gguf",
|
|
"precision": "q8_0",
|
|
"target_directory": "Irodori-TTS-v4-Small-GGUF",
|
|
"files": [
|
|
"Irodori-TTS-v4-Small-GGUF/irodori-tts-v4-small-q8_0.gguf"
|
|
],
|
|
"strip_prefix": "Irodori-TTS-v4-Small-GGUF"
|
|
},
|
|
{
|
|
"id": "irodori_tts_v4_small_f16",
|
|
"display_name": "Irodori-TTS v4 Small F16 GGUF",
|
|
"format": "gguf",
|
|
"precision": "f16",
|
|
"target_directory": "Irodori-TTS-v4-Small-GGUF",
|
|
"files": [
|
|
"Irodori-TTS-v4-Small-GGUF/irodori-tts-v4-small-f16.gguf"
|
|
],
|
|
"strip_prefix": "Irodori-TTS-v4-Small-GGUF"
|
|
},
|
|
{
|
|
"id": "irodori_tts_600m_v3_voicedesign_q8_0",
|
|
"display_name": "Irodori-TTS 600M v3 VoiceDesign Q8_0 GGUF",
|
|
"format": "gguf",
|
|
"precision": "q8_0",
|
|
"target_directory": "Irodori-TTS-600M-v3-VoiceDesign-GGUF",
|
|
"files": [
|
|
"Irodori-TTS-600M-v3-VoiceDesign-GGUF/irodori-tts-600m-v3-voicedesign-q8_0.gguf"
|
|
],
|
|
"strip_prefix": "Irodori-TTS-600M-v3-VoiceDesign-GGUF"
|
|
},
|
|
{
|
|
"id": "irodori_tts_600m_v3_voicedesign_f16",
|
|
"display_name": "Irodori-TTS 600M v3 VoiceDesign F16 GGUF",
|
|
"format": "gguf",
|
|
"precision": "f16",
|
|
"target_directory": "Irodori-TTS-600M-v3-VoiceDesign-GGUF",
|
|
"files": [
|
|
"Irodori-TTS-600M-v3-VoiceDesign-GGUF/irodori-tts-600m-v3-voicedesign-f16.gguf"
|
|
],
|
|
"strip_prefix": "Irodori-TTS-600M-v3-VoiceDesign-GGUF"
|
|
},
|
|
{
|
|
"id": "irodori_tts_500m_v3_q8_0",
|
|
"display_name": "Irodori-TTS 500M v3 Q8_0 GGUF",
|
|
"format": "gguf",
|
|
"precision": "q8_0",
|
|
"target_directory": "Irodori-TTS-500M-v3-GGUF",
|
|
"files": [
|
|
"Irodori-TTS-500M-v3-GGUF/irodori-tts-500m-v3-q8_0.gguf"
|
|
],
|
|
"strip_prefix": "Irodori-TTS-500M-v3-GGUF"
|
|
},
|
|
{
|
|
"id": "irodori_tts_500m_v3_f16",
|
|
"display_name": "Irodori-TTS 500M v3 F16 GGUF",
|
|
"format": "gguf",
|
|
"precision": "f16",
|
|
"target_directory": "Irodori-TTS-500M-v3-GGUF",
|
|
"files": [
|
|
"Irodori-TTS-500M-v3-GGUF/irodori-tts-500m-v3-f16.gguf"
|
|
],
|
|
"strip_prefix": "Irodori-TTS-500M-v3-GGUF"
|
|
}
|
|
],
|
|
"sources": [
|
|
{
|
|
"format": "gguf",
|
|
"roots": {
|
|
"model": ".",
|
|
"weights": "$gguf"
|
|
},
|
|
"files": {
|
|
"model_config": "model:model_config.json"
|
|
},
|
|
"optional_files": {
|
|
"tokenizer_json": "model:tokenizer.json",
|
|
"tokenizer_v4_json": "model:tokenizer/tokenizer.json",
|
|
"pretrained_text_config": "model:text_encoder_config.json"
|
|
},
|
|
"tensors": {
|
|
"model_weights": {
|
|
"source": "weights:",
|
|
"prefix": "model_weights"
|
|
},
|
|
"codec_weights": {
|
|
"source": "weights:",
|
|
"prefix": "codec_weights"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"format": "safetensors",
|
|
"roots": {
|
|
"model": ".",
|
|
"tokenizer": "../llm-jp-3-150m",
|
|
"codec": "../Semantic-DACVAE-Japanese-32dim"
|
|
},
|
|
"files": {
|
|
"model_config": "model:model_config.json"
|
|
},
|
|
"optional_files": {
|
|
"tokenizer_json": "tokenizer:tokenizer.json",
|
|
"tokenizer_v4_json": "model:tokenizer/tokenizer.json",
|
|
"pretrained_text_config": "model:text_encoder_config.json"
|
|
},
|
|
"tensors": {
|
|
"model_weights": "model:model.safetensors",
|
|
"codec_weights": "codec:weights.safetensors"
|
|
}
|
|
}
|
|
]
|
|
}
|