Spaces:
Running on Zero
Running on Zero
Commit History
-
Theme embedded browser runtime via iframe <head> injection Running
Inject a <style> into the runtime iframe's <head> from the parent (the iframe is same-origin so contentDocument is reachable). The style tag is in <head>, which the foldkit SPA never re-renders, so the rules survive every re-mount. A MutationObserver is also registered on the runtime's #root to re-tag any advanced section that appears later (Compute backend, Voice controls, Playback mode, Runtime, Logs) with .studio-adv-section, hidden by default and revealed when an injected Advanced toggle adds body.studio-adv-open. Same compact model picker + empty-space fixes as before. Co-Authored-By: Claude <noreply@anthropic.com>5f8608d -
Revert srcdoc proxy iframe; load browser runtime directly
The srcdoc-proxy approach to theming the embedded runtime produced a 'Unexpected token }' error in the browser (likely from inlining script strings containing </script> fragments). Without that approach, the runtime's foldkit SPA couldn't be reliably themed from the parent. This loads the embedded WebGPU runtime via a plain iframe at its own URL, reverting to the original setup. The browser tab shows the runtime's own native UI (which is already a polished standalone app). The hosted app keeps its dark Apple-studio theme unchanged. Co-Authored-By: Claude <noreply@anthropic.com>8769af1 -
Proxy iframe via srcdoc so theme + Advanced toggle apply at first paint
The previous approach (post-load DOM injection) was unreliable against the foldkit SPA's re-renders, so the embedded runtime kept its light theme and Compute Backend stayed visible. This change fetches /web_runtime/index.html?embed=1 from the parent and inlines the dark studio CSS into <head> and the advanced-section tagger + Advanced toggle injector into <body>, then loads the result via frame.srcdoc with a <base href='/web_runtime/'>. The runtime's own JS still loads from the same paths, but the studio theme is now present from first paint and survives every re-render. Compute Backend (Auto/WebGPU/WASM) is tagged .studio-adv-section and hidden until Advanced is opened. Co-Authored-By: Claude <noreply@anthropic.com>9907d5b -
Compute Backend in Advanced + kill empty space in browser app
Browser runtime: - MutationObserver inside the iframe re-tags anything added by later foldkit renders, so Compute Backend (Auto/WebGPU/WASM) and any advanced section reliably gets .studio-adv-section and stays hidden until the Advanced toggle is opened. - Inject the Advanced toggle button with a fallback re-injector on DOM mutation, so the toggle survives SPA re-renders. - Explicit CSS hide of .grid.grid-cols-3.studio-adv-section as a hard fallback for the compute backend grid. - Kill the empty space at the bottom of the compose column: .embedded-compose / .embedded-sidebar use align-self:start + flex:0 0 auto so they don't stretch; the empty border-t pt-6 wrapper and the flex.w-full download bar (when empty) are hidden; embedded-grid items align at start. Co-Authored-By: Claude <noreply@anthropic.com>4076cb2 -
Hide compare unless used + compact browser model picker, less space
Hosted: - Wrap the Model comparison block in .cmp-wrap, hidden by default; reveal it only when Compare models is clicked, and hide it again on a plain Generate. The single-model player is the default surface. Browser runtime (injected theme): - Compute backend (Auto / WebGPU / WASM) is part of the section already grouped under the Advanced toggle, so those buttons are hidden until Advanced is opened. - Compact the model picker: two-column, smaller padding/type, hide the uppercase status line and the loading bar so each model choice is a small card. - Trim extra blank space: tighter compose/sidebar padding, gaps, and section-label sizing; hide the mono size caption under the header. Co-Authored-By: Claude <noreply@anthropic.com>5deb5a0 -
Hide more in Advanced (both apps) + auto-retry transient GPU errors
Browser runtime (embedded WebGPU app): - Move Voice controls, Playback mode, Compute backend, Runtime, and Logs into a hidden state, revealed by an injected Apple-style 'Advanced' toggle. Pure-CSS visibility toggle (body.studio-adv-open), no node-moving, so it survives the SPA's re-renders. Default browser view is now Write / Model / Generate only. - Toggle re-posts a resize so the iframe height updates after reveal. Hosted app: speed + variation already in Advanced (prior commit). Frontend resilience: - withRetry() wraps synthesize and compare predict calls, auto-retrying up to 2x with backoff on transient errors (CUDA/ECC/GPU/queue/timeout/ network/5xx) — covers Hugging Face ZeroGPU hardware ECC faults that fail before the function runs; surfaces a 'retrying…' status. Co-Authored-By: Claude <noreply@anthropic.com>4fc541e -
Mobile-friendly: hide speed/variation in Advanced + responsive both apps
Hosted: - Move Speaking speed and Delivery variation into the closed Advanced disclosure alongside pitch/seed; default view is now text + voice model + Generate. Advanced uses a single-column grouped card. - Stronger breakpoints: 680/520/380 — compact padding, smaller card paddings, wrapped transport, shorter waveform, hidden mini-seek, condensed top bar, smaller type. Browser (embedded WebGPU runtime): - Inject mobile media-queries into the runtime iframe: hide the foldkit inspector/devtools pane on phones, full-width content, bigger tap targets, larger speech input, tighter spacing. - Bump mobile iframe floor to 1020px and re-measure after theme injection settles so the collapsed layout is sized correctly. Co-Authored-By: Claude <noreply@anthropic.com>44e43a7 -
Theme embedded browser runtime as dark Apple studio
Inject a comprehensive stylesheet into the WebGPU runtime iframe: - Flip all surfaces/panels: bg-white/slate-50/slate-100 -> dark wells - Override border-slate-* and text-slate-* to studio line/muted tokens - Dark speech-input + SF-style focus ring; model/segmented pills to blue - Retarget the foldkit devtools --dt-* (catppuccin) vars to studio dark - Override BM inline styles via attribute selectors (bg/cardBg/codeBg/ border/textPrimary/textSecondary/errorAccent) so waveform + code + buttons match the dark studio - SF system font, studio scrollbars, accent stays blue The runtime markup is untouched; only layered theme overrides are injected same-origin after the iframe loads. Co-Authored-By: Claude <noreply@anthropic.com>7802a41 -
Restyle studio UI dark + theme embedded browser runtime
- Dark Apple-pro-audio aesthetic (Logic/GarageBand): black canvas, SF typography, inset grouped rows, segmented controls, pill buttons, translucent sticky bar with rate/RTF meters + status LED - Simplified single flow; Advanced (pitch + seed) stays hidden - Player: now-playing badge, waveform + center line, transport, seek, VU meters, download, karaoke highlighting as spoken - Compare as two compact track cards with mini waveforms - Inject studio-theme stylesheet into the embedded browser runtime iframe (same-origin) so it matches the dark studio look Co-Authored-By: Claude <noreply@anthropic.com>237ab9a -
Redesign UI as clean Apple-style consumer audio studio
- Light SF-inspired theme: soft cards, generous spacing, rounded iOS grouped rows, pill buttons, translucent sticky top bar - Hide advanced controls (pitch + seed) behind a closed disclosure - Friendly copy and labels (variation shows 'Steady/Expressive' words) - Single-column centered page; big primary Generate + Compare models - Player rises into view with now-playing badge, waveform, transport, seek, download, and the karaoke script highlighting as spoken - Compare as two compact track cards with mini waveforms - Browser tab kept; responsive down to mobile Co-Authored-By: Claude <noreply@anthropic.com>e0b1de9 -
Fix 0-output inference causing dropped audio return
Root cause: gradio.Server infers output components from the function's return-type annotation. The endpoints had none, and 'from __future__ import annotations' stringified what little existed, so Gradio inferred 0 outputs and discarded the return ('Output components: []') — the JS client then got undefined. - Remove 'from __future__ import annotations' so annotations resolve to real type objects - Restore FileData returns with explicit -> tuple[FileData, str] and -> tuple[FileData, FileData, str] annotations (proven docs pattern) - Drop the /rendered dict route; render_wav uses tempfile FileData again - JS: accept obj.url || obj.path || string for the audio handle Co-Authored-By: Claude <noreply@anthropic.com>d994421 -
Fix audio URL handling + redesign UI as audio studio
Backend: - Endpoints now return plain serializable dicts {url, filename} instead of FileData, fixing 'Cannot read properties of undefined (reading url)' in the JS client under gradio.Server - Serve rendered WAVs via a /rendered/{name} FileResponse route with path-traversal guard; generated files live in rendered/ (gitignored) Frontend: full redesign as a professional audio studio - Top bar with brand, live SR/RTF/chars meters + status LED, tab nav - Left control rack (script, voice model, delivery, advanced, transport) - Stage with now-playing badge, transport (play/stop/restart), canvas waveform with playhead + chunk markers, seek, VU meters, status strip, karaoke script that lights up as spoken, take tools - Compare view with per-model mini waveforms, playheads, seek, download - Waveforms drawn from decoded PCM; reads res.data[0].url directly Co-Authored-By: Claude <noreply@anthropic.com>a6863b0 -
Fix app ordering + feature parity with prior app
- Define app = Server() before the @app.api decorators that reference it (was a NameError at import under Server mode) - Add concurrency_limit=1 to synthesize and compare, matching the old app's concurrency_limit=1 / default_concurrency_limit=1 queueing - Register .mjs/.wasm/.onnx/.config.json MIME types so FileResponse serves the browser ONNX runtime assets with correct content types Co-Authored-By: Claude <noreply@anthropic.com>35be21f
-
Convert to gradio.Server with custom karaoke UI
Rewrite app.py on top of gradio.Server (FastAPI + Gradio queue/ZeroGPU): - @app.api() synthesize and compare endpoints, still @spaces.GPU wrapped - render_wav returns FileData; @app.get serves index.html and web_runtime - COOP/COEP credentialless middleware for the WebGPU browser runtime Add index.html custom frontend with vanilla HTML/CSS/JS: - Hosted GPU tab + This browser (WebGPU/WASM iframe) tab - Output shows input text with a requestAnimationFrame karaoke panel that highlights the spoken chunk and autoplays audio on generate - Compare tab with two synced mini-players, scrub, WAV downloads - Same dark theme, responsive Bump README sdk_version to 6.20.0. Co-Authored-By: Claude <noreply@anthropic.com>167644a -
Replace crashing native pitch processor
87e6aa5 -
Polish unified hosted and browser runtime UI
346d2ba -
Adapt browser runtime height to layout
7bcd2b0 -
Unify hosted and browser playground UI
2ab99a5 -
Stabilize ZeroGPU audio serialization
Verified signatured127cdf -
Make embedded runtime resize seamlessly
28ff1d1 -
Unify embedded WebGPU styling
9b318e0 -
Embed browser WebGPU runtime
e1e3b69 -
Add browser WebGPU runtime option
fa98881
-
Standardize Inflect Nano display size to 3.96M
Verified signature428e952
-
Refine playground layout and long-text handling
Verified signature5a70a4f
-
Restore original playground layout with verified controls
Verified signature44574cf -
Restore original full-width playground with advanced pitch control
Verified signature996d665 -
Clarify Space title and model metadata
Verified signature0b42c42 -
Restore original playground design and add clear voice controls
Verified signature1592fcf -
Fix all component contrast in light theme
Verified signaturee0cf0d7 -
Fix light theme contrast and simplify interface
Verified signatured21437d -
Fix Gradio 6 event compatibility
Verified signaturedb228e6 -
Hide duplicate submit endpoint
Verified signature68bd7c3 -
Redesign Inflect v2 release playground
Verified signatured4cfcec
-
Stage verified Inflect v2 release playground
Verified signature65442de -
Fix context-aware address and identifier pronunciation
Verified signatureb9edac3
-
Polish public-facing Space metadata
Verified signaturebcce94f -
Silence expected inference-only checkpoint load diagnostics
Verified signaturea0c8e96 -
Update private playground to verified Micro 186K and Nano 148K finalists
Verified signature6dd01d3
-
Upload Micro checkpoint subpart 03.01
Verified signaturec92bb69 -
Upload Micro checkpoint subpart 03.01
Verified signature2ed4be3 -
Upload Micro checkpoint subpart 03.02
Verified signature5b58b69 -
Upload Micro checkpoint subpart 03.00
Verified signature5d5b5f1 -
Upload Micro checkpoint subpart 03.03
Verified signature8f77e96 -
Upload Micro checkpoint part 01
Verified signature0066f96 -
Upload Micro checkpoint part 04
Verified signature474dd07 -
Upload Micro checkpoint part 00
Verified signaturea4d8ad6 -
Upload Micro checkpoint part 02
Verified signaturec29c2a6 -
Upload Micro checkpoint part 05
Verified signature7ae91ff -
Upload Micro configuration
Verified signature76028ed