Was macht GIF Cinema?
Verwandle eine Kurzbeschreibung in verschiedene sichtbare Aktionen mit Ursache und Wirkung und setze dann überprüfte Aufnahmen zu einer längeren Geschichte zusammen. Trenne Erscheinungsbild, Charakteraktion, grafische Bewegung und Ausgabeformat. Behalte den vom Benutzer gewählten Kunststil und das genehmigte Filmmaterial bei. Dies ist ein autorengesteuerter Arbeitsablauf, kein autonomes Animationsmodell.
Wähle einen echten Produktionsweg
- Vorhandene GIFs: Untersuche, was jeder Take tatsächlich zeigt; baue die Geschichte um diese Aktionen herum auf. Das beigefügte Beispiel testet diesen Weg ohne API-Schlüssel.
- Neue Charakteraktion: Plane eine Hauptaktion pro kurzem generiertem GIF. Verwende nur ein verfügbares, autorisiertes Generierungstool/eine API. Untersuche und akzeptiere jedes Ergebnis, bevor du dessen Zustand in eine andere Szene verlängerst. Siehe generation.md.
- Motion-Design: Verwende den enthaltenen lokalen animierten Titel-Renderer für Typografie und Akzentregel-Einblendungen. Für geschichtete Charaktere, bewegliche Requisiten, Masken oder rigide Aktionen, verwende einen Compositor, der tatsächlich in der Umgebung verfügbar ist, und bewahre seine editierbaren Quellen auf. Dieses Paket enthält keine allgemeine Layer-Animation-Engine.
Zähle keine Kameradrift, eine Überlagerung, umgekehrtes Filmmaterial, eine weitere Beschriftung auf demselben Clip oder längeres Halten als neue Charakteraktion. Ein langer Cartoon benötigt zusätzliche Story-Ereignisse. Wenn diese Zeichnungen fehlen und die Generierung nicht verfügbar ist, liefere ein ehrliches Animatic oder einen Produktionsplan, nicht einen angeblich fertigen Cartoon.
Laufzeit und ein Check ohne Schlüssel
Erfordert Python 3.10+, Pillow, Git, FFmpeg und ffprobe. Verwende eine isolierte Umgebung. Die Helfer der Fähigkeit arbeiten mit dieser überprüften, unveränderlichen öffentlichen Laufzeit:
python -m venv .venv
# Aktiviere .venv mit dem Befehl für deine Shell, dann:
python -m pip install "gif-cinema @ git+https://github.com/antropos17/chatgpt-gif-cinema.git@fa82b13366a9ae94a4ece730ec6b2d065cd9a060"
python -m gif_cinema --help
ffmpeg -version
ffprobe -version
Ein vorhandener Checkout dieser Version oder eine getestete kompatible neuere Laufzeit ist ebenfalls verwendbar. Stufe ein funktionierendes Projekt nicht automatisch herab. Die Laufzeit verwendet die enthaltene quelloffene Evaluierungslizenz. Der zugeschriebene Arbeitsablaufeinfluss von GIF Factory hat seinen eigenen MIT-Hinweis in THIRD_PARTY_NOTICES.md.
Löse Helfer- und Asset-Pfade relativ zu diesem Fähigkeitsordner auf. Die folgenden Beispiele gehen davon aus, dass die Shell sich in diesem Ordner befindet. Verwende andernfalls absolute Pfade zu den Helfern und dem Eingabe-JSON; behalte Ausgaben im Benutzerprojekt, niemals in der installierten Fähigkeit.
python scripts/story_project.py compile assets/example/storyboard.json --out output/story-project
python -m gif_cinema render output/story-project/film.json --dry-run --max-api-calls 0
python -m gif_cinema render output/story-project/film.json --execute --max-api-calls 0 --out output/story-render
python scripts/story_project.py export-gif output/story-render/film.mp4 --out output/story.gif
Dies ist ein 9,68-Sekunden-Quellschnitt, kein neuer langer Cartoon: ein 2-Sekunden lokal animierter
Titel, gefolgt von drei vorhandenen 2,56-Sekunden-Astronautenaktionen. Das MP4 verwendet 25 fps;
die Quellcharaktere haben 16 Zeichnungen pro Take, nicht 25 neue Zeichnungen pro
Sekunde. Der GIF-Export standardmäßig auf 320 px breit, 10 fps, stumm, einmalige Wiedergabe. --repeat
wiederholt das gesamte Ergebnis. Einige Viewer überschreiben das GIF-Schleifenverhalten.
Für den Kern-CLI-Regressionstest führe scripts/smoke_test.py --out NEUES_VERZEICHNIS aus.
Keiner der Helfer benötigt einen Schlüssel. Der Story-Helfer tätigt niemals Provider-Aufrufe und lehnt
ein vorhandenes Ausgabeprojekt ab. story-project.md dokumentiert
seine exakten Schemata, Befehle, Zeitsteuerung und Grenzen.
Direkt vor der Generierung
Für eine neue Geschichte oder eine wesentliche Erweiterung lies storytelling.md. Erstelle ein editierbares Storyboard mit:
- Die Prämisse und das Ende; Zielgruppe, Zieldauer, Seitenverhältnis, Sprache und Sound-Anforderungen, falls relevant. Leite risikoarme Standardwerte ab, anstatt erneut zu fragen.
- Eine kompakte visuelle Bibel: erkennbare Charakteranker, Palette/Material, Kostüm, Anzahl der Requisiten, Eigentumsverhältnisse, Maßstab, Geografie und Kamerakonventionen.
- Eine Beat-/Aufnahmeliste: Zustand vorher → sichtbare Aktion → Zustand nachher, Kamera, erwartete Dauer und Zweck in der Geschichte. Verfolge Hände/Requisiten/Kontakt an jedem Schnitt.
- Eine Quellen-/Generierungskarte: welche Aktionen bereits existieren, welche neue Zeichnungen benötigen, welche lokale Grafiken sind. Markiere nicht gerenderte Aufnahmen als nicht gerendert.
Skaliere die Geschichte durch das Hinzufügen sinnvoller Aktionen und Konsequenzen, nicht durch das Wiederholen von Filmmaterial,
bis ein Timer die Kurzbeschreibung erreicht. Das Beispiel einer langen Geschichte in
assets/example/long-story.plan.json ist ein nicht gerenderter 14-Aktionen-Produktionsplan.
Die Kompilierung bereitet 14 Einzelaufnahmen-Generierungseingaben vor; es rendert diese Aktionen nicht.
Generiere und füge gezielt zusammen
Kompiliere das Storyboard mit scripts/story_project.py compile .... Ein reines Quellprojekt
hat eine ausführbare film.json. Ein Projekt mit fehlenden/generierten Aufnahmen hat separate
generation/ID.json-Eingaben und eine bewusst unvollständige
assembly-template.json. Keine kostenpflichtige Stapelverarbeitung wird durch den Compiler ausgeführt.
Verwende eine repräsentative Aktion, um die Machbarkeit zu überprüfen, wenn die Figur/Methode neu ist. Neue Generierung benötigt den eigenen API-Zugang des Benutzers und die vereinbarte begrenzte Aufrufanzahl. Für die Endpunkt-Kontinuität extrahiere den akzeptierten vorherigen letzten Frame, überprüfe ihn und füge dann dieses vorhandene Standbild plus eine saubere Referenzidentität an die nächste Aufnahme-Eingabe an. Der Compiler erstellt keine zukünftigen Referenzen oder einen automatischen Abhängigkeitsgraphen.
Behalte getrennte Aufnahme-Ordner und eine Aufzeichnung akzeptierter/abgelehnter Kandidaten. Ein Nachdreh
muss an beiden benachbarten Verbindungen überprüft werden. Zeichne die Aufnahme-ID, den Pfad,
den SHA-256 und die Überprüfungsnotizen jedes ausgewählten GIFs in einem Aufnahme-Manifest auf. Kompiliere mit --takes manifest.json,
um generierte Slots zu füllen, ohne ihre Modi manuell zu ändern. Der Helfer überprüft
diese genauen Bytes, misst ihre tatsächlichen Verzögerungen und behält die ursprüngliche Anfrage.
Er kann eine teilweise Auswahl anwenden; fehlende Aktionen bleiben explizit ungerendert.
Jedes Projekt enthält ein tragbares storyboard.json. Setze mit dieser Datei fort, mit einem neuen
Aufnahme-Manifest und einem neuen Ausgabeverzeichnis. Vorhandene Quellen und gerenderte Titel
sind Hash-verankert und können nicht durch das Manifest ersetzt werden. Für einen beabsichtigten Nachdreh
erstelle eine bearbeitete Kopie des ursprünglichen Storyboards und wähle dort den neuen Take aus;
behalte das frühere Projekt und überprüfe erneut beide benachbarten Schnitte. Behalte Projektversionen
mit ihren Überprüfungsaufzeichnungen. Anrufernotizen sind keine automatische visuelle Akzeptanz.
Siehe das genaue Auswahlformat und das Beispiel ohne Schlüssel.
Verwende das Rendern mit null Aufrufen, auch wenn zufällig ein Schlüssel konfiguriert ist.
Bewegung, Timing und Export
Titelkarten sind einmalige Text-/Linieneinblendungen, gefolgt von einem Halten. Die Beschriftung ist lokal
und im Storyboard editierbar, anstatt einem Generierungs-Prompt anvertraut zu werden. Titel
sind getrennte Aufnahmen, keine Überlagerungen; Laufzeit-Untertitel sind eine separate SRT, nicht in GIFs
gebrannt. Gib bei Bedarf eine lizenzierte lokale Schriftart mit --font an und überprüfe ihre Glyphen.
Das Charakter-Timing stammt aus dem dekodierten Quell-GIF. Quell-Neu-Timing, Übergänge, Interpolation, Audio-Generierung und automatische Aktionssynthese werden von diesem Helfer nicht bereitgestellt. Die festgelegte Laufzeit verwendet harte Schnitte und kann optionale lokale Audio über ihr Film-Skript importieren. GIF hat kein Audio. Befolge die aktuelle Laufzeithilfe, wenn neuere Bearbeitungswerkzeuge verwendet werden; impliziere nicht, dass das festgelegte Paket sie enthält.
Exportiere zuerst ein verifiziertes MP4, dann ein kleineres GIF oder Kapitel. Die GIF-Palettenkonvertierung kann Farbverläufe und feine Konturen beschädigen; überprüfe auch das tatsächliche endgültige GIF. Hohe Wiedergabebildrate erzeugt keine neue Bewegung. review.md gibt die visuellen und technischen Akzeptanzprüfungen.
Liefere das tatsächliche Ergebnis
Bereitgestellte angeforderte GIF/MP4-Dateien mit tatsächlicher Dauer, Abmessungen, Schleifenverhalten, Quellzeichnungs-Kadenz versus Export-Bildrate, Stumm/Audio-Status und bekannten visuellen Fehlern. Füge ein editierbares Projekt hinzu, wenn angefordert. Überprüfe Quellnamen, Prompts, Referenzen und Lizenzierung, bevor du ein Projekt teilst; veröffentliche keine privaten Eingaben. Unterscheide technische Verifizierung, deine visuelle Überprüfung und Benutzerakzeptanz.