Video Director
Verwenden Sie diese Fähigkeit, bevor Sie Operate(resource="video", operation="generate", input={ ... }) für Videoprojekte aufrufen.
Für KI-Chat ist diese Fähigkeit der einzige Einstiegspunkt für die Videogenerierung. Wenn der Benutzer „Erstelle ein Mund-zu-Kamera-Video", „Generiere ein Video", „Produkt-Werbespot", „Werbespot", „Digitales Menschenvideo" oder eine ähnliche Videoanfrage stellt, rufen Sie zuerst video-director auf. Beginnen Sie nicht mit cosyvoice-ssml; diese Fähigkeit ist ein interner digitaler Menschen-TTS-Unterprozess und darf den Video-Workflow nicht anführen.
Wenn diese Fähigkeit geladen wurde, weil der Benutzer ein Bild angehängt und nach einem Werbefilm / 宣传片 / 视频 gefragt hat, behandeln Sie das angehängte Bild als Produkt oder visuelle Referenz für den Video-Workflow. Generieren Sie kein Ersatz-Produktbild als „Analyse"-Schritt.
Standard-Workflow
Behandeln Sie den Workflow als einen schrittweisen Zustandsautomaten. Überspringen oder vertauschen Sie die Zustände nicht:
plan_draft: Klären Sie den beabsichtigten Videomodus aus dem Ziel und den Assets des Benutzers, entwerfen Sie dann ein prägnantes, aber detailliertes Video-Drehbuch und eine Aufnahmetabelle.storyboard_preview: Unmittelbar nachdem die Aufnahmetabelle existiert, generieren Sie mitOperate(resource="image", operation="generate", input={ ... })Storyboard-Kontaktabzug-Vorschaubild(er) . Das Storyboard-Bild ist eine Vorschau der geplanten Aufnahmen, kein eigenständiges Produktplakat, kein Ersatz-Produkt-Render, kein Coverbild und kein endgültiger Video-Keyframe.user_review: Zeigen Sie das Drehbuch, die Storyboard-Vorschaubilder und die expliziten Video-Spezifikationen zusammen an. Fragen Sie den Benutzer, ob er den gesamten Plan bestätigen oder überarbeiten möchte.production_prep: Entscheiden Sie nach der Bestätigung, ob es sich um einen einzelnen Upstream-Clip (<=15s), eine langevideo_sequence-Anfrage oder eine manuelle Editor-/Projektmontage handeln soll. Verwenden Sie ein Videoprojektpaket nur, wenn der Benutzer explizit nach einem Projekt-/Paket-/Editor-Workflow fragt oder die Aufgabe bereits an ein bestehendes Paket gebunden ist.tts_if_needed: Wenn die bestätigte Aufgabe ein Charakter-Talking-Head / 口播 Video ist, führen Sie den unten stehenden TTS-zuerst-Workflow vollständig durch.video_generate: Rufen Sie erst nach der Bestätigung und nach Abschluss aller erforderlichen TTS-AudioaufnahmenOperate(resource="video", operation="generate", input={ ... })auf.
Wenn der Benutzer das Drehbuch noch nicht bestätigt hat, generieren Sie das Video nicht.
Wenn der Benutzer die Storyboard-Vorschaubilder noch nicht gesehen und genehmigt hat, generieren Sie das Video nicht.
Wenn die Aufnahmetabelle existiert, aber noch kein Storyboard-Kontaktabzug-Bild generiert wurde, muss der nächste Tool-Aufruf image.generate für die Storyboard-Vorschau sein, nicht video.generate, voice.speech, tts-director oder cosyvoice-ssml.
Die Storyboard-Kontaktabzug-Vorschau ist obligatorisch, nachdem das erste Aufnahme-Drehbuch geschrieben wurde. Sie ist nicht dasselbe wie endgültige Video-Keyframes; es ist ein schneller visueller Nachweis der geplanten Aufnahmesequenz, damit der Benutzer die Richtung, Komposition, Produktplatzierung und Kontinuität vor der Videogenerierung genehmigen kann.
Für Produktwerbevideos aus einem angehängten/Referenzbild:
- Der erste
image.generate-Aufruf, falls vorhanden, muss für einen Storyboard-Kontaktabzug nach dem Drehbuch und der Aufnahmetabelle sein. - Die Storyboard-Aufforderung muss explizit angeben, dass es sich um eine Mehrfachfeld-Storyboard-Vorschau für das Video handelt, und sie muss die sichtbare Form, das Material, die Farbe und die markanten Details des angehängten/Referenzprodukts bewahren.
- Rufen Sie
image.generatenicht einfach auf, um die Produktreferenz zu „analysieren", „extrahieren", „verbessern" oder neu zu erstellen. - Rufen Sie
video.generateerst auf, wenn der Benutzer die Storyboard-Richtung bestätigt hat.
Asset-Bibliothek Charakter-Talking-Head Regel
Wenn der Benutzer ein Talking-Head / 口播 / Präsentator / Live-Stream-Begrüßungsvideo unter Verwendung eines Charakters aus der Asset-Bibliothek wünscht, ist das Charakterbild nur die visuelle Identitätsreferenz. Es ist nicht die Sprachspur.
Halten Sie diese drei Eingaben getrennt:
voiceId: die wiederverwendbare, geklonte Sprachidentität, die im Charakter-Asset gespeichert ist. Dies ist das primäre Sprachfeld für zukünftige TTS-Aufrufe.- Sprachprobe / Referenzaudio: Fallback-Quellmaterial zum Klonen, wenn keine fertige
voiceIdexistiert. Analysieren oder präsentieren Sie es nicht weiter, sobald eine fertigevoiceIdgefunden wurde. - Generiertes TTS-Audio-Asset: das fertige gesprochene Drehbuch. Dies ist das einzige Audio, das ein Charakter-Talking-Head-Video antreiben sollte.
Verwenden Sie diese genaue Reihenfolge:
- Drehbuch und Storyboard zuerst
- Bestätigen Sie das endgültige gesprochene Drehbuch.
- Bestätigen Sie das Storyboard / die Aufnahmetabelle.
- Die Spalte
Soundmuss die tatsächlichen gesprochenen Zeilen enthalten, keine vagen Bezeichnungen wie „角色讲解".
- Auflösung der Charakterstimme
- Lesen Sie das ausgewählte Charakter-Asset, bevor Sie Medien generieren.
- Wenn das Asset eine fertige
voiceId/voice_idhat, behandeln Sie diese als aufgelöste Stimme und untersuchen Sie keine Sprachproben mehr. Melden Sie die aufgelöstevoiceId, nicht den Dateinamen der Referenz-Audiodatei. - Wenn das Asset eine Sprachprobe, aber keine fertige
voiceIdhat, rufen Sie zuerstOperate(resource="voice", operation="clone", input={ ... })auf, warten Sie auf den Abschluss und verwenden Sie die zurückgegebenevoiceId. - Wenn es keine fertige
voiceIdund keine brauchbare Sprachprobe gibt, stoppen Sie und bitten Sie den Benutzer, eine Stimme bereitzustellen oder auszuwählen. Fallen Sie nicht stillschweigend auf eine allgemeine Stimme zurück.
- Generieren der vollständigen Sprachspur mit TTS
- Rufen Sie
Operate(resource="voice", operation="speech", input={ ... })mit dem vollständigen genehmigten gesprochenen Drehbuch und der aufgelöstenvoiceIdauf. - Bevorzugen Sie ein vollständiges Audio-Asset für das gesamte Talking-Head-Segment, es sei denn, der Benutzer wünscht explizit separate Clips.
- Für ausdrucksstarke Erzählungen, lange Drehbücher, Poesie, Werbung oder jede Multi-Emotion-Darbietung innerhalb dieses bestätigten digitalen Menschen / VideoRetalk Flows aktivieren Sie zuerst
tts-directormitOperate(resource="skills", operation="invoke", input={ "name": "tts-director" }), verwenden Sie dann seine Anleitung, um das genehmigte Drehbuch in semantische Abschnitte aufzuteilen und modellgerechte Vortragssteuerungen zuzuweisen. - Wenn das ausgewählte TTS-Modell CosyVoice ist, kann
tts-directorcosyvoice-ssmlnur hier aktivieren, nachdem der video-director-Workflow bestätigt hat, dass es sich um ein digitales Menschen- / VideoRetalk / Asset-Bibliothek Talking-Head-Video handelt und das Drehbuch plus die Rollenstimme aufgelöst sind. - Fügen Sie zurückhaltende Vortragssteuerungen hinzu, wenn sie die genehmigte Darbietung verbessern: verwenden Sie
speedfür das Tempo,pitchfür die Tonhöhe,emotionfür die Stimmung, ausdrucksstarke Satzzeichen wie~,?,!,……und MiniMax-Textmarker wie<#0.6#>,(laughs),(sighs)oder(breath)innerhalb voninputnur dort, wo der Sprechrhythmus sie benötigt. - Schreiben Sie keine Steuerungsanweisungen in den gesprochenen Text. Übergeben Sie z.B.
"emotion":"happy"undspeed:1.08, anstatt den Charakter „用开心快速的语气“ sagen zu lassen. - Wenn die genehmigte Sprachspur mehrere emotionale Abschnitte benötigt, senden Sie einen
voice.speech-Aufruf mit geordnetensegments; die Medienlaufzeit generiert jedes Segment und führt das endgültige Audio zusammen. Führen Sie keine wiederholtenvoice.speech-Aufrufe durch, um dann manuell zusammenzuführen. - Warten Sie, bis das TTS-Ergebnis einen brauchbaren Audio-Asset-Pfad, eine URL oder eine Asset-ID enthält.
- Starten Sie die Videogenerierung nicht, während der TTS-Job nur in der Warteschlange steht oder läuft.
- Rufen Sie
- Video mit visueller Referenz plus generiertem Audio generieren
- Verwenden Sie das ausgewählte Charakterbild als visuelle Referenz.
- Verwenden Sie das neu generierte vollständige TTS-Audio-Asset als
drivingAudio. - Kennzeichnen Sie es in der Präambel der Aufforderung als generiertes Sprachaudio, z.B.
Audio 1: generierte Jamba TTS-Sprache für Lippensynchronisation / Sprechrhythmus. - Rufen Sie dann
Operate(resource="video", operation="generate", input={ ... })auf, normalerweise im Modusreference-guided.
Dies ist obligatorisch, da das Videomodell eine fertige Audio-Wellenform benötigt, die mit dem genehmigten Drehbuch übereinstimmt. Eine Charakter-voiceId ist kein Audio. Eine Sprachprobe ist nicht die genehmigte gesprochene Zeile. Der gesprochene Text innerhalb der Videoaufforderung ist kein Ersatz für TTS.
Verbotene Abkürzungen:
- Rufen Sie die Videogenerierung für Charakter-Talking-Head nicht nur mit dem Charakterbild und einem Drehbuch auf.
- Übergeben Sie
voiceId, Sprachproben-Audio oder „音色素材“ nicht alsdrivingAudio. - Verlassen Sie sich nicht auf
generateAudio, um die Charakterstimme für Talking-Head-Arbeiten zu erstellen. - Beschreiben Sie die beabsichtigte Sprache nicht nur in der Videoaufforderung und erwarten Sie, dass das Videomodell sie synthetisiert.
- Teilen Sie die TTS nicht pro Storyboard-Zeile auf, es sei denn, der Benutzer fordert separat bearbeitbare Audio-Clips an oder das Video wird aus mehreren unabhängigen Sprech-Clips zusammengesetzt.
Empfohlene TTS-Payload-Form:
{
"voiceId": "voice_xxx",
"segments": [
{
"input": "Vollständige, bestätigte Mund-zu-Kamera-Eröffnung.<#0.5#>",
"speed": 0.98,
"pitch": 0,
"emotion": "calm"
},
{
"input": "Natürlich zum überzeugenderen Hauptpunkt übergehen(laughs).",
"speed": 1.05,
"pitch": 0,
"emotion": "happy"
}
],
"title": "Jamba Begrüßungs-Sprachausgabe",
"waitForCompletion": true
}
Empfohlene Video-Payload-Form nach Abschluss der TTS:
{
"generationMode": "reference-guided",
"referenceImages": ["/absolute/path/to/jamba.png"],
"drivingAudio": "/absolute/path/to/generated-jamba-tts.mp3",
"drivingAudioLabel": "Generierte Jamba TTS-Sprache aus dem genehmigten Drehbuch",
"storyboardShots": [
{
"time": "0-3s",
"picture": "Jamba schaut in die Kamera im Live-Stream-Raum und lächelt natürlich.",
"sound": "Willkommen im Livestream, heute habe ich ein sehr praktisches Produkt für euch.",
"shot": "Halbnahaufnahme, stabile Präsentator-Einstellung."
}
]
}
Videoprojekt-Paket-Regel
Ein Videoprojekt-Paket ist nicht der Standardpfad.
Erstellen Sie eines nur, wenn:
- der Benutzer explizit nach einem 视频项目 / 视频工程 / 项目包 fragt
- der Benutzer explizit bittet, später im Video-Editor / Projekt-Workbench fortzufahren
- die Aufgabe bereits an ein bestehendes Videoprojekt-Paket gebunden ist
Erstellen Sie keines nur, weil die Anfrage mehrere Aufnahmen, langen Kontext, Kontinuitätsrisiko, Storyboard-Bedarf oder mögliche Überarbeitungen hat.
Wenn es explizit benötigt wird, erstellen Sie es mit:
Operate(resource="video", operation="create", input={ "explicitProjectWorkflow": true, "title": "...", "duration": "...", "aspectRatio": "...", "mode": "..." })
Der Projektordner befindet sich in:
manuscripts/video/<project-name>/
Er sollte verwendet werden, um diese Dateien zusammenzuhalten:
manifest.jsonscript.mdassets.jsoneditor.project.json- importierte Referenzbilder / Keyframes / generierte Clips / endgültige Ausgabe
Nachdem das Paket erstellt ist:
- schreiben Sie die Benutzeranforderung und das genehmigte Drehbuch zurück in den Videoprojektordner
- behalten Sie spätere Keyframes, Clips und Ausgaben nach Möglichkeit im selben Paket
Andernfalls behalten Sie die Planung im Chat, rufen Sie video generate direkt auf und lassen Sie die Ausgabe in der generierten Medienbibliothek leben.
Harte Regeln
- Die Videogenerierung ist an die offizielle Videoroute gebunden, die von der App konfiguriert wird.
- Wählen Sie keine willkürlichen Video-Endpunkte oder Videomodelle von Drittanbietern.
- Verwenden Sie nur diese offiziellen Modellzuordnungen:
text-to-video->wan2.7-t2v-videoreference-guided->wan2.7-r2v-videofirst-last-frame->wan2.7-i2v-video
- Behandeln Sie Erst-/Letztbild-Übergänge als Untertyp der Bild-zu-Video-Arbeit.
- Ein einzelnes Upstream-Videogenerierungssegment darf
15Sekunden nicht überschreiten. - Für ein endgültiges Video länger als
15Sekunden senden Sie einevideo.generate-Anfrage entweder mit den endgültigendurationSecondsoder explizitenvideoSegments; die Medienwarteschlange generiert<=15s-Segmente und verkettet ein endgültiges Video-Asset. - Rufen Sie
video.generatenicht wiederholt auf, um nur die Upstream-15-Sekunden-Segmentgrenze zu umgehen. - Überspringen Sie den Drehbuch-Überprüfungsschritt nicht, nur weil die Anfrage offensichtlich klingt.
- Sofern der Benutzer nicht explizit eine längere durchgehende Aufnahme wünscht, sollte eine einzelne Aufnahme normalerweise
1-3Sekunden betragen. - Ohne explizite Benutzergenehmigung darf eine einzelne Aufnahme
5Sekunden nicht überschreiten.
Modusauswahl
- Verwenden Sie
text-to-video, wenn der Benutzer nur Text bereitstellt und eine neue Videoaufnahme wünscht. - Verwenden Sie
reference-guided, wenn der Benutzer ein oder mehrere Referenzbilder bereitstellt und möchte, dass das Video Subjektelemente, Stilhinweise, Requisiten, Szenenmotive oder Kompositionshinweise aus diesen Bildern aufnimmt. - Verwenden Sie
first-last-framenur, wenn zwei Bilder explizite Start-/End-Semantiken haben, wie z.B. „von A nach B", „首帧/尾帧", „开头/结尾" oder „起始状态/结束状态". - Wenn der Benutzer zwei Bilder angibt, diese aber nur Stilreferenzen sind, verwenden Sie nicht
first-last-frame; bleiben Sie stattdessen bei der Semantik vonreference-guided.
Produktionsstrategie
-
单视频模式:- Verwenden Sie einen generierten Videoclip.
- Standard, wenn die Anfrage einfach ist, die Aktion kurz und die vollständige Idee in einen zusammenhängenden Clip passt.
- Ein einzelner generierter Clip darf
15Sekunden nicht überschreiten.
-
长视频队列模式:- Verwenden Sie dies für ein endgültiges KI-generiertes Video länger als
15Sekunden. - Senden Sie eine
video.generate-Anfrage mitdurationSeconds > 15; die Laufzeit erstellt einenvideo_sequence-Warteschlangenjob, teilt die Generierung in<=15s-Segmente auf, wartet auf jedes Segment, verkettet die Segmente und gibt ein endgültiges Video-Asset zurück. - Verwenden Sie explizite
videoSegments, wenn das Storyboard eine szenenweise, taktweise, Referenzbild-, Erst-/Letztbild- oder Antriebs-Audio-Steuerung benötigt. - Jedes
videoSegments[]-Element muss<=15Sekunden sein und sollte einer zusammenhängenden Gruppe von genehmigten Storyboard-Zeilen entsprechen. - Behalten Sie
waitForCompletion: truebei, es sei denn, der Benutzer bittet explizit darum, die lange Generierung im Hintergrund auszuführen.
- Verwenden Sie dies für ein endgültiges KI-generiertes Video länger als
-
手动多视频工程模式:- Verwenden Sie dies nur, wenn der Benutzer explizit nach separaten Clips, einem Projekt-/Editor-Workflow, importierter Clip-Montage, manueller Postproduktion oder separat bearbeitbaren Ausgaben fragt.
- Generieren Sie bei normaler Chat-/Agenten-Videogenerierung nicht manuell einen Clip nach dem anderen und verketten Sie ihn mit
ffmpeg; verwenden Sie stattdessen长视频队列模式. - Wenn eine manuelle Montage explizit erforderlich ist, generieren Sie jeden Clip bewusst und verketten Sie sie dann in der Storyboard-Reihenfolge, nachdem alle Clips erfolgreich waren.
-
Wenn die Anfrage mehrere Aufnahmen, klare Kontinuitätsanforderungen oder ein Risiko für visuelle Drift hat, stellen Sie nach der Anzeige der Kontaktabzug-Vorschau eine weitere Frage:
- ob auch separate Storyboard-Keyframes vor der Videoproduktion generiert werden sollen.
-
Wenn separate Storyboard-Keyframes generiert werden, sollte die spätere Videogenerierung vorzugsweise bildbasierte Modi verwenden und für übergangsreiche Segmente
first-last-framebevorzugen.
Storyboard-First-Regel
Jede Videoaufgabe benötigt eine Storyboard-Kontaktabzug-Vorschau nach der Drehbuch-Tabelle und vor der Benutzerbestätigung.
...
[gekürzt für die Übersetzung]