Communitygithub.com

YouTube-Thumbnail

Erstellt YouTube-Thumbnails (16:9), Shorts-/TikTok-Cover (9:16) sowie Podcast- und Kurscover (1:1) aus einem Titel, optionalem Gesichtsfoto, @Handle, Markenfarben oder einem Videobild – mit KI-generiertem Text und gesichtertreuen Referenzbearbeitungen.

Was ist YouTube-Thumbnail?

Dieses Skill erstellt professionelle Thumbnails und Cover, die genau bei der Größe überzeugen, die Zuschauer tatsächlich sehen – etwa 160 Pixel breit im Feed. Aus einem Titel generiert es drei verschiedene Konzeptentwürfe, der Benutzer wählt aus, anschließend folgen enge Revisionen. Die Stärke liegt in der spezialisierten Verarbeitung: Gesichter werden durch Referenzbilder stabil gehalten, Text wird direkt in GPT Image 2.5 eingebrannt, und das Skill unterstützt YouTube (16:9), Shorts/TikTok (9:16) sowie quadratische Cover (1:1). Es integriert sich nahtlos mit den anderen Fächern des Genmedia-Ökosystems: Es konsumiert @Handle aus dem 'character'-Skill, Standbilder aus 'image' und Videobilder aus 'video'. Plattformen: primär Claude Code (z. B. Codex, Cursor) mit lokalen Tools wie ffmpeg und einem Chromium-Browser für Logo-Overlays. Die Arbeitsweise folgt einem strengen Workflow: Preflight-Prüfung, Ermittlung der Hook-Wörter, Erstellung der Zustandskarte, Generierung von drei unterschiedlichen Konzepten mit verschiedenen Frameworks, Kostenabschätzung und -freigabe, Batch-Generierung der Entwürfe, Auswahl durch den Benutzer, Finalisierung mit hoher Qualität und optionale Revisionen. Fehler wie standardmäßige Seitengrößen, Qualitätsstufen und nicht unterstützte Bildgrößen werden durch fest codierte Prüfungen abgefangen. Das Skill ist nicht für Poster, Foto-Bearbeitungen, Logos, OG-Bilder, Anzeigen-Creatives oder Videos selbst gedacht – es delegiert diese an spezialisierte Skills (image, brandkit, launch-graphics, ads, video).

Funktioniert mit✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/funi-ai/claude-plugins/tree/main/plugins/genmedia-skills/skills/youtube-thumbnail

In Ihrer bevorzugten KI fragen

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

Dokumentation

Was macht YouTube-Thumbnail?

Thumbnails und Cover, bewertet in der Größe, in der die Leute sie tatsächlich sehen: etwa 160 Pixel breit im Feed. Ein Titel rein, drei verschiedene Konzepte raus, der Benutzer wählt, ein Finale, enge Revisionen, Dateien in der exakten Auslieferungsgröße. Das Handwerk (Konzept-Frameworks, Prompt-Blaupause, Textregeln, die Kleinformat-Prüfung) lebt hier; die Mechanik in references/cli-contract.md und references/platform.md.

Schritt 0 – Preflight

Einmal pro Sitzung:

command -v genmedia
python3 "${CLAUDE_SKILL_DIR}/scripts/gm.py" preflight
python3 "${CLAUDE_SKILL_DIR}/scripts/thumbcheck.py" tools
  • blockers nicht leer, CLI fehlt oder älter als 0.7.0 → /genmedia-skills:setup. Schlüssel fehlt → der Benutzer führt genmedia setup aus oder exportiert FAL_KEY selbst; warten. Niemals einen Schlüssel lesen, drucken, anfordern oder eingeben.
  • config.announce_above_usd und config.confirm_above_usd (Standardeinstellungen 0.50 und 2) behalten: Sie sind die Kostenschwellen.
  • thumbcheck.py tools sagt, welche von preview, sheet, fit, frame hier laufen können (benötigt lokales ffmpeg oder macOS sips), und ob lockup kann (benötigt einen Chromium-basierten Browser). Keines vorhanden → die eingeschränkte Durchführung in Workflow Schritt 6. Niemals auf drawtext, Pillow oder ImageMagick planen: Text wird vom Modell gerendert.
  • Zuerst fortsetzen: ein .genmedia/projects/<slug>/thumbnail.md, das dieser Anfrage entspricht → lesen, beim ersten offenen Schritt fortfahren. Niemals ein Projekt neu starten, das Ledger-Einträge hat.

