Storyboard-Generator für Geschichten
Verfeinert die Handlung basierend auf Benutzerbeschreibungen, unterteilt sie in Storyboard-Frames und generiert stapelweise konsistente Storyboard-Illustrationen.
Arbeitsablauf
Phase 1: Verfeinerung der Geschichte und Aufteilung in Storyboard-Frames
- Geschichte erfassen – Holt die vom Benutzer beschriebene Geschichte (Text, Gliederung oder Ideen) ab.
- Handlung verfeinern – Ergänzt narrative Details, glättet den emotionalen Bogen und gibt eine strukturierte Zusammenfassung aus:
Zusammenfassung: Ein Satz zur Geschichte Emotionaler Bogen: [Start] → [Wendepunkt] → [Ende] - In Storyboard-Frames aufteilen – Zerlegt die Geschichte in 6–10 Schlüsselbilder, jedes enthält:
- Szenentitel
- Kameraperspektive (Totale/Halbtotale/Nahaufnahme/Großaufnahme usw.)
- Bildbeschreibung (Handlungen der Figuren, Umgebung, Licht)
- Emotionale Grundstimmung
- Dialog/Text (falls vorhanden)
- Storyboard-Skript anzeigen – Zeigt das Skript als Tabelle an und wartet auf Bestätigung oder Anpassung.
Anzeigeformat:
## Storyboard-Skript
| # | Szene | Kamera | Bildbeschreibung | Stimmung |
|---|-------|--------|------------------|----------|
| 1 | Eröffnung | Totale | xxx | Ruhig |
| 2 | Einführung | Halbtotale | xxx | Neugierig |
| ... |
Phase 2: Stilauswahl
Nach Bestätigung des Storyboard-Skripts werden 8 visuelle Stile angezeigt (aus references/visual-styles.md gelesen):
| # | Stil | Ein-Satz-Merkmal | Geeignet für |
|---|---|---|---|
| 1 | Cyberpunk-Comic | Neon + dunkle Töne + hoher Kontrast | Technologie/AI/Zukunft |
| 2 | Ghibli-Aquarell | Weiches Aquarell + warmes Licht | Alltag/Wärme/Coming-of-Age |
| 3 | Amerikanische flache Illustration | Vektorgeometrie + helle Farben | Produkt/Unternehmen/Bildung |
| 4 | Filmtraditionelle Bleistiftzeichnungen | Schwarz-Weiß-Skizzen + Kameramarkierungen | Videodrehbücher/Werbung |
| 5 | Pixel-Art | Retro 16-Bit-Game-Stil | Spiele/Spaß/Nerdkultur |
| 6 | Chinesische Tuschemalerei | Tuscheverlauf + poetische Leerstellen | Tradition/Philosophie/Asiatisch |
| 7 | Klare Linien-Comic | Gleichmäßige dicke Linien + flache Farben | Abenteuer/Humor/IP |
| 8 | Realistische Concept Art | Filmreife digitale Malerei | Epos/Sci-Fi/Fantasy |
Basierend auf Geschichte und emotionalem Ton werden 1–2 am besten passende Stile empfohlen mit Begründung; auf Benutzerauswahl wird gewartet.
Phase 3: Prompt-Generierung
Nach Auswahl des Stils wird für jedes Storyboard-Frame ein Prompt generiert.
Jeder Prompt besteht aus (liest Stilpräfix und Kamerasprache aus references/visual-styles.md):
- Stilpräfix – Standardbeschreibung des gewählten Stils
- Kamerabefehl – z. B. „Etablierungsaufnahme mit Weitwinkel" / „Nahaufnahme"
- Szenenbeschreibung – Vollständiger Satz zur Szene (Figuren, Handlung, Umgebung, Licht, Atmosphäre)
- Emotionsanweisung – Klare Angabe der zu vermittelnden Emotion
- Konsistenzanker –
Wichtig: Dies ist Frame [N] von insgesamt [TOTAL] Frames des Storyboards. Behalte exakt denselben künstlerischen Stil, dieselbe Farbpalette, dasselbe Charakterdesign und dieselbe visuelle Konsistenz bei. Dieselbe Figur muss in allen Frames exakt gleich aussehen. - Anweisung zur Sprache (falls nötig) –
Sämtlicher Text, Schilder und Dialog im Bild müssen auf Chinesisch (vereinfacht) sein. Fachbegriffe können auf Englisch bleiben.
Zeigt eine Übersichtstabelle der Prompts an und wartet auf Bestätigung:
## Prompt-Übersicht
| # | Szene | Kamera | Stil | Kernbild |
|---|-------|--------|------|----------|
| 1 | Eröffnung | Totale | Cyberpunk | Stadtpanorama... |
| ... |
Nach Bestätigung startet die Generierung (insgesamt N Frames)
Phase 4: Batch-Generierung
Nach Bestätigung wird Frame für Frame über ein Skript generiert:
python3 scripts/generate_image.py \
--prompt "Prompt" \
--output "/Users/ugreen/Documents/obsidian/09image/MMDD-Geschichte-storyboard/01-Szenenname.png" \
--api-key "AIzaSyDvvGGRbH4Os3Er0dYi0kE_AzE3_2b_Az8" \
--api-url "https://generativelanguage.googleapis.com" \
--model "gemini-3-pro-image-preview" \
--aspect-ratio "16:9" \
--resolution "2K"
Hinweise:
- Storyboard-Standard: 16:9 Querformat
- Auflösung: Standard 2K
- MMDD = aktuelles Datum (Monat und Tag)
- Dateinamen:
01-Kurzszenenname.png,02-Kurzszenenname.png… - 2–3 Sekunden Pause zwischen Frames, um Ratenlimit zu vermeiden
- Fehlgeschlagene Frames werden protokolliert und fortgesetzt; abschließender Bericht
- Wichtig: Die Beschreibung des Aussehens der Figuren muss über alle Frames hinweg konsistent sein (Frisur, Kleidung, Körperbau)
Phase 5: Anzeige und Iteration
- Nach Abschluss alle Frames in Reihenfolge auflisten.
- Den Benutzer fragen:
- „Ist der gesamte Erzählrhythmus zufriedenstellend?"
- „Muss ein bestimmtes Frame neu generiert werden?"
- „Soll eine Szene hinzugefügt/entfernt werden?"
- „Ist die Konsistenz der Figuren zufriedenstellend?"
- Iteration: Prompt anpassen und das angegebene Frame neu generieren.
Speicherpfad-Standard
/Users/ugreen/Documents/obsidian/09image/MMDD-Geschichte-storyboard/
├── 01-Eröffnung-Totale.png
├── 02-Einführung-Halbtotale.png
├── 03-Wendepunkt-Nahaufnahme.png
├── 04-EntwicklungA-Halbtotale.png
├── 05-EntwicklungB-Panorama.png
├── 06-Höhepunkt-Großaufnahme.png
├── 07-Ende-Totale.png
└── storyboard-script.md (optional: Storyboard-Skript speichern)
API-Konfiguration
| Konfiguration | Wert |
|---|---|
| API-URL | https://generativelanguage.googleapis.com |
| API-Key | AIzaSyDvvGGRbH4Os3Er0dYi0kE_AzE3_2b_Az8 |
| Modell | gemini-3-pro-image-preview |
| Standard-Seitenverhältnis | 16:9 (Querformat für Storyboard) |
| Standard-Auflösung | 2K |
Kurzreferenz Kamerasprache
| Kamera | Englischer Begriff | Verwendung |
|---|---|---|
| Totale | Weitwinkel | Eröffnung, Umgebung einführen |
| Panorama | Ganzkörperaufnahme | Figur ganz + Umgebung |
| Halbtotale | Halbnahe | Dialog, alltägliche Interaktion |
| Nahaufnahme | Nahe | Gesichtsausdruck, Emotion |
| Großaufnahme | Extreme Nahaufnahme | Schlüsselrequisiten, Details |
| Vogelperspektive | Aufsicht | Gesamtüberblick, Gefühl der Kleinheit |
| Froschperspektive | Tiefe Kameraposition | Autorität, Eindringlichkeit |
Häufige Verwendung
| Benutzer sagt | Aktion |
|---|---|
| „Erstelle mir ein Storyboard für eine Geschichte" | Geschichte erfassen → verfeinern → aufteilen → Stil wählen → generieren |
| „Mach diese Geschichte als Storyboard" | Wie oben |
| „Zeichne diese Geschichte im Cyberpunk-Stil" | Stilauswahl überspringen, direkt mit angegebenem Stil |
| „Frame 3 ist schlecht, generiere neu" | Prompt anpassen, einzelnes Frame neu generieren |
| „Füge ein Übergangsbild ein" | Neues Storyboard-Frame an angegebener Stelle einfügen |