Spaces:
Running on Zero
Running on Zero
ACE Music Studio — UI mockups
Visual source-of-truth for the design spec at ../2026-05-18-ace-music-studio-design.md. Open the HTML files in a browser to see the rendered Brutalist Mono interface.
| File | Tabs / screens covered | Source |
|---|---|---|
01_generate_mobile_errors.html |
Generate tab fully expanded · 3 phone screens (Generate, Cover, Lyrics) · 6 error / edge-case states · in-progress generation banner | brainstorm session 24743 |
02_cover_extend.html |
Cover tab fully expanded · Extend tab fully expanded | brainstorm session 24743 |
03_edit_lyrics.html |
Edit tab fully expanded with both sub-modes (Repaint active, Flow Morph dimmed) · Lyrics tab fully expanded with Qwen 2.5 LM params | brainstorm session 24743 |
What every tab shares
- Sticky header with brand "ACE Music Studio." and CTA: Built with ♥. Drop a like · Follow @techfreakworm for what's next.
- Sidebar with 5 mode pills + session History list (desktop ≥ 1024 px)
- 2-column body: form on left, output on right
- LoRA stack section with 4 bundled preset chips + active stack rows (per-row strength slider + ×) + custom upload zone
- Advanced accordion: BPM, key/scale, time sig, sampler, language, steps, CFG, shift, negative prompt, audio format, loudness, fade in/out, seed + lock
- LM planner accordion: thinking, constrained decoding, temp / top-k / top-p / LM CFG, CoT toggles (metas / caption / lyrics / language), LM negative prompt, CoT override fields
- DCW accordion: enabled, mode (single / double), wavelet, scaler, high scaler
- Output panel: waveform · play/scrub · retake · stems (Demucs htdemucs_ft) · export (mp3 / wav / stems zip / meta JSON / share link) · full metadata JSON
What each tab adds
- Generate — duration slider, vocals/instrumental pills, CFG-interval start/end, latent shift/rescale
- Cover — reference-audio dropzone, cover-strength slider, cover-noise slider, compare-side-by-side toggle in output
- Extend — seed-audio dropzone with auto-detected BPM/key, extension prompt, extra-duration slider, repaint mode, repaint strength, latent crossfade frames, WAV crossfade seconds, chunk mask mode, seed-boundary marker on output waveform, separate "extension-only" download
- Edit — source audio + source/target lyrics, repaint-vs-flow-morph sub-mode pills, segment-selection bar with start/end timestamps, repaint sub-options (mode / chunk-mask / strength / crossfade), flow-morph sub-options (source caption / n_min / n_max / n_avg), A/B comparison in output
- Lyrics — brief, structure sequence, language, per-section line counts (verse / chorus / bridge), tone descriptors, rhyme preference pills (strict / loose / none), LM params accordion (temp / top-p / top-k / rep penalty / max tokens / seed / show system prompt / enforce-tag-format), quick-refinement chips (more cryptic, less rhyme, etc.), variants
Mobile (phone)
- Native
gr.Tabshorizontal scroll strip at top (icons + first label visible) - Sidebar hidden via CSS media query at
< 640 px - Output stacks below form
- Sliders bounded by parent width (the desktop's pixel-art
━characters were replaced with proper CSS slider tracks for mobile)
Error / edge states
- LoRAValidationError — toast with module-mismatch diagnostics + "Remove from stack" / "View header diagnostics" actions
- ZeroGPU timeout — auto-retry once at 2× duration, then warning toast with "Lower steps" / "Reduce duration" hints
- MPS op fallback — info toast naming the op (e.g.,
aten::_fft_r2c), CPU fallback engaged viaPYTORCH_ENABLE_MPS_FALLBACK=1 - Audio format rejected — clear constraints (wav/mp3/flac, ≤ 60 s for Cover, ≤ 50 MB) + "Auto-convert + trim" action
- First-request warm-up — informational banner ("Loading ACE-Step v1.5 XL SFT into MPS memory ~45 s")
- In-progress generation —
gr.Progress-driven banner with step / total, ETA, elapsed, cancel link
Note on the "approve / revise" cards
Each HTML file has a card-options block at the bottom — vestigial from the visual-companion brainstorm flow. It's harmless when viewed outside the companion (the toggleSelect call is a no-op without the companion's helper.js).
If they bother you, delete the trailing <div class="options">…</div> block from each file. Otherwise leave them — they document which question each mockup answered.