Spaces:
Running on Zero
Running on Zero
Commit History
-
Merge remote-tracking branch 'origin/develop' into add-mypy-strict-typecheck
# Conflicts: # app.py # postprocess/interpolation.py # postprocess/upscale/upscale.pyc8ec0f7
-
Support specifying an end frame (last image) for I2V generation (#41)
Unverified signatureMirrors wan2-2-i2v-v3's Last Image input: adds an optional end-frame upload in Advanced Settings, resized/cropped to match the input image's dimensions, and passes it through to WanImageToVideoPipeline(..., last_image=...). This repo pins the same diffusers==0.38.0 as the reference project, so the pipeline already supported last_image — it just wasn't wired up here. Closes #40. Claude-Session: https://claude.ai/code/session_01929npp9MCfTtGF4tyfEE5n Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>7270705 -
AOT-compile the transformer to re-enable dynamic-activation fp8 quant (#39)
Unverified signatureLoads pipe.transformer/transformer_2 via spaces.aoti_load() against thornmaze/WanTransformer3DModel-sm120-cu130-raa, confirmed reusable for WAMU_v3 (#36's architecture/hardware investigation), and switches the transformer quantization back from Float8WeightOnlyConfig to Float8DynamicActivationFloat8WeightConfig now that AOT pre-plans memory for the per-layer activation-quantize casts that config adds — the allocator churn that caused #35's eager-mode NVML crash. Needs real-GPU validation on the dev Space before rolling to prod: the AOT package was compiled against torch==2.9.1+cu130 vs. this repo's torch==2.11.0 pin, and no GPU is available in this environment to test that ABI compatibility directly. Claude-Session: https://claude.ai/code/session_01NbKYSwLurCaLK6SZ3b5EJQ Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>c2bf65e -
Quantize transformer with weight-only fp8 instead of dynamic-activation fp8 (#37)
Unverified signatureFloat8DynamicActivationFloat8WeightConfig quantizes activations on every F.linear call, which under eager execution (AOT deferred, #3) meant an unplanned CUDA allocation per linear layer per step. That allocator churn reliably crashed the prod ZeroGPU Space with an NVML assert in the caching allocator (#35). Float8WeightOnlyConfig keeps the weight-memory savings without any runtime activation-quantization allocations, trading away the fp8x8 matmul speedup until AOT compilation (#36) makes the dynamic-activation config safe again. Claude-Session: https://claude.ai/code/session_01GRZRv1d2KinVjvMhJ4c7fF Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>34c1019
-
Add mypy --strict type-check CI gate on every PR
Annotates the previously-untyped functions in app.py, model/pipeline.py, and postprocess/interpolation.py, fixes the couple of real bugs strict type-checking surfaced (deprecated Image.LANCZOS constant, an int-or-None mixing in preview_effect, a numpy float**float Any leak), and adds a pyproject.toml mypy config that exempts vendored third-party files instead of relaxing strictness project-wide. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CRfYRYPEtM8UA6mtHoKL422682589
-
Quantize text encoder/transformers to fix ZeroGPU per-call duration overrun
The full bf16 pipe packs to ~69GB (confirmed via the dev Space's "ZeroGPU tensors packing" startup log), which made per-call ZeroGPU init exceed the requested @spaces.GPU duration ("GPU task is exceeding its requested duration..."). Applies the same quantization recipe as the reference project (Int8WeightOnlyConfig on the text encoder, Float8DynamicActivationFloat8WeightConfig on both transformers) — independent of AOT compilation, which stays deferred per FR-6/C-2 (issue #3). Also pads the @spaces.GPU duration estimate's fixed overhead (15s -> 60s) since the reference project's constant was calibrated with AOT compilation, which this baseline doesn't have yet; still a rough placeholder pending empirical tuning (SRS open item #3). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>8edf057 -
Add RIFE frame interpolation stage (FR-3, FR-5, ID-1)
postprocess/interpolation.py: RIFE v4.26 (thornmaze/RIFE), fp16, 2x/4x/8x multiplier, runs on GPU inside the same @spaces.GPU allocation as generation, wired into app.py's "Video Fluidity" dropdown. Vendors model/warplayer.py, model/loss.py, and model/pytorch_msssim/ from hzwer/Practical-RIFE (MIT) since the downloaded train_log/RIFE_HDv3.py module imports from a sibling `model` package at load time. Closes #5 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>f5e3ffa -
Scaffold baseline I2V generation pipeline (FR-1, FR-2, IF-1, ENV-1, ENV-2)
Non-AOT WanImageToVideoPipeline loading of WAMU_v3, sized/duration helpers, and a Gradio UI for image+prompt input and video preview/download. AOT-compiled inference (FR-6) is deferred until AOT-package compatibility is confirmed (C-2, issue #3). Also adds the HF Space README config front matter, fixing the Space's 'Missing configuration in README' error. Closes #4 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>904e4ad