Files
splatter-tennis/assets/_regen_batches.json
T
wuwiandClaude Opus 5 bcff17812f Draw the whole serve right-handed, and let the pull wind it up
The racket kept changing hands because the art disagreed with itself: p_idle,
p_bounce and p_toss held it in his LEFT hand while p_smash and p_swing used his
right, so every new frame copied whichever reference it was handed. The idle, the
bounce pair, the toss and the four wind-up frames are all regenerated with the
side named — drawn from behind, his right hand is the right-hand side of the
image, and only the racket HEAD crosses behind his back.

What separates the four wind-up stages is how far the racket has fallen, and that
needed the racket head pinned to a body landmark per frame — above his head,
beside his ear, between his shoulder blades, at the back of his thighs. Described
as "further into it each time" it drew four near-identical poses twice running.
They are wired late in the pull, Oliver's call: frame 1 owns the first half and
the three coiled frames are packed into the top half.

assets/_derive.py is deleted. Fixing generated art by mangling it afterwards is
always worse than regenerating; three guards in _regen.py turn the bad rolls that
used to install silently into automatic re-rolls — a portrait reference canvas
(the generator answered with a 2x2 grid), a non-magenta background (a green sheet
keyed away four racket heads), and a mirrored frame.

The bounce pair is one drawing from one sheet now, differing only in the free
hand, so BOUNCE_IDLE moved to his left side and was re-measured off the sprite.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-01 00:49:28 +02:00

