bilder gen

This commit is contained in:
knso committed 2026-08-17 23:41:49 +02:00
1 parent 9ecb292c26
commit f4aac46ea0
9 files changed
+1381 -93

No files matched your search

+28 -10
View File
@@ -17,22 +17,40 @@ npm --prefix client run web
## Bildgenerierung
Die Warteschlange aus `jobs` arbeitet der Dispatcher ab – **serverseitig**, weil
der Anbieter-Schlüssel nicht ins Client-Bundle darf:
Zwei Job-Typen arbeitet der Dispatcher ab – **serverseitig**, weil der
Anbieter-Schlüssel nicht ins Client-Bundle darf:
| Job | Entsteht bei | Ergebnis |
|---|---|---|
| `modell_gen` | Modell anlegen (Person, Produkt, Kulisse) | 4 Varianten als Entwurfs-Versionen, eine wird freigegeben |
| `bild_gen` | Post erstellen | Bilderkette in `post_images` |
**Logo-Sonderfall:** Wer eine Datei hochlädt, bekommt sie unverändert als
freigegebene Version – ab da wird sie nie neu generiert. Wer keine hat, bekommt
Entwürfe. Sobald etwas freigegeben ist, weist der Dispatcher jede weitere
Generierung auf dieses Asset ab. So bleibt die Brand-Regel gewahrt, ohne Marken
ohne Logo auszusperren.
```bash
BILD_ANBIETER=stub node scripts/job-dispatcher.mjs
node scripts/job-dispatcher.mjs
```
`stub` erzeugt Platzhalterbilder und macht die ganze Kette prüfbar, ohne Kosten.
`ark` und `openrouter` sprechen die echten Modelle an – beide setzen voraus,
dass das jeweilige Konto freigeschaltet bzw. aufgeladen ist:
Ohne Angabe läuft er auf `auto` und probiert der Reihe nach **Ark → OpenRouter →
Platzhalter**. Ark steht vorn, weil Seedream mit 0,045–0,090 $ je Bild günstiger
ist als Gemini mit 0,14 $ und in `eu-west` läuft. Ist Ark nicht freigeschaltet,
fällt die Kette still auf OpenRouter zurück; jede Zeile im Log nennt den
Anbieter, der geliefert hat.
- **BytePlus Ark:** Modell in der Konsole unter Model Service aktivieren
- **OpenRouter:** Guthaben aufladen
Unterschieden wird zwischen „Anbieter nicht verfügbar" (Konto zu, kein Guthaben)
und einem echten Fehler – nur beim ersten Fall wird weitergereicht, damit ein
inhaltlicher Fehler nicht stillschweigend überdeckt wird.
Danach reicht `BILD_ANBIETER=ark node scripts/job-dispatcher.mjs` – am Code
ändert sich nichts.
Fest wählen geht weiterhin: `BILD_ANBIETER=stub|ark|openrouter`.
**Voraussetzungen je Anbieter:** OpenRouter braucht gekauftes Guthaben (eine
hinterlegte Karte genügt nicht – es ist ein Prepaid-Konto). BytePlus Ark braucht
die Aktivierung je Modell in der Konsole unter *Model activation*; das ist keine
Zahlungsfrage, verlangt aber die Zustimmung zu mehreren Verträgen.
## Demo-Daten