Spaces:
Running on Zero
Running on Zero
tidy the Space README
Browse files
README.md
CHANGED
|
@@ -39,25 +39,24 @@ continues instead of cutting.
|
|
| 39 |
`wan21_patches/` here are copies of the GitHub repo's; the Wan2.1 reference code is
|
| 40 |
cloned and patched at startup exactly as `setup.sh` does.
|
| 41 |
|
| 42 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 43 |
|
| 44 |
-
|
| 45 |
-
|
| 46 |
-
|
| 47 |
-
|
| 48 |
-
|
| 49 |
-
|
| 50 |
-
ZeroGPU packs it with the rest of the weights rather than making every cold worker
|
| 51 |
-
pay for a lazy 11 GB load. That is most of why this Space pulls 29 GB at startup.
|
| 52 |
-
Free text is not numerically comparable to the 96-prompt bank, though — umt5
|
| 53 |
-
embeddings differ slightly by hardware, so the same string encoded on the training
|
| 54 |
-
box is a slightly different tensor.
|
| 55 |
|
| 56 |
-
`torch.compile` of the VAE decoder is
|
| 57 |
-
|
| 58 |
-
|
| 59 |
-
|
| 60 |
-
|
| 61 |
|
| 62 |
Two more things this port had to work around, both specific to running inside a
|
| 63 |
forked ZeroGPU worker:
|
|
|
|
| 39 |
`wan21_patches/` here are copies of the GitHub repo's; the Wan2.1 reference code is
|
| 40 |
cloned and patched at startup exactly as `setup.sh` does.
|
| 41 |
|
| 42 |
+
**Steering is a schedule, not a button.** This is the one real difference from the
|
| 43 |
+
local demo. A GPU worker is forked per request and cannot be steered from outside
|
| 44 |
+
while it runs, so the swap is given up front — "switch to this at t = N seconds" —
|
| 45 |
+
rather than clicked mid-stream. The swap itself is the live one: `Engine.steer`
|
| 46 |
+
replaces the cross-attention conditioning and leaves the K/V cache in place.
|
| 47 |
|
| 48 |
+
Steers can come from the 96-prompt bank or from free text. umt5-xxl is downloaded
|
| 49 |
+
and loaded at module scope, so ZeroGPU packs it with the rest of the weights instead
|
| 50 |
+
of making every cold worker pay for a lazy 11 GB load; it is most of why this Space
|
| 51 |
+
pulls 29 GB at startup. Free text is not numerically comparable to the bank, though
|
| 52 |
+
— umt5 embeddings differ slightly by hardware, so the same string encoded on the
|
| 53 |
+
training box is a slightly different tensor.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 54 |
|
| 55 |
+
`torch.compile` of the VAE decoder is off, since it cannot run in a ZeroGPU worker,
|
| 56 |
+
and that is what keeps this Space below real time. Measured here: 386 ms to generate
|
| 57 |
+
a block and 631 ms to decode it, against a 750 ms budget — **0.74× real time**.
|
| 58 |
+
Decoding is the whole of the gap; locally, with the decoder compiled, it takes
|
| 59 |
+
343 ms and the same checkpoint sustains about 2.7× real time.
|
| 60 |
|
| 61 |
Two more things this port had to work around, both specific to running inside a
|
| 62 |
forked ZeroGPU worker:
|