Wan 2.2 lokaal draaien: video met AI op je eigen videokaart
Wan 2.2 TI2V 5B lokaal in ComfyUI: test op RTX 4090, generatietijd, VRAM-gebruik, vier videoclips en vergelijking met cloudgeneratoren.

👁 123 keer gelezen
Wan 2.2 is een gratis videomodel van Alibaba dat je op je eigen computer kunt draaien en commercieel mag gebruiken. Op 26 september 2026 genereerden we er vier 5-seconden clips van 720p mee op een RTX 4090, in ComfyUI, met de kleinste versie TI2V 5B. Eén clip kostte de kaart ongeveer 4 minuten. Hieronder alle vier de clips zonder bewerkingen, met tijd, geheugengebruik en fouten die je met het blote oog kunt zien.
In het kort
Wan 2.2 5B maakt degelijke 5-seconden shots van 1280×704 in ongeveer 4 minuten en praktisch gratis (ongeveer 2 dollarcent aan stroom per clip). Het beste lukken statische shots met sfeer: regenachtige straat, landschap, eenvoudige 2D-animatie. Het model raakt de weg kwijt bij fysica en details. Koffie in een kopje scheen door het porselein heen, en een lama begon te grazen in plaats van zijn hoofd te draaien. Voor schetsen, achtergronden en werkmateriaal is het prima. Voor een klantadvertentie neem je beter een betaalde generator, zoals Wan 3.0 in de cloud.
Wat is Wan 2.2 en welke versie werkt thuis
Wan 2.2 is een familie van open videomodellen van het Wan-AI-team bij Alibaba, uitgebracht onder Apache 2.0-licentie. Grotere varianten (14 miljard parameters) hebben veel meer geheugen nodig dan een typische gamingkaart heeft. De versie TI2V 5B heeft 5 miljard parameters en maakt video zowel vanuit tekst als vanuit een startafbeelding. Je kunt hem op één zo’n kaart draaien. We gebruikten de kant-en-klare bestanden die het ComfyUI-team heeft voorbereid:
- model
wan2.2_ti2v_5B_fp16.safetensors- 10,0 GB, - tekstencoder
umt5_xxl_fp8_e4m3fn_scaled.safetensors- 6,7 GB, - VAE
wan2.2_vae.safetensors- 1,4 GB.
De bestanden komen in de mappen models/diffusion_models, models/text_encoders en models/vae in ComfyUI. Hoe je ComfyUI zelf opzet, beschrijven we in de handleiding ComfyUI vanaf nul.
Instellingen en metingen
Elke clip: 1280×704, 121 frames bij 24 fps (5,04 s), 20 stappen, CFG 5, sampler uni_pc, shift 8. Dit zijn de instellingen uit de officiële ComfyUI-template voor Wan 2.2 5B. Kaart: RTX 4090 24 GB, Windows 11, ComfyUI 0.37.
| Clip | Generatietijd | Piek videokaartgeheugen | Gemiddeld stroomverbruik |
|---|---|---|---|
| Koffie (eerste, met laden model) | 574 s | 23,6 GB | 141 W |
| Tram in regen (eerste in tweede reeks) | 592 s | 23,6 GB | 146 W |
| Lama op weide | 239 s | 23,9 GB | 312 W |
| 2D-animatie met kat | 232 s | 23,4 GB | 319 W |
De eerste clip in een reeks duurt meer dan twee keer zo lang, omdat het model van schijf naar geheugen wordt geladen. Volgende clips duren ongeveer 4 minuten. De geheugenpiek omvat ongeveer 3,4 GB die eerder door systeem en browser werden gebruikt, dus Wan zelf had ongeveer 20 GB nodig. Op kaarten met 12-16 GB verplaatst ComfyUI een deel van het model naar het RAM-geheugen. Dat werkt, maar genereren duurt langer. Dat hebben we niet gemeten.
Clips: wat lukte en wat niet
1. Koffie inschenken in kopje
2. Tram in de regen
3. Lama op bergweide
4. 2D-animatie: nachtwerk en kat
Het patroon is duidelijk: hoe minder beweging en fysica, hoe beter. Shots “vanaf statief” met beweging op de achtergrond (regen, tram, bladeren) komen overtuigend over. Precieze handelingen, zoals vloeistof inschenken of een specifiek gebaar van een dier, vereenvoudigt of verdraait het model.
Wan 2.2 lokaal of cloudgenerator
| Wan 2.2 5B lokaal | Betaalde generators (Kling, Veo, Wan 3.0) | |
|---|---|---|
| Kosten clip 5 s | ca. 2 dollarcent stroom (kaart 315 W gedurende 4 min) | van enkele dollarcenten tot enkele dollars |
| Tijd | ca. 4 min | meestal 1-3 min in wachtrij |
| Resolutie | 1280×704, 24 fps | tot 1080p en meer |
| Geluid | geen | bij sommige modellen wel |
| Privacy | niets verlaat je computer | prompts en afbeeldingen gaan naar server |
| Censuur en limieten | geen daglimieten | creditlimieten en inhoudsfilters |
Prijzen van cloudgeneratoren veranderen elke week. Een actuele vergelijking staat in de hub AI-videogeneratoren. Onze mening: Wan 2.2 5B lokaal loont wanneer je tientallen werkshots, achtergronden of montage-materiaal nodig hebt, en niet één spectaculaire clip.
Kant-en-klaar script: clip uit één prompt
De modelbestanden downloadt het installatiescript uit de handleiding ComfyUI met de optie -Modele wan. Voor het genereren zelf hebben we een script gemaakt dat een prompt naar ComfyUI stuurt, op de frames wacht en ze via ffmpeg tot MP4 samenvoegt. De lengte geef je in seconden op, en het script rekent het zelf om naar het aantal frames in het formaat dat Wan vereist (4n+1). We hebben het op 26.09.2026 getest op een korte testclip: 2 seconden in 640×352, 49 frames, klaar MP4-bestand.
- Download: generuj-wideo.py (6 KB) of alle 5 scripts in één ZIP-bestand (15 KB).
- Clip 5 s 720p:
python generuj-wideo.py "a yellow tram passing a rainy street at dusk, static camera" - Snellere preview:
--sekundy 3 --szer 960 --wys 544 --kroki 12. Voor MP4 is ffmpeg nodig (winget install Gyan.FFmpeg), zonder krijg je PNG-frames.
Voordat je een script van internet draait, lees het door. Het werkt met jouw rechten. Daarom staat hieronder de volledige code, zonder inkortingen, met commentaar. De scripts staan onder MIT-licentie: je mag ze aanpassen en ook zakelijk gebruiken.
"""
generuj-wideo.py - clip met Wan 2.2 TI2V 5B via lokale ComfyUI (helderte.nl/wan-2-2/)
Auteur: Piotr Olszewski, helderte.nl. Scriptlicentie: MIT. Getest 26.09.2026: ComfyUI 0.37, RTX 4090.
Vereist: werkende ComfyUI (http://127.0.0.1:8188) met Wan 2.2 5B-bestanden
(instaluj-comfyui.ps1 -Modele wan) en ffmpeg in PATH om MP4 samen te stellen (winget install Gyan.FFmpeg).
Zonder ffmpeg blijven alleen PNG-frames over. Alleen Python 3.9+ standaardbibliotheek.
Voorbeelden:
python generuj-wideo.py "a yellow tram passing a rainy street at dusk, static camera, realistic"
python generuj-wideo.py "flat 2D animation of a cat walking across a desk" --sekundy 3 --szer 960 --wys 544
Op RTX 4090: 5 s in 1280x704 is ca. 4 minuten (eerste clip langer - laden 18 GB van schijf).
Model werkt het beste met statische camera en beweging op achtergrond, slecht met precieze fysica (inschenken, gebaren).
"""
import argparse, json, os, random, shutil, subprocess, sys, tempfile, time, urllib.parse, urllib.request, uuid
FPS = 24
NEG = "blurry, distorted, low quality, jitter, watermark, text, subtitles, static image, deformed hands, extra limbs"
def graf(polecenie, szer, wys, klatki, kroki, seed, prefiks):
# equivalent van officiële ComfyUI-template "Wan 2.2 5B text to video"
return {
"1": {"class_type": "UNETLoader", "inputs": {"unet_name": "wan2.2_ti2v_5B_fp16.safetensors", "weight_dtype": "default"}},
"2": {"class_type": "CLIPLoader", "inputs": {"clip_name": "umt5_xxl_fp8_e4m3fn_scaled.safetensors", "type": "wan", "device": "default"}},
"3": {"class_type": "VAELoader", "inputs": {"vae_name": "wan2.2_vae.safetensors"}},
"4": {"class_type": "CLIPTextEncode", "inputs": {"clip": ["2", 0], "text": polecenie}},
"5": {"class_type": "CLIPTextEncode", "inputs": {"clip": ["2", 0], "text": NEG}},
"6": {"class_type": "ModelSamplingSD3", "inputs": {"model": ["1", 0], "shift": 8.0}},
"7": {"class_type": "Wan22ImageToVideoLatent", "inputs": {"vae": ["3", 0], "width": szer, "height": wys, "length": klatki, "batch_size": 1}},
"8": {"class_type": "KSampler", "inputs": {"model": ["6", 0], "seed": seed, "steps": kroki, "cfg": 5.0, "sampler_name": "uni_pc", "scheduler": "simple",
"positive": ["4", 0], "negative": ["5", 0], "latent_image": ["7", 0], "denoise": 1.0}},
"9": {"class_type": "VAEDecode", "inputs": {"samples": ["8", 0], "vae": ["3", 0]}},
"10": {"class_type": "SaveImage", "inputs": {"images": ["9", 0], "filename_prefix": prefiks}},
}
def api(serwer, sciezka, dane=None):
req = urllib.request.Request(serwer + sciezka, data=json.dumps(dane).encode() if dane is not None else None,
headers={"Content-Type": "application/json"})
return json.load(urllib.request.urlopen(req, timeout=60))
def main():
a = argparse.ArgumentParser(description="Videoclip met Wan 2.2 5B via lokale ComfyUI")
a.add_argument("polecenie", help="shotbeschrijving (bij voorkeur in het Engels, met camerabeschrijving)")
a.add_argument("--sekundy", type=float, default=5.0, help="cliplengte (standaard 5 s)")
a.add_argument("--szer", type=int, default=1280); a.add_argument("--wys", type=int, default=704)
a.add_argument("--kroki", type=int, default=20)
a.add_argument("--seed", type=int, default=None)
a.add_argument("--serwer", default="http://127.0.0.1:8188")
a.add_argument("--wyjscie", default="wideo")
x = a.parse_args()
if x.szer % 32 or x.wys % 32:
a.error("breedte en hoogte moeten veelvouden van 32 zijn (bijv. 1280x704, 960x544)")
klatki = int(round(x.sekundy * FPS / 4)) * 4 + 1 # Wan vereist lengte 4n+1
try:
api(x.serwer, "/system_stats")
except Exception as e:
sys.exit(f"Kan geen verbinding maken met ComfyUI op {x.serwer} ({e}). Start start-comfyui.bat.")
seed = x.seed if x.seed is not None else random.randint(1, 2**31)
prefiks = f"wan_{uuid.uuid4().hex[:8]}"
print(f"Genereer {klatki} frames ({klatki / FPS:.1f} s) in {x.szer}x{x.wys}, seed {seed}...")
t0 = time.time()
pid = api(x.serwer, "/prompt", {"prompt": graf(x.polecenie, x.szer, x.wys, klatki, x.kroki, seed, prefiks), "client_id": str(uuid.uuid4())})["prompt_id"]
while True:
h = api(x.serwer, f"/history/{pid}")
if pid in h:
break
print(f"r bezig... {time.time() - t0:.0f} s", end="", flush=True)
time.sleep(2)
print()
wynik = h[pid]
if wynik.get("status", {}).get("status_str") != "success":
sys.exit("ComfyUI-fout: " + json.dumps(wynik.get("status", {}), ensure_ascii=False)[:600])
imgs = sorted([o for v in wynik["outputs"].values() for o in v.get("images", [])], key=lambda o: o["filename"])
os.makedirs(x.wyjscie, exist_ok=True)
tmp = tempfile.mkdtemp(prefix="wan_")
for i, img in enumerate(imgs):
q = urllib.parse.urlencode({"filename": img["filename"], "subfolder": img.get("subfolder", ""), "type": img.get("type", "output")})
with urllib.request.urlopen(f"{x.serwer}/view?{q}", timeout=60) as r, open(os.path.join(tmp, f"{i:04d}.png"), "wb") as f:
shutil.copyfileobj(r, f)
czas = time.time() - t0
nazwa = os.path.join(x.wyjscie, f"wan_{time.strftime('%Y%m%d_%H%M%S')}_{seed}")
if shutil.which("ffmpeg"):
subprocess.run(["ffmpeg", "-y", "-loglevel", "error", "-framerate", str(FPS), "-i", os.path.join(tmp, "%04d.png"),
"-c:v", "libx264", "-crf", "20", "-pix_fmt", "yuv420p", "-movflags", "+faststart", nazwa + ".mp4"], check=True)
shutil.rmtree(tmp, ignore_errors=True)
print(f"Klaar: {nazwa}.mp4 ({len(imgs)} frames, {czas:.0f} s)")
else:
shutil.move(tmp, nazwa + "_klatki")
print(f"Klaar: PNG-frames in {nazwa}_klatki ({czas:.0f} s). Installeer ffmpeg om MP4 te krijgen.")
if __name__ == "__main__":
main()
Zie ook: Wan AI: alle versies, prijzen en onze tests met video’s · Wan 3.0 versus Wan 2.2 op dezelfde prompts
Veelgestelde vragen
Welke videokaart heb je nodig voor Wan 2.2?
In onze test gebruikte Wan 2.2 TI2V 5B ongeveer 20 GB geheugen van de RTX 4090 bij video van 1280×704. Op kaarten met 12-16 GB werkt het langzamer, met een deel van het model in het RAM-geheugen. Grotere varianten 14B vereisen veel meer geheugen.
Hoe lang duurt het genereren van een video in Wan 2.2?
Ongeveer 4 minuten voor een 5-seconden clip van 720p (121 frames, 20 stappen) op RTX 4090, wanneer het model al geladen is. Het genereren van de eerste clip na het opstarten duurde 574 s, omdat het laden van 18 GB bestanden van schijf erbij kwam.
Is Wan 2.2 gratis en mag je het commercieel gebruiken?
Ja. De weights staan op Hugging Face onder Apache 2.0-licentie, die commercieel gebruik toestaat. Je betaalt alleen voor stroom, ongeveer 2 dollarcent per clip.
Maakt Wan 2.2 video met geluid?
Nee. Versie 5B genereert alleen beeld. Geluid moet je in de montage toevoegen.
Bronnen en controledatum
Eigen test 26.09.2026
- RTX 4090 24 GB
- ComfyUI 0.37
- meting nvidia-smi elke 0,5 s. Model en licentie: Wan-AI/Wan2.2-TI2V-5B. Bestanden voor ComfyUI: Comfy-Org/Wan_2.2_ComfyUI_Repackaged. Gecontroleerd 26 september 2026
More on this from HELDER
benchmarks·Hoeveel ChatGPT-gesprekken gebruikt OpenAI voor training?Bij één vraag per dag zijn dat 365 gesprekken per jaar. We rekenden uit hoeveel van jouw ChatGPT-gesprekken standaard worden gebruikt voor modeltraining.

