WAN 2.5 ComfyUI Workflow: Bester Node Graph + Einstellungen für stabile Ergebnisse
WAN 2.5 in ComfyUI: Ein Workflow für stabile Video-Generierung
Hallo, ich bin Dora. An jenem Tag nähte ich kurze Produktschleifen für eine Demo, und mein übliches Setup driftete ständig ab – Charakter-Ärmel wechselten, der Hintergrund pulsierte, die Bewegung wackelte an den Rändern. Nicht furchtbar, nur ablenkend. Ich wollte einen Video-Workflow, der sich wie eine ruhige Hand verhielt, nicht wie ein Ratespiel.
Ich verbrachte ein paar Abende in diesem Monat (Januar 2026) damit, WAN 2.5 sauber in ComfyUI zum Laufen zu bringen. Nichts Spektakuläres. Ich hielt den Graph minimal, sperrte ein paar Einstellungen und testete verschiedene Wege, um die Bewegung stabil zu halten, ohne die interessanten Teile abzuschleifen. Hier ist, was sich gefestigt hat und wo nicht. Wenn du nach „WAN 2.5 ComfyUI” suchst, weil du etwas Funktionierendes willst, nicht Effekthascherisches, das ist die Version, die ich dir bei Kaffee übergeben würde.
Minimaler Knoten-Graph
Ich versuchte zunächst ein paar ausschweifende Graphen. Sie sahen auf dem Canvas beeindruckend aus und fühlten sich in der Praxis fragil an. Das zuverlässigste Setup für WAN 2.5, zumindest auf meinem Rechner (RTX 4090, 24 GB VRAM), war absichtlich langweilig.
Womit ich endete:
- Modell-Loader für WAN 2.5 (die offiziellen Gewichte + Konfiguration: einmal beim Start geladen)
- Text-Encoder (ein Prompt, ein negativer Prompt)
- Seed-Knoten (einzelner Seed, nicht pro-Frame)
- Sampler für Video (WANs Sampler oder ein kompatibler Video-Sampler in ComfyUI)
- VAE (am Ende dekodieren: keine Re-Enkodierungen mitten im Graph)
- Video speichern
Das ist alles. Keine zusätzlichen Upscaler, keine Guidance-Adapter, keine Denoise-Branches. Nicht weil diese schlecht sind, sondern weil ich sehen wollte, was WAN 2.5 ohne Hilfe tut. Der Vorteil war klar: weniger bewegliche Teile, weniger Überraschungen. Wenn etwas flimmerte, wusste ich, dass es nicht an einem externen Knoten lag.
Wenn du bei null anfängst, würde ich ComfyUI frisch installieren, ComfyUI Manager für einfacherere Knoten-Verwaltung hinzufügen, dann das WAN 2.5 Node-Pack aus seiner offiziellen Quelle hinzufügen. Danach widerstehe dem Drang, den Graph zu dekorieren. Bekomme einen 3–4 Sekunden langen Clip sauber bei bescheidener Auflösung zum Rendern. Dann füge Komplexität hinzu, wenn du sie immer noch brauchst.
Einstellungs-Baseline
Ich testete eine Handvoll Baselines und drehte sie hoch oder runter, bis die Clips aufhörten zu wackeln.
Mein stabiler Ausgangspunkt:
- Auflösung: 896×504 (16:9). Durch 16 teilbar, leicht auf VRAM, gut genug um Bewegung zu beurteilen.
- Dauer: 48 Frames bei 12 fps (~4 Sekunden). Lang genug um Drift zu erkennen, kurz genug zum Iterieren.
- Schritte: 28–32. Unter 24 dazu geneigt die Bewegung unscharf zu machen: über ~36 kaufte mir nicht viel.
- CFG Guidance: 4.0–6.0. Ich saß meistens bei 5.0. Höhere Werte drückten den Stil, aber hoben Micro-Flicker.
- Sampler: Euler oder DPM++ 2M SDE (Video-kompatible Build). DPM++ fühlte sich frame-für-frame ein Hauch stabiler an.
- Denoise-Stärke: 0.85–0.9 für Text-zu-Video. Wenn ich ein Bild als Bedingung nutzte, sank ich auf 0.7–0.8.
- Seed: fixiert. Gleicher Seed über den gesamten Clip.
Auf der 4090 renderte diese Baseline ~4 Sekunden in etwa 2–3 Minuten. Auf einer 4080 Super, die ich mir einen Nachmittag lieh, war es näher an 3–4 Minuten. Als ich auf 1024×576 hochfuhr, stieg die Render-Zeit ~20–30% und der VRAM-Verbrauch stupfte über 17 GB.
Kleine Anmerkung: wenn du höhere fps zum Abspielen jagst (sagen wir 24), fand ich bessere Ergebnisse beim Generieren bei 12 fps und später Interpolieren als beim direkten Rendern bei 24. Der Sampler hatte es leichter konsistent zu bleiben.
Konsistenz-Strategie
Looks konsistent zu halten ist grundsätzlich drei Hebel: Seed, Konditionierung und wie aggressiv du den Prompt vorantreibst.
Was für mich funktionierte:
- Sperren Sie den Seed und berühren Sie ihn nicht. In einem Durchlauf aktivierte ich versehentlich Pro-Frame-Seeding, sofortiges Garderobe-Chaos.
- Halte Prompts kurz. WAN 2.5 scheint glücklicher mit klaren Nomen und einem sanften Style-Hinweis als mit gestapelten Adjektiven. „Ein Papierboot auf einer regnerischen Straße, weiches Licht, gedämpfte Farben” funktionierte besser als ein Absatz.
- Nutze ein Referenzbild nur wenn du es brauchst. Bild-Konditionierung half dabei, Charakterdesign (Haare, Outfit) zu verankern, aber über-einengten manchmal die Bewegung. Wenn ich es nutzte, senkte ich die Denoise-Stärke und CFG um ~0.5.
- Negative Prompts können Flicker beruhigen: „hartes Licht, blitzende Highlights, Linsenverzerrung.” Einfach nicht alles, was dir nicht gefällt, schaufeln: 3–6 Elemente sind ausreichend.
Ich versuchte auch einen IP-Adapter-Branch um die Pose über Frames zu sperren. Es half bei „Stillleben mit einer kleinen Bewegung”-Szenen (Dampf, Wellen), aber für Charakterbewegung kniff es manchmal Gesten. Gutes Werkzeug, situatives Ergebnis.
Bewegungs-Stabilität
Das war der kniffligste Teil. Glatte Bewegung ohne alles in Gelantine zu verwandeln.
Die kleinen Anpassungen, die wichtig waren:
- Guidance-Zurückhaltung. CFG in der Nähe von 5.0 zu halten reduzierte winzige Licht-Pops zwischen Frames.
- Schritte-Obergrenze. ~36 Schritte zu überschreiten gab mir schärfere Stills, aber mehr Micro-Jitter über die Zeit.
- Sampler-Wahl. DPM++ 2M SDE war konsistent ruhiger bei Schwenks und langsamen Zooms: Euler fühlte sich knackiger an, aber flimmerte bei hochkontrastreichen Kanten.
- Prompt-Verben. Wörter wie „wackelnd, handheld, chaotisch” tun, was sie sagen. Ich vermied sie, wenn ich diesen Look nicht wollte.
- Lichtquellen. Harte Punktlichter und spekulare Highlights ermutigten Glimmer. „Bedeckt” oder „Softbox-Beleuchtung” hielt Oberflächen stabil.
Wenn ich mehr Griff brauchte, fügte ich zwei Dinge nach dem Rendern hinzu, anstatt im Graph:
- Ein leichter Deflicker-Pass (DaVinci Resolves Deflicker oder ein FFmpeg-Filter) bei niedriger Stärke.

