The pot of oil, from the atlas: oil is the fear mechanic and the double
fry is the physics, not the flavour text. Cold oil soaks (grease). Hot
oil seals — and the seal is REAL: past ~0.8 gold the crust shuts and the
inside stops listening, so one screaming-hot fry gives you 'firm in the
middle — the seal beat the cook'. The honest path is the card's path:
blanch in the shimmer until fluffy, REST on the rack while the steam
escapes (dryness is what golds — the oil spends it, the rack rebuilds
it), then back in HOT for the colour. The basket knocks the oil down a
full degree when it lands, because thermal mass does not care about
your schedule.
THE SPIT is the knuckle lesson with a floor: raw chips in oil past 8.4
throw it back, and a spit only burns the hand PARKED OVER THE POT — the
pointer is your hand, and standing back costs nothing. The judge's row
reads 'it spat 13 times; you did not flinch' or names exactly what the
hovering cost you.
First cut had two dead spots the adversarial pass caught: the seal was
too weak (a single hot fry still cooked through for 9.1) and the spit
window was unreachable (the basket-knock kept the oil under SPIT_AT for
the whole raw phase). Rebalanced: seal 1.25x, gold rate up, spit at 8.4.
Verified: double-fry 10.0 ('proper gold · fluffy inside · dry. drained.
correct · 2 fries — as the card says'); one-hot-fry-hand-hovering 7.6
with 13 burns. Day 24 on the card, procedural arm, ghost demo slot 24,
hero_chips on the scorecard, Ray's portrait already on the ticket.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
60 lines
5.7 KiB
Bash
Executable File
60 lines
5.7 KiB
Bash
Executable File
#!/bin/bash
|
|
# gen-art-batch.sh — the full 2D art pass on the Cloudflare FLUX lane.
|
|
# Regulars' ticket portraits, THE MOTHER's jar states, dish heroes.
|
|
# Idempotent: skips anything already in public/assets/img.
|
|
set -uo pipefail
|
|
cd "$(dirname "$0")/.."
|
|
S="${SCRATCH:-/tmp/toastsim-art}"; mkdir -p "$S"
|
|
STYLE="claymation stop-motion figurine, plain light grey background, soft studio lighting, chunky stylized game asset, waist-up portrait"
|
|
JSTYLE="claymation stop-motion style, plain light grey background, soft studio lighting, chunky stylized game asset"
|
|
|
|
gen() { # gen <outname> <seed> <prompt>
|
|
local name="$1" seed="$2" prompt="$3"
|
|
[ -f "public/assets/img/$name.png" ] && { echo "= $name exists"; return; }
|
|
./scripts/cf-flux.py "$S/$name.raw" "$prompt" 8 "$seed" >/dev/null \
|
|
&& sips -s format png -Z 768 "$S/$name.raw" --out "public/assets/img/$name.png" >/dev/null 2>&1 \
|
|
&& echo "+ $name" || echo "! $name FAILED"
|
|
}
|
|
|
|
# The regulars — one fixed seed each so reruns keep the same person.
|
|
gen who_deidre 101 "$STYLE, elderly woman with lavender-grey perm, floral cardigan, large round glasses on a chain, clutching a small handbag, expectant pursed smile"
|
|
gen who_ray 102 "$STYLE, middle-aged working man in a flat cap and worn brown work jacket, stubble, mug of tea in hand, easy-going squint"
|
|
gen who_a_child 103 "$STYLE, small child on tiptoes at a counter, oversized striped jumper, gap-toothed grin, holding out a fistful of coins"
|
|
gen who_a_man_in_a_hurry 104 "$STYLE, businessman with loosened tie and rumpled suit, briefcase under one arm, checking his wristwatch, harried expression"
|
|
gen who_a_regular 105 "$STYLE, comfortable older man in a knitted vest with a folded newspaper under his arm, content half-smile, coffee mug"
|
|
gen who_someone_new 106 "$STYLE, young woman with a short bob and denim jacket, looking around uncertainly, holding a menu, hopeful nervous smile"
|
|
gen who_the_bloke_from_two_doors_down 107 "$STYLE, unshaven man in a tartan dressing gown over day clothes, slippers, holding his own mug from home, sheepish grin"
|
|
gen who_the_chef_on_her_day_off 108 "$STYLE, woman with hair in a tight bun, chef whites jacket open over a band t-shirt, arms crossed, appraising professional stare"
|
|
gen who_the_delivery_at_6am 109 "$STYLE, courier in a hi-vis vest and beanie mid-yawn, cardboard box under one arm, heavy eyelids"
|
|
gen who_the_lunch_rush 110 "$STYLE, three impatient office workers crowded shoulder to shoulder, all checking phones and watches, tight group"
|
|
gen who_the_man_at_table_nine 111 "$STYLE, mysterious lone man in a long grey overcoat, fedora resting on the table edge, steepled fingers, unreadable face"
|
|
gen who_the_pavlova_order 112 "$STYLE, grand formidable elderly woman in pearls and a silk scarf, chin high, gloved hands folded, expecting perfection"
|
|
gen who_the_benedict_table 113 "$STYLE, refined woman in a cream blazer with gold earrings, holding a menu closed, patient knowing smile"
|
|
|
|
# THE MOTHER — three states of one jar.
|
|
gen jar_bubbling 201 "$JSTYLE, single glass mason jar of sourdough starter, cloth cap tied with string, contents risen and bubbly, lively froth over the rim, warm and healthy"
|
|
gen jar_sulking 202 "$JSTYLE, single glass mason jar of sourdough starter, cloth cap tied with string, contents flat and sunken with a thin grey liquid layer on top, gloomy"
|
|
gen jar_dead 203 "$JSTYLE, single glass mason jar of long-dead sourdough starter, cloth cap askew, contents collapsed dark and crusted, a small wilted flag stuck in it, funereal"
|
|
|
|
# Dish heroes — the plate on the scorecard's order line.
|
|
gen hero_grill 301 "$JSTYLE, plate of chargrilled mushroom skewers with proper dark grill marks, single plate centered"
|
|
gen hero_pan 302 "$JSTYLE, cast iron pan with golden butter-basted mushrooms glistening, single pan centered"
|
|
gen hero_steak 303 "$JSTYLE, sliced rib eye steak on a wooden board, rosy pink centre, resting juices, single board centered"
|
|
gen hero_eggs 304 "$JSTYLE, glass bowl of whipped glossy egg whites beside three brown eggshells, single bowl centered"
|
|
gen hero_poach 305 "$JSTYLE, single perfect poached egg on a slotted spoon, white silky and intact, droplet falling"
|
|
gen hero_benedict 306 "$JSTYLE, eggs benedict on a toasted muffin, hollandaise dripping down, single plate centered"
|
|
|
|
# Station backdrops — blurred walls so every scene has a horizon, not fog.
|
|
BSTYLE="soft-focus heavily blurred background, muted warm dark tones, no sharp foreground objects, cozy game environment backdrop art, wide shot"
|
|
gen bg_grill 401 "$BSTYLE, backyard at dusk seen past a grill, wooden fence, string lights, drifting smoke"
|
|
gen bg_stove 402 "$BSTYLE, dark tiled kitchen splashback with hanging copper utensils and a warm lamp"
|
|
gen bg_pot 403 "$BSTYLE, steamy stove wall with a shelf of stockpots and rising steam wisps"
|
|
gen bg_butcher 404 "$BSTYLE, white tiled butcher shop wall with hanging tools and a wooden rail"
|
|
gen bg_pantry 405 "$BSTYLE, warm pantry shelves with egg cartons, flour sacks and preserving jars"
|
|
gen bg_coldroom 406 "$BSTYLE, stainless steel commercial kitchen cold room, soft blue-grey light"
|
|
|
|
echo done
|
|
gen hero_fryer 307 "$JSTYLE, air fryer basket full of golden crispy chicken wings with space between them, seen from above, single basket centered"
|
|
gen who_the_wing_man 114 "$STYLE, cheerful heavyset man in a sports jersey and backwards cap, licking sauce off one thumb, other hand raised for a high-five that is not coming"
|
|
gen hero_chips 308 "$JSTYLE, paper cone of golden double-fried chips with flaky salt, single cone centered"
|