Spaces:
Paused
Paused
Commit History
-
Strip non-functional buttons; prefill prompt; use NVIDIA logo
Removed elements that were either non-functional or didn't add value: - Top-left brand pill, top-right model meta pill - Three prompt-card icon buttons (Examples/Advanced/Seed) and their sheets - The unreachable Advanced settings sheet and its inputs - Bottom-right About/info FAB and the About modal - 'Idle' status text -> 'Ready' - Replaced the diamond SVG mark in the prompt card with the NVIDIA logo image from the URL the user provided - Prefilled the prompt textarea with the showcase 'red fox' prompt so users can click Generate immediately - Top-right now shows a compact info-link: NVIDIA logo + 'nvidia/Qwen-Image-Flash' + meta line ('20B params . 4-step . DMD2 . Apache-2.0') Backend payload: removed advanced controls, so the JS now hardcodes the model's tested settings (1024x1024, 4 steps, empty negative prompt, randomized seed) instead of reading them from sliders. Co-Authored-By: Claude <noreply@anthropic.com>334b2a8 -
Rebuild frontend as image-first overlay UI (Firefly-style)
Major UX shift: the generated image is the product, not a side effect. - Full-bleed stage with the image filling the entire viewport (object-fit: contain so 1024^2 is fully visible on phones). - Floating prompt card (bottom-left) replaces the entire left-side controls panel. Compact dark glass card containing: prompt textarea, examples/advanced/seed icon buttons, and the NVIDIA-green Generate button. - FAB stack (bottom-right) for Download + About icons. - Top-left brand pill, top-right model+ZeroGPU meta pill. - All advanced settings (negative prompt, width, height, steps, seed) move into popover 'sheets' that float over the image when their icon is tapped. Sheets close on click of X, Esc, or by opening another sheet. - Status toast (busy/ok/err pip) appears at top center; auto-fades after success. - Loading overlay dims the stage with a centered green ring + progress bar. - Auto-growing prompt textarea (cap 140 px) so single-line + multi-line prompts feel native. Enter su…3f42659 -
Move pipeline load to module top (build-stage cache); collapse advanced on mobile
Backend (app.py): - Revert to module-level 'pipe = QwenImagePipeline.from_pretrained(...).to("cuda")' per ZeroGPU docs: 'Lazy-loading or moving models to CUDA inside @spaces.GPU is discouraged.' The PyTorch CUDA emulation mode outside the decorator makes this safe on the CPU-only Space builder. - Crucially, from_pretrained now runs at module-import time, which the Space builder executes during the BUILD stage, before the runtime container reports 'Running.' This means the ~20 GB checkpoint lands in the cache during build, so 'Running' implies weights are ready and the first user request can begin GPU work immediately rather than waiting for a download. - Drop the cold-path 600s duration branch from _get_duration; now the cold case is just 'first GPU run after build warmup' (~30-60 s on Blackwell). Frontend (index.html): - Collapse width/height/steps/seed/negative-prompt under an 'Advanced settings' <details> disclosure. Auto-open on desktop (>= 901px), collapsed by d…b202e96 -
Reskin frontend in NVIDIA style; mobile-optimized layout
Visual system (NVIDIA-inspired): #76b900 green dominant, white surfaces, black CTA buttons with 2px ink border, sticky topbar with mark + nav, subtle triangular geometric grid background, larger type, lighter weight typography. Replaced dark theme. Mobile: three breakpoints (768px, 420px). Topbar nav hides under 768px; controls/canvas stack as a single column; sliders retain min-width; canvas viewport-height-aware (max-height 60vh on mobile); touch-friendly 16px+ text and 44px+ tap targets; check-box gets full-width on phones. Reduced-motion respect for users who prefer it. Functional: slider track now shows filled portion via CSS custom property, seed auto-syncs back to UI after generation so a randomized seed can be reused; loadSub message stays visible during warm runs. Co-Authored-By: Claude <noreply@anthropic.com>76aacd0 -
Defer pipeline load to first request; dynamic GPU duration
Previously: from_pretrained ran at module import, so the Space reported 'Running' before the ~20 GB checkpoint finished downloading. The first user request could race the download or hit ZeroGPU's queue timeout. Now: pipeline loads lazily inside the GPU handler on first call (after a real device is granted), cached for all subsequent requests. Switched to dynamic duration via @spaces.GPU(duration=_get_duration): cold returns 600s for download + CUDA load + generation; warm returns 60–180s based on steps. This avoids burning quota on every warm request while still completing the cold one, and surfaces a friendlier 'first request may take several minutes' hint in the JS frontend. Co-Authored-By: Claude <noreply@anthropic.com>1a34241 -
ZeroGPU: module-level model load, xlarge GPU + 120s duration
The full pipeline is ~28.85B params (~58GB in bf16), too large for the 48GB 'default' ZeroGPU size, so request size='xlarge' (96GB). Move the pipeline load to module level per ZeroGPU guidance: a CUDA emulation mode is active outside @spaces.GPU, so placement at startup enables optimized real-CUDA transfers (lazy loading inside the handler is discouraged). Add duration=120 to clear the 60s default for a 20B transformer over 4 steps plus VAE decode. Co-Authored-By: Claude <noreply@anthropic.com>c7cb051 -
Fix license metadata: use HF-recognized 'other' value
Co-Authored-By: Claude <noreply@anthropic.com>ef63fe8 -
Add gradio.Server app with custom frontend for Qwen-Image-Flash
Backend (app.py): gradio.Server with a queued @app.api/@spaces.GPU generate_image endpoint (4-step DMD2 config: true_cfg_scale=1.0, guidance_scale=None, width/height snapped to multiples of 16) and a static index.html homepage. Pipeline loads lazily inside the GPU handler. Frontend (index.html): self-contained vanilla HTML/CSS/JS using @gradio/client to call /generate_image through Gradio's queue. Co-Authored-By: Claude <noreply@anthropic.com>c6cb76b -
initial commit
Verified signature34406b2