bring your own model
onandemo never calls a model — no key to paste, no queue to wait in. the recipe is a battle-tested prompt template: you paste it into whatever image model you already have, and the playground slices whatever comes back into a sheet and a frame map.
fill in the bracket and leave the rest alone. the constraints are the point — they're what makes the result sliceable.
a pixel-art sprite sheet of a single character, retro desktop-pet style: [describe your character here]
layout: one image, an exact grid of 8 columns by 4 rows of 32x32 pixel cells. 256x128 pixels total, or an exact integer multiple of that (512x256, 1024x512). do not make a 4x3 sheet. do not omit cells.
fill all 32 cells exactly like this Neko-compatible slot map. coordinates are [column,row], starting at [0,0] in the top-left. state names in parentheses are for the frame map only; do not draw text labels.
row 0: [0,0] north-edge antic frame 1 (scratchWallN); [1,0] NW run frame 1; [2,0] rest/sleep frame 1 (sleeping); [3,0] E run frame 1; [4,0] west-edge antic frame 1 (scratchWallW); [5,0] self-antic frame 1 (scratchSelf); [6,0] self-antic frame 2 (scratchSelf); [7,0] self-antic frame 3 (scratchSelf).
row 1: [0,1] north-edge antic frame 2 (scratchWallN); [1,1] NW run frame 2; [2,1] rest/sleep frame 2 (sleeping); [3,1] E run frame 2; [4,1] west-edge antic frame 2 (scratchWallW); [5,1] SE run frame 1; [6,1] SW run frame 2; [7,1] south-edge antic frame 1 (scratchWallS).
row 2: [0,2] NE run frame 1; [1,2] N run frame 1; [2,2] east-edge antic frame 1 (scratchWallE); [3,2] tired pose; [4,2] W run frame 1; [5,2] SE run frame 2; [6,2] south-edge antic frame 2 (scratchWallS); [7,2] S run frame 2.
row 3: [0,3] NE run frame 2; [1,3] N run frame 2; [2,3] east-edge antic frame 2 (scratchWallE); [3,3] idle pose; [4,3] W run frame 2; [5,3] SW run frame 1; [6,3] S run frame 1; [7,3] alert pose.
direction cells are two-frame run loops. the character must face the compass direction named by the cell: N up/back, E right, S down/front, W left, and diagonals between them.
edge antic cells are character-specific interactions with that side of the cell: touch, tap, knock, inspect, lean, bump, scan, cast, press, or scratch only if scratching fits the character. self-antic is a three-frame character-specific fidget, grooming, tune-up, flourish, or idle trick. rest/sleep is a two-frame rest loop. tired is a single drowsy or worn-out pose. idle is calm. alert is startled.
the character is the same size in every cell and stands on the same ground line in every cell. nothing touches or crosses a cell border.
transparent background: a png with alpha. no backdrop, no floor, no visible grid, no labels, no border around the image.
crisp 1px pixel art. hard edges, no anti-aliasing, no soft shadows, no glow, no outlines bleeding between cells.
what the cells become: the exact neko frame
map, with the cat-specific antics translated into character-specific edge
and self actions, plus eight direction loops, idle,
alert, sleeping, and tired.
- 01
fill in the bracket
copy the recipe and replace the bracket with your character. one line is plenty — “a grumpy slice of toast with little legs” works.
- 02
paste it into your model
whatever image model you already have. ask for a png, save what comes back. the constraints in the recipe do the negotiating.
- 03
slice it in the playground
drop the image into the playground, set
cellSizeto 32, assign the states, press chase me.
the honest part
- ■
models rarely land a perfect grid. when the character drifts a few
pixels between cells, don't re-roll forever — nudge
cellSizeand your cell picks in the playground until the loop steadies. - ■ if your model can't do transparency, ask for a solid magenta background instead and key it out in an editor before importing. the playground slices; it doesn't remove backgrounds.
- ■ when one row comes back broken, regenerate that row as its own request. fighting all 32 cells at once is how an evening disappears.
the slime preset took three states and eleven cells — your companion doesn't need much.