UX-Regeln

  1. In der Sprache des Benutzers antworten (Türkisch rein → Türkisch raus). Modell-Prompts auf Englisch schreiben; der Text auf dem Bild bleibt in der Sprache und der exakten Schreibweise, in der er veröffentlicht wird. Endpunkt-IDs, Feldnamen und Pfade bleiben wie sie sind.
  2. Kein JSON, keine Anfrage-IDs, Prompts oder Tool-Erzählungen im Chat. Stumm warten; höchstens eine Statuszeile pro Batch.
  3. Fragen-Budget: 2, eine nach der anderen, als beschriftete Optionen, nur wenn die Antwort fehlt:
    • F1 die Hook-Wörter: kein Titel und kein Thema → nach dem Titel fragen. Titel bekannt → nicht fragen; die 2 bis 4 Hook-Wörter selbst schreiben (drei verschiedene über die Konzepte hinweg).
    • F2 Gesicht oder kein Gesicht: nur fragen, wenn nichts darüber entscheidet. Ein Foto, ein @Handle oder „ich / mein Gesicht / ben“ → Gesicht. „Gesichtslos“, ein Produkt, eine Bildschirmaufzeichnung, eine Landschaft → kein Gesicht. Der Benutzer fragt nach nur einem Thumbnail oder benennt das Konzept → ein Entwurf statt drei; die Auswahl wird zu Ja oder Nein. Alles andere ist ein Standard, den Sie in der Auslieferungszeile angeben: Format 16:9; Textsprache = die Sprache des Titels; Palette = die angegebenen Markenfarben, sonst pro Konzept gewählt; fotorealistischer Plakat-Look; 3 Konzepte; finales Master 2560x1440 geliefert als 1920x1080 und 1280x720. Nicht gezählt: die Einwilligungsbestätigung, die Auswahl, eine Kostenbestätigung.
  4. Die Auswahl ist ein harter Stopp. Das Vergleichsblatt zeigen und warten. Stille, ein erfolgreicher Auftrag oder Ihre eigene Präferenz ist niemals eine Auswahl. Eine Empfehlung ist erlaubt; das Auswählen nicht.
  5. Wahrhaftigkeit. Ein Thumbnail darf dramatisieren, niemals falsch darstellen. Alles Gezeigte oder Geschriebene muss im Video sein oder ehrlich daraus folgen: keine erfundenen Zahlen, Ergebnisse, Reaktionen, Produkte oder Gäste; keine gefälschte Benutzeroberfläche einer echten Plattform; keine Logos oder Charaktere, die der Benutzer nicht besitzt. Kann nicht sagen, was das Video liefert → vorher fragen, bevor es versprochen wird (dies ersetzt F1 oder F2, es fügt keine Frage hinzu).
  6. Gesichter. Ein Foto einer echten Person (einschließlich des Benutzers) → eine Bestätigung, dass der Benutzer die Einwilligung dieser Person hat, und eine Zeile, dass Uploads auf öffentlichen URLs liegen. Niemals eine Berühmtheit oder öffentliche Person, die der Benutzer nicht ist; „sieht aus wie <berühmte Person>“ wird abgelehnt, ein erfundenes Gesicht oder ein gesichtsloses Konzept anbieten. Ein erfundenes Gesicht ist ein Platzhalter: niemals als eine reale, namentlich genannte Person, Kunde, Experte oder Gast präsentieren und in der Auslieferung sagen, dass das Gesicht KI-generiert ist.
  7. Kosten: die gesamte Anfrage vor dem ersten kostenpflichtigen Aufruf (Workflow Schritt 4) schätzen und die Schwelle mit den Werten aus dem Preflight anwenden: unter announce_above_usd → ausführen; bis zu confirm_above_usd → eine Zeile mit der Schätzung, dann ausführen; bei oder darüber → die Schätzung zeigen und auf ein explizites Ja warten (references/platform.md Abschnitt 8). Eine Genehmigung deckt den gezeigten Plan ab; ein größerer Plan benötigt einen neuen. Niemals einen Preis aus dem Gedächtnis nennen; niemals ein vom Benutzer genanntes Modell austauschen, um Geld zu sparen.
  8. Begrenzt: maximal 3 Entwurfsrunden und 3 Revisionsrunden; jeder Versuch ändert etwas; eine Ablehnung aufgrund von Inhaltsrichtlinien wird niemals unverändert erneut gesendet; ein Auftrag mit einer Anfrage-ID wird fortgesetzt, niemals erneut eingereicht.