- Frame-Interpolation 12→24 fps mit bewegungs-kompensierter Interpolation. Es glättete wahrgenommene Bewegung ohne das Modell während der Generierung zu verwirren.
Eine Überraschung: Kamera-Pushes (langsamer Dolly-In) hielten besser zusammen als seitliche Schwenks. Wenn ein Links-Rechts-Schwenk auf Schildern ständig zerriss, umformulierte ich den Prompt zu „die Kamera bewegt sich sanft vorwärts” und bekam sauberere Ergebnisse mit einem ähnlichen Gefühl.
Batch-Rendering
Ich erwartete nicht, dass Batching hilft, aber es tat es, hauptsächlich für die Entscheidungsfindung. 4–8 Seeds hintereinander laufen zu lassen offenbarte, welche Prompts echtes Bein hatten.
Was ich nutzte:
- Ein einfacher „Seed (Batch)“-Knoten, der denselben Graph speist.
- Warteschlangen-Länge von 4–6 Jobs. Darüber hinaus fing ich an, ohne guten Grund Thermals zu beaufsichtigen.
- Gleiche Baseline-Einstellungen über den gesamten Batch: nur der Seed variierte.
Tipps aus ein paar Nächten voller Läufe:
- Halte Dauer in Batches kurz (2–3 Sekunden). Du wirst in einer Sekunde wissen, ob ein Seed vielversprechend ist.
- Speichern mit aussagekräftigen Dateinamen: Prompt-Slug + Seed + Auflösung + fps. Ich fügte den Seed auch zu den Video-Metadaten hinzu, zukünftiges Ich wird gegenwärtiges Ich danken.
- Wenn VRAM spitz wird, reduziere Batch-Größe auf 1, aber behalte die Seed-Liste. Es ist immer noch Batch im Geist.
Ich versuchte, verschiedene CFG-Werte auf einmal zu bündeln. Es funktionierte, aber es trübte den Vergleich. Ich bekam sauberere Lesarten durch Isolieren einer Variable pro Batch.
Häufige Fehler
Ein paar Wiederholungstäter zeigten sich. Nichts Dramatisches, aber sie aßen Zeit, bis ich sie aufschrieb.
- CUDA out of memory. Üblicherweise ein Zeichen, dass ich die Auflösung gerade über eine Klippe gestoßen hatte. Fixes: breite/höhe um 64 px senken, Schritte um 4–6 reduzieren, oder alles schließen, das an VRAM knabberte (Browser-Tabs zählen). Halb-Präzision (fp16) half.
- Nicht übereinstimmende Modell/Konfiguration. Wenn der WAN 2.5-Loader und seine Konfiguration nicht übereinstimmen, bekommst du Form- oder dtype-Fehler. Das Node-Pack neu zu installieren und die exakte Konfiguration neu auszuwählen fixte es.
- Nicht teilbare Dimensionen. Video-Decoder sind pingelig. Ich bleibe bei Vielfachen von 16 für Breite und Höhe.
- Codec nicht unterstützt. Der Save Video-Knoten setzt manchmal standardmäßig einen Codec, den mein System-FFmpeg nicht mochte. Ich setze H.264 mit yuv420p explizit, um grüne Frames zu vermeiden.
- Kaputte Prompts. Über-spezifizierte Negative ließen Gesichter zusammenbrechen. Das Entfernen von „verformt, entstellt, hässlich” (das übliche Boilerplate) verbesserte tatsächlich die Stabilität in mehreren Clips.
Wenn die Logs laut wurden, prüfte ich zuerst zwei Dinge: die ComfyUI-Version (aktualisieren wenn du ein paar Wochen hinter der Zeit bist), und den NVIDIA-Treiber. Zwei Drittel meiner Ungereimtheiten lebten dort. Wenn du fest steckst, sind die ComfyUI GitHub Issues überraschend unkompliziert zu Fehlermustern.
Wenn du dich lieber auf Prompts und Bewegung konzentrieren möchtest statt auf Treiber und VRAM-Limits, das ist ein Grund, warum wir WaveSpeed gebaut haben. Wir bieten verwalteten Zugang zu Modellen wie WAN 2.5 durch eine stabile API-Schicht – damit du generieren kannst ohne den lokalen Stack zu warten.
Export
Ich hörte auf, den Export zu überdenken, sobald ich einen sauberen Weg wählte.
Was ich für Entwürfe nutze:
- Codec: H.264
- Pixelformat: yuv420p
- FPS: match generation (üblicherweise 12)
- Bitrate: konstant 8–12 Mbps für 896×504
Zum Bearbeiten exportiere ich zuerst verlustiger, dann konvertiere nur die Gewinner hoch:
- Interpoliere 12→24 fps in Post.
- Wenn ich Grade-freundliche Dateien brauche, rendere ich Endstufen zu ProRes 422 LT neu. Schwerer, aber viel netter für Farb-Passes.
Zwei kleine Anmerkungen, die mich vor Re-Renders retteten:
- Farbverschiebungen: einige Player heben Schwarze bei yuv420p. Wenn es in VLC falsch aussieht, aber in Resolve gut, ist es der Player.
- Audio: der Save Video-Knoten wird es nicht hinzufügen. Wenn ich einen Temp-Soundtrack brauche, muxe ich mit FFmpeg danach.
Ich bettige auch den Seed, Schritte, CFG und Auflösung im Dateinamen und in einer Sidecar-JSON ein. Es ist langweilige Buchführung, die zukünftige Archäologie verhindert.
Template-Idee
Das Template, das ich jetzt behalte, ist klein und hat drei Schalter.
Graph-Skelett:
- WAN 2.5-Loader → Text-Kodierung → fixierter Seed → Video-Sampler → VAE-Dekodierung → Video speichern
Drei optionale Branches, die ich ein- oder ausschalten kann:
- Referenzbild-Konditionierung. Wenn ich stabile Charaktere will. Kommt mit einem Auto-Drop in Denoise und CFG.
- Prompt-Zeitplan. Ein sanfter zweiphasiger Prompt für Clips mit einem einfachen Beat (z.B. „Regen beginnt” nach einer Sekunde). Ich halte Übergänge sanft um Flicker zu vermeiden.
- Batch-Seed-Liste. Ein einzelnes Feld in das ich 3–8 Seeds paste.
Eingebaute Standard:
- 896×504 bei 12 fps, 48 Frames, CFG 5.0, Schritte 30
- H.264-Export mit yuv420p, Dateinamen-Template das den Seed enthält
Es ist das Gegenteil von effekthascherisch, und das ist der Punkt. Ich will ein Template, das mich zu denselben Gewohnheiten jedes Mal lenkt: zuerst kurze Clips, eine Variable nach der Zeit, Notizen während es läuft.
Wer das passt: jeder, der Stetigkeit über Überraschung schätzt, Produkt-Teams die wiederholbare Aufnahmen machen, Solo-Creator die einen vorhersehbaren Look brauchen, und Leute, die riesige Graphen ermüdender als ermächtigend finden.
Wer es ablehnt: wenn du maximale Slider und chaotische emergente Looks liebst, wirst du das abblocken. Das ist in Ordnung.
Warum es mir wichtig ist: WAN 2.5 in ComfyUI fühlte sich endlich an, als würde es meine Aufmerksamkeit respektieren. Weniger Knöpfe, klarere Trade-offs, und Ergebnisse, denen ich genug vertraute um drauf zu bauen.
Ich bin immer noch neugierig, wie sich WAN bei höheren Auflösungen und längeren Sequenzen verhält, aber ich bin nicht überstürzt. Der stille Sieg für mich war zu bemerken, dass kleine Änderungen, eine ruhigere CFG, ein fixierter Seed, sanfteres Licht, mehr für Stabilität taten als jeder Knoten-Trick. Ich wartete auf einen Trick. Es stellte sich als System heraus.







