DEVLOG · 7. OKTOBER 2026 · AKTUALISIERT AM 8. OKTOBER
Pixelgenaue Sprite-Animationen aus einem Video-Modell
Ein Spiel-Sprite und ein Satz Text rein, eine fertige Pixel-Animation raus, direkt fürs Spiel. Wir zeigen es an Figuren aus unserem Jump’n’Run KNUDDEL-ALARM: Der Gummibär stapft, der Wackelpudding wird geheilt, die Gewitterwolke blitzt. Bis dahin sind 42 Ansätze gescheitert. Hier ist, was am Ende funktioniert hat, und alles, was nicht funktioniert hat.

NEU · 8. OKTOBER
Was die Kette heute kann
Seit dem ersten Artikel haben wir die Kette auf grössere Figuren und wilde Aktionen losgelassen: Feuer speiende Drachen, Schwerthiebe, Zaubersprüche, zerfallende Skelette. Dazu kommen grosse Pixel-Szenen, Figuren, Items und Kacheln aus denselben Modellen. Alles unten ist direkt aus der Engine, ohne Nachbearbeitung.













Neue Showcase-Animationen, 64-px-Figuren, je ein Satz Text als Aktion.
Szenen in 384 × 216 echten Pixeln, je etwa 20 Sekunden auf einer RTX 4090.
Alle Bilder und Animationen auf der Pixel-Engine-Seite →Gratis – und was die anderen kosten
Es gibt gute kommerzielle Werkzeuge für KI-Pixel-Art. PixelLab bietet Animationen aus Text und Skeletten, 4- und 8-Richtungs-Rotationen, Kachel-Sets und Karten, mit einem Aseprite-Plugin. Nach einer Testphase kostet es 12, 24 oder 50 Dollar im Monat. Retro Diffusion hat eigene, von Pixel-Künstlern trainierte Modelle und rechnet pro Bild ab: 0,03 bis 0,18 Dollar, Animationen ab 0,07 Dollar pro Clip.
Beide sind bequem, laufen im Browser und brauchen keine eigene Grafikkarte. Unsere Kette ist das Gegenteil: Sie läuft auf deiner eigenen Grafikkarte, die Modelle sind offen, und die Workflows sowie das Werkzeug sind Open Source. Dafür kostet sie nichts – kein Abo, keine Credits, kein Wasserzeichen. Und du siehst jeden Schritt und kannst ihn ändern.
Preise laut den Websites der Anbieter am 8. Oktober 2026.
Das Ziel
Für unsere Spiele auf dem Daybun-Handheld brauchen wir viele kleine Animationen. Die Figuren sind 32 Pixel gross. Das Ziel klingt einfach: Eine Figur einmal zeichnen, danach jede beliebige Bewegung dazu erzeugen. Rennen, fliegen, trinken, explodieren. Für jede Figur.
Bei 32 Pixeln verzeiht nichts. Ein Bein ist zwei bis vier Pixel breit. Ein Pixel Unterschied zwischen zwei Frames ist sichtbares Zittern. Und jede Figur muss in jedem Frame genau dieselbe Figur bleiben: gleiche Ohren, gleicher Schal, gleiche Farben.
42 Wege, die nicht funktioniert haben
Wir haben zuerst versucht, was naheliegt: ein gutes Bild-Modell, das jeden Frame einzeln zeichnet. Dann Bild-Modelle mit Skelett, Silhouette oder Vorlage als Hilfe. Dann ganze Spritesheets in einem Bild. Dann ältere Modelle mit ControlNet. 42 Tests, alle mit denselben zwei Figuren und denselben Messgrössen.
Die Einzelbilder sahen oft gut aus. Der Ablauf stimmte nie.