Discovery-Schutz

Das Routing unten ist ein datierter Cache (references/routing-image.md, verifiziert 2026-09-19). Vor dem ersten kostenpflichtigen Aufruf eines Endpunkts in einer Sitzung:

genmedia models --endpoint_id <endpoint_id> --json
python3 "${CLAUDE_SKILL_DIR}/scripts/gm.py" schema <endpoint_id>
  • status muss active sein. Nicht aktiv oder 404 → nächste Stufe derselben Aufgabe in references/routing-image.md, sonst genmedia models "<name>" --no-classify --limit 10 --json, neueste aktive Übereinstimmung, und sagen, welches Modell lief.
  • Feldnamen, Aufzählungen und Grenzen kommen aus dem Schema, niemals aus dem Gedächtnis. Der Benutzer nennt ein Modell → suchen, bevor man zweifelt; neue Veröffentlichungen liegen unter Vendor-Namespaces (openai/, bytedance/, google/, alibaba/), nicht fal-ai/.
  • Niemals genmedia run ohne eine Endpunkt-ID (intelligentes Routing löst veraltete Standardeinstellungen auf).

Routing

SchrittEndpunktWarum
Entwürfe, nichts zu referenzierenopenai/gpt-image-2.5/flare/text-to-image, quality: "medium"Typografie-Führer; nur die Zielfamilie kann den Text in der Vorschau anzeigen, ein günstiges Entwurfsmodell kann das nicht
Entwürfe mit einem Gesichtsfoto, @Handle-Referenzen, einem Produktfoto oder einem Videobildopenai/gpt-image-2.5/flare/edit, quality: "medium"Referenzen gehen in image_urls (max. 16); gleiche Familie wie das Finale
Finaleopenai/gpt-image-2.5/sunburst/edit, quality: "high"Präzisionsstufe; der ausgewählte Entwurf ist Bild 1, sodass das Finale diese Komposition ist, kein neuer Wurf
Revision (Text, Ausdruck, Hintergrund, Farbe)openai/gpt-image-2.5/sunburst/edit, quality: "high"das aktuelle Finale ist Bild 1; ein Bereich pro Runde
Textfreie Platte, fotorealistisch (alternativer Pfad)bytedance/seedream/v5/pro/text-to-imageArena #1 fotorealistisch; Text wird anschließend mit einer GPT Image 2.5 Bearbeitung hinzugefügt
Identitätsplatte, wenn das Gesicht abdriftetfal-ai/nano-banana-2/editRouting-Standard für identitätskonsistente Bilder; Text wird anschließend hinzugefügt
Ein echtes Bild oder Foto vergrößernfal-ai/seedvr/upscale/image; Gesichter oder Text zuerst: topaz/upscale/image/precisionoriginalgetreu; Topaz hat Faces und Text Refine-Modelle
Bild aus dem Video des Benutzersthumbcheck.py frame (lokales ffmpeg)exakter Zeitstempel; kein ffmpeg → den Benutzer um einen Screenshot bitten
Eigenes Logo des Benutzers auf einer textfreien Plattethumbcheck.py lockup (lokaler Browser)Das Zeichen wird aus der Datei des Benutzers platziert; ein Modell würde es neu zeichnen

