Spaces:
Running on Zero
Running on Zero
Commit History
-
style: hide unstylized native file input button with .hidden-input class
75cc0e6 -
Implement collapsible sidebar deck and integrate official Resemble.AI mint-teal branding colors
97ddbe3 -
Enhance UI with a highly responsive, clean, and mobile-friendly design
5a6c23f -
Robustly handle audio_ref dict or object in generate_audio endpoint
acfc1da -
Update Pydantic to 2.11.10 to resolve Gradio 6 dependency conflict
080fa02 -
Update Gradio SDK and dependency version to 6.14.0 for Server support
86ba1e4 -
Migrate DramaBox to gradio.Server with a custom HTML/CSS/JS frontend
00b19ca
-
Update app.py
Verified signature49d22cb
-
Drop xformers: FA3 Hopper kernel crashes on ZeroGPU H200
Verified signaturexformers==0.0.32.post2 raised 'CUDA error: invalid argument' from the bundled flash-attention 3 Hopper launch template at runtime on ZeroGPU's H200. ltx_core/model/transformer/attention.py has a try/except import on xformers.ops and falls back to PytorchAttention (torch.nn.functional.scaled_dot_product_attention), which on torch 2.8 + H200 uses cuDNN/mem-efficient SDPA backends. No app code change needed.2081283 -
Bump torch 2.4.0 -> 2.8.0 for ZeroGPU compat
Verified signatureZeroGPU validator was silently tightened (now requires torch >= 2.8.0; 2.4.0 dropped). Also pins xformers==0.0.32.post2 (canonical torch-2.8 build with sm_90 wheels) and bumps bitsandbytes floor to 0.45.0.d7f5f1a
-
Add 5 long-form (~30s) examples to the Gradio Examples table
Manmay NakhashiPairs richer multi-beat scenes with gen_duration=30s in the row data so clicking generates a full half-minute clip: - 30s • Villain soliloquy (Harvey-Keitel-style) - 30s • Late-night radio monologue (old-movie host) - 30s • Stand-up wheeze-laugh (Conan-style) - 30s • Bedtime story (warm female narrator) - 30s • Sports commentary (Samuel-J-style) Existing short examples remain with gen_duration=0 (auto).36a9e0f -
Show LTX acknowledgement banner inside the Gradio app (above the fold)
Manmay NakhashiThe README ack appears below the iframe — users hit the app first. Adding a styled HTML banner directly under the title so the LTX-2 + Lightricks credit + Resemble AI branding is visible immediately on landing.040f54b -
Add Reference duration slider (3–30s, default 10s)
Manmay NakhashiExposes how many seconds of the uploaded voice reference the model conditions on. Wired through on_generate -> TTSServer.generate_to_file (ref_duration kwarg already existed). Examples updated with the new default value.433ac9f -
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 -
Move LTX acknowledgement to top of Space README, position DramaBox as Resemble AI's product
Manmay Nakhashie694869 -
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
-
Drop video_connector + video_aggregate_embed BEFORE .to(device)
Manmay NakhashiRequired for the trimmed audio-components.safetensors (video parts stripped on disk) — without this patch the missing tensors stay on the meta device and .to('cuda') errors with 'Cannot copy out of meta tensor'. Patch was applied locally for the file-trim work but never landed on the Space; this push restores the Space build.8018d88 -
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 -
Warm-load TTSServer at module level (IndexTTS pattern)
Manmay NakhashiMove the TTSServer instantiation out of the lazy _ensure_tts() helper and into module scope, mirroring how IndexTeam/IndexTTS-2-Demo wires its model. The 'spaces' package patches torch so device='cuda' at import time pins the weights into ZeroGPU's shared memory; each @spaces.GPU call maps them onto the live GPU instantly. First user request drops from ~30 s (full cold load) to ~2.5 s.ac99a44 -
Add 8 voice references + click-to-generate Examples table
Manmay NakhashiBundles short voice ref clips under assets/voices/ matched to each named scene (villain → Harvey-Keitel-style growl, talk-show wheeze → Conan, etc.). gr.Examples with run_on_click=True fills the prompt + voice ref inputs and fires generation in one click — same UX as the IndexTTS-2 demo.f1c4065 -
Replace example dropdown with click-to-generate gr.Examples table
Manmay NakhashiStandard HF Space pattern: each example row has a name + the full prompt; clicking auto-fills inputs and runs generation immediately (run_on_click=True, cache_examples=False because GPU isn't available at build time on ZeroGPU).b2203ed -
Default Gradio server to port 7860 (HF Spaces gateway expects this)
Manmay NakhashiThe previous default of 7861 caused HF's reverse proxy to return 500 for every external request: the app's internal HEAD localhost:7861 succeeded so the runtime stage stayed RUNNING, but no traffic from huggingface.co/spaces or *.hf.space ever reached the container.9165469 -
Pin pydantic==2.10.6 — root cause of the recurring bool-iter crash
Manmay NakhashiThe error in /usr/local/lib/python3.10/site-packages/gradio_client/utils.py ('if "const" in schema' against a bool) is independent of gradio version (reproduced on both 4.44.1 and 5.7.1, just at different line numbers). The trigger is pydantic 2.11+ emitting JSON schemas with the bool shorthand 'additionalProperties: True' which gradio_client's get_type can't iterate. Pydantic 2.10.6 still emits the dict form 'additionalProperties: {}', which works. Confirmed perth is NOT pulling conflicting versions: it only requires audio/ML libs (librosa, numpy, pandas, torch>=2.1.0, etc.) — none of the pydantic/gradio/fastapi/starlette stack.f9cfdad -
Disable SSR + analytics + auto-API for ZeroGPU compat
Manmay Nakhashissr_mode=False: gradio 5's server-side rendering races with ZeroGPU's GPU-fork lifecycle. show_api=False: skip JSON-schema introspection (source of the earlier bool/dict crashes). analytics=False: avoid network calls during boot.4245361 -
Bump to gradio 5.7.1; drop pydantic/starlette/fastapi 4.x compat pins
Manmay NakhashiThe 4.44.1 path requires pinning pydantic/starlette/fastapi to dodge known bugs in gradio_client 1.3.0 + the legacy TemplateResponse signature. Cleaner to upgrade to gradio 5.7.1 where those bugs are already fixed upstream.550cc4a -
Pin starlette<1.0 + fastapi<0.116 for gradio 4.44.1 TemplateResponse compat
Manmay NakhashiStarlette 1.0 removed the old TemplateResponse(name, context) positional API that gradio 4.44.1 still uses, causing 'unhashable type: dict' in Jinja2 cache (a Request object reaches the cache key). Pinning to <1.0 keeps the legacy signature alive. fastapi<0.116 keeps a starlette<1.0 in its dependency range.93ba49e -
Pin pydantic==2.10.6 to fix gradio_client schema bool TypeError
Manmay NakhashiPer HF forum (discuss.huggingface.co/t/154601), newer pydantic emits 'additionalProperties: True' schemas that gradio 4.44.1's bundled gradio_client 1.3.0 crashes on. Pinning pydantic to the last gradio-compatible release fixes it at the source. Removing the in-app monkey patch since the upstream pin is enough.96dc22c -
Pin SDK to 4.44.1 + monkey-patch gradio_client schema bool TypeError
Manmay NakhashiThe HF ZeroGPU image hardcodes gradio[oauth]==4.44.1, so we can't bump gradio. The bug ('const' in <bool> in get_type) is patched at import time by replacing gradio_client.utils.get_type and _json_schema_to_python_type with bool-tolerant wrappers.459924b -
Bump gradio to 5.x to fix gradio_client schema TypeError on bool
Manmay Nakhashi05bb874 -
Pin torch/torchaudio==2.4.0 to fix ZeroGPU libcudart.so.13 mismatch
Manmay Nakhashic0ac8ad -
Refactor for ZeroGPU: lazy TTSServer load + @spaces.GPU decorator
Manmay Nakhashi- Add 'spaces' to requirements - Move TTSServer instantiation into _ensure_tts() so the GPU isn't touched at import time - Wrap on_generate with @spaces.GPU(duration=120) - Disable torch.compile (incompatible with ZeroGPU's brief GPU windows) - Drop hardware:l40s from README frontmatter (Space hardware is now set to zero via API)b8b67ad -
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 -
Pin huggingface_hub<1.0 (gradio 4.44.1 still imports HfFolder)
Verified signature68ad4cc -
Restore Space README with sdk frontmatter
Verified signature1850702 -
DramaBox Space — initial app + vendored ltx2
Verified signature08c5e28 -
DramaBox Space README
Verified signature5d085de -
initial commit
Verified signature31ad2d7