Spaces:
Build error
Build error
Commit History
-
Update app.py
Verified signaturea9dca4a -
Update app.py
Verified signature7c7cfae -
[Admin] Add NCII prompt guard for image-conditioned generations (#4)
- Add NCII prompt guard for image-conditioned generations (5d4861b08925db37f15e34503254aca9e73a7938) Co-authored-by: AK <akhaliq@users.noreply.huggingface.co>4e2a3d4
-
[Admin] Modify name for distinction with previous demos (#1)
- [Admin] Modify name for distinction with previous demos (2bfc8cd189c701d29cfc1ad5501166fc29298432)6597d77
-
Add the lightx2v Minimax-h3-Turbo LoRA as a per-request alternative
h3_lora.py now loads both turbo LoRAs and switches the folded set in place per request (unfold old / fold new, one bf16 rounding, AoTI-safe). The lightx checkpoint is PEFT-style against the diffusers tree (rank 128, alpha 8 -> fold scale 0.0625); the larry one keeps the reference key conversion. The UI checkbox becomes a LoRA dropdown (larry / lightx / off) that suggests each design point in steps (6 / 4 / 28), and the API gains a 'lora' string parameter — the legacy use_lora bool still works.456aa27
-
Mobile-friendly layout, all features kept
Stage moves above the control deck on narrow screens, the deck becomes a full-width scrolling panel with a sticky Generate button, the transport bar wraps with the progress bar on its own row, the header collapses to logo + status pill, dropzones/sliders get bigger touch targets, and inputs use 16px to stop iOS focus zoom.25c3db5 -
Default steps 4 -> 6
942d78c -
Switch to the recommended ckpt850 EMA LoRA; default steps back to 4
ckpt850 is the final checkpoint of the round and sharp at 4 steps per the updated card, so the UI/API default drops 8 -> 4. Also adds H3_LORA_STRENGTH (default 1.0), the card's sharpness/artifact dial, applied at fold time and in the per-request toggle.4512613 -
Default steps 6 -> 8 (better quality at the ckpt500 weights)
e35aff5 -
Fix LoRA toggle (zip misuse made converted a tuple), add a queue/ETA progress bar
set_enabled now iterates _delta_targets directly. The frontend uses client.submit with data+status events: the transport bar shows queue position, then fills against the queue's ETA blended with the elapsed timer, indeterminate while conditioning.90627fd -
Drop __pycache__ from tracking, add .gitignore
cbe5e63 -
Default to the ckpt500 turbo weights, add a per-request LoRA toggle
- H3_LORA default is now minimax_h3_turbo_4step_ckpt500.safetensors, the model card's recommended default (newest, sharpest, non-EMA) - the low-rank factors stay resident after the startup fold, so h3_lora.set_enabled() folds/unfolds B@A in place per request; the AoTI blocks read the same live storage. UI gets a 'Turbo LoRA' checkbox (default on), the API a use_lora parameter (default true) - default steps 4 -> 6 per the card's updated guidance (comfort zone is 6-8 at this checkpoint; 4 is softer)868ff3a -
Back to @gradio/client: ZeroGPU requires its HF iframe auth headers
The Server-mode docs are explicit that plain fetch/EventSource calls do not forward the iframe auth headers ZeroGPU quota handling needs, so bookings landed on the pod IP's shared quota. The earlier fn_index crash was a stale tab from the pre-Server build. Keeps the tuple unwrap and FileData path fallback.d82c64a -
Pass the caller's x-ip-token to the conditioner explicitly
LocalContext-based token forwarding is unreliable in Server mode, so the conditioner's ZeroGPU booking fell back to this Space's pod IP and its shared quota ('quota exceeded' despite the caller having quota). Extract the header from the injected Request and hand it to a per-request gradio_client, per the gradio ZeroGPU docs.7db57ff -
Call the v2 named-endpoint API directly, unwrap the single-Api-output tuple
- @gradio/client resolves a legacy fn_index that Server mode's internal Blocks does not have (KeyError on queue join); the v2 API (POST /gradio_api/call/v2/generate + SSE) addresses endpoints by name - the tuple return is one 'Api' output, so it arrives nested one level - whitelist OUTPUT_DIR for the /gradio_api/file= routee6d78bd -
Resolve returned FileData without a url through /gradio_api/file= (Server mode can return only path)
97f8752 -
Rename /config to /studio-config: Gradio's own client-discovery route lives at /config, and shadowing it broke @gradio/client ('Could not get API info')
b84671f -
Rebuild the UI as a custom studio frontend on gradio.Server
Server mode: @app.api(name="generate") keeps the queue / ZeroGPU / gradio_client contract (same name and signature), @app.get("/") serves a self-contained index.html — dark studio layout with a control deck (prompt, keyframe dropzones, canvas / duration / steps / seed), a preview monitor, and a transport-style report bar, driven by the @gradio/client JS package. /status and /config feed the readiness pill and the canvas list. Keyframe cover-crop moved server-side into generate so API callers get it too.299d59b -
Fold the 4-step Turbo LoRA into the transformer, default to 4 steps
Downloads larryvrh/MiniMax-H3-Turbo-Lora at startup and merges W + B@A into the bf16 weights, mirroring the diffusers key conversion (fused-QKV thirds, SwiGLU gate/value swap, shared AdaLN row layout). Folded before the AoTI package is patched in so compiled blocks carry the update. H3_LORA / H3_LORA_REPO configure it, H3_LORA=off disables.d8b48ff
-
Open badge links in a new tab
Verified signature7f2540d -
Price bookings against the AoTI blocks, generate from 2 s again, cross-link the demos
get_duration is refit on the measured AoTI per-step table, AoTI is opt-in behind H3_AOTI with a card and torch check before it loads, and the duration slider starts at 2 s again by lowering the pipeline's own floor.3a016a8 -
Start the duration slider at the 5 s the model actually generates
Verified signaturec4170c1 -
Restore encode_remote
Verified signatured957826 -
Cache the conditioner client with functools.cache, tidy comments
Verified signature5029048 -
Let gradio_client forward the caller's ZeroGPU token itself instead of pinning one by hand
Verified signaturebf1199a -
Forward the caller's ZeroGPU token to the conditioner, plainly
Verified signature9ac597f -
Bill the conditioner call to the requesting user's own ZeroGPU token, never an org token
Verified signature9a812e9 -
Pay for the conditioner call with the first ZeroGPU identity that can: the caller's token, this Space's HF_TOKEN, then none
Verified signature8e346cd -
Fall back to an anonymous conditioner call when the forwarded ZeroGPU token is refused
Verified signature1ccbe3f -
Forward the caller's ZeroGPU token to the conditioner so one request bills as one request
Verified signature9c16554 -
Load the AoTI packages from the public multimodalart/minimax-h3-aoti, move the upsample toggle under the prompt
Verified signaturea0bf481 -
Migrate to canonical diffusers PR 14371 + public MiniMaxAI/MiniMax-H3 weights, add prompt upsampling toggle
Verified signature9da256f
-
Update README.md
Verified signatureef0bfcc -
Duration slider from 2s
Verified signatured479a15 -
Lower minimum duration to 2s
Verified signature9e202f3 -
Repair and reorder the canvas table
Verified signaturec5ee652 -
Fast canvases for 4:3, 3:4 and 21:9
Verified signature4adcec8 -
Use the public conditioner without a token
Verified signature9e1b9cc -
Fast default for generation, full quality examples
Verified signature50e22ae -
Default to full resolution, full quality examples
Verified signature87f8144 -
Idiomatic ZeroGPU startup packing for the transformer
Verified signature3691fc1 -
Right size placement allowance
Verified signature8866682 -
Dynamic GPU duration fitted from probes
Verified signature9402204 -
Update app.py
Verified signaturead50e3b -
Update app.py
Verified signature7cdff33 -
Demo short description
Verified signaturecba1972 -
Rename to MiniMax H3
Verified signaturee63a181 -
Tighten description
Verified signaturea2c1a96 -
Lazy cached examples, generate defaults
Verified signaturea270ad8 -
Model description and examples
Verified signaturef3a60b2