H3 Video: KI-Kurzfilm-Komplettworkflow
Dieser Workflow basiert auf den Erfahrungen aus mehreren echten Produktionen. Kernidee: Zuerst planen, jede Stufe vom Benutzer bestätigen lassen, Fehler nur auf der betroffenen Ebene korrigieren.
Gesamtablauf (Reihenfolge einhalten, keine Schritte überspringen)
| Schritt | Was wird gemacht | Qualitätskontrolle |
|---|---|---|
| 0 | Recherche: Zuerst ähnliche Werke und Vorgehensweisen anderer ansehen, Techniken notieren | — |
| 1 | Planung schreiben: Grundstimmung & Stil, Dialogbuch, Szenenaufteilung, Generierungsliste (Vorlage in templates/Planungsvorlage.md) | Benutzer bestätigt Planung |
| 2 | Sprachsynchronisation: Voiceover und Off-Kommentare separat mit TTS ausgeben, genaue Länge messen | Benutzer hört Probe und bestätigt Stimme |
| 3 | Charaktervorlage: Pro Person ein Ganzkörperfoto von vorne, aufgenommen in der Welt der Geschichte | Benutzer bestätigt Vorlage |
| 4 | Erster Frame: Pro Szene ein Bild, nur bis die Handlung gerade beginnt | Benutzer darf erst Video generieren, nachdem der erste Frame bestätigt wurde |
| 5 | Generierung: Zuerst mit schnellsten Einstellungen einen Rohschnitt erstellen | — |
| 6 | Sprecherweise Überprüfung, Blickrichtungsprüfung, Nahtstellenprüfung | Bei Fehlern nur diese Szene wiederholen |
| 7 | Hochskalierung, Untertitel, Lautstärke, Cover | Benutzer akzeptiert |
| 8 | Nachbereitung: Jeden Punkt aus der Liste „Zu überprüfende Methoden“ in der Planung bewerten, Erkenntnisse in die Wissensdatenbank aufnehmen | — |
Sieben harte Regeln
- Stil folgt der Grundstimmung der Geschichte. Bevor irgendetwas gezeichnet wird, zuerst den Abschnitt „Grundstimmung & Stil“ schreiben: Lichtquelle und Helligkeit, Farbton, Kleidungszustand (neu/alt/schmutzig), Gesichtsausdruck, Hintergrundatmosphäre. Die Vorlage wird ebenfalls in dieser Welt aufgenommen, ohne grauen Studiohintergrund. Bei jedem Bild zuerst fragen: „Gehört es zu dieser Geschichte?“, dann Details prüfen. Die häufigste Panne: Eine düstere Geschichte mit sauberen, hübschen Idol-Gesichtern zu kombinieren.
- Eine Generation hat nur eine Audioquelle. Voiceover und Off-Kommentare niemals in H3 geben, sonst lippensynchronisiert die Figur im Bild zum Voiceover, selbst der Prompt „Bitte Mund halten“ unterdrückt das nicht. Für Voiceover-Szenen wird ein Video ohne Dialog generiert, der Ton wird später überlagert.
- Anwesende, aber nicht sprechende Charaktere: Bei der Generierung keinen Dialog zuweisen; wenn ein Sprecher versteckt werden muss, von hinten oder über die Schulter filmen.
- Das Dialogbuch ist die alleinige Quelle. Jede Zeile mit Typ (Dialog/Voiceover), Sprecher, Blickrichtung zum Zuhörer, Originaltext notieren. Mit ca. 3 Zeichen/Sekunde kalkulieren, jede Zeile innerhalb der eigenen Szene beenden. Nachfolgende Schritte dürfen das Dialogbuch nicht ändern.
- Blickrichtung: Der Sprecher schaut den Zuhörer an, der Zuhörer schaut den Sprecher an. Im Prompt für jede Zeile klar schreiben, wer wen anschaut.
- Wenn der erste Frame Fehler hat, wird der erste Frame wiederholt, nicht durch Prompt-Tricks korrigiert. Bei der Überprüfung auf Originalauflösung zoomen, um Hände, Augen, Mund, Accessoires und überflüssige Objekte zu prüfen.
- Nicht ausliefern, bevor die sprecherweise Überprüfung bestanden ist. Für den Zeitraum jeder Dialogzeile ein dichtes Frame-Raster extrahieren (
scripts/speaker_grid.py), nur eine geschlossene Frage beantworten: „Wessen Mund bewegt sich: A / B / beide / keiner“, dann mit dem Dialogbuch abgleichen. Ein spärliches Raster von 4 Frames übersieht Fehler.
Prinzipien für Generierung und Nachbesserung
- Zuerst Rohschnitt, dann hochskalieren: Mit der schnellstmöglichen Auflösung rendern, nach Bestätigung nur die bestandene Version hochskalieren.
- Fehler zuerst analysieren: Feststellen, ob das Problem im Prompt, im ersten Frame, im Skript oder in der Nachbearbeitung liegt, dann entscheiden, welche Ebene geändert wird. Gleicher Fehler in mehreren Szenen → gemeinsame Referenz (Vorlage) anpassen, Fehler in nur einer Szene → nur diese Szene ändern, immer nur eine Änderung auf einmal.
- Prompts positiv formulieren, nicht „nicht …“ anhäufen. Vermeidungswünsche in die Eingabe (erster Frame, Vorlage) einfließen lassen.
- Für jede Szene den verwendeten ersten Frame, die Vorlage, den Seed und den Prompt notieren, damit nur eine Szene wiederholt werden kann.
- 2-Sekunden-Test für den Vorspann: Nur die ersten 2 Sekunden ansehen; der Zuschauer muss wissen, worum es geht.
Referenzmaterial
references/Workflow-Details-und-Fehler.md: Konkrete Vorgehensweise und gemachte Fehler für jeden Schritt.references/ComfyUI-Knoten-und-Parameter.md: Knoten und Parameter für Qwen-Image zur Vorlagenerstellung, Qwen-Image-Edit zur Bildbearbeitung, VoxCPM2 zur Stimmenklonung, H3 Ref2VA, sowie Lösungen für bekannte Fehler.references/Open-Source-Pipeline-Recherche.md: Vergleich der Vorgehensweisen von 9 Open-Source-KI-Videoprojekten, welche übernommen werden sollten und welche nicht.templates/Planungsvorlage.md: Planungsdokumentvorlage mit Dialogbuch und Prüftabelle.
Skripte
Alle Skripte verbinden sich über die Umgebungsvariable COMFY_URL mit ComfyUI (Standard http://127.0.0.1:8188). Verwendung siehe scripts/README.md.
| Skript | Funktion |
|---|---|
t2i_masters.py | Qwen-Image zur Massenerstellung von Charaktervorlagen (Stilpräfix + Beschreibung pro Person) |
edit_image.py | Qwen-Image-Edit zur lokalen Bildbearbeitung, restlicher Inhalt bleibt unverändert |
voice_design.py | VoxCPM2 zur Gestaltung der Charakterstimme basierend auf Textbeschreibung, pro Person zwei Hörproben A/B |
tts_clone.py | VoxCPM2 zum Klonen einer Stimme mit einer Referenzaufnahme, Massenerstellung von Voiceover |
h3_ref2va.py | Zusammenstellung und Einreichung des H3 Ref2VA-Workflows (Referenzbild, Referenzaudio, erster Frame als Anker) |
wait_download.py | Auf Aufgabenende warten und alle Ausgaben herunterladen |
ws_progress.py | Fortschritt einer Aufgabe anzeigen (client_id der Einreichung erforderlich) |
asr.py | Transkription mit faster-whisper, um zu überprüfen, ob die Sprachausgabe wortgenau ist |
speaker_grid.py | Pro Dialogzeile ein dichtes Frame-Raster ausgeben, für die Sprecherüberprüfung |
upscale_video.py | Video mit RealESRGAN frame-genau hochskalieren |
post_subtitle_loud.py | Untertitel einbrennen + zweifache loudnorm auf -14 LUFS |
make_cover.py | Cover in den Formaten 3:4 und 9:16 ausgeben |