Anzeigen
Eine inszenierte Werbeproduktion für ein Produkt, das der Nutzer bereits besitzt: Fakten, Drehbuch, Aufnahmeliste, genehmigte Keyframes, Clips, Stimme, Montage, Qualitätskontrolle. Zwei grundlegende Regeln. Produkttreue: Jeder Frame, der ein physisches Produkt zeigt, beginnt mit dem Foto des Nutzers über einen Bearbeitungs-Endpunkt, nichts wird aus Text neu interpretiert; Software wird nur durch echte Aufnahmen und Bildschirmaufnahmen des Nutzers gezeigt, zusammengesetzt und niemals durch ein generatives Modell geleitet (references/software-route.md). Anspruchskontrolle: Jede Behauptung, jedes Zitat, jede Zahl und jeder Preis im Drehbuch oder auf dem Bildschirm stammt aus den Angaben des Nutzers; nichts wird erfunden.
Schritt 0 – Preflight
command -v genmedia
python3 "${CLAUDE_SKILL_DIR}/scripts/gm.py" preflight
blockersnicht leer, CLI fehlt oder älter als 0.7.0 →/genmedia-skills:setup. Schlüssel fehlt → der Nutzer führtgenmedia setupaus oder exportiertFAL_KEYselbst; warten. Niemals einen Schlüssel lesen, ausdrucken, anfordern oder eingeben.config.announce_above_usdundconfig.confirm_above_usd(Standardwerte 0,50 und 2) für die Kostenbegrenzung undffmpeg.foundfür den Montagepfad behalten.- Zuerst fortsetzen:
.genmedia/projects/*/plan.mddurchsuchen. Ein Plan für diese Anzeige existiert → lesen,python3 "${CLAUDE_SKILL_DIR}/scripts/pipeline.py" urls --label <slug>ausführen, am ersten unvollendeten Schritt fortsetzen. Niemals ein Projekt mit Ledger-Einträgen neu starten. Einproduct-photoshoot-Plan für dasselbe Produkt → dessen PRODUKT-SPERRE und genehmigte Standbilder als Keyframe-Referenzen wiederverwenden.
UX-Regeln
- In der Sprache des Nutzers antworten (Türkisch rein → Türkisch raus). Modell-Prompts sind Englisch; gesprochene Zeilen, Untertitel und On-Image-Text bleiben in der Sprache des Publikums, in Anführungszeichen, genau wie genehmigt.
- Kein JSON, keine Anfrage-IDs oder Tool-Erzählungen im Chat. Still warten; höchstens eine Statuszeile pro Batch.
- Fragen-Budget: 3 vor dem Plan, eine nach der anderen, als beschriftete Optionen (AskUserQuestion, falls verfügbar), jede mit einem Standardwert, den du verwendest, wenn der Nutzer überspringt. Reihenfolge:
- Produkt: Foto(s), oder für Software die echten Aufnahmen und eine Bildschirmaufnahme, plus was es ist und was darüber wahr ist. Nichts angehängt → danach fragen; dies ist die einzige Frage ohne Standardwert. Foto, aber keine Fakten → nur verwenden, was auf der Verpackung steht und auf dem Foto sichtbar ist, und den Rest unter "Ausgelassen" auflisten.
- Moderator und Stimme. Standardwert: ein generierter synthetischer Moderator, der zum Publikum passt, Stimme in der Sprache des Publikums (der Sprache, in der der Nutzer schreibt, sofern nichts anderes angegeben). Optionen: generiert · ein
@handle· mein eigenes Foto (Einwilligung) · kein Moderator. - Modus und Plattform. Standardwert: sprechender Moderator UGC, 15 s, 9:16 für Kurzform-Feeds. "Statisch" → Überschriftenformat, 4:5 plus 1:1. Jede Frage überspringen, die die Anfrage bereits beantwortet. Vage Anfrage ("Mach eine Anzeige dafür") → alle Standardwerte, unter Annahmen in der Plankarte aufgeführt. Einwilligung, Planfreigabe und die Kontrollpunkte sind nicht Teil des Budgets.
- Harte Stopps: die Plankarte (immer bei Video; bei statischen, wenn die Kostenbegrenzung eine Bestätigung verlangt), Keyframes vor jedem Clip, Clips und Stimme vor Musik, Untertitel und Montage. Stille oder ein erfolgreicher Auftrag ist niemals eine Genehmigung. Kreative Entscheidungen (Hook, Moderator, Take) gehören dem Nutzer.
- Kostenbegrenzung für den gesamten Plan einschließlich jeder Variante: unter dem Ankündigungswert → ausführen; dazwischen → einzeilige Schätzung und ausführen; bei oder über Bestätigungswert → auf ein Ja warten. Niemals ein Modell austauschen, das der Nutzer genannt hat; die günstigere Route als Zeile in der Plankarte anbieten.
- Begrenzte Reparatur: 3 Versuche pro Schritt, jedes Mal etwas ändern, niemals eine abgelehnte Richtlinie unverändert erneut senden. Ein Auftrag mit einer Anfrage-ID wird fortgesetzt, niemals erneut eingereicht. Eine Reparatur oder Wiederholung, die selbst den Bestätigungswert oder mehr kostet (ein Seedance-Sprech-Take tut das), benötigt ein neues Ja mit der laufenden Summe; ein fehlgeschlagener Auftrag wurde möglicherweise bereits abgerechnet.
- Sicherheit, nicht verhandelbar: keine erfundenen Erfahrungsberichte, Kunden, Bewertungen, Bewertungen, Benutzerzahlen, Auszeichnungen, medizinischen, finanziellen oder Einkommensbehauptungen, keine falsche Dringlichkeit oder erfundene Preise. Das Gesicht oder die Stimme einer echten Person benötigt die Bestätigung der Einwilligung des Nutzers. Ein generierter Moderator ist eine synthetische Person: dies bei der Auslieferung sagen und den Nutzer darauf hinweisen, dass Plattformen und einige Gesetze eine Offenlegung verlangen; niemals als Kunden bezeichnen. Keine Konkurrenznamen, Logos oder Verpackungen. Uploads und Ergebnisse befinden sich auf öffentlichen URLs: dies einmal sagen, bevor unveröffentlichte Produkte oder Fotos von Personen hochgeladen werden. Regeln und Formulierungen:
references/scripts-and-claims.md.
Discovery-Schutz
references/routing-video.md, references/routing-audio.md, references/routing-image.md und references/routing-utility.md sind datierte Caches (überprüft 2026-09-19). Jeder einzelne Endpunkt im Plan wird vor dem Anzeigen der Plankarte bestätigt:
genmedia models --endpoint_id <id1>,<id2>,<id3> --status all --limit 50 --json
python3 "${CLAUDE_SKILL_DIR}/scripts/gm.py" schema <endpoint_id>
- Jede ID muss zurückkommen und
activesein (ohne--limitgibt der Aufruf höchstens 20 Zeilen zurück: eine fehlende Zeile ist kein Beweis für eine tote ID, noch einmal allein danach fragen); ansonsten die nächste Stufe dieser Aufgabe in der Routing-Referenz nehmen, sonstgenmedia models "<name>" --no-classify --limit 10 --json, den neuesten aktiven Treffer nehmen und sagen, welches Modell lief. - Feldnamen, Enums und Limits stammen aus dem Schema, niemals aus dem Gedächtnis; sie übertragen sich nicht zwischen Familien (
promptvstext,image_urlvsstart_image_url,"5"vs5). - Niemals IDs oder Felder erfinden. Niemals
genmedia runohne Endpunkt-ID ausführen. Neue Veröffentlichungen liegen unter Anbieter-Namespaces (bytedance/,creatify/,openai/,minimax/,veed/), nicht nurfal-ai/.
Routing
Produkttyp. Eine App, SaaS, Entwickler-Tool, Erweiterung oder alles, dessen Produkt eine Schnittstelle ist → die Software-Route: references/software-route.md vor der Planung lesen. Sie ersetzt die Keyframe- und statischen Regeln unten (keine Bearbeitung einer Aufnahme, kein von einem Modell eingebrannter Text); Drehbuch, Behauptungen, Stimme, Musik, Untertitel, Montage, Kostenbegrenzung und Kontrollpunkte bleiben wie hier beschrieben.
Liefergegenstand. Statische Wörter ("görsel", "Banner", "statisch", "Karussell", eine angegebene Überschrift) → statisches Format, references/static-formats.md. Bewegtbild- oder Sprachwörter, oder nichts gesagt → Video, Modus aus references/ad-modes.md: presenter (Standard), how-to, unboxing, showcase, problem-solution, testimonial (nur mit einem echten Zitat, das der Nutzer liefert), tv-spot.
Produktionsroute für Video (erster Treffer gewinnt):
| Situation | Route |
|---|---|
| Keine On-Kamera-Sprache: Showcase, TV-Spot oder How-to mit Voice-Over | B ohne den sprechenden Kopf: B-Roll + Voice-Over + Musik |
| Gesprochene Sprache ist nicht Englisch | B. Türkisch auf Route A nur auf Wan 3.0, niemals Seedance: in einem nativen Hörtest (references/platform.md Abschnitt 10) war Wan richtig, während jede Seedance-Version falsch aussprach (ş als s, "merhala"); Veo 3.1 Lite, dort einwandfrei, wird nicht mehr auf fal gelistet. A nur, nachdem ein Testclip die Hörprüfung des Nutzers bestanden hat |
| Formulierung muss exakt sein (Markenname, Preis, rechtlicher Hinweis), eine feste Markenstimme oder dieselbe Stimme über Varianten hinweg | B: TTS sagt den Text genau; native-audio-Modelle paraphrasieren und sprechen falsch aus |
| Länger als 15 s, oder Moderator plus B-Roll-Cutaways | B |
| Englisch, ein kontinuierlicher Take von 6 bis 15 s, Moderator spricht zur Kamera | A |
- Route A: Eine Generation spricht die Zeile. Genehmigter Keyframe (Moderator mit dem echten Produkt) → native-audio image-to-video.
- Route B: TTS pro Block (On-Kamera-Blöcke, Voice-Over-Blöcke) → sprechender Kopf nur für die On-Kamera-Blöcke → B-Roll aus genehmigten Keyframes → zusammenbauen. Stimme zuerst: ihre gemessene Länge bestimmt jede Clip-Dauer.
Rollen-Standards (aktiv 2026-09-19; Preisangaben sind datierte Hinweise, gm.py price entscheidet)
| Rolle | Endpunkt | Warum | Preis-Hinweis |
|---|---|---|---|
| Keyframe, Moderator oder Szene mit dem Produkt | bytedance/seedream/v5/pro/edit | bis zu 10 Referenzen halten Produkt und Moderator | ~USD 0,07/Bild + USD 0,0045 pro zusätzlicher Referenz |
| Endkarte, statische Anzeige, jeder Frame mit exaktem Text | openai/gpt-image-2.5/flare/edit | stärkste Texttreue, bis zu 16 Referenzen | ~USD 0,06/Bild bei quality: "high" |
| Generierte Moderator-Platte (nur eine Person, niemals das Produkt) | bytedance/seedream/v5/pro/text-to-image | Qualitätsstandard für Personen | ~USD 0,07/Bild |
| A: Sprechclip, Qualität | bytedance/seedance-2.5/us/image-to-video | Arena #1 für synchronisierte Muttersprache; 4 bis 30 s | ~USD 0,57/s bei 720p, ~USD 0,26/s bei 480p |
| A: Sprechclip, Türkisch | alibaba/wan-3.0/image-to-video (start_image_url) | das einzige gelistete native-audio-Modell, dessen Türkisch einen Muttersprachler-Hörtest bestanden hat (2026-09-21); ganzzahliges duration, resolution setzen | ~USD 0,05/s bei 480p, ~USD 0,10/s bei 720p |
| A: Sprechclip, Entwurf oder Budget, Englisch | creatify/boreal | für Anzeigen entwickelt; [VISUAL] [SPEECH] [SOUNDS] Prompt; seine Modellseite nennt Englisch als validierte Sprache; optionales sichtbares KI-Label | ~USD 0,01/s bei 720p |
| B: Stimme, Englisch | fal-ai/elevenlabs/tts/eleven-v3 | Standard-TTS | ~USD 0,10 pro 1000 Zeichen |
| B: Stimme, Türkisch und andere gelistete Sprachen | fal-ai/gemini-3.1-flash-tts | language_code Enum enthält "Türkisch (Türkei)"; style_instructions | ~USD 0,05 pro 1000 Zeichen |
| B: sprechender Kopf | fal-ai/bytedance/omnihuman/v1.5 | Bild + Audio; unter 60 s bei 720p | ~USD 0,16/s Audio |
| B: sprechender Kopf, Entwurf | veed/fabric-1.0 bei 480p | halber Preis; resolution ist erforderlich | ~USD 0,08/s |
| B-Roll, Qualität | bytedance/seedance-2.5/us/image-to-video | optionales end_image_url für Enthüllungen | ~USD 0,57/s bei 720p |
| B-Roll, Entwurf oder Budget | minimax/h3-max-turbo/image-to-video | Cent pro Clip | ~USD 0,04/s bei 768P (Einführungsrabatt endete 2026-09-30) |
| Musikbett | elevenlabs/music/v2.5 | exakte Länge über music_length_ms | ~USD 0,60 pro angefangener Minute |
| Untertitel | fal-ai/workflow-utilities/auto-subtitle; exakter Text (beliebige Sprache): veed/subtitles | eingebrannt ohne lokales drawtext | ~USD 0,03/min; veed ~USD 0,10/min, 1 min Minimum |
| Concat, Mux, Skalierung, Endkartenclip | lokales ffmpeg, sonst references/routing-utility.md | kostenlos und exakt, wenn ffmpeg.found | Cent |
Tie-Breaker:
- Der Nutzer hat ein Modell genannt → nach der Live-Überprüfung verwenden; das Standardmodell in einer Zeile erwähnen, niemals stillschweigend austauschen.
- Qualitätsroute überschreitet den Bestätigungsschwellenwert (ein 15 s Seedance 2.5 Take bei 720p kostet etwa USD 8,50) → die Plankarte zeigt den Qualitätspreis und den Entwurfspreis nebeneinander an; der Nutzer wählt. Niemals stillschweigend das günstige wählen.
@handle→/genmedia-skills:characterlöst es in Referenz-URLs und Ankertext auf; diese als Moderator-Referenzen im Keyframe-Auftrag verwenden. Niemals@handlein einem Prompt belassen.- Kein Produktfoto → danach fragen (Software: Aufnahmen). Keines vorhanden → nur Konzept: an
/genmedia-skills:imageübergeben und sagen, dass es nicht das echte Produkt sein wird. Software ohne Aufnahmen erhält ein Drehbuch und eine Aufnahmeliste, niemals eine erfundene Schnittstelle. - Store-Listing-Screenshots, Link-Karten oder Product Hunt-Bilder und alle Apple Ads "Kreative" (Apple baut seine Anzeigen aus der Produktseite) →
/genmedia-skills:launch-graphics. Nur textfreie Produkt-Standbilder gewünscht →/genmedia-skills:product-photoshoot. Ein einzelner Clip ohne Drehbuch →/genmedia-skills:video. Ein organischer Kurzfilm ohne Werbeabsicht →/genmedia-skills:short-video. Ein erzählerischer Erklärfilm →/genmedia-skills:video-explainer. Marketplace-Listing-Karten →/genmedia-skills:marketplace-cards. Ein Thumbnail oder Cover →/genmedia-skills:youtube-thumbnail.
Benannte Fallen:
- Neu interpretiertes Produkt. Text-to-Video oder Text-to-Image erzeugt ein ähnliches Aussehen. Jeder Produkt-Frame ist eine Bearbeitung des Nutzerfotos, und jeder Produkt-Clip beginnt mit einem genehmigten Keyframe.
- Generierte Schnittstelle. Eine Bearbeitung, ein Text-to-Image oder ein Video-Auftrag, der eine Aufnahme berührt, gibt falsch geschriebene, erfundene UI zurück, und Plattformen lehnen Anzeigen ab, die eine Funktionalität zeigen, die der App fehlt. UI-Pixel stammen aus
launch-graphics-Seiten und der Aufnahme; Bewegung stammt aus der Aufnahme oder einem lokalen Push. - Text aus einem Videomodell. Überschriften, Preise, Logos, Untertitel und rechtliche Hinweise aus einem Videomodell kommen verstümmelt heraus. Negativen Raum im Keyframe lassen; Text kommt auf der Endkarte (Typografie-Modell), als eingebrannte Untertitel oder im Editor des Nutzers.
- Kling-Sprache. Kling v3 spricht nur Chinesisch oder Englisch und übersetzt alles andere automatisch ins Englische. Niemals türkischen Dialog dorthin leiten.
- Flashtalk-Leinwand. Das Schema von
fal-ai/flashtalkdokumentiert eine feste 768x448 Querformat-Ausgabe: keine Verwendung für eine 9:16-Anzeige. Entwurfsköpfe gehen zuveed/fabric-1.0. - Mux schneidet auf den kürzeren Input.
fal-ai/ffmpeg-api/merge-audio-videoist so lang wie der kürzere von Bild und Ton (eine lange Stimme verliert ihr Ende, eine kurze schneidet das Bild) und ersetzt die eigene Audiospur des Clips. Immer gleiche Länge für beide. duration: "auto"auf Seedance macht die Kosten unkalkulierbar. Immer setzen. Boreal und MiniMax nehmen eine Zahl, Seedance einen String.- OmniHuman-Standard.
resolutionist standardmäßig1080p(Audio unter 30 s)."720p"senden, es sei denn, der Nutzer hat nach 1080p gefragt. - Synthetischer Kunde. Ein generiertes Gesicht, das sagt "Ich habe 8 Kilo abgenommen", ist ein erfundener Erfahrungsbericht, egal wie der Prompt es nennt. Siehe
references/scripts-and-claims.md.
Arbeitsablauf
- Aufnahme innerhalb des Fragen-Budgets. Einen Slug wählen (
serum-ugc): es ist der Batchlabel, der Ledger-Filter,genmedia-output/<slug>/und.genmedia/projects/<slug>/. Jede natürlichsprachliche Bezeichnung funktioniert; Helfer transliterieren türkische Buchstaben. Plattform → Seitenverhältnis und Länge:references/ad-modes.md(Plattformtabelle; die aktuellen Anzeigenspezifikationen der Plattform prüfen). - Jedes Produktfoto mit dem Read-Tool ansehen. HEIC, AVIF, TIFF oder CMYK → zuerst in PNG oder sRGB JPEG konvertieren (
references/troubleshooting-ads.md). Die PRODUKT-SPERRE in.genmedia/projects/<slug>/plan.mdschreiben: Form, Proportionen, Materialien, Farben, Etikettentext wörtlich, was sich niemals ändern darf, welche Seiten nicht sichtbar sind. - Faktenblatt. Auflisten, was über das Produkt wahr ist und woher jede Tatsache stammt: die Nachricht des Nutzers, Markennotizen, die Verpackung selbst oder eine Produktseite. Niemals Behauptungen hinzufügen, die nicht verifiziert sind. Ausgelassene Annahmen auflisten.
- Drehbuch (
references/scripts-and-claims.md). Hook, Aufbau, Call-to-Action. Jede Behauptung mit einer Quellenangabe kennzeichnen. Geänderte Versionen des Nutzers immer in Anführungszeichen und genau einhalten; niemals paraphrasieren. - Keyframes. Jeden Keyframe als Aufgabe vom Typ
editauf dem Produktfoto (edit endpoint, 4+ Referenzen) oder alstext-to-imagenur für das Moderatorporträt (text, aber niemals mit dem Produkt) modellieren. Negativen Raum für Titel lassen. Die Endkarte (gpt-image-2.5/flare/edit) enthält den Call-to-Action, die URL, das Logo, den Preis und den rechtlichen Hinweis – immer als letztes Element. Unterkarten sind optional. - Route auswählen (A oder B), aus der Tabelle oben.
- Route A → Clip generieren. Die Keyframe-URL als
start_image_urlsenden, den Text im Prompt als wörtliche Rede setzen. Wenn Seedance die Ziffern nicht richtig ausspricht ("two nine ninety-nine" für "29,99") → zu Route B wechseln, es sei denn, das Ergebnis wurde genehmigt. - Route B → TTS generieren.
voiceaus den Optionen des Nutzers oder dem Standard wählen. Die Audiolänge messen. Dann den sprechenden Kopf (OmniHuman oder Fabric) und die B-Roll generieren. Die B-Roll-Länge an den Sprechblock anpassen.
- Route A → Clip generieren. Die Keyframe-URL als
- Musik (
elevenlabs/music/v2.5).music_length_msauf die Gesamtvideolänge setzen. Stimmung und Genre basierend auf dem Anzeigentyp. - Montage. Zuerst locale Prüfung auf
ffmpeg.found. Wenn gefunden: lokale ffmpeg-Befehle zum Zusammenführen und Muxen verwenden (references/routing-utility.md). Wenn nicht gefunden:fal-ai/ffmpeg-api/merge-audio-videooderfal-ai/ffmpeg-api/concat(aber auf gleiche Längen achten). Untertitel mitauto-subtitleoderveed/subtitlesnach der Montage als separate Spur einbrennen. - Qualitätskontrolle. Das Video mit dem Tool abspielen (
readodermediaBefehl). Auf Synchronisation, Tonqualität, Lesbarkeit des Textes und Einhaltung der Markenrichtlinien prüfen. Splits, falsche Takes oder fehlerhafte Einblendungen als Reparatur markieren. - Auslieferung. Das Video oder statische Bild zusammen mit einer Manifest-Datei (
manifest.json) und einer Plankarte im Chat bereitstellen. Die Plankarte enthält: Produktname, Plattform, Dauer, Kosten, Überraschungen und eine Liste aller generierten Assets.