DGX Spark image + video studio: one day, real numbers
The single best open-weights video model right now — Elo 1240 on the arena leaderboard, ahead of Seedance 2.0 (720p) — is one we cannot legally run. Not commercially, not personally, not at all: its license names the US an "Excluded Territory" and prohibits use of the weights and the outputs there. We only know that because we read the license text first-hand instead of trusting the blog posts hyping it.
That's the theme of this build. In one day we turned our desk-side NVIDIA DGX Spark — GB10 Grace Blackwell, 128 GB of unified memory — into a local AI image and video generation studio, running beside the LLM that was already serving on the box. The design that shipped looks meaningfully different from the design the internet would have given us, and the difference came entirely from verification.
Research first: 6 researchers, 9 adversaries
Before writing a line of infrastructure code, we ran a 15-agent research workflow: six parallel researchers covering models, frontends, and Spark-specific tuning, then nine adversarial verifiers whose only job was to check the researchers' claims against primary sources — Hugging Face API file listings, actual license texts, GitHub issues, live leaderboards. About 750k tokens of agent work, total.
Expensive? Compared to what? Here's what the adversarial pass caught:
- MiniMax H3 (Hailuo 3.0) — the Elo-1240 model above — banned for US use including outputs. The roundup posts hyping it don't mention §V.4. Rejected outright.
- "Wan 2.7 open weights" — pure SEO fabrication. The complete Wan-AI Hugging Face org listing has nothing newer than Wan 2.2 (Apache 2.0). Blogs describing 2.7's "release" are describing a model that does not exist as open weights.
- FLUX.2 klein-9B — blogs claim Apache 2.0; the actual license is non-commercial. Only the 4B variant is Apache.
- Qwen-Image-2.0 — API-only. No Hugging Face repo exists, despite confident blog claims to the contrary.
- The folklore Spark fix is wrong. Community posts tell you to run ComfyUI
with
--disable-mmapon this hardware. The PR behind that advice was closed unmerged; the real unified-memory fix is a dedicated allocator path that current ComfyUI already pins. We'd have shipped a cargo-cult flag.
If your model selection process is "read three roundup posts," you are one license clause away from a compliance problem and one fabricated release away from chasing weights that don't exist. This is the governance point we keep making: verify against primary records, not vendor or SEO folklore.
The honest quality ceiling
Here's the caveat most local-AI content omits: the best video model we can legally and locally run — LTX-2.3, synced audio+video in one pass — charts at arena Elo ~980 (its "Fast" variant), roughly even with Seedance 1.5 Pro at 1000. The frontier closed models and the license-restricted open ones are a tier above.
So the honest framing is: open local video today is Seedance-1.x class, not 2.0 class. If a vendor pitch or a blog post implies otherwise, ask for the Elo numbers. For images the story is better — our daily driver (Qwen-Image-2512, Apache 2.0) and HiDream-O1 (MIT, #2 open-weights on the arena at ~Elo 1200) are genuinely strong, with clean licenses.
The biggest speed lever wasn't hardware at all: community measurements put undistilled Wan 2.2 at 15–30+ minutes per 5-second clip on this box. The 4-step Lightning distillation LoRAs (Apache 2.0) are what make local video usable — see the numbers below.
Real GB10 numbers
All figures from our first production session, and here's the caveat that matters: the resident 35B LLM stayed loaded and serving the whole time. These are coexistence numbers, not clean-machine numbers — 57 GB was still free at video peak.
| Job | Time |
|---|---|
| First image ever, 1024², 4-step turbo | 27.35 s — including cold-loading ~30 GB of weights |
| Turbo draft, 8-step, 1664×928 | ≈50 s warm |
| Quality pass, 40-step, 1664×928 | 250 s warm (~6.3 s/step) |
| HiDream-O1, 28-step, 2048×1152 | ≈4 min |
| 5 s of 720p video (Wan 2.2 I2V, 4-step distill) | 361 s cold, including loading both 14 GB experts |
Six minutes for a five-second video clip, on a machine that was simultaneously answering LLM requests, is a real workflow — not a demo.
The workflow: cheap seeds, expensive winner
Draft-quality generation is fast enough to change how you work. Our first real deliverable ran as: an 8-seed turbo hunt (~7 minutes total), pick the winning seed, re-render it at 40 steps with face refinement, then push the master through image-to-video for a 5-second camera move.
Honesty about the drafts: the 4-step turbo LoRA occasionally duplicates the subject — 2 of our 8 seeds had a doubled figure. That's exactly why the hunt-then-rerender split works: you spend seconds finding composition and only minutes on the seed that earned it.
Pin everything: the torchaudio lesson
The whole stack is a self-built container with every layer pinned — base image, PyTorch, ComfyUI release, and all 13 custom-node packs locked to exact commits. Updates mean bumping pins and rebuilding; nothing ever self-updates on the box, and a rebuild wipes any drift.
One live failure justified the discipline the same day. Pinning torch
but leaving torchvision and torchaudio floating let the resolver pick a
torchaudio newer than its siblings — newer torchaudio dropped its strict
torch pin — and the
container crash-looped on an undefined symbol ABI error, because ComfyUI
imports torchaudio unconditionally. The matching wheel existed all along; the
resolver just wasn't required to pick it. The fix: pin the exact trio and add
a build-time import torch, torchvision, torchaudio check so the failure
moves from runtime on the box to build time.
Small lesson, general rule: a floating dependency is a decision you've delegated to a resolver that doesn't know your ABI.
The scorecard
One day of build on top of one day of research. Shipped: a pinned, rebuildable studio stack; 21 verified model files (~168 GB, every one checked against the Hugging Face API by exact path and byte size before commit); image drafts in under a minute and 720p video in six; all of it coexisting with the production LLM, zero incidents. The infrastructure lives in a private repo as code — the box itself holds no state we can't rebuild.
What we didn't get: frontier-class video (see the Elo numbers above), and two of the flashiest models on the internet — one for licensing, one for not actually existing.
Evaluating local AI models for your business?
The gap between what blogs claim about a model and what its license and repo actually say is where compliance risk lives. If you're picking models — local or API — and want the verification pass done before the commitment, that's exactly what we work through in a free 45-minute AI Opportunity Briefing. Bring the model list; we'll bring the license texts.