Communitygithub.com

Jamailar/Beav

Kanonischer Einstiegspunkt für jede KI-Chat-Anfrage zur Erstellung, Generierung, Planung oder Bearbeitung von Videos, einschließlich Werbefilme, Anzeigen, Kurzvideos, Produktvideos, Referenzbild-Videos, Bild-zu-Video, Erst-/Letztbild-Übergänge, Storyboards/Keyframes, Chat-Head-Videos, und 宣传片, 广告片, 短视频, 视频, 口播视频, 分镜图, 图片转视频, und 商品宣传片. cosyvoice-ssml oder tts-director nicht als erste Antwort auf eine Videoanfrage aufrufen. Diese Fähigkeit muss ein Drehbuch und eine Aufnahmetabelle entwerfen, Storyboard-Kontaktabzug-Vorschaubilder durch image.generate generieren, den Benutzer bitten, das Drehbuch zusammen mit dem Storyboard zu bestätigen, und erst dann die Videogenerierung aufrufen.

Was ist Beav?

Diese Fähigkeit dient als obligatorischer und zentraler Einstiegspunkt für alle Videoanfragen in KI-Chat-Umgebungen, die die Erstellung, Planung oder Bearbeitung von Videos betreffen. Sie ist für Plattformen wie Claude Code, Cursor und Codex konzipiert und definiert einen strengen, abgestuften Workflow, der sicherstellt, dass vor der Videogenerierung ein Drehbuch und eine Storyboard-Vorschau erstellt und vom Benutzer bestätigt werden. Die Fähigkeit behandelt verschiedene Videotypen, darunter Werbefilme, Produktvorstellungen, Erklärvideos und Charakter-Talking-Head-Videos, mit spezifischen Regeln für die Integration von Sprachsynthese (TTS) und den Umgang mit referenzierten Bildern. Der Workflow verhindert Abkürzungen wie den direkten Aufruf von Unterfähigkeiten (z.B. tts-director) zu Beginn und erzwingt die Aufteilung in einen Planungsentwurf, eine Storyboard-Vorschau, eine Benutzerüberprüfung, eine Produktionsvorbereitung, eine optionale TTS und abschließend die Videogenerierung. Für Talking-Head-Videos wird ein spezieller Prozess zur Auflösung der Charakterstimme und zur Generierung einer vollständigen Audiospur definiert. Die Fähigkeit unterstützt mehrere Videomodi (Text-zu-Video, referenzgeführt, Erst-/Letztbild) und Produktionsstrategien (Einzelclip, lange Sequenz, manuelles Projekt), definiert aber klare Grenzen, wie die Videogenerierung nur über offizielle Modellzuweisungen (wan2.7-Familie) erfolgen darf und keine externen Videomodelle verwendet werden dürfen.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Jamailar/Beav/tree/HEAD/desktop/builtin-skills/video-director

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

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:

  1. 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.
  2. storyboard_preview: Unmittelbar nachdem die Aufnahmetabelle existiert, generieren Sie mit Operate(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.
  3. 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.
  4. production_prep: Entscheiden Sie nach der Bestätigung, ob es sich um einen einzelnen Upstream-Clip (<=15s), eine lange video_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.
  5. 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.
  6. video_generate: Rufen Sie erst nach der Bestätigung und nach Abschluss aller erforderlichen TTS-Audioaufnahmen Operate(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.generate nicht einfach auf, um die Produktreferenz zu „analysieren", „extrahieren", „verbessern" oder neu zu erstellen.
  • Rufen Sie video.generate erst 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 voiceId existiert. Analysieren oder präsentieren Sie es nicht weiter, sobald eine fertige voiceId gefunden 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:

  1. Drehbuch und Storyboard zuerst
    • Bestätigen Sie das endgültige gesprochene Drehbuch.
    • Bestätigen Sie das Storyboard / die Aufnahmetabelle.
    • Die Spalte Sound muss die tatsächlichen gesprochenen Zeilen enthalten, keine vagen Bezeichnungen wie „角色讲解".
  2. Auflösung der Charakterstimme
    • Lesen Sie das ausgewählte Charakter-Asset, bevor Sie Medien generieren.
    • Wenn das Asset eine fertige voiceId / voice_id hat, behandeln Sie diese als aufgelöste Stimme und untersuchen Sie keine Sprachproben mehr. Melden Sie die aufgelöste voiceId, nicht den Dateinamen der Referenz-Audiodatei.
    • Wenn das Asset eine Sprachprobe, aber keine fertige voiceId hat, rufen Sie zuerst Operate(resource="voice", operation="clone", input={ ... }) auf, warten Sie auf den Abschluss und verwenden Sie die zurückgegebene voiceId.
    • Wenn es keine fertige voiceId und 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.
  3. 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östen voiceId auf.
    • 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-director mit Operate(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-director cosyvoice-ssml nur 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 speed für das Tempo, pitch für die Tonhöhe, emotion für die Stimmung, ausdrucksstarke Satzzeichen wie ~, ?, !, …… und MiniMax-Textmarker wie <#0.6#>, (laughs), (sighs) oder (breath) innerhalb von input nur dort, wo der Sprechrhythmus sie benötigt.
    • Schreiben Sie keine Steuerungsanweisungen in den gesprochenen Text. Übergeben Sie z.B. "emotion":"happy" und speed:1.08, anstatt den Charakter „用开心快速的语气“ sagen zu lassen.
    • Wenn die genehmigte Sprachspur mehrere emotionale Abschnitte benötigt, senden Sie einen voice.speech-Aufruf mit geordneten segments; die Medienlaufzeit generiert jedes Segment und führt das endgültige Audio zusammen. Führen Sie keine wiederholten voice.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.
  4. 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 Modus reference-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 als drivingAudio.
  • 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.json
  • script.md
  • assets.json
  • editor.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-video
    • reference-guided -> wan2.7-r2v-video
    • first-last-frame -> wan2.7-i2v-video
  • Behandeln Sie Erst-/Letztbild-Übergänge als Untertyp der Bild-zu-Video-Arbeit.
  • Ein einzelnes Upstream-Videogenerierungssegment darf 15 Sekunden nicht überschreiten.
  • Für ein endgültiges Video länger als 15 Sekunden senden Sie eine video.generate-Anfrage entweder mit den endgültigen durationSeconds oder expliziten videoSegments; die Medienwarteschlange generiert <=15s-Segmente und verkettet ein endgültiges Video-Asset.
  • Rufen Sie video.generate nicht 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-3 Sekunden betragen.
  • Ohne explizite Benutzergenehmigung darf eine einzelne Aufnahme 5 Sekunden 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-frame nur, 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 von reference-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 15 Sekunden nicht überschreiten.
  • 长视频队列模式:

    • Verwenden Sie dies für ein endgültiges KI-generiertes Video länger als 15 Sekunden.
    • Senden Sie eine video.generate-Anfrage mit durationSeconds > 15; die Laufzeit erstellt einen video_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 <=15 Sekunden sein und sollte einer zusammenhängenden Gruppe von genehmigten Storyboard-Zeilen entsprechen.
    • Behalten Sie waitForCompletion: true bei, es sei denn, der Benutzer bittet explizit darum, die lange Generierung im Hintergrund auszuführen.
  • 手动多视频工程模式:

    • 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-frame bevorzugen.

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]

Verwandte Skills