Bild-Modelle haben kein Gedächtnis über Frames. Nur Video-Modelle verstehen Bewegung.
Jede Bild-Pipeline erfindet jeden Frame neu, also flackert sie. Vorlagen, Skelette und Silhouetten machen die Bewegung korrekt, aber nie allgemein: Für „Käfer explodiert“ gibt es keine Vorlage. Ein Video-Modell kennt dagegen beliebige Bewegung und hält die Figur über alle Frames fest. Es kann nur keine Pixel.
Die Kette
Also teilen wir die Arbeit: Das Video-Modell macht die Bewegung, ein Pixel-Modell zeichnet jeden gewählten Frame sauber nach, und ein Raster-Werkzeug zwingt alles auf exakt 32 × 32 Pixel mit einer gemeinsamen Palette.
- StandbildDas fertige Sprite (bis 64 px) unten mittig auf einer flachen Key-Farbe, nearest auf 384 × 384 vergrössert.Grün, Magenta oder Blau – je nachdem, was am weitesten von den Figurfarben weg ist.
- VideoWan 2.2 I2V A14B erzeugt 33 Frames. Die Bewegung kommt aus einem Satz Text.High-Noise-Stufe ohne Beschleuniger, CFG 3,5.
- Frames wählenSchleife: genau eine Bewegungsperiode, gefunden über die Masken. Einmalige Aktion: gleichmässig verteilt bis zum letzten sichtbaren Frame.Typisch 6 bis 13 Frames.
- NachzeichnenKrea 2 Turbo mit der k2-pixel32-LoRA malt jeden Frame per img2img (denoise 0,4) im Pixelstil neu.6 Frames pro Auftrag.
- Raster und PaletteDer MiniMax-H3-Refiner kollabiert alle Frames auf das exakte Raster, mit einer gemeinsamen Palette. Dann Key-Farbe weg.Ergebnis: Frames, Spritesheet, GIF.

Fertig fürs Spiel: KNUDDEL-ALARM
KNUDDEL-ALARM ist unser Jump’n’Run. Viele Figuren hatten bisher ein oder zwei Bilder. Als Startbild nehmen wir jeweils das vorhandene Spiel-Sprite, schreiben die Aktion als Satz dazu und legen das Ergebnis direkt als Animation im Spiel-Format ab: Frames, Pivot je Frame, Takt. Alle Animationen unten sind ungeschönt, jede mit ihrem Urteil nach Sichtprüfung.





Was nicht geklappt hat
Für die fünf Animationen oben haben wir 18 Video-Läufe gebraucht, dazu ein paar neue Frame-Auswahlen auf vorhandenen Videos. Diese Läufe sind nicht ins Spiel gekommen:
- Wackelpudding wabbelt: Im ersten Versuch bekam der Pudding Beine und lief los. Im zweiten stand er still, weil der Satz „behält Grösse und Proportionen“ genau das Quetschen verbietet. Im dritten wackelt er nur zwischendurch, ohne sauberen Loop.
- Pudding hüpft: Wan macht aus dem Pudding eine Bohne.
- Gummibär wird geheilt: Er dreht sich zur Kamera, und am Ende schaut er eher skeptisch als glücklich.
- Wolke schwebt: zwei Versuche, beide bewegen sich kaum.
- Filibuster jubelt: Er dreht sich zur Kamera, und die Fliegerbrille rutscht über die Augen. Nicht figurtreu.
- Herz-Funkenring: Im Video schön, aber die 1-Pixel-Funken überleben das Nachzeichnen auf 32 px nicht.
- Seifenblase platzt: Die Blase ist fast durchsichtig, und das Video lässt sie einfach stehen.
- Brokkoli-Einschlag: Wan zeigt zuerst die Rauchwolke und lässt den Brokkoli daraus auftauchen. Rückwärts abgespielt wird ein Einschlag daraus, aber ein blasser.
Faustregel: Figuren mit klarem Sprite und kräftigen Farben funktionieren. Winzige Effekte, durchsichtige Objekte und Bewegungen, die die Form der Figur grundlegend ändern, eher nicht.
Frühe Experimente

Und 72 weitere aus unseren Spielen
Gegner, Bosse und Figuren aus Knuddelknall und Möhrenpfad, alle mit derselben Kette erzeugt und im Spiel eingebaut.
Sechs Fehler, die uns Tage gekostet haben
Die Idee „Video zuerst“ war schnell klar. Gut wurde es erst nach diesen sechs Korrekturen.
Der Beschleuniger dämpft die Bewegung
Unser erster Video-Versuch lief mit der lightx2v-LoRA, die Wan in 4 statt 20 Schritten rechnen lässt. Ergebnis: Die Beine trippeln nur. Diese Destillation ist dafür bekannt, Bewegung zu dämpfen. Jetzt läuft die High-Noise-Stufe, die die grobe Bewegung festlegt, ohne Beschleuniger und mit echter CFG 3,5. Nur die Low-Noise-Stufe für die Details nutzt ihn noch. Dazu ein Prompt mit „big energetic strides“ statt „walks in place“.

