Stand 19.10.2026. Festlegungen dazu stehen in #15.
Zwei Skripte erzeugen die Bilder des Ruhebildschirms über die OpenAI-Bild-API:
| Skript | erzeugt | Ziel |
|---|---|---|
werkzeuge/figur_bilder.py |
Elektras Figur in vier Zuständen | docs/entwuerfe/figur/ |
werkzeuge/wetter_bilder.py |
Hintergrund für sechs Wetterlagen | docs/entwuerfe/wetter/ |
Beide arbeiten gleich: Erst entsteht ein Grundbild, die übrigen Bilder werden aus diesem Grundbild abgeleitet. So sieht die Figur in allen Zuständen gleich aus, und Landschaft und Fernsehturm bleiben in allen Wetterlagen an derselben Stelle.
uv ist installiert. Die Skripte bringen ihre Abhängigkeiten (openai, pillow) selbst mit.OPENAI_API_KEY. Er steht in der
von 1Password eingebundenen .env von rundfunk und wird mit --env-file übergeben.
Er wird nie ins Repo geschrieben.cd ~/Development/kuechen-display.medium als Standard).figur_bilder.py)Vorlage: docs/entwuerfe/figur/vorlage-pferdeschwanz.png, Florians ChatGPT-Bild
mit zwei Figuren. Das Skript schneidet die linke Figur („Agent hört zu“) aus
(Ausschnitt 30, 250, 610, 830).
Zustände: zuhoeren (Grundbild, aus der Vorlage), sprechen-halb, sprechen-offen,
nachdenken (aus dem Grundbild). Jedes Bild transparent, ohne Kreis, Schallbögen,
Mikrofon und Text: Diese Teile zeichnet die Oberfläche selbst.
Schritte:
uv run werkzeuge/figur_bilder.py --probe
uv run --env-file ../rundfunk/.env werkzeuge/figur_bilder.py
docs/entwuerfe/figur/<zustand>.png (1024 px) und
<zustand>-klein.png (256 px, so groß kommt die Figur aufs Display).zuhoeren.png):
uv run --env-file ../rundfunk/.env werkzeuge/figur_bilder.py --nur nachdenken
Optionen: --qualitaet low|medium|high, --modell <name> (Standard
gpt-image-2.6-sunburst), --vorlage <datei>, --ohne-ausschnitt.
Erster Lauf: 19.10.2026, Ergebnis ist Entwurf F2, von Florian als Elektras Figur gewählt.
wetter_bilder.py)Lagen: gedaempft (Grundbild, nur aus Text), sonnig, wolkig, nacht,
schnee, regen (aus dem Grundbild).
Stil: W3, eine illustrierte Landschaft mit dem Stuttgarter Fernsehturm. Der Turm muss im Startbild (Heute) in der Lücke zwischen linker und rechter Glaskarte stehen, bei x = 730 von 1280 px (57 %). Auf den Seiten Apps und Morgen/Woche darf er verdeckt sein.
Format: Die API liefert 1536 × 1024. Das Modell hält die Turmposition aus dem
Prompt nicht zuverlässig ein. Deshalb misst das Skript im Grundbild, wo der Turm
steht, und schneidet aus jedem Rohbild einen 16:10-Ausschnitt so aus, dass der Turm
bei x = 730 landet. Danach wird auf 1280 × 800 skaliert, meist leicht vergrößert.
Steht der Turm zu nah am Rand, bricht das Skript mit einer Meldung ab. Die unbeschnittenen Originale liegen in
docs/entwuerfe/wetter/roh/ und werden für die Ableitungen gebraucht. Sie bleiben
lokal und sind nicht im Git.
Schritte:
uv run werkzeuge/wetter_bilder.py --probe
uv run --env-file ../rundfunk/.env werkzeuge/wetter_bilder.py
docs/entwuerfe/wetter/pruefung/ an: die Glaskarten als dunkle Flächen, die
Sollposition des Turms als rote Linie.
Steht der Turm daneben, weil die Messung einen falschen Strich erwischt hat,
kostenlos neu zuschneiden, bei Bedarf mit der Turmposition im Rohbild von Hand.
Die Rohbilder liegen in wetter/roh/.
uv run werkzeuge/wetter_bilder.py --neu-zuschneiden
uv run werkzeuge/wetter_bilder.py --neu-zuschneiden --turm-x 1078
Passt das Grundbild selbst nicht, etwa weil der Turm am Rand steht oder fehlt, zuerst das Grundbild neu erzeugen, danach die anderen Lagen:
uv run --env-file ../rundfunk/.env werkzeuge/wetter_bilder.py --nur gedaempft
uv run --env-file ../rundfunk/.env werkzeuge/wetter_bilder.py --nur sonnig wolkig nacht schnee regen
Nur die Prüfbilder neu zeichnen, ohne API: uv run werkzeuge/wetter_bilder.py --pruefen
--nur nacht.Erster Lauf: 19.10.2026. Der Turm stand im Rohbild bei 70 % statt 57 % und wurde per Zuschnitt in die Lücke gesetzt (Turm im Rohbild bei x = 1078). Der Stil ist eher gemalt als flach illustriert. Im Ruhebildschirm-Entwurf als W4 zu sehen.
docs/entwuerfe/wetter/ per PR ins Repo bringen.Damit die Landschaft zur Figur F2 passt, gibt es einen Ideen-Lauf: Für eine Lage,
standardmäßig Regen, entstehen drei Bilder in drei Stilrichtungen: ton (weiche
Ton-Welt), flach (flache Illustration) und bilderbuch. Das Bild der Frau
(docs/entwuerfe/figur/zuhoeren.png) geht als Stilhinweis mit. Übernommen werden
nur Machart und Licht, nicht ihre Farben. Die Landschaft bleibt natürlich (grüne
Hügel, grauer Regenhimmel), die Frau wird nicht ins Bild gesetzt.
uv run werkzeuge/wetter_bilder.py --ideen --probeuv run --env-file ../rundfunk/.env werkzeuge/wetter_bilder.py --ideen
Andere Lage: --lage nacht. Andere Stilvorlage: --stil-vorlage <datei>.
docs/entwuerfe/wetter/ideen/<lage>-<stil>.png, Prüfbilder daneben in
ideen/pruefung/. Die bisherigen sechs Wetterbilder bleiben unverändert.Erster Ideen-Lauf: 19.10.2026, Regen in allen drei Stilen, je 2 Cent. Florian
wählte flach.
Die Serie nimmt das Rohbild der gewählten Idee als Grundbild, z. B.
ideen/roh/regen-flach.png, und leitet jede andere Lage daraus ab. Landschaft,
Turm und Stil bleiben damit genau wie in der Idee. Die Lage der Idee selbst wird
nur zugeschnitten und kostet nichts. Ziel ist ein eigener Ordner
docs/entwuerfe/wetter/<stil>/, die älteren Bilder bleiben unberührt.
uv run werkzeuge/wetter_bilder.py --serie flach --probeuv run --env-file ../rundfunk/.env werkzeuge/wetter_bilder.py --serie flach
docs/entwuerfe/wetter/flach/pruefung/ ansehen; einzelne Lage
nachbessern mit --nur nacht.--ideen --lage nacht, dann
--serie <stil> --lage nacht.Erster Serien-Lauf: 19.10.2026, --serie flach. Fünf Bilder je etwa 3 Cent (zwei
Bilder als Eingabe: Grundbild und Stilvorlage). Der Turm steht in allen sechs in der
Lücke. „Gedämpft“ zeigt noch feine Regenstriche aus dem Grundbild. Im Entwurf als W5.
Beide Skripte schreiben nach jedem Bild die verbrauchten Tokens und die Kosten in
docs/bild-laeufe.md und geben sie aus. Grundlage sind die Tokens aus
der API-Antwort und die Preise in werkzeuge/bildkosten.py (gpt-image-2.6, Stand
15.11.2026, gleich wie 2.5: Bild ein 8 $, Text ein 5 $, Bild aus 30 $ je Million Tokens). Die
ersten beiden Läufe am 19.10.2026 sind dort nicht drin, weil das Protokoll erst danach
kam. Geschätzt kosteten sie zusammen unter einen Euro.
| Meldung | Ursache, Abhilfe |
|---|---|
OPENAI_API_KEY fehlt … |
--env-file ../rundfunk/.env vergessen, oder die .env ist nicht eingebunden (1Password-App entsperren) |
Turm bei x = … steht zu nah am Rand |
Grundbild mit --nur gedaempft neu erzeugen, danach die anderen Lagen |
Grundbild … fehlt |
--nur ohne vorhandenes Grundbild: erst einmal ohne --nur laufen lassen |
Unbekannte Zustände/Lagen |
Tippfehler bei --nur; gültige Namen siehe oben |
| Figur sieht in einem Zustand anders aus | nur diesen Zustand mit --nur neu erzeugen; hilft das nicht, --qualitaet high |
git pull scheitert mit Permission denied (publickey) |
1Password ist gesperrt, der SSH-Agent antwortet nicht: entsperren, dann erneut |