Summary

  1. The Problem
  2. Generating Base Sprite
  3. Generating 9 keyframes
  4. Generating 18 keyframes
  5. Generating 36 keyframes
  6. Conclusion

First of all, I'm not a game developer or a designer. I'm just doing this for fun, but I hope it helps someone out there!

The Problem

Since the new version of ChatGPT seems better at maintaining consistency when creating images, I tried to apply that same consistency when generating keyframes to use in a GIF.

I spent several hours experimenting and refining the prompts to keep things consistent within a single image and across different generated images. The results of those hours of trial and error are shared in this article.

Generating Base Sprite

To generate the base sprite, I started with a random image and used the following prompt.

Create a detailed pixel art sprite for a game, use the guy in the photo as a base. 
I need a basic pose with full body to use in frames generation later.
The image should have a blank background.

With that prompt i generate these 3 base sprites

Druid

Druid

Wizard

Wizard

Wizard 1

Wizard 1

Generating 9 keyframes

Generating 9 keyframes isn't that difficult, I just uploaded the Druid and used the following prompt.

Keep the uploaded guy image as a base for the wizard
Create a detailed pixel art animation for a game, divided clearly into a 3x3 grid (each individual frame exactly 300px by 300px), forming a continuous 9-frame animation sequence.

Depict a wizard performing a spellcasting sequence, beginning with intricate hand motions, conjuring a vibrant fireball, and concluding with the dramatic release of the spell. Ensure each keyframe transitions smoothly and continuously into the next, clearly illustrating the wizard’s action.

Frame Sequence and Layout:  
Frames should be arranged from left-to-right, top-to-bottom:

Row 1: Frames 1 → 2 → 3  
Row 2: Frames 4 → 5 → 6  
Row 3: Frames 7 → 8 → 9

Detailed Frame-by-Frame Description:  

- Frame 1: Wizard standing idle, hands lowered naturally at sides.
- Frame 2: Wizard begins raising both hands upward, initiating the spell.
- Frame 3: Hands fully raised; a small glowing fireball starting to form between the palms.
- Frame 4: Fireball glow intensifies significantly, clearly visible between wizard’s hands.
- Frame 5: Fireball fully formed, bright and vibrant, floating prominently between wizard’s palms.
- Frame 6: Wizard starts pushing hands forward, actively casting the fireball outward.
- Frame 7: Fireball clearly leaving the wizard’s hands, trailing vibrant streams of energy.
- Frame 8: Fireball mid-air, glowing intensely, fully separated from wizard.
- Frame 9: Fireball reaches far-right edge of frame; wizard slightly leaned forward, clearly completing the spellcasting motion.

The result are these 9 keyframes:

Result image:

Druid as a Wizard

Result gif:

Gif generated

Sounds good, but I wanted more.

Generating 18 keyframes

Generating 18 keyframes is a bit more challenging, maintaining consistency across multiple images isn’t easy. I came up with these prompts, it’s not perfect, but it worked.

Prompt 1

Ensure character maintains exact same proportions, style, colors, and position as previous sprite.
Create a detailed pixel art animation for a game, divided clearly into a 3x3 grid (each individual frame exactly 300px by 300px), forming a continuous 9-frame animation sequence.

Frames 1–3: Druid stands still, trees gently swaying, arms beginning to rise.
Frames 4–6: Leaves swirl, mouth moves in slow chant, magical energy builds.
Frames 7–9: Vines shoot from the earth in spirals, reaching outward.

Ensure each keyframe transitions smoothly and continuously into the next, clearly illustrating the Druid action. 

Frame Sequence:   
Frames should be arranged from left-to-right, top-to-bottom:

Row 1: Frames 1 → 2 → 3  
Row 2: Frames 4 → 5 → 6  
Row 3: Frames 7 → 8 → 9

Prompt 2

Ensure character maintains exact same proportions, style, colors, and position as previous sprite.
Create a detailed pixel art animation for a game, divided clearly into a 3x3 grid (each individual frame exactly 300px by 300px), forming a continuous 9-frame animation sequence.

Frames 1–3: Flowers bloom quickly along the vines and around the druid.
Frames 4–6: A bright, green pulse of energy radiates from their chest.
Frames 7–9: Energy expands into a shimmering, protective dome over allies.

Ensure each keyframe transitions smoothly and continuously into the next, clearly illustrating the Druid action. 

Frame Sequence:   
Frames should be arranged from left-to-right, top-to-bottom:

Row 1: Frames 1 → 2 → 3  
Row 2: Frames 4 → 5 → 6  
Row 3: Frames 7 → 8 → 9

Prompt 1 result:

Prompt 1 result

Prompt 2 result:

Prompt 2 result

Prompt 1 gif:

Prompt 1 gif

Prompt 2 gif:

Prompt 2 gif

Final gif:

Final gif

If you take a closer look at the result from prompt 2, you’ll notice the Druid’s face isn’t exactly the same as in prompt 1. I’m not sure why that happened, but the results are good enough for me, for now, but I wanted more.

Generating 36 keyframes

Now things are starting to get a bit strange. The facial consistency is good, but the character’s position isn’t quite right. Check out the prompt below, in this case, I used Wizard 1 as base.

Prompt 1

Ensure character maintains the exact same proportions, pixel art style (16-bit), color palette, lighting, outfit, facial features, and centered screen position as the uploaded frame.
Create a detailed pixel art animation for a game, divided clearly into a 3x3 grid (each individual frame exactly 300px by 300px), forming a continuous 9-frame animation sequence of a wizards's fire spell cast build-up.