Tie-Breaker:

  1. Text auf dem Bild → GPT Image 2.5, selbst für ein fotorealistisches Konzept. Gar kein Text (Benutzer hat es gesagt) → Entwürfe können auf bytedance/seedream/v5/pro/text-to-image oder dessen /edit laufen; der Rest des Ablaufs bleibt unverändert. Seedream lehnt 1280x720 ab (seine Mindestfläche ist 1024x1024) und hat kein quality-Feld: image_size 1920x1080 senden (9:16 → 1080x1920, 1:1 → 1536x1536) und pro Bild aus seiner Routing-Zeile bepreisen (etwa USD 0,07 pro Stück am 2026-09-19: drei Entwürfe sind etwa USD 0,20, die Gesamtsumme neu berechnen).
  2. Standard-Textstrategie ist in einem Durchgang eingebrannt. Den Platten-Pfad (textfreie Platte, dann eine Bearbeitung „nur diesen Text hinzufügen“) verwenden, wenn: dieselbe Platte mehrere Sprachen oder A/B-Wortlaute benötigt; ein diakritisches Zeichen zweimal fehlgeschlagen ist; die Platte ein echtes Bild oder Foto ist. Details: references/text-and-readability.md.
  3. @Handle → .genmedia/characters/<handle>/character.json lesen (Anker description; refs[] mit role: "face" und active: true), die cdn_url eines Ref wiederverwenden, wenn es eine hat, sonst seine Datei hochladen; den Anker wörtlich verwenden. real_person: true → UX-Regel 6 gilt; ein aufgezeichnetes consent_confirmed_at ist die Bestätigung. Unbekannter Handle → das sagen, /genmedia-skills:character anbieten; niemals ersetzen.
  4. Der Benutzer hat ein Modell genannt → nach der Live-Prüfung verwenden; den Standard in einer Zeile anbieten.
  5. Das Design ist eine Platte plus das eigene Logo des Benutzers (ein Markenkanal, ein Store-Vorschauvideo einer App) → Platten-Pfad, dann platziert thumbcheck.py lockup die Logodatei zentriert mit einem Anteil an der Breite (references/text-and-readability.md Abschnitt 2b). Die Platte existiert bereits (eine launch-graphics-Platte, das Foto des Benutzers) → kein kostenpflichtiger Aufruf: lockup, Gate, Schritt 10. Keine Logodatei → danach fragen; niemals das Modell das Zeichen zeichnen lassen.

Fallstricke:

  • Auto-Größen-Falle. Die Bearbeitungsendpunkte standardmäßig image_size auf auto, was dem Eingabebild folgt: ein Hochformat-Gesichtsfoto ergibt ein Hochformat-Thumbnail. Immer {width,height} senden.
  • Standard-Qualitäts-Falle. quality standardmäßig high und die Familie rechnet nach Tokens ab. Bei jedem Aufruf setzen: medium Entwürfe, high Finale; xhigh oder max nur, nachdem der Benutzer dem Preis zugestimmt hat.
  • Vielfaches-von-16-Falle. 1920x1080 ist keine gültige GPT-Image-Größe. 1280x720, 2560x1440 oder 3840x2160 rendern und thumbcheck.py fit 1920x1080 produzieren lassen.
  • Angehängtes-Bild-Falle. Ein Text-zu-Bild-Endpunkt hat kein Bildfeld; er ignoriert das Foto und berechnet es trotzdem. Jede Referenz → der /edit-Endpunkt.
  • Neuer-Wurf-Falle. Das erneute Ausführen des Prompts in hoher Qualität ergibt ein anderes Bild (kein seed in dieser Familie). Das Finale ist eine Bearbeitung der Auswahl.
  • Großschreibungs-Falle. Niemals das Modell türkische Großbuchstaben schreiben lassen: den endgültigen String selbst schreiben (thumbcheck.py text), in Anführungszeichen, und Buchstabe für Buchstabe überprüfen.