436 lines
26 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_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": "loose",
"scale": 1.5,
"subject": "The reference is one enormous fat zombie brute whose arm on the RIGHT-HAND SIDE OF THE IMAGE is torn off at the shoulder, leaving a ragged bloody stump, while the arm on the LEFT-HAND SIDE of the image is whole and drags a rusty pole. Draw TWO frames of that exact body as two stages of one stride. In BOTH frames the bloody stump must stay on the RIGHT-HAND SIDE OF THE IMAGE and the pole-dragging arm on the LEFT \u2014 do not mirror the body. Only the legs and the lean change: first left leg forward, then legs swapped with the weight sunk lower. 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": "loose",
"subject": "Draw TWO frames of an enormous fat zombie brute that has NO HEAD AT ALL \u2014 the neck ends in a ragged red stump at shoulder height, there is no skull, no face, no jaw, nothing above the shoulders \u2014 and whose chest is torn open with the ribs showing. Same body, same clothes and same size as the reference, as two stages of one stride: first left leg forward, then legs swapped with the weight lower. The missing head and the chest wound must be identical in both frames; only the legs change. Output exactly two figures in one row."
},
"brute_stages": {
"sprites": [
"z_gw",
"z_gw2",
"z_gw3",
"z_gw4"
],
"ref_only": [
"z_g1"
],
"anchor": 0,
"check": "loose",
"scale": 1.5,
"subject": "The reference is an enormous fat zombie brute \u2014 huge belly, stained shirt, brown trousers, dragging a rusty pole. Draw FOUR frames of that SAME body at that SAME size and bulk, standing, as four stages of damage: (1) the arm on the right-hand side of the image torn off at the shoulder leaving a ragged bloody stump, the other arm still dragging the pole; (2) BOTH arms torn off at the shoulders, two bloody stumps, no pole; (3) both arms gone and the chest and belly torn wide open with ribs showing through; (4) all of that AND no head at all \u2014 the neck ends in a ragged red stump at shoulder height, no skull, no face. He must stay the same enormous size and shape in all four \u2014 do not slim him down as the damage grows. Output exactly four figures in one row, evenly spaced."
},
"brute_s12": {
"sprites": [
"z_gw",
"z_gw2"
],
"ref_only": [
"z_g1"
],
"anchor": 0,
"check": "loose",
"scale": 1.4,
"subject": "The reference is an enormous fat zombie brute \u2014 huge belly, stained shirt, brown trousers. Draw TWO frames of that SAME body at that SAME enormous size and bulk, standing, as two stages of damage: (1) the arm on the right-hand side of the image torn off at the shoulder leaving a ragged bloody stump, the other arm still dragging a rusty pole; (2) BOTH arms torn off at the shoulders, two bloody stumps, no pole. Do not slim him down. Output exactly two figures in one row, far apart."
},
"brute_s34": {
"sprites": [
"z_gw3",
"z_gw4"
],
"ref_only": [
"z_g1"
],
"anchor": 0,
"check": "loose",
"scale": 1.4,
"subject": "The reference is an enormous fat zombie brute \u2014 huge belly, stained shirt, brown trousers. Draw TWO frames of that SAME body at that SAME enormous size and bulk, standing, as two stages of damage: (1) both arms gone and the chest and belly torn wide open with the ribs showing through; (2) all of that AND no head at all \u2014 the neck ends in a ragged red stump at shoulder height, no skull, no face, nothing above the shoulders. Do not slim him down. Output exactly two figures in one row, far apart."
},
"player_stance_r": {
"sprites": [
"p_idle1",
"p_bounce",
"p_bounce2",
"p_toss"
],
"ref_only": [
"p_smash"
],
"anchor": 0,
"check": "same",
"subject": "The reference is ONE tennis player in a white shirt, blue shorts and a white headband, seen from behind, serving with the racket high in his right hand. Draw FOUR frames of that same man. Every figure is seen strictly FROM BEHIND \u2014 the back of his head and the back of his shirt towards you, NO face, NO eyes, NO nose, NO mouth. Every figure is drawn from exactly the same viewpoint: same camera height, same distance, straight on, standing on the same level ground line, with no perspective distortion, no foreshortening, no worm's-eye or bird's-eye angle and no three-quarter turn. Same size, same body, same style, same BRIGHT WHITE shirt and BRIGHT BLUE shorts as the reference \u2014 do not wash the colours out. He is RIGHT-HANDED and the racket NEVER changes hands: in every single frame the racket is in his RIGHT hand, which \u2014 because he is drawn from behind \u2014 is on the RIGHT-HAND SIDE OF THE IMAGE, exactly as in the reference. His empty left arm is on the LEFT-HAND SIDE OF THE IMAGE. Draw NO ball anywhere in any frame \u2014 the game draws the ball. Frame 1: he STANDS upright and relaxed at the baseline, arms down, the racket hanging at his right side. Frame 2: he leans forward a little and his empty LEFT hand reaches down and out to the LEFT-HAND SIDE OF THE IMAGE, palm down, as if patting a ball on the ground beside his left foot; the racket stays in his right hand at his right side. Frame 3 IS THE SAME DRAWING AS FRAME 2 \u2014 identical stance, identical legs, identical head, identical racket, identical everything \u2014 and the ONLY difference is that his left elbow is bent a little more so that left hand has risen about one hand's width higher, as if the ball had bounced back up into it. Frame 4: the ball toss \u2014 he leans back and throws that same empty LEFT arm up high above him on the LEFT-HAND SIDE OF THE IMAGE, having just released the ball, while the racket stays in his right hand down at his right side. Output exactly four figures in one row, evenly spaced and far apart."
},
"player_windup": {
"sprites": [
"p_pull0",
"p_pull1",
"p_pull2",
"p_pull3",
"p_pull4"
],
"ref_only": [
"p_idle1",
"p_toss"
],
"anchor": 0,
"check": "same",
"scale": 1.6,
"arm_left": true,
"subject": "The reference shows the same tennis player twice \u2014 white shirt, blue shorts, white headband, seen from behind: standing with the racket in his right hand, and throwing the ball up to serve with his empty left arm high on the left-hand side of the image. Draw FIVE frames of that same man. Every figure is seen strictly FROM BEHIND \u2014 the back of his head towards you, NO face, NO eyes, NO nose \u2014 all from the same camera height and distance, on the same ground line, no perspective distortion and no three-quarter turn. Same size, same body, same style, same BRIGHT WHITE shirt and BRIGHT BLUE shorts, no coloured collar or trim. Draw NO ball anywhere \u2014 the game draws the ball. He is RIGHT-HANDED and the racket NEVER changes hands: his whole right arm stays on the RIGHT-HAND SIDE OF THE IMAGE and his empty LEFT arm stays thrown up high on the LEFT-HAND SIDE OF THE IMAGE. Never mirror him.\nTHE FOUR SERVE FRAMES MUST BE STRONGLY DIFFERENT FROM ONE ANOTHER, and what changes between them is HOW FAR THE RACKET HAS FALLEN: in each frame the racket head is at a clearly lower point on his body than in the frame before, and his body leans further back. Do not draw four similar poses. In ALL FOUR his empty left arm is held up high above him and never comes down \u2014 only the racket falls.\nFrame 1: he simply STANDS upright and relaxed, arms down \u2014 a plain standing frame.\nFrame 2: the racket is held STRAIGHT UP, its head HIGH ABOVE HIS HEAD with clear sky between the racket and his hair, his right arm almost straight, his body upright, and his empty LEFT arm still thrown up high above him on the left-hand side of the image.\nFrame 3: the racket has tipped over backwards so its head now points DOWN and sits BESIDE HIS EAR, level with his face, his right elbow raised to shoulder height, his body just beginning to lean back, and his empty LEFT arm still thrown up high above him on the left-hand side of the image.\nFrame 4: the racket head has fallen to the MIDDLE OF HIS BACK, between his shoulder blades, his right elbow high above his shoulder, his back arched and leaning clearly backwards, knees beginning to bend, and his empty LEFT arm still thrown up high above him on the left-hand side of the image.\nFrame 5: the racket head has fallen all the way down to the BACK OF HIS THIGHS, below his shorts, the racket hanging almost straight down behind him; his right elbow points at the sky beside his head, his body is leaned back as far as it goes with his hips pushed forward, his heels are lifted off the ground, and his empty LEFT arm is STILL thrown up high above him on the left-hand side of the image. This is maximum tension, the instant before he explodes upwards.\nOutput exactly five figures in one row, evenly spaced and far apart."
},
"player_idle": {
"sprites": [
"p_idle1",
"p_idle2"
],
"ref_only": [
"p_idle1"
],
"anchor": 0,
"check": "same",
"scale": 1.6,
"subject": "The reference is ONE tennis player in a white shirt, blue shorts and a white headband, seen from behind, standing at the baseline with the racket in his right hand. Draw TWO frames of that same man waiting. Every figure is seen strictly FROM BEHIND \u2014 the back of his head and the back of his shirt towards you, NO face, NO eyes, NO nose, NO mouth. Every figure is drawn from exactly the same viewpoint: same camera height, same distance, straight on, standing on the same level ground line, with no perspective distortion, no foreshortening, no worm's-eye or bird's-eye angle and no three-quarter turn. Same size, same body, same style, same BRIGHT WHITE shirt and BRIGHT BLUE shorts as the reference \u2014 do not wash the colours out.He is RIGHT-HANDED and the racket NEVER changes hands: in every frame the racket is in his RIGHT hand, which \u2014 because he is drawn from behind \u2014 is on the RIGHT-HAND SIDE OF THE IMAGE, exactly as in the reference. His empty left arm hangs on the LEFT-HAND SIDE OF THE IMAGE. Draw NO ball anywhere. THE TWO FRAMES ARE THE SAME DRAWING: identical body, identical arms, identical racket, identical head \u2014 the ONLY difference is a small idle weight shift. Frame 1: his weight is on his left foot, that hip a little higher. Frame 2: the same man with his weight settled onto his right foot. Output exactly two figures in one row, far apart."
},
"player_drive": {
"sprites": [
"p_pull0",
"p_pull4"
],
"ref_only": [
"p_idle1",
"p_pull3"
],
"anchor": 0,
"check": "same",
"scale": 1.6,
"subject": "The reference shows the same tennis player twice \u2014 white shirt, blue shorts, white headband, seen from behind: standing with the racket in his right hand, and part-way through a serve with the racket dropping behind his back. Draw TWO frames of that same man. Both are seen strictly FROM BEHIND \u2014 the back of his head towards you, NO face, NO eyes, NO nose \u2014 from the same camera height and distance, on the same ground line, no perspective distortion and no three-quarter turn. Same size, same body, same style, same BRIGHT WHITE shirt and BRIGHT BLUE shorts, no coloured collar or trim, a plain grey-strung wooden racket. Draw NO ball anywhere. He is RIGHT-HANDED and the racket stays in his RIGHT hand. Frame 1: he simply STANDS upright and relaxed, arms down \u2014 a plain standing frame. Frame 2 is the instant of MAXIMUM TENSION just before he uncoils. He stands tall and nearly straight, not crouched and not folded over: his legs are long, his heels lifted, and his upper body leans BACKWARDS so his shoulders are behind his hips and his hips are pushed forward. His RIGHT elbow is raised beside his head and the racket hangs STRAIGHT DOWN BEHIND HIS BACK from that hand, the racket head level with his hips. His LEFT arm is folded down in front of his chest. His head is UP and clearly visible from behind with the white headband on it \u2014 his arms must not cover his head, and he must not be bent over sideways or forwards. Output exactly two figures in one row, far apart."
}
}