Irodori-TTS

August 10, 2026 · View on GitHub

Irodori-TTS is Japanese TTS under --family irodori_tts. It supports no-reference speech, optional reference-audio voice cloning, and instruction-based voice design.

The default downloadable package is the GGUF v4 Small Q8_0 checkpoint. v4 Small is the preferred path for new use because one checkpoint covers no-reference TTS, voice cloning, and voice design. The older v3 packages remain supported for existing users and local validation.

Variants

VariantPackageTasksNotes
v4 SmallIrodori-TTS-v4-Small-GGUFtts, clon, vdesBundles its v4 tokenizer and supports instruction/caption conditioning in the same checkpoint.
500M v3Irodori-TTS-500M-v3-GGUFtts, clonUses the shared llm-jp tokenizer layout in the original safetensors package.
600M v3 VoiceDesignIrodori-TTS-600M-v3-VoiceDesign-GGUFtts, clon, vdesAdds instruction/caption conditioning for voice design.

v4 GGUF packages are published in both q8_0 and f16. v3 GGUF packages are also available in q8_0 and f16.

v4 reference-conditioning note: Fresh v4 voice-clone or reference+instruction generations may occasionally add a short extra phrase near the end of the clip. This behavior is also reproducible in the upstream Python path with the same reference/text/seed, so it is treated as a current v4 model/runtime limitation rather than a GGUF-only issue. No-reference and instruction-only paths are usually cleaner; for reference-conditioned use, try a different seed, instruction, or explicit duration_sec if the tail matters.

Quick Start

No-reference v4 speech:

audiocpp_cli --task tts --family irodori_tts \
  --model models/Irodori-TTS-v4-Small-GGUF/irodori-tts-v4-small-q8_0.gguf \
  --backend cuda --language ja \
  --text "今日は短い確認です。やさしく、聞き取りやすい声でお願いします。" \
  --request-option no_ref=true \
  --out out.wav

v4 voice cloning:

audiocpp_cli --task clon --family irodori_tts \
  --model models/Irodori-TTS-v4-Small-GGUF/irodori-tts-v4-small-q8_0.gguf \
  --backend cuda --language ja \
  --text "どうしてもっと早く教えてくれなかったの?私、ずっと待ってたのに。" \
  --voice-ref models/Irodori-TTS-v4-Small/samples/clone_ref1.wav \
  --out out.wav

v4 voice design:

audiocpp_cli --task vdes --family irodori_tts \
  --model models/Irodori-TTS-v4-Small-GGUF/irodori-tts-v4-small-q8_0.gguf \
  --backend cuda --language ja \
  --text "本日はお越しいただき、誠にありがとうございます。" \
  --request-option instruction="落ち着いた大人の男性。深く響く声で丁寧に話している。" \
  --request-option no_ref=true \
  --request-option guidance_scale=3 \
  --out out.wav

v3 voice cloning:

audiocpp_cli --task clon --family irodori_tts \
  --model models/Irodori-TTS-500M-v3-GGUF/irodori-tts-500m-v3-q8_0.gguf \
  --backend cuda --language ja \
  --text "同じ声で短く話します。" \
  --voice-ref models/Irodori-TTS-500M-v3/samples/clone_ref1.wav \
  --request-option no_ref=false \
  --out out.wav

Request Options

v4 uses the normalized schema-v1 option names directly. New requests should use these names:

OptionValuesDefaultMeaning
languagejajaText language code; Irodori-TTS is Japanese-only.
instructiontextemptyVoice-design instruction; only useful on caption-conditioned checkpoints. Legacy caption is accepted as an alias.
no_refbooltrue unless a reference is providedUse no-reference generation. Set false with --voice-ref for reference conditioning.
num_inference_stepsinteger40RF diffusion steps.
duration_secsecondsunsetExplicit output duration; omitted uses predicted duration.
duration_scalefloat1.0Multiplier for predicted duration.
min_duration_secseconds0.5Minimum generated duration.
max_duration_secseconds30Maximum generated duration.
text_chunk_modejapanese, endlineendlineLong-form chunking mode.
text_chunk_sizeintegermodel text windowMaximum characters per outer chunk.
text_guidance_scalefloat3.0Text CFG strength.
speaker_guidance_scalefloat5.0Speaker CFG strength.
caption_guidance_scalefloat3.0Caption CFG strength.
guidance_scalefloatunsetOverride all CFG strengths when set.
guidance_modeindependent, joint, alternatingindependentCFG combination mode.
guidance_min_tfloat0.5Minimum diffusion timestep where guidance is active.
guidance_max_tfloat1.0Maximum diffusion timestep where guidance is active.
seedintegerrandomGeneration seed.
trim_tailbooltrueTrim trailing silence-like samples.

Session Options

OptionValuesDefaultMeaning
irodori_tts.weight_typenative, f32, f16, bf16, q8_0nativeModel weight storage type.
irodori_tts.codec_weight_typenative, f32, f16, q8_0nativeDACVAE codec weight storage type.
irodori_tts.mem_saverbooltrueRelease staged runtime graphs after request phases.
irodori_tts.reference_cache_slotsinteger1Prepared reference-speaker cache slots; use 0 to disable reuse.
irodori_tts.condition_graph_arena_mbMiB256Condition encoder graph arena size.
irodori_tts.rf_graph_arena_mbMiB768RF sampler graph arena size.
irodori_tts.codec_graph_arena_mbMiB512DACVAE codec graph arena size.
irodori_tts.condition_weight_context_mbMiB32Condition encoder weight metadata context size.
irodori_tts.rf_weight_context_mbMiB32RF sampler weight metadata context size.
irodori_tts.codec_weight_context_mbMiB32DACVAE codec weight metadata context size.

Compatibility

The runtime accepts the old option names below for existing local scripts and older standalone GGUF packages. Prefer the v1 names for new requests.

Legacy optionv1 option
captioninstruction
duration_secondsduration_sec
min_secondsmin_duration_sec
max_secondsmax_duration_sec
mem_saverirodori_tts.mem_saver
reference_cache_slotsirodori_tts.reference_cache_slots