Workflow

  1. Aufnahme. Titel oder Thema, Format (Standard 16:9), Gesicht oder nicht, Markenfarben, Referenzen. HEIC, AVIF, TIFF oder sehr große Fotos zuerst: thumbcheck.py fit <datei> --max-side 2048 --out .genmedia/tmp/<name>.jpg; diese Kopie lesen und hochladen. Jedes lokale Bild mit dem Read-Tool öffnen, bevor geplant wird (wer und was wirklich darin ist, entscheidet die Konzepte). Ein Bild aus dem Video des Benutzers: python3 "${CLAUDE_SKILL_DIR}/scripts/thumbcheck.py" frame <video> --at <sekunden oder m:ss>, dann lesen. Das Fragen-Budget nur gemäß UX-Regel 3 ausgeben.
  2. Zustandskarte. Ein kurzes ASCII-<slug> wählen (eksi-maya): es ist der Batch label, der Ledger-Filter, der Ausgabeordner und der Projektordner. Ein natürlichsprachliches Label funktioniert auch; der Helfer faltet "Ekşi maya" zu Eksi-maya, und diese gefaltete Form ist dann der Ordnername. .genmedia/projects/<slug>/thumbnail.md mit dem Write-Tool schreiben und nach jedem Schritt aktualisieren:
    # <titel> — thumbnail
    promise: <eine Zeile: was das Video wirklich liefert>
    format: 16:9 | textsprache: <code> | face: <keine | foto-pfad | @handle> (consent: <ja, datum | n.v.) | palette: <farben>
    [ ] konzepte  [ ] entwürfe-1  [ ] gate  [ ] auswahl: -  [ ] finale  [ ] revisionen 0/3  [ ] geliefert
    log:
    - <datum> entwürfe-1: 1 <framework> "<TEXT>", 2 <framework> "<TEXT>", 3 <framework> "<TEXT>"
    
  3. Drei verschiedene Konzepte. references/frameworks.md lesen. Mindestens fünf privat brainstormen, die drei stärksten behalten, die unterschiedliche Frameworks verwenden (nicht drei Farbvarianten einer Idee), jedes mit seinen eigenen 2 bis 4 Hook-Wörtern. Jeden Hook durch die Textprüfung laufen lassen und seinen upper-String wörtlich verwenden:
    python3 "${CLAUDE_SKILL_DIR}/scripts/thumbcheck.py" text "şimdi izle" --lang tr
    
    Hook-Wörter und Bilder dürfen nur Zahlen, Ergebnisse, Zitate, Produkte und Gäste verwenden, die der Benutzer angegeben hat (Titel, Kurzbeschreibung, ihre Dateien); der Titel allein gibt Ihnen kein Hook-Wort → eine Frage, einen einschränkungsfreien Hook oder ein textfreies Konzept verwenden oder fragen (UX-Regel 5). Jedes Konzept ablehnen, das die Wahrhaftigkeitsregel verletzt. Gesicht gewählt → mindestens zwei der drei Konzepte zeigen es. Der Titel enthält bereits den Hook → ein Konzept kann textfrei sein.
  4. Verifizieren und bepreisen. Discovery-Schutz für jeden Endpunkt, dann:
    python3 "${CLAUDE_SKILL_DIR}/scripts/gm.py" price openai/gpt-image-2.5/flare/edit,openai/gpt-image-2.5/sunburst/edit
    
    GPT Image 2.5 antwortet 1 units, was kein Preis ist. Dollar für dieses Skill: Aufträge x die Zeile pro Größe, pro Qualität (eine Größe, die nicht aufgeführt ist → die nächstgrößere Zeile) der GPT Image 2.5 Tabelle in references/routing-image.md (t2i-typography Notizen; die Bearbeitungszeilen enthalten bereits ein Eingabebild) + das Referenzkontingent in references/platform.md §7 für jedes weitere Referenzbild. Datierte Hinweise (2026-09-19): Entwurf 1280x720 medium etwa USD 0,01; Finale oder Revision 2560x1440 high etwa USD 0,055; 3840x2160 high etwa USD 0,10. Typischer gesamter Auftrag (3 Entwürfe + Finale + 3 Revisionen): etwa USD 0,25 ohne Referenzen, etwa USD 0,45 mit einer Gesichtsreferenz → unter der standardmäßigen Ankündigungsschwelle, ausführen und die Schätzung in der Auslieferungszeile angeben. Eine zweite Entwurfsrunde, mehr Referenzen, xhigh, max, 4K oder mehrere Videos in einer Anfrage (ein Slug und eine Zustandskarte pro Video; die Schätzung ist die Summe) → neu berechnen und das Gate zuerst anwenden.
  5. Entwürfe in einem Batch. Referenzen einmal hochladen und urls behalten (Argumentreihenfolge); Uploads sind öffentliche URLs, das einmal für privates Material sagen:
    python3 "${CLAUDE_SKILL_DIR}/scripts/gm.py" upload ./me.jpg
    
    Jeden Prompt aus references/prompt-blueprint.md erstellen. Den Plan mit dem Write-Tool nach .genmedia/projects/<slug>/drafts-1.json schreiben:
    {"label": "<slug>", "max_parallel": 3, "jobs": [
      {"id": "draft-a", "endpoint_id": "openai/gpt-image-2.5/flare/edit", "est_cost_usd": 0.02,
       "input": {"prompt": "<konzept A>", "image_urls": ["<gesicht url>"], "image_size": {"width": 1280, "height": 720}, "quality": "medium", "num_images": 1, "output_format": "png"}},
      {"id": "draft-b", "endpoint_id": "openai/gpt-image-2.5/flare/edit", "est_cost_usd": 0.02, "input": {"prompt": "<konzept B>", "image_urls": ["<gesicht url>"], "image_size": {"width": 1280, "height": 720}, "quality": "medium", "num_images": 1, "output_format": "png"}},
      {"id": "draft-c", "endpoint_id": "openai/gpt-image-2.5/flare/edit", "est_cost_usd": 0.02, "input": {"prompt": "<konzept C>", "image_urls": ["<gesicht url>"], "image_size": {"width": 1280, "height": 720}, "quality": "medium", "num_images": 1, "output_format": "png"}}
    ]}
    
    genmedia run .genmedia/projects/<slug>/drafts-1.json ausführen, die Antwort verarbeiten.
  6. Zusammenstellung (Vorschau & Vergleichsblatt). Die run-Ergebnisse in einer natürlichen Liste präsentieren (Bild-ID, Konzeptname, Hook-Text, eine Zeile warum). Dann:
    python3 "${CLAUDE_SKILL_DIR}/scripts/thumbcheck.py" sheet .genmedia/projects/<slug>/drafts-1.json --out .genmedia/projects/<slug>/sheet.jpg
    
    Kein lokales Bildbearbeitungswerkzeug (preview, sheet beide nicht verfügbar) → fit für einzelne Bilder, eine URL-Liste, niemals einen Bildbearbeitungsdienst starten. Das Vergleichsblatt oder die Bilder zeigen, dann bei der Auswahl anhalten (UX-Regel 4).
  7. Auswahl. Der Benutzer wählt eines („a“, „b“ oder „c“, oder das einzige, das er angefordert hat). Die Zustandskarte aktualisieren: [x] pick: <id>. Niemals das ausgewählte Konzept ändern.
  8. Finale. Den ausgewählten Entwurf herunterladen, hochladen, die URL als image_urls[0] verwenden, den Prompt mit dem übereinstimmenden Endpunkt (openai/gpt-image-2.5/sunburst/edit) und quality: "high", image_size: {"width": 2560, "height": 1440} erneut ausführen. Ziel: die Komposition originalgetreu halten, während Präzision und Auflösung verbessert werden.
  9. Liefern. Die Finale-Datei auf die Standardauslieferungsgrößen skalieren und einbetten: 1920x1080 und 1280x720.
    python3 "${CLAUDE_SKILL_DIR}/scripts/thumbcheck.py" fit .genmedia/projects/<slug>/final.png --width 1920 --height 1080 --out .genmedia/projects/<slug>/delivery-1920.jpg
    python3 "${CLAUDE_SKILL_DIR}/scripts/thumbcheck.py" fit .genmedia/projects/<slug>/final.png --width 1280 --height 720 --out .genmedia/projects/<slug>/delivery-1280.jpg
    
    Zustandskarte aktualisieren: [x] delivered. Die Lieferungen präsentieren (Bildvorschau, Verwendungshinweis).
  10. Revisionen (optional). Der Benutzer fragt nach einer Änderung (Text, Farbe, Ausdruck, Hintergrund). Ein Problem pro Runde, maximal 3 Runden. Die Zustandskarte aktualisieren: revisions <n>/3. Aktuelle Auswahl verwenden → herunterladen, hochladen, image_urls[0]. Prompt: nur die Änderung beschreiben, nicht das Ganze neu erfinden. Endpunkt: openai/gpt-image-2.5/sunburst/edit, quality: "high". image_size muss mit dem Finale übereinstimmen (2560x1440). Ergebnis: Schritt 9 wiederholen (Liefern auf Auslieferungsgrößen).

