← Blog

How to keep one character across 20 AI emotes (character lock)

By Arjun Varma··6 min read

AI emote tools that drift to a different character around emote 12 are hitting a fundamental wall: prompt-only generation has no memory. Here's how image-to-image conditioning solves it.

Character lock means generating 20 different reactions where every reaction shows the same character — same outfit, same color palette, same proportions, same art style. Most AI emote tools fail at character lock around emote 12 because they generate each emote from a fresh text prompt, and text prompts alone can't encode the level of per-pixel consistency human viewers notice.

Why prompt-only generation drifts

Diffusion models like FLUX and SDXL produce subtly different characters every run, even with identical prompts and seeds — let alone with prompts that vary by reaction (“happy chibi cat” vs “angry chibi cat”). The model has no persistent memory of what it generated for emote 1 when it generates emote 12. Add slightly different lighting or pose hints to each reaction and you get visible drift in eye shape, ear angle, hoodie color saturation. Viewers register this immediately even if they can't articulate why the pack feels off.

How image-to-image conditioning fixes it

The fix is to generate one master frame first — “chibi tabby cat in a pink hoodie, neutral pose” — and then for every subsequent emote, feed THAT image back to the model as a reference image with high prompt strength (typically 0.85). The model nudges the master toward the new reaction (“happy”, “sad”, “wave”) without losing the character's identity. Result: same orange tabby, same pink hoodie, 20 different reactions.

Implementation notes for builders

  • Master frame should be neutral pose, well-lit, full character visible — bad masters lock you into a bad character
  • Prompt strength 0.85 is the sweet spot — below 0.7 the reaction is weak; above 0.9 the character drifts
  • Same model + same seed for the master, varied seeds for each reaction
  • Skip face-locking models like InstantID — they require human faces and break on cats / characters / mascots
  • For style consistency, route each emote through the same per-style LoRA / fine-tune (chibi anime LoRA, pixel sprite model, etc)

Saving characters for reuse

Once a character is locked, save the master frame as a named character in your tool. Future packs can prompt against the saved character without regenerating the master, which means the same Mochi the chibi cat shows up identically across 100 packs over the lifetime of a Twitch channel. This is the killer feature of a sub like Pile Pro — one saved character, infinite reaction packs.

Pile implements character lock via the workflow above and saves characters as a Pro-tier feature. $15/mo includes 3 packs and an unlimited character library.

Ready to ship a pack?

20 character-locked emotes, every platform size, $9 per pack. No subscription required.

Make my first pack →