From ai-create
Erzeugt einen konsistenten Satz Bilder (Slide-Hintergruende, Bildserien) via OpenAI gpt-image-1. Trigger bei 'Slide-Hintergrund', 'deck background', 'Folien-Bilder generieren', 'praesentations-Hintergruende', 'Hero-Bilder fuer Folien', 'Bildserie'. Nimmt eine Slot-Liste + gemeinsamen Stil-Anker, ruft parallel auf, schreibt PNGs.
How this skill is triggered — by the user, by Claude, or both
Slash command
/ai-create:ai-create-image-set --slots <FILE.json> [--style PRESET] [--size 1536x1024] [--quality medium|high] [--out-dir DIR]--slots <FILE.json> [--style PRESET] [--size 1536x1024] [--quality medium|high] [--out-dir DIR]The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Zweck: Eine ganze Folien-Serie (oder allgemeine Bildreihe) braucht **einheitliche Bildsprache**. Statt jedes Bild einzeln zu prompten, definierst du einmal einen Stil-Anker, listest alle Slots mit Motiv-Prompts auf, und das Skill ruft gpt-image-1 parallel auf. Jeder Slot bekommt den gleichen Stil-Anker an den Prompt gehaengt.
Zweck: Eine ganze Folien-Serie (oder allgemeine Bildreihe) braucht einheitliche Bildsprache. Statt jedes Bild einzeln zu prompten, definierst du einmal einen Stil-Anker, listest alle Slots mit Motiv-Prompts auf, und das Skill ruft gpt-image-1 parallel auf. Jeder Slot bekommt den gleichen Stil-Anker an den Prompt gehaengt.
Fuer Einzelbilder: siehe /ai-create-image.
fetch)Preflight prueft beides plus Live-Validierung gegen /v1/models.
($SKILL = Pfad zum Skill-Ordner, typisch ~/.claude/skills/ai-create-image-set)
# macOS/Linux:
if [ -f "$SKILL/SKILL_INSTALLED.md" ]; then :
elif [ -f "$SKILL/SKILL_INSTALL_FAILED.md" ]; then cat "$SKILL/SKILL_INSTALL_FAILED.md"; exit 1
else bash "$SKILL/scripts/preflight.sh"
fi
# Windows:
if (Test-Path "$SKILL\SKILL_INSTALLED.md") { }
elseif (Test-Path "$SKILL\SKILL_INSTALL_FAILED.md") { Get-Content "$SKILL\SKILL_INSTALL_FAILED.md"; exit 1 }
else { powershell -ExecutionPolicy Bypass -File "$SKILL\scripts\preflight.ps1" }
Der Wrapper prueft den Gate selbst. Bei fehlendem Marker: Refusal mit klarer Anleitung.
JSON-Datei mit Liste der zu erzeugenden Slots:
{
"style": "editorial-photo",
"size": "1536x1024",
"quality": "medium",
"out_dir": "img/backgrounds/ai",
"slots": [
{ "name": "bg-cover", "prompt": "..." },
{ "name": "bg-closing", "prompt": "..." }
]
}
Mitgeliefertes Beispiel: $SKILL/resources/slots.example.json.
Felder:
| Feld | Pflicht | Beschreibung |
|---|---|---|
slots | ja | Array von {name, prompt}. name wird Dateiname (<name>.png). |
style | nein | Preset-Name (siehe --list-styles) |
style_text | nein | Freitext-Stilanker -- ueberschreibt style |
size | nein | wie unten |
quality | nein | wie unten |
out_dir | nein | wie unten |
Command-line-Flags ueberschreiben jeweils das JSON.
node "$SKILL/bin/create-image-set.mjs" --slots slots.json
Output:
<out_dir>/<slot>.png
<out_dir>/<slot>.prompt.txt
out_dir ist relativ zu --cwd (Default: aktuelles Verzeichnis).
Idempotent: existierende PNGs werden uebersprungen (--force ueberschreibt).
Bei Erfolg: JSON-Summary auf stdout mit total, ok, fail, elapsed_s, results[].
| Flag | Beschreibung | Default |
|---|---|---|
--slots FILE | Slot-JSON | (Pflicht) |
--style NAME | Style-Preset (siehe --list-styles) | aus JSON |
--style-text "..." | Freitext-Stilanker | aus JSON |
--size SIZE | 1024x1024 / 1024x1536 / 1536x1024 / auto | 1536x1024 |
--quality LEVEL | low / medium / high / auto | medium |
--out-dir DIR | Ausgabeordner (relativ zu --cwd) | img/backgrounds/ai |
--cwd DIR | Basisverzeichnis | process.cwd() |
--concurrency N | Parallele Requests | 4 |
--model NAME | Modell-Override | gpt-image-1 |
--force | bestehende PNGs ueberschreiben | aus |
--dry-run | Plan zeigen, keine API-Calls | aus |
--list-styles | Style-Presets listen | – |
--show-style NAME | Preset-Text drucken | – |
-h, --help | Hilfe | – |
| Preset | Charakter |
|---|---|
editorial-photo (Default) | Documentary-Consulting-Vibe, gedaempft, Negativraum oben |
dark-cinematic | moody, deep shadows, golden hour |
swiss-minimal | high-key clean, lots of negative space |
hand-drawn-warmth | soft pastel illustration, warm paper |
tech-noir | deep blue/teal + ein Neon-Highlight |
node "$SKILL/bin/create-image-set.mjs" --show-style dark-cinematic druckt den vollen Text.
Beispiele aus Strategie-Decks:
bg-cover # Hero / Eroeffnungsfolie
bg-closing # Abschluss-Folie
bg-{section}-{thema} # z.B. bg-historie-lean, bg-zukunft-buch
Erlaubte Zeichen im Slot-Namen: A-Za-z0-9._-.
Faustregel (gpt-image-1):
| Quality | Size | $/Bild |
|---|---|---|
| medium | 1024x1024 | ~$0.02 |
| medium | 1536x1024 | ~$0.03 |
| high | 1536x1024 | ~$0.08 |
Bei --concurrency 4 und 16 Bildern à medium/1536x1024 ungefaehr 0.50 USD und 2 Minuten.
style (oder style_text) anpassentrash <out_dir>/*.png (oder --force)Erste Anlaufstelle: SKILL_INSTALL_FAILED.md im Skill-Ordner (falls vorhanden).
| Symptom | Ursache | Loesung |
|---|---|---|
ERROR: Skill noch nicht installiert | Preflight nicht gelaufen | bash "$SKILL/scripts/preflight.sh" |
HTTP 401 | Key ungueltig/abgelaufen | ~/.claude/.env/ai-create-image-set.env aktualisieren |
HTTP 429 | Rate-Limit | --concurrency 2, Pause, retry |
content_policy_violation | Prompt mit verbotenem Motiv | Slot umformulieren |
HTTP 500 (vereinzelt) | OpenAI-seitig | Skill erneut starten -- skipt was schon da ist, generiert nur die Failed-Slots |
| Bilder uneinheitlich | Stil-Anker zu generisch | style_text schaerfen (Lichtbeschreibung, Palette praezisieren) |
| Text in Bildern | "no text, no watermarks, no signage" explizit in style_text |
Healthcheck (read-only):
node "$SKILL/scripts/doctor.mjs"
~/.claude/.env/ai-create-image-set.env # API-Key Override (pro Nutzer)
$SKILL/config/secrets.default.env # shipped default
$SKILL/resources/style-presets.json # eingebaute Stil-Anker
$SKILL/resources/slots.example.json # Beispiel-Slot-Datei
<cwd>/<out_dir>/<slot>.png # Output
<cwd>/<out_dir>/<slot>.prompt.txt # vollstaendiger Prompt + Stil
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub bennoloeffler/claude-code-personal-agent-plugins-skills --plugin ai-create