Referenzen

  • references/frameworks.md – Konzept-Frameworks, Richtlinien zur Hook-Auswahl
  • references/prompt-blueprint.md – Prompt-Struktur, Bildbeschreibung, Textpositionierung
  • references/text-and-readability.md – Textstrategien, Platten-Pfad, diakritische Zeichen, Logo-Layout
  • references/routing-image.md – Endpunkt-Routing-Tabelle, Modell-IDs, Kosten pro Größe
  • references/cli-contract.md – CLI-Befehle, Argumente, Rückgabewerte
  • references/platform.md – Plattformintegration, Ledger, Kostengenehmigung

Hinweise

  • Sprache: Antwortet in der Sprache des Benutzers; Model-Prompts auf Englisch; Bildtext in der Veröffentlichungssprache.
  • Kosten: Schätzt vor dem ersten kostenpflichtigen Aufruf. Kleine Aufträge (3 Entwürfe + Finale + 3 Revisionen mit einer Referenz) liegen typischerweise unter der Ankündigungsschwelle von 0,50 USD. Größere Aufträge → Benutzerzustimmung einholen.
  • Bildgrößen: Verwendet 1280x720 für Entwürfe, 2560x1440 für Finale/Revisionen, thumbcheck.py fit für Zwischengrößen.
  • Gesichter: Erfordert Einwilligung für echte Personen. Erfundene Gesichter als solche kennzeichnen.
  • Revisionen: Maximal 3 Runden; jede Runde ändert genau einen Aspekt.
  • Fehlerbehandlung: Endpunkt nicht aktiv → nächste Routing-Stufe versuchen. Inhaltsrichtlinien-Ablehnung → Prompt anpassen und erneut senden. Anfrage-ID vorhanden → fortsetzen, nicht erneut einreichen.

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

