TasteForge Video
Für die vollständige eigenständige kreative Pipeline verwenden Sie zuerst taste-distillation und dann taste-application. Diese ECC-Fähigkeiten liefern ihre Python-Skripte direkt mit: Referenzen messen, vorhandene Takes generieren oder übergeben, bewerten, schneiden, compositen, überprüfen und an Blender und Resolve übergeben. Für diesen Ablauf wird kein separates Video-Repository benötigt. Diese Fähigkeit dokumentiert ECCs paketierte Offline-Engine und ihren strengen Evidenzvertrag.
TasteForge verwandelt „mach es so, wie sich diese Referenz anfühlt“ in einen wiederholbaren, prüfbaren Workflow: Geschmack interviewen, in ein strukturiertes Style Pack destillieren, das Paket validieren, seine gemessene Kadenz und Optik auf lokale Medien anwenden und eine bearbeitbare Zeitleiste exportieren. Die kanonische Implementierung ist das Paket tasteforge, das innerhalb von ECC unter skills/taste-application/scripts/tasteforge/ ausgeliefert wird. Ito-Markets/ito-video ist ein Beispielprojekt, das die paketierte ECC-Engine konsumiert.
Wann verwenden
- Der Benutzer bittet darum, vor dem Dreh ein Video-Geschmacksinterview zu führen („frag mich nach dem Look“, „interview mich zur ästhetischen Ausrichtung“).
- Der Benutzer möchte eine Ästhetik in strukturierte Einschränkungen destillieren – ein wiederverwendbares Style Pack statt Stimmungen („mach aus diesen Referenzen ein Pack“).
- Der Benutzer möchte ein Style Pack validieren (ist die Metadaten vollständig, schema-konform, Kadenz gemessen, Spezifikation destilliert?).
- Der Benutzer möchte ein Style Pack auf lokales Filmmaterial anwenden – einen Schnitt aus der gemessenen Kadenz des Packs über lokale Clips planen, deterministisch.
- Der Benutzer möchte EDL/FCPXML exportieren – eine bearbeitbare, bildgenaue Übergabe an DaVinci Resolve / Premiere / Final Cut.
- Der Benutzer bittet um einen Provenienz-Audit generierter Medien – woher stammen dieses Pack, diese Spezifikation oder dieser Schnitt; was wurde lokal gemessen vs. von einem Provider generiert; was war ein Trockenlauf.
- Der Benutzer bittet darum, dateigesteuerte multimodale Bild-, Video- oder 3D-Asset-Ausgaben aus lokalen Referenzdateien zu entdecken oder zu planen, einschließlich separater Manifeste, subjektverankerter CV-Effekte oder Resolve-Effekt-Rezepte.
- Der Benutzer erwähnt TasteForge, Style Packs, flashethereal, Geschmacksdestillation, Kadenz/Rhythmus-Planung, multimodales Discovery, Destillieren/Anwenden-Workflows oder ein Geschmacksinterview für Video.
Lokale deterministische Operationen vs. Provider-Generierung
Diese Grenze ist der Kern dieser Kompatibilitätsfähigkeit. Ihre Operationen sind lokal, deterministisch und offline:
| Operation | Deterministisch? | ECC darf ausführen |
|---|---|---|
| Geschmacksinterview → Profil | ja (offline) | ja |
| Pack inspizieren / gegen Schemas validieren | ja | ja |
| Profil (+ gemessene Grundlage) → Spezifikation destillieren | ja (Trockenlauf-Semantik) | ja |
| Paketkadenz auf lokale Medien anwenden → Bericht + Zeitleiste | ja | ja |
| EDL (CMX3600) / FCPXML 1.9 exportieren | ja | ja |
| Provenienz-/Abstammungsbericht | ja | ja |
| Vision-Modell-Destillation von Standbildern | Provider-Generierung | nein |
| Referenz-zu-Video, Bild-zu-3D, gehostetes Composit | Provider-Generierung | nein |
Provider-Generierung muss in ECC fehlschlagen. Jeder Live-Fal- (oder anderer Provider-)Aufruf – das Erzeugen von Shots, das Erstellen von Prop-Meshes, gehostete VLM-Destillation – erfordert eine explizite, separat autorisierte Ausführung unter einer eigenen Spur mit eigener Überprüfung. In dieser Kompatibilitätsspur ruft ECC niemals Fal auf, liest niemals API-Schlüssel oder andere Anmeldeinformationen (einschließlich FAL_KEY), lädt keine Medien hoch und verändert keinen Provider-Kontostatus. Wenn eine Anfrage eine Provider-Generierung benötigt, geben Sie genau diese Grenze an, führen Sie die lokale Hälfte aus (Interview, Paketvalidierung, Planung, Export) und stoppen Sie.
Behaupten Sie niemals, dass ein Fal-Workflow gespeichert ist. Ein lokaler Verweis auf einen Fal-Endpunkt, eine Modell-ID oder eine Trockenlauf-URL (sie erscheinen in den Paket-Metadaten) ist nur ein Verweis: es bedeutet niemals, dass ein providerseitiger Workflow gespeichert, persistiert oder autorisiert ist, ausgeführt zu werden. Alles, was offline produziert wird, trägt die Semantik eines Trockenlaufs (dry-run/dry_run) – sagen Sie „Trockenlauf-Spezifikation“ oder „deterministischer Plan“, niemals „vom Modell generiert“.
Kanonische Implementierung
- Repository:
affaan-m/ECC; Python-Distributionecc-tasteforge, Paketverzeichnisskills/taste-application/scripts/tasteforge/. Installation aus dem extrahierten ECC-Paket mitpython3 -m pip install ./skills/taste-application/scripts. Das BeispielprojektIto-Markets/ito-videofixiert einen bestimmten ECC-Commit. - CLI:
python3 -m tasteforge <Befehl>–provenance,inspect,validate,interview,distill,apply,export,multimodal.--live-Flags beenden mit Code 2 und verweigern. - Schemas sind der Vertrag: Geschmacksprofil, Paketmanifest, Bewertung, Kadenz, Spezifikation, Zeitleistenereignisse, Anwendungsberichte (
providerist auf Enum"none"festgelegt;dry_runauftrue). - Wiederhergestellte Quellenabstammung und bewusste Ausschlüsse befinden sich im
skills/taste-application/SOURCE.mddes Repos. Führen Siepython3 -m tasteforge provenancefür die maschinenlesbare Version aus.
Verwenden Sie die installierte ECC-Engine für lokale deterministische Befehle und interpretieren Sie ihr JSON. Installieren Sie die paketierte Engine, falls sie fehlt; rekonstruieren Sie ihre Logik nicht inline. taste.resolve ist ein Kompatibilitätsimport von tasteforge.resolve, sodass die kreativen Skripte und das Beispielprojekt einen gemeinsamen verifizierten Resolve-Adapter verwenden.
Die CLI python3 -m tasteforge verwendet die installierte Distribution ecc-tasteforge. Die eigenständigen Skripte taste-distillation und taste-application werden in ECCs Opt-in-Mediengenerierungsmodul mit ihren eigenen Python-Anforderungen ausgeliefert. Keiner der Pfade erfordert die Veröffentlichung des Repositoriums oder der Medien des Benutzers.
Bevor Sie einen gespeicherten Checkout fortsetzen, zeichnen Sie seinen Commit auf und inspizieren Sie lokale Branches und Worktrees für spätere Implementierungsfixes. Führen Sie die Tests des kanonischen Pakets und python3 -m tasteforge apply --help aus; ECCs Text- und Fixture-Tests beweisen nicht, dass der ausgewählte Python-Checkout diesen Vertrag implementiert.
Verkettung der kreativen Fähigkeiten
| Stufe | Eigentümer | Überprüfbares Ergebnis |
|---|---|---|
| Kreative Richtung | taste | Benannte Genres, Referenzbeobachtungen, gewählter Look und Vermeidungsliste |
| Destillation und Planung | tasteforge-video | Gemessene Evidenz, separate Genrespezifikationen, Trockenlauf-Manifeste und Kadenzplan |
| Bearbeitung und Effekte | video-editing, mit dem gewählten Renderer wie Remotion, Manim oder Fusion | Angewandtes Filmmaterial, tatsächliche Spuren, bearbeitbare Effekte und Zeitleiste |
| Optionale generierte Assets oder Stimme | fal-ai-media oder der ausgewählte Audio-Workflow, unter eigener Autorisierung | Provider-Quittung und inspizierte Ausgabe |
| Lieferung | Bearbeitungs-Workflow, dann content-engine auf Anfrage | Überprüfte exakte Export- und Verteilungskopie |
Verwenden Sie nur die Stufen, die das Projekt benötigt. Die historische Angelcore/Cloud-Trance-Palette und Beat-Grammatik der taste-Fähigkeit sind optionale kreative Beispiele; sie dürfen das aktuelle Briefing nicht überschreiben oder verschiedene nummerierte Genres zusammenführen. Verwenden Sie die tatsächlichen Referenzen jedes Genres für seine Ausrichtung, einschließlich 3D Cyber Glitch und Fluid Sketch. TasteForge ersetzt diese Fähigkeiten nicht und erfordert nicht jeden Renderer. Halten Sie 3D-Materialien, Geometrie, Wireframe-Verhalten, Bewegung und Komposition in der Genresignatur explizit. Ein 3D-Anforderungsmanifest ist ein Plan für ein Asset; es ist kein Mesh. Ein Subjektanker-Deskriptor benennt eine Tracking-Anforderung; es ist kein Nachweis dafür, dass ein Subjekt erkannt oder getrackt wurde. Inspizieren Sie tatsächliche Spuren, Track-Verlust-Verhalten und gerenderte Subjektframes, bevor Sie behaupten, dass CV-Effekte zuverlässig angewendet wurden.
Workflow
- Interview (
interview): Sammeln Sie Antworten für die Look-Achsen – Palette, Körnung, Beleuchtung, Brennweite, Kamerabewegung, Subjektrahmung, Bewertung, Stimmungsadjektive, Vermeidungsliste – und separat die Inhaltskurzbeschreibung. Halten Sie Look und Inhalt getrennt; deren Vermischung ist der klassische Fehler. - Destillieren (
distill): Ordnen Sie das Profil offline dem Spezifikationsschema zu und betten Sie die gemessene Grundlage des Packs ein (Schwarz/Weißpunkt, Kontrast, pro-Zone-Chroma, Palette, Schnittrhythmus), wenn ein Pack bereitgestellt wird. Das Ergebnis ist eine Trockenlauf-Spezifikation: deterministisch, Provider"none". - Validieren (
validate/inspect): Überprüfen Sie das Pack gegen seine Schemas; melden Sie Fehler vs. Warnungen (fehlende Standbilder in einem Nur-Metadaten-Pack sind eine Warnung, kein Fehler). - Anwenden (
apply): Planen Sie Shot-Dauern aus der gemessenen Kadenz des Packs (geseedet, deterministisch) über die lokalen Clips des Benutzers; erzeugen Sie den Anwendungsbericht und bildgenaue Zeitleistenereignisse. - Exportieren (
export): Schreiben Sie CMX3600 EDL + FCPXML 1.9 mit rationalen, NTSC-sicheren Zeiten für den Import in eine echte NLE. - Auditieren (
provenance): Melden Sie die Abstammung – wiederhergestellte Quellen-Digests, Generierungsgeschichte, Fixture-Provenienz, Provider-Verweise als reine Pointer-Datensätze.
Anwenden von echtem Filmmaterial ohne wiederholte Quellen
Wenn die Kurzbeschreibung keine wiederholten Clips erfordert, verwenden Sie einen kanonischen Checkout, der apply --no-repeat --fps unterstützt, und setzen Sie die Ausgabebildrate explizit. Wenn diese Flags fehlen, melden Sie die Implementierungslücke, anstatt stillschweigend die Legacy-Round-Robin-Auswahl zu verwenden. Der strikte Modus verwendet jeden normalisierten Quellpfad höchstens einmal in der Manifest-Reihenfolge und lehnt unzureichende oder zu kurze Quellen ab. Bereiten Sie genügend überprüfte Auswahlen vor, um den Kadenzplan zu füllen. Dies ist Eindeutigkeit auf Quellebene, keine Unterstützung für unterschiedliche In/Out-Bereiche aus derselben Aufnahme.
Der Anwendungsbericht ist ein Schnittplan. Er führt keine visuelle Shot-Bewertung durch, bewertet kein Filmmaterial, wendet keinen LUT an, rendert keine Overlays und importiert kein Resolve-Projekt. Halten Sie die gemessene Referenzkadenz des Packs getrennt von der Ausgabebildrate.
Die Export-CLI erwartet {"clips": [...]}. Wickeln Sie die timeline_events der Anwendung unter clips ein, bevor Sie exportieren, und übergeben Sie dieselbe --fps, die für die Anwendung verwendet wurde; die Standardbildrate des Exports darf den Plan nicht neu konformieren. Überprüfen Sie die Anzahl der ausgegebenen Ereignisse, die Gesamtframes, die eindeutigen Quellen und die Medienverknüpfung, bevor Sie die Zeitleiste an den Bearbeitungs-Workflow übergeben.
Wenn dieser Workflow überlappende Effekte in einer NLE anwendet, weisen Sie kompatible Spuren zu und lesen Sie jeden angeforderten Start, Ende und Dauer zurück. Ein zurückgegebenes Element oder ein erfolgreicher Append-Aufruf allein beweist nicht, dass jeder geplante Effekt platziert wurde; lehnen Sie fehlende, verschobene oder abgeschnittene Platzierungen vor dem Rendern ab.
Dateigesteuerter multimodaler Vertrag
Verwenden Sie diesen Pfad, wenn lokale Referenzen Trockenlauf-Generierungspläne für Bild-, Video- und 3D-Asset-Ausgaben antreiben müssen, während die Genre-Trennung erhalten bleibt:
python3 -m tasteforge multimodal --config workflow.json --out-dir out/multimodal
Die Konfiguration benennt nummerierte Genres und lokale Evidenzdateien. Halten Sie diese Kandidatengenres getrennt, anstatt sie zu einer generischen Ästhetik zu vermischen:
- Flash Ethereal
- 3D Cyber Glitch
- Fluid Sketch
Der Befehl misst lokale Referenzen mit ffprobe/ffmpeg und gibt eine Stilspezifikation pro Genre, separate Bild-, Video- und 3D-Asset-Manifeste, Provenienz und ein Resolve-Effekt-Rezept aus. Der Effektzeitplan muss aperiodisch geseedet sein. CV-Effekte erfordern einen echten Subjektanker, dessen genaue Lost-Track-Richtlinie disable_effect_until_track_recovers ist; continue_without_anchor und jede andere Richtlinie schlagen fehl. Jeder Effekt trägt Platzierungseinschränkungen, die Gesichter und lesbaren Text erhalten und verhindern, dass dekorative Eck-Meshes Full-Frame-3D-Arbeit ersetzen.
Die zurückgegebene Quittung ist die Bündelgrenze. Sie bindet jedes ausgegebene Evidenz-Artefakt durch relativen Pfad, Byte-Größe, SHA-256, Genre, Modalität, provider_execution:false und genaue Referenz-/Zeit-Provenienz. Die Quittung erfordert provider_calls:0 als exakte Ganzzahl (der JSON-Boolean false ist ungültig), provider_execution:false und dry_run:true. Jede Genrespezifikation erfordert ebenfalls explizit dry_run:true. Das Resolve-Effekt-Rezept erfordert dieselbe exakte Ganzzahl provider_calls:0, provider_execution:false und dry_run:true. Jedes Modalitätsmanifest und jede verschachtelte Anfrage muss alle vier exakten Fail-Closed-Felder enthalten: Ganzzahl provider_calls:0, provider_execution:false, dry_run:true und submit:false; jede Anfrage erfordert auch provider_call_mode:"disabled". Ein fehlendes Feld ist eine Ablehnung, kein Standard, und dry_run:false muss abgelehnt werden, bevor die Ausgabe geschrieben wird.
Behandeln Sie Booleans überall in Zeitleisten-, Evidenz-, Sonden- und Quellendauer-Daten als ungültige Zahlen. Jeder solche numerische Wert muss eine endliche reelle Zahl sein: Lehnen Sie true, false, NaN, Unendlichkeiten, negative Ereignisstarts, nicht-positive Dauern, außerhalb des Bereichs liegende Evidenzzeiten und Ereignisse ab, die über die deklarierte endliche positive Zeitleiste hinaus enden. Ganze Datei-Evidenz verwendet eine explizite Basis der gesamten Dateidauer und erfindet niemals Zeitstempel.
Quittungsreferenzen sind die Dauerautorität. Schlüsseln Sie jede validierte Referenzdauer anhand ihres zitierten SHA-256; doppelte Vorkommen eines Digests müssen in der Dauer übereinstimmen, oder das Bündel ist ungültig. Jede Effektevidenz source_duration und jeder Subjektanker source_duration muss der validierten Quittungsdauer dieses Digests entsprechen, nicht nur seine zitierte Zeit enthalten. Die Sondendauer und alle Sondenmessungen müssen dieselben stabilen Bytes beschreiben, die für Byteanzahl und SHA-256 verwendet werden. Wenn sich die Quelle während des Sondierens ändert oder während sie noch verfügbar ist, anders hasht, schlagen Sie fehl, anstatt eine Quittung auszugeben oder zu akzeptieren.
Führen Sie immer eine Bündelvalidierung nach der Erstellung durch. Ein fehlendes Bild-, Video- oder 3D-Asset-Manifest muss fehlschlagen. Generalisierte oder doppelte Genres, periodische Zeitpläne, unverankerte CV-Effekte, fehlende Platzierungseinschränkungen, Provider-Execution-Flags, ungebundene Ausgabedateien, Byte-Größen-Drift oder SHA-256-Manipulation müssen fehlschlagen. Lehnen Sie Ausgabestämme, Zwischenprodukte oder Artefakte ab, die Symlinks sind, und lehnen Sie spezielle Dateien ab (einschließlich FIFOs und Geräte); Ausgaben müssen reguläre Dateien in einem echten Verzeichnisbaum bleiben. Wenn lokales ffmpeg oder ffprobe nicht verfügbar ist, muss die CLI ihren begrenzten lokalen Medienverarbeitungsfehler ungleich Null ohne einen Python-Traceback zurückgeben. Reparieren Sie keine fehlgeschlagene Quittung, indem Sie Evidenz löschen oder die Validierung abschwächen.
Beispielsitzung
# nach der Installation der ECC-Engine; Pfade unten sind Ihre Projekteingaben
python3 -m tasteforge validate stylepacks/flashethereal
python3 -m tasteforge interview --answers answers.json --genre flashetherea
…
[truncated for translation]