Art Style:
Maintain 16-bit pixel art style throughout with consistent lighting (top-left light source), pixel-level shading, and no variation in robe or staff design.

Frame 1: Idle pose — staff down, neutral expression.
Frame 2: Slight lean back; robe begins shifting.
Frame 3: Left hand starts lifting the staff.
Frame 4: Staff halfway up, eyes focus forward.
Frame 5: Staff above chest height, orb glows faintly.
Frame 6: Staff almost fully raised; fire particles begin forming.
Frame 7: Glow intensifies; feet brace.
Frame 8: Wizard’s face turns stern; fire begins circling orb.
Frame 9: Final wind-up pose — staff high, glow pulsing, fire swirling.

Ensure each keyframe transitions smoothly and continuously into the next, clearly illustrating the Wizard action. 

Frame Sequence:   
Frames should be arranged from left-to-right, top-to-bottom:

Row 1: Frames 1 → 2 → 3  
Row 2: Frames 4 → 5 → 6  
Row 3: Frames 7 → 8 → 9

Prompt 2

Ensure character maintains the exact same proportions, pixel art style (16-bit), color palette, lighting, outfit, facial features, and centered screen position as the uploaded sprite. 
Create a detailed pixel art animation for a game, divided clearly into a 3x3 grid (each individual frame exactly 300px by 300px), forming a continuous 9-frame animation sequence of a wizards's fire spell cast build-up.
Art Style:
Maintain 16-bit pixel art style throughout with consistent lighting (top-left light source), pixel-level shading, and no variation in robe or staff design.

Frame 1: Energy crackles around the orb.
Frame 2: A fiery rune flashes faintly behind him.
Frame 3: The orb glows bright yellow-orange.
Frame 4: Body vibrates slightly (anticipating release).
Frame 5: Fire swirls intensify around staff.
Frame 6: Fire ring expands slightly outward.
Frame 7: Wizard begins motion to thrust the staff.
Frame 8: Fire concentrates into the orb.
Frame 9: Final charge frame — orb is blinding white/yellow.

Ensure each keyframe transitions smoothly and continuously into the next, clearly illustrating the Wizard action. 

Frame Sequence:   
Frames should be arranged from left-to-right, top-to-bottom:

Row 1: Frames 1 → 2 → 3  
Row 2: Frames 4 → 5 → 6  
Row 3: Frames 7 → 8 → 9

Prompt 3

Ensure character maintains the exact same proportions, pixel art style (16-bit), color palette, lighting, outfit, facial features, and centered screen position as the uploaded sprite. 
Create a detailed pixel art animation for a game, divided clearly into a 3x3 grid (each individual frame exactly 300px by 300px), forming a continuous 9-frame animation sequence of a wizards's fire spell cast build-up.
Art Style:
Maintain 16-bit pixel art style throughout with consistent lighting (top-left light source), pixel-level shading, and no variation in robe or staff design.

Frame 1: Staff thrusts forward sharply.
Frame 2: Cone of fire erupts from orb, bright center.
Frame 3: Fire blast expands outward (1st stage).
Frame 4: Pulse reaches max radius — bright flare.
Frame 5: Heat waves ripple across blast.
Frame 6: Flames flicker at edges; enemies are hit.
Frame 7: Blast starts shrinking, embers fly out.
Frame 8: Blast fades; staff begins to lower.
Frame 9: Staff halfway down; smoke trails remain.

Ensure each keyframe transitions smoothly and continuously into the next, clearly illustrating the Wizard action. 

Frame Sequence:   
Frames should be arranged from left-to-right, top-to-bottom:

Row 1: Frames 1 → 2 → 3  
Row 2: Frames 4 → 5 → 6  
Row 3: Frames 7 → 8 → 9

Prompt 4

Ensure character maintains the exact same proportions, pixel art style (16-bit), color palette, lighting, outfit, facial features, and centered screen position as the uploaded sprite. 
Create a detailed pixel art animation for a game, divided clearly into a 3x3 grid (each individual frame exactly 300px by 300px), forming a continuous 9-frame animation sequence of a wizards's fire spell cast build-up.
Art Style:
Maintain 16-bit pixel art style throughout with consistent lighting (top-left light source), pixel-level shading, and no variation in robe or staff design.

Frame 1: Wizard exhales; aura fades.
Frame 2: Robe and hair sway back slightly.
Frame 3: Embers float gently around him.
Frame 4: Staff nearly back to idle position.
Frame 5: Legs realign to default stance.
Frame 6: Small afterglow around orb.
Frame 7: Expression softens, eyes widen.
Frame 8: Glow fades out completely.
Frame 9: Back to full idle pose — cycle complete.

Ensure each keyframe transitions smoothly and continuously into the next, clearly illustrating the Wizard action. 

Frame Sequence:   
Frames should be arranged from left-to-right, top-to-bottom:

Row 1: Frames 1 → 2 → 3  
Row 2: Frames 4 → 5 → 6  
Row 3: Frames 7 → 8 → 9

Prompt 1 result:

Image description

Prompt 2 result:

Image description

Prompt 3 result:

Image description

Prompt 4 result:

Image description

Prompt 1 gif:

Image description

Prompt 2 gif:

Image description

Prompt 3 gif:

Image description

Prompt 4 gif:

Image description

Final gif:

Image description

The first image turned out great. In the second one, the hat and face got a bit weird. The third image looked really good again, but by the last one, it’s like it completely lost its mind.

Conclusion

For now, it’s pretty easy to create simple poses. But when you need more frames, things can get a bit tricky, maybe there’s a better prompt for this type of generation.

If you’d like to see more of my tests, as well as the GIF generator I built, you can find them on my Github