funi-ai/ads

Ads from the user's REAL product: UGC and polished ad videos (presenter, unboxing, showcase, testimonial, TV spot) and static ads with copy. Physical products: keyframes locked to the product photo, Seedance clips or TTS + OmniHuman, GPT Image 2.5 copy. Apps and SaaS: real captures and recordings, composited, never regenerated. Use when: "make a UGC ad for this product", "15 second TikTok ad", "static ad with this headline", "app install ad from my screen recording", "A/B ad variants", "bu ürün için reklam videosu yap", "uygulamam için reklam hazırla", "indirim görseli hazırla". Chain: consumes `product-photoshoot` stills, `character` @handles, `launch-graphics` pages; produces ads and a manifest. NOT for: text-free product photos (use `product-photoshoot`); posters (use `image`); listing cards (use `marketplace-cards`); store screenshots, OG cards (use `launch-graphics`); one clip (use `video`); organic shorts (use `short-video`); product demos (use `demo-video`); thumbnails (use `youtube-thumbnail`).

funi-ai/demo-video

Product demos, store previews, App Store header/search videos and loops cut from the user's REAL screen recording: trimmed, sped, zoomed, framed, captioned, voiced with local ffmpeg. Models add only what is not the product: narration (Eleven v3, Gemini TTS for Turkish), music and UI sound. Use when: "make a demo video of my app", "App Store preview video", "App Store header video", "Google Play promo video", "turn this screen recording into a demo", "GIF loop for my changelog", "Product Hunt launch video", "ekran kaydımdan tanıtım videosu yap", "changelog için GIF döngüsü". Chain: takes recordings, device frames (`layers`) and end cards from `launch-graphics`; produces MP4, WebM, GIF, SRT/VTT and posters. NOT for: generated b-roll shorts (use `short-video`); explainers with generated pictures (use `video-explainer`); paid ads (use `ads`); store screenshots, link cards (use `launch-graphics`); one generated clip (use `video`); voice or music alone (use `audio`); joining finished files (use `pipelines`).

Verwandte Skills