Files
splatter-tennis/assets/_regen_batches.json
T
wuwiandClaude Opus 5 67a410e707 Show the generator what to copy, not what to replace
The reference sheet is what it imitates, so building that sheet out of the very
sprites I was trying to change is why the front-facing player came back
front-facing and the side-on runner came back side-on. A batch can now name
`ref_only` — the frames it looks at — separately from the frames it replaces:
the back view is drawn from the one genuine back-view frame, the charging runner
from a front-facing zombie, and each brute wound pair from its own A frame so the
injury cannot wander between the two.

Also stopped colour-matching a REPOSE. Fitting a differently-posed frame onto the
old one's colour statistics is what greyed out the serve shorts; when the pose
changes the generator's own palette is the better answer.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 22:36:13 +02:00

345 lines
16 KiB
JSON

{
"shambler_a": {
"sprites": [
"z_a1",
"z_a2",
"z_a3",
"z_a4"
],
"subject": "Four frames of the same walking zombie in a grey shirt and dark trousers, a four-frame shamble cycle, drawn as coarse low-resolution pixel art with big blocky pixels and almost no internal detail.",
"anchor": 0
},
"shambler_b": {
"sprites": [
"z_b1",
"z_b2",
"z_b3",
"z_b4"
],
"subject": "Four frames of the same walking zombie in a brown coat over a shirt, a four-frame shamble cycle, drawn as coarse low-resolution pixel art with big blocky pixels and almost no internal detail.",
"anchor": 0
},
"shambler_wounds": {
"sprites": [
"z_aw",
"z_awb",
"z_bw",
"z_bwb"
],
"subject": "Four frames of two WOUNDED walking zombies, drawn as coarse low-resolution pixel art. The first two are the same grey-shirted zombie whose right arm ends in a ragged bloody stump, in two stages of one stride. The last two are the same brown-coated zombie with an open red gash across his skull, in two stages of one stride. Keep each wound exactly where it is.",
"anchor": 0
},
"brute_walk": {
"sprites": [
"z_g1",
"z_g2",
"z_g3",
"z_g4"
],
"subject": "Four frames of the same enormous fat zombie brute in a stained grey-green shirt and brown trousers, dragging a rusty pole in one hand, a four-frame heavy lumber, drawn as coarse low-resolution pixel art.",
"anchor": 0
},
"brute_wounds_b": {
"sprites": [
"z_gwb",
"z_gw2b",
"z_gw3b",
"z_gw4b"
],
"subject": "Four damage stages of the same enormous fat zombie brute, mid-stride on the opposite foot, drawn as coarse low-resolution pixel art: (1) one arm torn off at the shoulder, dragging his pole; (2) both arms gone; (3) chest and belly torn open with ribs showing; (4) headless, ribs out. Keep each stage's injuries exactly as they are.",
"anchor": 0
},
"steward": {
"sprites": [
"z_d1",
"z_d2",
"z_d3",
"z_d4"
],
"subject": "Four frames of the same big heavy zombie stadium steward in a high-visibility ORANGE safety vest over a dark shirt, dark trousers and heavy boots, a four-frame walk cycle, drawn as coarse low-resolution pixel art. Keep the vest's reflective stripes.",
"anchor": 0
},
"steward_wounds": {
"sprites": [
"z_dw",
"z_dwb"
],
"subject": "Two frames of the same badly wounded zombie stadium steward in a torn high-visibility ORANGE vest \u2014 one arm mangled, a deep bloody gash across the chest, head lolling \u2014 walking, two stages of one stride, drawn as coarse low-resolution pixel art.",
"anchor": 0
},
"cpu_walk": {
"sprites": [
"z_c1",
"z_c2",
"z_c3",
"z_c4"
],
"subject": "Four frames of the same zombie tennis player facing the viewer \u2014 yellow hair, red headband, red shirt, grey shorts, a wooden racket hanging from one hand \u2014 a four-frame shuffle towards the camera, drawn as coarse low-resolution pixel art.",
"anchor": 0
},
"cpu_wounds": {
"sprites": [
"z_cw1",
"z_cw1b",
"z_cw2",
"z_cw2b"
],
"subject": "Four frames of the same wounded zombie tennis player in a red shirt holding a wooden racket, drawn as coarse low-resolution pixel art. The first two are him wounded and bleeding, in two stages of one stride. The last two are the same character HEADLESS, a ragged red stump where the neck was, still holding the racket, in two stages of one stride.",
"anchor": 0
},
"player_stance": {
"sprites": [
"p_idle1",
"p_idle2",
"p_bounce",
"p_bounce2"
],
"subject": "Four frames of the same tennis player seen from BEHIND in a white shirt, blue shorts and a white headband, holding a racket, drawn as coarse low-resolution pixel art: two waiting stances and two frames of him bouncing a ball before serving.",
"anchor": 0
},
"player_serve": {
"sprites": [
"p_toss",
"p_smash"
],
"ref": "p_idle1",
"anchor": 0,
"check": "same",
"subject": "Three frames of the same tennis player in a white shirt, blue shorts and a white headband, seen from BEHIND and slightly to the side, drawn as coarse low-resolution pixel art. First a plain standing frame for scale, then: tossing the ball up for a serve with the racket arm dropped back; and the smash at full stretch with the racket overhead and both feet off the ground. In every frame he faces AWAY from the camera, up the court \u2014 the back of his head towards you, no face."
},
"player_run": {
"sprites": [
"p_run1",
"p_run2",
"p_run3",
"p_run4"
],
"ref": "p_idle1",
"anchor": 0,
"subject": "Five frames of the same tennis player in a white shirt and blue shorts, drawn as coarse low-resolution pixel art. Every figure is seen strictly FROM BEHIND \u2014 the back of his head and the back of his shirt face the viewer, no face, no eyes, no nose, he is running or standing AWAY from the camera. First a standing frame for scale, then a four-frame run cycle, running away from the camera with no racket.",
"check": "same"
},
"player_death": {
"sprites": [
"p_die1",
"p_die2",
"p_die3",
"p_die4",
"p_die5"
],
"subject": "Five frames of the same tennis player in a white shirt and blue shorts collapsing, each one lower than the last, drawn as coarse low-resolution pixel art: arched backwards with both arms flung up; dropped to his knees; pitching forward onto one hand; face down and flat with both arms out in a dark pool; and a low flattened heap of torn cloth and dark red with the stained headband on top. Each figure must stay clearly shorter than the one before it.",
"anchor": 0
},
"opponent_stance": {
"sprites": [
"o_idle1",
"o_idle2",
"o_bounce",
"o_bounce2"
],
"subject": "Four frames of the same tennis opponent in a RED shirt and dark shorts, seen from the front across the net, holding a racket, drawn as coarse low-resolution pixel art: two waiting stances and two frames of him bouncing a ball before serving.",
"anchor": 0
},
"opponent_play": {
"sprites": [
"o_toss",
"o_smash",
"o_swing1",
"o_swing2"
],
"subject": "Four frames of the same tennis opponent in a RED shirt and dark shorts, drawn as coarse low-resolution pixel art: tossing the ball up for a serve; the smash at full stretch with the racket overhead; and two frames of a forehand swing.",
"anchor": 0
},
"opponent_run": {
"sprites": [
"o_run1",
"o_run2"
],
"subject": "Two frames of the same tennis opponent in a RED shirt and dark shorts running across the court towards the camera, two stages of one stride, drawn as coarse low-resolution pixel art.",
"anchor": 0
},
"ump_boy": {
"sprites": [
"x_ump",
"x_boyrun1",
"x_boyrun2"
],
"subject": "Three frames drawn as coarse low-resolution pixel art: a tennis UMPIRE in a white sun hat, blazer and tie, seated upright with a clipboard; and two frames of a young BALL BOY in a white polo shirt and shorts sprinting, two stages of one stride. Keep the umpire seated and the ball boy running.",
"anchor": 0
},
"boy_carry": {
"sprites": [
"x_boycarry1",
"x_boycarry2",
"x_boycarry3",
"x_boycarry4"
],
"subject": "Four frames of the same young ball boy in a white polo shirt and shorts walking with a mop shouldered, a four-frame walk cycle, drawn as coarse low-resolution pixel art.",
"anchor": 0
},
"boy_mop": {
"sprites": [
"x_boymop1",
"x_boymop2",
"x_boymop3",
"x_boymop4"
],
"subject": "Four frames of the same young ball boy in a white polo shirt and shorts pushing a mop across the ground, a four-frame mopping cycle, bent over the mop handle, drawn as coarse low-resolution pixel art.",
"anchor": 0
},
"brute_wounds_a": {
"sprites": [
"z_gw",
"z_gw2"
],
"anchor": 0,
"subject": "Two damage stages of the same enormous fat zombie brute in a stained shirt, drawn as coarse low-resolution pixel art: the first has one arm torn off at the shoulder leaving a ragged stump and still drags a rusty pole; the second has BOTH arms gone. Keep the injuries exactly as they are."
},
"brute_wounds_c": {
"sprites": [
"z_gw3",
"z_gw4"
],
"anchor": 0,
"subject": "Two damage stages of the same enormous fat zombie brute in a stained shirt, drawn as coarse low-resolution pixel art: the first has his chest and belly torn wide open with ribs showing; the second is HEADLESS with the ribs out, still standing. Keep the injuries exactly as they are."
},
"shield_walk": {
"sprites": [
"z_s1",
"z_s2"
],
"anchor": 0,
"subject": "Two frames of the same zombie spectator in a grey-brown coat holding a wooden folding chair up in front of himself like a shield, shuffling forward, two stages of one stride, drawn as coarse low-resolution pixel art."
},
"shield_walk2": {
"sprites": [
"z_s3",
"z_s4"
],
"anchor": 0,
"subject": "Two more frames of the same zombie spectator in a grey-brown coat holding a wooden folding chair up in front of himself like a shield, shuffling forward, two further stages of the same stride, drawn as coarse low-resolution pixel art."
},
"shield_down": {
"sprites": [
"z_sdown"
],
"anchor": 0,
"subject": "One frame of a zombie spectator in a grey-brown coat who has just had his wooden folding chair knocked DOWN out of his hands \u2014 the chair is falling beside him and he is staggering with his arms up \u2014 drawn as coarse low-resolution pixel art."
},
"boy_run_2": {
"sprites": [
"x_boyrun3",
"x_boyrun4"
],
"anchor": 0,
"subject": "Two frames of the same young ball boy in a white polo shirt and shorts sprinting across a tennis court, two further stages of the same run cycle, drawn as coarse low-resolution pixel art."
},
"player_back": {
"sprites": [
"p_idle1",
"p_idle2",
"p_bounce",
"p_bounce2"
],
"ref_only": [
"p_run1"
],
"anchor": 0,
"check": "same",
"subject": "The reference is one tennis player in a white shirt, blue shorts and a white headband, seen FROM BEHIND. Draw FOUR frames of that same player, same size, same style. Every figure is drawn strictly FROM BEHIND like the reference: the back of his head and the back of his shirt face you, NO face, NO eyes, NO nose, NO mouth anywhere in the image. The four frames: (1) standing waiting, feet apart, racket held down at his right side; (2) the same stance with his weight shifted to the other foot; (3) bouncing a ball on the ground beside his right foot, leaning slightly down; (4) the same bounce a moment later, the ball higher. Output exactly four figures in one row."
},
"runner_front": {
"sprites": [
"z_f1",
"z_f2",
"z_f3",
"z_f4"
],
"ref_only": [
"z_c1"
],
"anchor": 0,
"check": "same",
"subject": "The reference is one zombie drawn FACING THE VIEWER. Draw FOUR frames of a DIFFERENT zombie in that same front-facing style, same size: a lean SPRINTING zombie in a torn grey-green tracksuit, charging straight down the court AT THE VIEWER. In every frame his chest and face point at you and he is coming towards you, foreshortened \u2014 one knee driven up high towards the camera, the other leg trailing far behind, arms pumping across his chest, body leaning into the run. The four frames are four stages of that charge: left knee up, mid-air stretch, right knee up, mid-air stretch the other way. He must NEVER be running sideways across the frame. Torn tracksuit, exposed ribs, green skin, sunken eyes and teeth. Output exactly four figures in one row."
},
"brute_all_wounds": {
"sprites": [
"z_gw",
"z_gwb",
"z_gw2",
"z_gw2b"
],
"anchor": 0,
"subject": "Four frames of the same enormous fat zombie brute, drawn as coarse low-resolution pixel art. The FIRST TWO are the same damage stage \u2014 his LEFT arm torn off at the shoulder leaving a ragged bloody stump, the right arm dragging a rusty pole \u2014 shown as two stages of one stride. The LAST TWO are the next damage stage, BOTH arms gone at the shoulders, again two stages of one stride. Within each pair the injuries must be IDENTICAL and on the same side of the body: only the legs change.",
"check": "same"
},
"brute_all_wounds2": {
"sprites": [
"z_gw3",
"z_gw3b",
"z_gw4",
"z_gw4b"
],
"anchor": 0,
"subject": "Four frames of the same enormous fat zombie brute, drawn as coarse low-resolution pixel art. The FIRST TWO are the same damage stage \u2014 chest and belly torn wide open with the ribs showing \u2014 as two stages of one stride. The LAST TWO are the final stage, HEADLESS with the ribs out, still standing, again two stages of one stride. Within each pair the injuries must be IDENTICAL and in the same place: only the legs change.",
"check": "same"
},
"player_swing": {
"sprites": [
"p_swing1",
"p_swing2"
],
"ref": "p_idle1",
"anchor": 0,
"check": "same",
"subject": "Three frames of the same tennis player in a white shirt, blue shorts and a white headband, seen from BEHIND, drawn as coarse low-resolution pixel art. First a plain standing frame for scale, then two frames of a forehand swing \u2014 racket drawn back across the body, then followed through. In both he faces AWAY from the camera, up the court \u2014 the back of his head towards you, no face."
},
"brute_w1": {
"sprites": [
"z_gw",
"z_gwb"
],
"ref_only": [
"z_gw"
],
"anchor": 0,
"check": "same",
"subject": "The reference is one enormous fat zombie brute with his LEFT arm torn off at the shoulder leaving a ragged bloody stump, the right hand dragging a rusty pole. Draw TWO frames of that EXACT same body \u2014 same injury, on the SAME side, same clothes, same size, same facing \u2014 as two stages of one stride: the first with his left leg forward and right leg back, the second with the legs swapped and his weight sunk lower. The injury must be pixel-identical in both frames; ONLY the legs and the lean change. Output exactly two figures in one row."
},
"brute_w2": {
"sprites": [
"z_gw2",
"z_gw2b"
],
"ref_only": [
"z_gw2"
],
"anchor": 0,
"check": "same",
"subject": "The reference is one enormous fat zombie brute with BOTH arms torn off at the shoulders, two ragged bloody stumps. Draw TWO frames of that EXACT same body \u2014 same injury, on the SAME side, same clothes, same size, same facing \u2014 as two stages of one stride: the first with his left leg forward and right leg back, the second with the legs swapped and his weight sunk lower. The injury must be pixel-identical in both frames; ONLY the legs and the lean change. Output exactly two figures in one row."
},
"brute_w3": {
"sprites": [
"z_gw3",
"z_gw3b"
],
"ref_only": [
"z_gw3"
],
"anchor": 0,
"check": "same",
"subject": "The reference is one enormous fat zombie brute with his chest and belly torn wide open with the ribs showing through. Draw TWO frames of that EXACT same body \u2014 same injury, on the SAME side, same clothes, same size, same facing \u2014 as two stages of one stride: the first with his left leg forward and right leg back, the second with the legs swapped and his weight sunk lower. The injury must be pixel-identical in both frames; ONLY the legs and the lean change. Output exactly two figures in one row."
},
"brute_w4": {
"sprites": [
"z_gw4",
"z_gw4b"
],
"ref_only": [
"z_gw4"
],
"anchor": 0,
"check": "same",
"subject": "The reference is one enormous fat zombie brute with HEADLESS, a ragged neck stump, ribs out, still standing. Draw TWO frames of that EXACT same body \u2014 same injury, on the SAME side, same clothes, same size, same facing \u2014 as two stages of one stride: the first with his left leg forward and right leg back, the second with the legs swapped and his weight sunk lower. The injury must be pixel-identical in both frames; ONLY the legs and the lean change. Output exactly two figures in one row."
}
}