Spaces:
Runtime error
Runtime error
Commit History
-
Fix voice-ref denoise crash when mamba_ssm is missingβ
The existing try/except only wrapped REUSEUpsampler construction, but the mamba_ssm import is deferred to _lazy_load() which fires from __call__. So construction silently succeeded, the session sentinel was never set, and the first generate request blew up with ModuleNotFoundError. Wrap the __call__ site too. Trip the sentinel and return the original voice unmodified - same fallback semantics as the construction failure.28b93aa
-
Long-form chunking + RE-USE on referenceβ
Port long-form generation from the upstream DramaBox repo (commit 382a37c) to the HF Space: - Auto chunk-and-stitch when the prompt's estimated (or explicit) duration exceeds the max_chunk_duration cap; quote-aware sentence splitter (new src/text_chunker.py) and shared duration estimator (new src/duration_estimator.py). Chunks are stitched with an equal-power crossfade so independently-generated joins are inaudible. - RE-USE input-side voice-reference denoise (new src/super_resolution.py). Applied to the *reference* before VAE encoding so the model conditions on a clean speaker / style anchor; the generated paralinguistic content (laughs, breaths, sighs) stays untouched. Cached per session so chunked runs don't re-denoise the same reference per chunk. Silently falls back if the mamba_ssm / causal-conv1d kernels can't be loaded. - /generate_audio API gains denoise_ref + chunking knobs with sensible defaults, so the existing index.html client (which sends only the β¦7e0eb32
-
Add explicit Target Duration slider (0β60s) + gen_duration kwargβ
Manmay Nakhashi- TTSServer.generate gains gen_duration: float = 0.0 (override estimator) - Gradio app exposes a 'Target duration (s)' slider (0 = auto) - inference.py --gen-duration help text expanded - Auto-rescale and end-of-clip patch already active for long outputs For music / multi-section scenes set the slider to 20β60 s and the auto-rescale schedule keeps the output safe at any cfg.5cc51a5 -
Revert: keep DramaBox naming (rebrand reverted per CEO)
Manmay Nakhashifdc2b0b -
Rebrand: DramaBox β LTX-2.3-Voiceβ
Manmay Nakhashi- README title + frontmatter (title, emoji, license_link, short_description) - All in-text references in docs and code - model_downloader: DRAMABOX_REPO β LTX23_VOICE_REPO, default cache β ~/.cache/ltx-2.3-voice - app.py title, prefix, log lines - HF model+space repos are renamed to ResembleAI/LTX-2.3-Voice (HF auto-redirects old paths) The on-disk safetensors filenames (`dramabox-dit-v1.safetensors`, `dramabox-audio-components.safetensors`) stay as-is to avoid an 8 GB re-upload; comment in model_downloader.py explains the leftover names.1636761 -
Patch end-of-clip silence prior at latent frame 513 for >20s outputsβ
Manmay NakhashiBase LTX-2.3 22B was trained on audio β€~20s and learned a strong 'clip-end silence' prior that lands at the next patchifier-aligned latent boundary (frame 513 = 8*64+1). For longer generations this leaks through as a ~30ms silence dip near 20.4s. Linear interpolation of frames 512-513 between neighbours 511 and 514 removes the dip cleanly. Only triggers when latent has >513 frames so shorter outputs remain byte-identical.c29ae29
-
Use richer duration estimator in warm server (sentence + non-verbal aware)β
Manmay NakhashiThe simple len*0.065+1.5 formula in inference_server.py undercounted long expressive prompts (e.g. 09_villain_sinister_laugh estimated 19.2s but actual content needs ~28s, so output was clipped). Delegate to inference.estimate_speech_duration which budgets per-sentence pauses, laugh repetitions, sighs/gasps and a 2s base padding.96ef84a -
Fetch unsloth bnb-4bit Gemma + Dramabox checkpoints from HF on startupβ
Manmay NakhashiReplaces hardcoded local paths (which only existed on the dev machine) with model_downloader.get_all_paths(). Gemma now resolves to unsloth/gemma-3-12b-it-bnb-4bit, matching the bnb_4bit=True path.8cd4942 -
DramaBox Space β initial app + vendored ltx2
Verified signature08c5e28