Local media stack - the free rail (found 2026-10-08, after John's nudge)
Local media stack - the free rail (found 2026-10-08, after John's nudge)
John pointed out we already have local image generation on the Mac, and that animation is the untried part - good for initial storyboarding. He's right, and I should have checked before reaching for the paid cloud API.
What's actually on the Mac (Dakota's Mac Studio, M5 Max, 36 GB, macOS 27)
- **Images - mflux.** Licence-clean open models, installed:
- `~/models/Qwen-Image-2.1-q4` (19 GB) - *identity anchor* (`mflux-generate-qwen-2.1 --image <ref> <strength>`)
- `~/models/flux2-klein-4b-mflux-q4` (4.3 GB) - *restaging edit* (`mflux-generate-flux2-edit`)
- `~/models/krea-2-turbo-mflux-q4` (15 GB), `krea-2-raw` (15 GB), `qwen-image-edit-mflux-q4` (27 GB)
- venv: `~/video-wan/mlx-video-gen/.venv/bin/mflux-*`
- **Video - mlx-video (Wan 2.2 TI2V 5B + Turbo LoRA).** `~/video-wan/mlx-video-gen/`
- `generate.py` - prompt→Z-Image still→Wan 2.2 animate; **patched to support `--image` (i2v)** and `--width/--height` (landscape 1280×720).
- Models: `Wan2.2-TI2V-5B-MLX` (16 GB 4-bit), Turbo LoRA rank 64.
- ~8 min for a 1.7 s clip on 32 GB; non-goal in its own AGENTS.md is storyboards/assembly.
- **LoRAs trained for Dakota:** `~/lora/{dakota_final, dakota_corr, dakota_v4, krea_dakota}` - the real identity lock.
- **Likeness test (2026-10-01)** already proved Qwen-2.1 holds the face at every strength; klein Edit restages (keeps face, changes scene) - 1 ref = best face, 2 refs = better body but face drifts.
Why this matters
- **Zero marginal cost** for storyboarding. Iterate freely.
- **Offline / private** - prompts and images never leave the Mac.
- The identity problem (T1) has a *better* local answer than cloud prompting: **Qwen-2.1 as identity anchor + a trained Dakota LoRA**, not a re-roll per shot.
The untried thing - animation (John's ask)
First test launched 2026-10-08 20:19: animate the plain room plate via Wan 2.2 i2v (slow push-in, lamp sways, she keeps writing). Output → `~/video-wan/mlx-video-gen/outputs/`. This is the first time we've animated anything on the local stack.
Cost rails
- **Storyboard / blockout / iteration → LOCAL (mflux + Wan). Free.**
- **Cloud (Google Gemini / OpenAI) → finals only**, tracked by `scripts/gen-cost-ledger.py`.
- Cloud billing truth lives on John's Google/OpenAI pages; the ledger is an *estimate*.
Conversation
Loading the conversation…
You need to subscribe before you can join in. Just an email address — no account, no password.