Weiss frisst den weissen Hasen
Auf weissem Grund verschwimmen weisse Beine mit dem Hintergrund. Das Video-Modell zeichnet sie dann halb, und beim Freistellen fehlen sie. Mit einem flachen Green Screen bleibt jedes Bein sichtbar. Für grüne Figuren wie den Käfer wählt die Kette automatisch Magenta oder Blau.

Der dümmste Fehler: die Sortierung
Unser Client speicherte die Video-Frames als v_0, v_1, … v_32. Als Text sortiert ergibt das v_0, v_1, v_10, v_11, …, v_19, v_2, v_20 … Alle unsere frühen Video-Zyklen waren dadurch verwürfelt, und wir haben die Video-Modelle dafür verantwortlich gemacht. Jetzt wird nach der letzten Zahl im Dateinamen sortiert.

Krea zeichnet nach, statt dass wir rastern
Das Rohvideo einfach zu verkleinern ergibt Matsch. Unsere eigene zeitlich stabile Rasterung hielt das Gesicht ruhig, liess aber Ohren, Beine und Schal zerfasern. Viel besser: Krea 2 mit der k2-pixel32-LoRA malt jeden Frame per img2img neu, mit niedrigem denoise (0,4). Die Pose kommt aus dem Video, der Pixelstrich aus Krea. Wichtig dabei: Krea arbeitet auf einem 16-px-Token-Raster. Deshalb legen wir eine Kunstzelle auf genau 32 Bildpixel (2 × 2 Tokens), dann bleibt das Raster stabil.

Palette sperren
Krea zeichnet jeden Frame einzeln und erfindet dabei Farben: Die Flasche des Betrunkenen wurde neongrün. Jetzt bekommt der Raster-Schritt eine feste Palette mit, für alle Frames dieselbe: die Farben des Standbilds plus die Key-Farbe. Für Effekte wie Feuer und Rauch, die neue Farben brauchen, kommt die Palette stattdessen aus den gewählten Video-Frames.

„Bleib, wie du bist“ bremst
Damit das Video-Modell nicht zoomt, steht im Prompt: Die Figur behält Grösse, Proportionen und Farben. Für Rennen ist das richtig. Für einen Geier, der abheben soll, oder einen Käfer, der explodieren soll, bremst genau dieser Satz: Der Käfer blieb heil, der Geier blieb stehen. Für grosse Aktionen fällt der Satz jetzt weg, die Kamera folgt der Figur, die Leinwand bekommt Rand, und Krea zeichnet schwächer nach (0,3), damit es die Explosion nicht wieder wegmalt.

