PIXEL ANIMATION
Pixel animation that stays pixel across every frame
Motion is the easy part; keeping it looking like pixel art for every frame is not. PX-Art holds a style contract at the game level, quantises each delivered frame to a limited palette and snaps it back to the pixel grid, then lets you fix individual frames instead of rerolling the sequence. Loop and one-shot animations are timed differently on purpose.
The problem with animating pixel art by prompt
Ask a model for twelve frames of a pixel character and you get twelve interpretations of "pixel". Anti-aliased edges creep in, the palette expands, the effective resolution wanders frame to frame, and the result flickers when played back. Prompting harder does not fix this, because the failure is in the pixels themselves, not in the description. It has to be fixed after generation, deterministically.
This page is about the animation itself — style, timing and frame repair. If you are after the sprite sheet artefact, its manifest and its export formats, that is on the sprite sheet generator page.
The style contract
A game carries one style key, and that key drives two things at once: the render contract written into the generation request, and the post-processing applied to every delivered frame. Post-processing has three tiers, set by whether the palette is capped and whether frames are snapped to the pixel grid.
| Style | Palette | Grid snap | Result |
|---|---|---|---|
pixel | 32 colours | Yes | True low-resolution look: chunky silhouette, hard grid-aligned edges, flat shading with one highlight and one shadow step. |
retro16 | 16 colours | Yes | 16-bit console era: restrained palette, dark outline, dithering only where it is needed. |
chibi | 48 colours | No | Flattened, not pixelated: bold outline, flat bright fills, smooth edges kept. |
cartoon | 56 colours | No | Two-tone cel shading with clean curves; gradients flattened, no square blocks. |
auto | unquantised | No | No colour conforming at all; coherence is left to the model and your reference images. |
The distinction that matters: flattening and pixelating are not the same operation. Chibi and cartoon get their gradients collapsed but keep smooth edges, because square blocks would ruin them. Pixel and retro16 get the same collapse plus a grid snap, which is what makes the blocks read as deliberate pixels rather than compression noise. Applying the wrong tier is how AI pixel art ends up looking like a downscaled painting.
Where the frames come from
Character animation runs through an image-to-video stage: the character is composited onto a keyed canvas under a fixed camera, a two-second clip is generated, ffmpeg decodes the full frame set, and frames are sampled from it. Keying and cropping happen against the whole sequence at once, so the character's travel across the animation is preserved instead of each frame being re-centred. Palette conforming is the last step before the quality gate, which checks facing drift, inter-frame coherence and ground contact.
Because a video model produced the motion, the frames are related to each other rather than independently sampled — that is what stops limbs teleporting between frames. It is also the pipeline's main dependency: if the model ignores the keyed background or moves the camera, the run reports an error and asks you to regenerate rather than delivering unusable frames.
Loop versus one-shot
These are two different delivery semantics, and picking the wrong one shows up immediately in play.
Looping
Walk, run, idle, flicker. Frames are sampled from the first up to but excluding the last, because the last pose is the first pose again. Keeping it gives you a visible hitch once per cycle.
One-shot
Attacks, hit reactions, deaths. The true first and last frames are kept, because the wind-up and the settle carry the weight of the action.
Effects follow the same split with an extra stage. A looping effect is continuous; a one-shot effect is generated as ignition, peak and full dissipation. Effects are made in two steps — a semantic seed image first, then video evolution from it — under a fixed camera, with framing taken from the union of the whole sequence so relative scale is preserved. You can attach an appearance reference; only its colour and energy quality are taken, never its composition.
Timing and preview
- Frame count is 1 to 15 per action; animated map tiles use 2 to 8, defaulting to 4.
- Frame rate is 6 to 15 fps. Duration is frames divided by fps, and the editor lets you type a duration and derive the rate instead.
- Preview in place before exporting anything — playback runs at the fps you set, so the timing you approve is the timing you ship.
- GIF and APNG are both produced on export. GIF is the shareable one; APNG carries full alpha, which matters for effects with soft edges that GIF's single-bit transparency mangles.
Repairing frames instead of rerolling
- Watch it at speed firstFrames that look wrong when stepped through often read fine at 12 fps, and the reverse is true too.
- Delete the bad framesThe surviving frames keep their alignment. The sequence gets shorter but stays coherent.
- Pull replacements from the dense setA dense frame set of up to 30 frames is retained. A frame pulled in from it is a real frame that already shares the delivered strip's scale and baseline — not a fresh sample that has to be re-fitted.
- Patch one frame locallyWhen a single hand or shadow is wrong, a local edit costs 2 credits, against 10 or 18 for regenerating the whole action.
- Redo the run only as a last resortA regenerated sequence is a new sample and may drift from the version you already approved.
Eight facings without eight generations
Five facings are generated — south, north, east, south-east, north-east — and the remaining three are mirrored from them. Before any animation frames exist for a non-front facing, a locked turn image is produced and cached per character and facing: a single standing pose at that viewpoint. Every later frame in that direction is anchored to it, so the hand holding the weapon and the near and far limbs are settled once rather than re-decided every run. More on view types in characters and animation.
Handing animations to an agent
Frame count, playback rate, loop flag and the sampling hint travel with the stored asset, so a coding agent reading over read-only MCP can wire up playback without opening the image. The sampling hint is the one to respect: set nearest-neighbour filtering for pixel styles, or the engine will smooth away exactly the grid alignment the pipeline just enforced.
Limits and things to check
- Generation is probabilistic. Frame counts and timing are deterministic; what happens inside the frames is not. Review before production.
- The video stage can refuse. When the model does not respect the chroma background or the fixed camera, the run errors and asks for a regenerate instead of delivering broken frames.
- Quantisation is not a rescue. Post-processing conforms colours and edges; it cannot turn a badly drawn pose into a good one.
autostyle skips conforming entirely. If you need a guaranteed limited palette, pickpixelorretro16rather than relying on the model.- Mirrored facings flip asymmetric details along with everything else.
- Rights stay with you. Legally generated assets are usable commercially, subject to third-party rights, local law and AI-provider terms; results are not guaranteed exclusive or registrable.
Frame-based actions cost 10 credits, video-based actions 18, effects 15, and local frame repair 2 per patch; unfinished portions of a failed run are refunded automatically. See pricing — formal checkout is still under review and not open yet.
FAQ
How does PX-Art stop AI animation from losing its pixel look?
By treating style as post-processing rather than a prompt. The pixel style quantises each delivered frame to 32 colours and snaps it back to the pixel grid; retro16 does the same at 16 colours. Chibi and cartoon only flatten gradients and deliberately keep smooth edges, because square blocks would ruin those looks.
What frame rates and frame counts are available?
Actions run 1 to 15 frames at 6 to 15 fps; duration is frames divided by fps. Animated map tiles use 2 to 8 frames, defaulting to 4.
What is the difference between a looping and a one-shot animation?
Looping animations are sampled from the first frame up to but excluding the last, so the cycle does not repeat the same pose at the seam. One-shot animations keep their true first and last frames, because the wind-up and the settle are the point. Effects follow the same split, with one-shot effects generated as ignition, peak and full dissipation.
Why does export include APNG as well as GIF?
GIF transparency is single-bit, which mangles soft edges. APNG carries full alpha, so effects and anti-aliased styles survive the round trip. Both are produced from the same frames at the fps you set.
Can I fix one frame without regenerating the animation?
Yes. Delete frames and the survivors keep their alignment; replacements can be pulled from a retained dense frame set of up to 30 frames that already shares the strip's scale and baseline; or patch a single frame locally for 2 credits instead of paying 10 or 18 to redo the run.
Do I have to generate all eight directions?
No. Five are generated and three are mirrored from them. Each non-front facing first gets a cached locked turn image so that later frames in that direction inherit the same limb and prop arrangement.
Why does my sprite look blurry in my engine?
Almost always texture filtering. Stored assets carry a sampling hint; set nearest-neighbour filtering for pixel styles, otherwise the engine smooths away the grid alignment the pipeline enforced.
Related
Animate a pixel character end to end
Pick a style key, generate a looping walk and a one-shot attack, tune the frame rate and repair frames without rerolling the sequence.
Create a free accountSee pricingNew accounts start with 20 credits. Formal checkout is still under review and not open yet.