Instructions to use jc-builds/Wan2.2-TI2V-5B-Turbo-iOS with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Wan2.2
How to use jc-builds/Wan2.2-TI2V-5B-Turbo-iOS with Wan2.2:
# No code snippets available yet for this library. # To use this model, check the repository files and the library's documentation. # Want to help? PRs adding snippets are welcome at: # https://github.com/huggingface/huggingface.js
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use jc-builds/Wan2.2-TI2V-5B-Turbo-iOS with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf jc-builds/Wan2.2-TI2V-5B-Turbo-iOS:Q4_K_S # Run inference directly in the terminal: llama cli -hf jc-builds/Wan2.2-TI2V-5B-Turbo-iOS:Q4_K_S
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf jc-builds/Wan2.2-TI2V-5B-Turbo-iOS:Q4_K_S # Run inference directly in the terminal: llama cli -hf jc-builds/Wan2.2-TI2V-5B-Turbo-iOS:Q4_K_S
Use pre-built binary
# Download pre-built binary from: # https://github.com/ggerganov/llama.cpp/releases # Start a local OpenAI-compatible server with a web UI: ./llama-server -hf jc-builds/Wan2.2-TI2V-5B-Turbo-iOS:Q4_K_S # Run inference directly in the terminal: ./llama-cli -hf jc-builds/Wan2.2-TI2V-5B-Turbo-iOS:Q4_K_S
Build from source code
git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-server llama-cli # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama-server -hf jc-builds/Wan2.2-TI2V-5B-Turbo-iOS:Q4_K_S # Run inference directly in the terminal: ./build/bin/llama-cli -hf jc-builds/Wan2.2-TI2V-5B-Turbo-iOS:Q4_K_S
Use Docker
docker model run hf.co/jc-builds/Wan2.2-TI2V-5B-Turbo-iOS:Q4_K_S
- LM Studio
- Jan
- Ollama
How to use jc-builds/Wan2.2-TI2V-5B-Turbo-iOS with Ollama:
ollama run hf.co/jc-builds/Wan2.2-TI2V-5B-Turbo-iOS:Q4_K_S
- Unsloth Desktop
- Docker Model Runner
How to use jc-builds/Wan2.2-TI2V-5B-Turbo-iOS with Docker Model Runner:
docker model run hf.co/jc-builds/Wan2.2-TI2V-5B-Turbo-iOS:Q4_K_S
- Lemonade
How to use jc-builds/Wan2.2-TI2V-5B-Turbo-iOS with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull jc-builds/Wan2.2-TI2V-5B-Turbo-iOS:Q4_K_S
Run and chat with the model
lemonade run user.Wan2.2-TI2V-5B-Turbo-iOS-Q4_K_S
List all available models
lemonade list
- Atomic Chat
Wan 2.2 TI2V 5B Turbo — iOS bundle
The fast one. A pre-flighted bundle of the Self-Forcing 4-step distill of Wan 2.2 TI2V 5B + UMT5-XXL Q3_K_S + the taew2_2 tiny decoder, sized for phones and run via Mirage — the on-device diffusion engine for iOS / macOS / visionOS.
Compared to the standard Wan 2.2 bundle, this one is 2.5 GB smaller and an order of magnitude faster, from three compounding tricks:
- 4 sampling steps instead of 20 — the distill bakes the denoising schedule into the weights (~5× on sampling)
- CFG 1.0 — guidance is distilled in too, so every step is one forward pass instead of two, and the negative prompt never needs encoding (~2× more)
- A 23 MB tiny decoder replaces the 1.4 GB VAE — frame decode drops from minutes to seconds
The trade: slightly softer texture and less negative-prompt control. For clips on a phone, it's the right trade.
What's inside
| File | Role | Size |
|---|---|---|
Wan2_2-TI2V-5B-Turbo-Q4_K_S.gguf |
Distilled video DiT — 5B params, Q4_K_S | 3.1 GB |
umt5-xxl-encoder-Q3_K_S.gguf |
Text encoder (multilingual T5-XXL) | 2.9 GB |
taew2_2.safetensors |
TAEHV tiny decoder for Wan 2.2's 48-ch VAE | 23 MB |
Total bundle size: ~6.0 GB (vs 8.5 GB for the standard bundle).
Quick start (Mirage)
import Mirage
let docs = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
let engine = try Engine(models: ModelFiles(
diffusionModel: docs.appendingPathComponent("Wan2_2-TI2V-5B-Turbo-Q4_K_S.gguf"),
t5Encoder: docs.appendingPathComponent("umt5-xxl-encoder-Q3_K_S.gguf"),
taeDecoder: docs.appendingPathComponent("taew2_2.safetensors")
))
let video = try await engine.generateVideo(.init(
prompt: "a golden retriever puppy running through shallow ocean waves at sunset, slow motion, cinematic",
width: 480, height: 832, // Wan's native 480p — off-distribution sizes degrade hard
frames: 13, // must be 4n+1
steps: 8, // distilled for 4; 8 is decisively sharper (see below)
cfgScale: 1.0, // guidance is baked in — do not change
flowShift: 3.0
))
cfg 1.0 is part of the model — the guidance distillation is baked into the weights, so never raise it. Steps are worth doubling: the distill targets 4, but side-by-side on an iPhone 17 Pro Max, 4-step output reads as artifact mush while 8 steps resolves recognizable subjects, lighting, and water — the community's experience with these Self-Forcing/lightx2v-style distills is the same (8 ≈ the sweet spot, no documented gains beyond). Fewer than 4 produces noise. Both text→video and image→video (pass initImage) work from the same weights.
Prompting guide
Wan conditions on UMT5-XXL, an instruction-grade multilingual encoder — it rewards full-sentence, cinematography-flavored prompts over tag soup, and it weighs the start of the prompt most heavily:
- Subject first, then motion, then camera, then scene. "A red fox stalking through snow, tracking shot, dawn mist" — in that order.
- Describe how things move, with concrete verbs: "waves crash", "the corgi paddles", "she spins slowly". Video models allocate their capacity to change-over-time.
- Direct the camera explicitly: close-up, tracking shot, slow pan, aerial view.
- Set light and mood at the end: golden hour, heavy rain, neon glow.
- One subject, one action. 2 seconds is a shot, not a film — simple, richly described scenes come out cleanest.
Fun fact from the training distribution: Wan is trained by Alibaba on a heavily Chinese-curated corpus, so iconic Chinese imagery is remarkably strong — pandas, lanterns, bamboo, misty mountains, street food, rain-slick neon streets. If you want a guaranteed-gorgeous demo clip, "a panda eating ramen in the rain under a red umbrella" practically renders itself.
English and Chinese prompts both work (bilingual training); the strongest negative prompt in the ecosystem is the upstream Chinese default (only relevant above cfg 1.0 — at cfg 1.0 the negative branch is skipped entirely).
Performance (measured via stable-diffusion.cpp on an M2 Mac, 24 GB)
480×832 · 13 frames · 4 steps · Metal DiT + CPU text encoder + tiny decoder:
| Phase | Turbo bundle | Standard bundle |
|---|---|---|
| Text encode (once, CPU) | ~34 s | ~45–115 s ×2 (pos + neg) |
| Sampling | ~52 s (4 steps × 1 pass) | ~8.5 min (20 steps × 2 passes) |
| Frame decode | 2.4 s | ~13.5 min (full VAE, tiled) |
| End to end | ~96 s | ~25 min |
Sample output
The exact clip from the measurement above — 480×832, 13 frames, 4 steps, seed 42:
Prompt: "a golden retriever puppy running through shallow ocean waves at sunset, splashing water, slow motion, cinematic lighting"
Provenance
| Component | Upstream | License |
|---|---|---|
| Base video DiT | Wan-AI/Wan2.2-TI2V-5B | Apache 2.0 |
| Self-Forcing 4-step distillation | quanhaol/Wan2.2-TI2V-5B-Turbo | see note |
| GGUF conversion | hum-ma/Wan2.2-TI2V-5B-Turbo-GGUF | Apache 2.0 |
| Text encoder GGUF | city96/umt5-xxl-encoder-gguf | Apache 2.0 |
| Tiny decoder (taew2_2) | madebyollin/taehv | MIT |
License note: the GGUF repo this bundle repackages is tagged Apache-2.0 and the base model is Apache-2.0, but the original Turbo distillation repo does not assert an explicit license of its own. If you need belt-and-suspenders licensing for commercial use, FastVideo/FastWan2.2-TI2V-5B is an explicitly Apache-2.0 3-step distill of the same base (Diffusers format — convert before use with sd.cpp).
License
Bundle and documentation: Apache 2.0. Component licenses above.
Built by
- Downloads last month
- 17
3-bit
4-bit
Model tree for jc-builds/Wan2.2-TI2V-5B-Turbo-iOS
Base model
Wan-AI/Wan2.2-TI2V-5B