Views
No views yet
Lightricks/LTX-2.3 — specifically the
LTX-2.3 3.3B audio-only DiT (flow-matching audio latent transformer, AVTransformer3DModel,
caption_channels=3840, metadata model_version 2.3.0). (It is LTX-2.3, not "LTX-2"; the audio
DiT is 3.3B params — the "22b" in the original filename refers to the full multimodal LTX-2.3, not
this audio branch.)ResembleAI/Dramabox) — Resemble AI's
expressive TTS, an IC-LoRA fine-tune of the LTX-2.3 3.3B audio-only model.| file | source LoRA step | flow loss | notes |
|---|---|---|---|
LAION-Box-Emotional-v0.7_best1_step850.safetensors | 850 (~epoch 9.7) | 0.111 | strongest emotional fit (recommended) |
LAION-Box-Emotional-v0.7_best2_step800.safetensors | 800 (~epoch 9.1) | 0.123 | near-best |
LAION-Box-Emotional-v0.7_best3_step150.safetensors | 150 (~epoch 1.7) | 0.145 | lightest adaptation, closest to base |
dramabox-audio-components.safetensors | — | — | VAE + vocoder + audio connector (from ResembleAI/Dramabox, ~1.9 GB). Required to turn DiT latents into a waveform. |
inference.py, download_components.py | — | — | runnable example + fetch the two third-party foundation models below |
*Emotional*.safetensors is LTX-2.3 base + DramaBox + run16 LoRA + emotion LoRA, all merged
(α=32, rank=32) — interchangeable standalone checkpoints.| role | what | where | size |
|---|---|---|---|
| audio DiT | this repo's *Emotional*.safetensors | ✅ included | 6.1 GB each |
| VAE + vocoder | dramabox-audio-components.safetensors | ✅ included | 1.9 GB |
| text / prompt encoder | unsloth/gemma-3-12b-it-bnb-4bit (Google Gemma 3 12B, 4-bit) | ⬇️ download_components.py | ~7.4 GB |
| reference denoiser (RE-USE) | nvidia/RE-USE (SEMamba) | ⬇️ download_components.py | small |
| pipeline code | DramaBox / LTX-2.3 ltx2 core + src/ | ResembleAI/Dramabox | — |
The two foundation models (Google Gemma as the prompt encoder, NVIDIA RE-USE as the reference denoiser) are not re-hosted here — they are fetched from their canonical repos bydownload_components.py, under their own licenses (Gemma / NVIDIA). Everything DramaBox/LTX-2.3-specific (the DiT + VAE + vocoder) is in this repo.
Selection note: on this small (5.6k-sample) fine-tune, flow-matching loss is flat across epochs and only weakly tied to emotional expressivity — A/B the three checkpoints on your own prompts rather than trusting the loss ranking.
1pip install torch safetensors librosa soundfile huggingface_hub transformers
2# + the DramaBox / LTX-2.3 pipeline (ltx2 core + src/) from ResembleAI/Dramabox
3python download_components.py # fetches Gemma + RE-USEsrc/inference.py)1python src/inference.py \
2 --checkpoint LAION-Box-Emotional-v0.7_best1_step850.safetensors \
3 --full-checkpoint dramabox-audio-components.safetensors \
4 --prompt "A woman, trembling with grief: 'I can't do this anymore.'" \
5 --voice-ref reference_voice.wav \
6 --output out.wav \
7 --cfg-scale 2.5 --stg-scale 1.5 --seed 42TTSServer)1import sys; sys.path.insert(0, "DramaBox/src")
2from inference_server import TTSServer
3
4tts = TTSServer(
5 checkpoint="LAION-Box-Emotional-v0.7_best1_step850.safetensors", # this DiT
6 full_checkpoint="dramabox-audio-components.safetensors", # VAE + vocoder
7 gemma_root="<gemma snapshot dir from download_components.py>", # prompt encoder
8 device="cuda", dtype="bf16", bnb_4bit=True,
9)
10tts.generate_to_file(
11 prompt="An old man, warm and amused, chuckling: 'You remind me of myself at your age.'",
12 output="out.wav",
13 voice_ref="reference_voice.wav", # 5-10 s clean speaker reference
14 cfg_scale=2.5, stg_scale=1.5, duration_multiplier=1.1,
15 ref_duration=10.0, denoise_ref=True, seed=42,
16)cfg_scale (↑ = follows the emotional prompt harder, ~2–4), stg_scale (stability, ~1–2),
voice_ref (timbre), denoise_ref (clean the reference via RE-USE).tgt_latent + cond). The 3 lowest flow-matching-loss
checkpoints were merged and shipped.Σ(score − per-dim mean) were kept.
Dataset: TTS-AGI/emotional-voice-acting-subset-v0.7 (private).