Die Einstellungen
Das sind die Standardwerte, mit denen die Beispiele oben entstanden sind. Abweichungen pro Animation stehen bei den KNUDDEL-Beispielen und in den Rezepten im Repository.
| Video-Modell | Wan 2.2 I2V A14B, GGUF Q4_K_M (High- und Low-Noise) |
|---|---|
| Video | 384 × 384, 33 Frames, Seed 3 |
| Schritte | 8 gesamt: 4 High-Noise ohne lightx2v, CFG 3,5 · 4 Low-Noise mit lightx2v, CFG 1 · Shift 5 · euler/simple |
| Prompt | „Pixel art video game sprite animation of <Figur>, side view facing right. The character from the start image <Aktion>. Static camera, no zoom … Plain solid bright green background (green screen).“ |
| Pixel-Modell | Krea 2 Turbo fp8 + k2-pixel32 (bis 48 px Raster), sonst k2-pixel64 |
| Nachzeichnen | img2img, denoise 0,4 (Effekte 0,3), 8 Schritte, CFG 1, Leinwand = Raster × 32 px |
| Raster | MiniMax H3 Pixel Art Refiner auf 32 × 32 (bzw. 32 + 2 × Rand), gemeinsame Palette |
| Rand | 0 für Laufen, 2 für Trinken, 6 für Flügel, 8 für Explosionen (in Rasterzellen) |
Zeiten und Hardware
Alles läuft auf einem ComfyUI-Server mit einer RTX 4090 (24 GB), den sich mehrere Dienste teilen. Der Rechner hat 44 GB RAM, und genau das ist der Engpass: Wan 14B lädt zwei Modelle à 9 GB nacheinander. Wir lassen es deshalb nur mit einem RAM-Wächter laufen.
Anfangs dauerte eine Animation etwa 4,5 Minuten: Video in 512 × 512 mit 10 Schritten, dann jeder Frame als eigener Krea-Auftrag. Zwei Änderungen haben das mehr als halbiert. Krea zeichnet jetzt 6 Frames in einem Auftrag, also mit einmal Modell-Laden. Und das Video läuft in 384 × 384 mit 8 Schritten, bei gleicher Bewegung.
| Einstellung | Frames | Video (Wan) | Pixel (Krea) | Gesamt |
|---|---|---|---|---|
| Anfang: 512², 10 Schritte, Krea je Frame einzeln | 12 | – | – | ≈ 4,5 min |
| 512², 10 Schritte, Krea 6 pro Auftrag · Hase | 12 | 63 s | 101 s | 2,7 min |
| 384², 8 Schritte, Krea 6 pro Auftrag · Hase (Standard) | 6 | 45 s | 68 s | 2,1 min |
| 384², 8 Schritte, Krea 6 pro Auftrag · Betrunkener (Standard) | 12 | 46 s | 138 s | 3,1 min |
| 384², 8 Schritte, Zelle 16 · Hase | 6 | 45 s | 29 s | 1,2 min |
| 384², 8 Schritte, Zelle 16 · Käfer | 12 | 44 s | 82 s | 2,1 min |
Video = reine Rechenzeit auf dem Server, Pixel = Wandzeit mit Upload und Download, Gesamt mit erstem Modell-Laden. „Zelle 16“ (k2-pixel64 auf halber Leinwand) ist schneller, macht bei Effekten aber Krümel im Hintergrund. Standard bleibt deshalb Zelle 32.
Grenzen
- Abgestimmt auf Figuren bis 64 Pixel. Grössere brauchen eine grössere Leinwand und die k2-pixel64-LoRA.
- Die Ansicht muss im Standbild schon stimmen. Die Kette erzeugt keine neue Blickrichtung.
- Die Figur muss im Text genau beschrieben sein: Farben, Kleidung, Besonderheiten. Sonst „korrigiert“ Krea sie.
- Nicht jeder Seed passt. Realistisch sind ein paar Varianten pro Animation, aus denen man eine auswählt.
- Kleine Schwankungen bleiben: Die Ohrform des Hasen wechselt leicht, beim Geier wird der Körper im Abschlag zu einem dunklen Klumpen.
- Video-Modelle zerstören Figuren ungern. Explosionen brauchen eine klare Aktion im Text und den Modus ohne „bleib, wie du bist“.
- Ohne Grafikkarte mit mindestens 24 GB und viel Arbeitsspeicher wird es mit dem 14B-Modell zäh. Das kleine 5B-Modell ist schneller, hat in unseren Tests aber die Figur verändert.
- Die Modelle haben eigene Lizenzen. Krea 2 steht unter der Krea Community License. Prüf die Bedingungen, bevor du Ergebnisse kommerziell nutzt.
Selbst ausprobieren
Wir stellen die Kette als kleines Open-Source-Paket bereit: drei ComfyUI-Workflows, ein Python-Werkzeug ohne weitere Abhängigkeiten ausser numpy und Pillow – seit dem 8. Oktober auch für Szenen und Sprites (pvs scene, pvs sprite) –, die KNUDDEL-Beispiele von oben samt Eingabe-Sprite und Rezept, die frühen Prüf-Animationen und eine Anleitung. Modell-Gewichte liegen nicht bei. Sie kommen direkt von ihren Autoren, die Links stehen in der Anleitung.
pvs check
pvs animate bear.png --view "side view facing left" \
--action "stomps forward grumpily, swinging his short arms …" \
--description "a small grumpy pink gummy bear with a dark plum outline" \
--mode loop --frames 6 --stabilize scale --out out/bear-walkDas Paket heisst pixel-video-sprites (MIT-Lizenz).
Danke an die Autorinnen und Autoren von Wan 2.2, Krea 2, der k2-pixel-LoRAs (e-n-v-y), des Krea-2-Pixel-Art-Refiners (envy-ai), von ComfyUI-GGUF (city96), der GGUF-Fassungen (QuantStack) und an das Comfy-Team.