Four directions per tile (neon box art / vector side art / amiga comic / 80s airbrush) generated on the farm, plus the picker page and the installer that ships chosen art and its risograph hover b-side. Recipe rules, all learned the hard way against the existing covers: tiles render 172-240px so silhouette and colour are all that read; the page draws every title in HTML so art carries no lettering (the old covers baked in garbled type); busy interiors smuggle text back via album sleeves and go muddy small, so it is one hero subject per card. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
34 lines
1.9 KiB
Python
34 lines
1.9 KiB
Python
#!/usr/bin/env python3
|
|
"""Hero banner variants. The slot is 21:9 and the current art is a PORTRAIT
|
|
image cropped to fit, so most of it is thrown away. The page scrims the left
|
|
side for the headline, so the robot is composed hard right with clean dark
|
|
space on the left."""
|
|
import json, os
|
|
|
|
OUT = '/private/tmp/claude-501/-Users-m3ultra-Documents/097e3817-807d-439d-b5f5-95a6ffd4a1f9/scratchpad/hero'
|
|
SUBJ = ("a colossal chrome monster robot standing menacingly among glowing arcade "
|
|
"cabinets in a dark neon arcade, reflections on a wet tiled floor, "
|
|
"composed on the right hand side of a wide frame")
|
|
READS = ("ultra wide cinematic banner, the left third is empty dark negative space, "
|
|
"strong silhouette, high contrast, saturated neon on near black")
|
|
NOTEXT = ("completely wordless, no text, no letters, no words, no logo, no marquee "
|
|
"lettering, no watermark, no signature, blank unmarked cabinet panels")
|
|
STYLES = {
|
|
'neon': "1987 British home-computer game box art, airbrushed gouache, glossy highlights, screaming neon cyan and magenta on black",
|
|
'vector': "1980s arcade cabinet side art, bold flat vector shapes, thick black outlines, blazing neon on black, geometric",
|
|
'comic': "early-1990s Amiga game cover painting, chunky saturated brushwork, bold cel shading, dark vignette",
|
|
'paint': "classic 1980s airbrush poster painting, silhouettes against a glowing backlit haze, lush deep colour, cinematic",
|
|
}
|
|
spec = []
|
|
for k, st in STYLES.items():
|
|
p = {'prompt': f'{st}. {SUBJ}. {READS}. {NOTEXT}',
|
|
'model': 'z-image-turbo' if k == 'paint' else 'flux2-klein-4b',
|
|
'steps': 8 if k == 'paint' else 4,
|
|
'width': 1344, 'height': 576, 'seed': 13}
|
|
if k == 'paint':
|
|
p['quantize'] = '4'
|
|
spec.append({'out': f'{OUT}/hero__{k}.png', 'operator': 'flux_local', 'params': p})
|
|
os.makedirs(OUT, exist_ok=True)
|
|
json.dump(spec, open(OUT + '/spec.json', 'w'), indent=1)
|
|
print(len(spec), 'hero jobs')
|