skills/image-generation/SKILL.md
Generate images with Gemini (default) or fal.ai FLUX.2 klein 4B (--cheap for fast/low-cost). Generate videos with Grok Imagine (default) or fal.ai LTX-2 (--cheap). Use for: create image, generate visual, AI image generation, poster, video generation.
npx skillsauth add aviz85/claude-skills-library image-generationInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Generate images using Google's Gemini model (default) or fal.ai FLUX.2 klein 4B (cheap mode).
MANDATORY: Always use -d (destination) flag to specify output path. This avoids file management issues with poster_0.jpg in the scripts folder.
cd ~/.claude/skills/image-generation/scripts
# ALWAYS specify destination with -d flag
npx tsx generate_poster.ts -d /tmp/my-image.jpg "A futuristic city at sunset"
# Cheap mode: fal.ai FLUX.2 klein 4B (fast, lower cost)
npx tsx generate_poster.ts --cheap -d /tmp/city.jpg "A futuristic city at sunset"
# With aspect ratio
npx tsx generate_poster.ts -d /tmp/landscape.jpg --aspect 3:2 "A wide landscape poster"
npx tsx generate_poster.ts --cheap -d /tmp/story.jpg -a 9:16 "A vertical story format"
# With reference assets (image editing)
npx tsx generate_poster.ts -d /tmp/banner.jpg --assets "/path/to/avatar.jpg" "Create banner with character"
npx tsx generate_poster.ts --cheap -d /tmp/photo.jpg --assets "/path/to/image.jpg" "Turn this into a realistic photo"
Why -d is mandatory:
/tmp/ for temp images)poster_0.jpg in scripts folder| Provider | Flag | Use Case | Cost |
|----------|------|----------|------|
| Gemini | (default) | High quality, best results | Higher |
| fal.ai klein 4B | --cheap | Fast, budget-friendly | ~$0.003/image |
--cheap)Uses fal.ai FLUX.2 klein 4B - a distilled FLUX model optimized for speed and cost.
Why use cheap mode?
Endpoints:
fal-ai/flux-2/klein/4bfal-ai/flux-2/klein/4b/editBest for:
Use Gemini instead for:
Control image resolution with --quality or -q:
| Quality | Resolution | Use Case |
|---------|------------|----------|
| 1K | 1024px | Default - fast, good for web |
| 2K | 2048px | High quality - print, detailed posters |
npx tsx generate_poster.ts -q 2K "High quality poster"
IMPORTANT: Always use the default 3:2 aspect ratio unless the user explicitly requests a different format (like "vertical", "story", "square", etc.). Do NOT change the aspect ratio on your own.
Control image dimensions with --aspect or -a:
| Ratio | Use Case |
|-------|----------|
| 3:2 | Horizontal (DEFAULT - use this unless user specifies otherwise) |
| 1:1 | Square - Instagram, profile pics |
| 2:3 | Vertical - Pinterest, posters |
| 16:9 | Wide - YouTube thumbnails, headers |
| 9:16 | Tall - Stories, reels, TikTok |
npx tsx generate_poster.ts --aspect 3:2 "Your prompt"
npx tsx generate_poster.ts -a 16:9 "Your prompt"
Use --assets with full paths to include reference images:
# Single asset
npx tsx generate_poster.ts --assets "/full/path/to/image.jpg" "Your prompt"
# Multiple assets (comma-separated)
npx tsx generate_poster.ts --assets "/path/a.jpg,/path/b.png" "Use both images"
# With cheap mode - uses fal.ai edit endpoint
npx tsx generate_poster.ts --cheap --assets "/path/to/image.jpg" "Turn this into a painting"
Supported formats: .jpg, .jpeg, .png, .webp, .gif
IMPORTANT: Assets are NOT automatically included. You must explicitly pass them via --assets.
ALWAYS use --destination or -d to specify output path:
# REQUIRED: Always specify destination
npx tsx generate_poster.ts -d /tmp/poster.jpg "My poster"
# If file exists, auto-adds suffix: poster_1.jpg, poster_2.jpg, etc.
Features:
_1, _2, etc./tmp/ for temporary images that will be uploaded elsewhereCreate scripts/.env:
GEMINI_API_KEY=your_gemini_api_key
FAL_KEY=your_fal_api_key
XAI_API_KEY=your_xai_api_key
IMPORTANT: When the image contains Hebrew text, you MUST add the following sentence to the prompt:
"CRITICAL: Layout is RTL (right-to-left). All text in Hebrew. Visual flow, reading order, and panel sequence go from RIGHT to LEFT."
Copy this exact sentence and paste it at the BEGINNING of your prompt. Without it, the image will render left-to-right which is wrong for Hebrew content.
When user asks for "wow mode" or wants maximum visual impact, add these epic elements to the prompt:
"EPIC CINEMATIC WOW: Amazed expression, mind-blown reaction, intense VFX - shattered glass particles, explosive energy bursts, volumetric light rays, dramatic lens flares, particle explosions, motion blur streaks, holographic glitches, electric sparks, cinematic color grading, dramatic rim lighting, depth of field bokeh, anamorphic lens effects. Maximum visual spectacle."
-d flag (MANDATORY)--aspect (default: 3:2)Generate videos using xAI Grok Imagine Video (default) or fal.ai LTX-2 (cheap mode).
cd ~/.claude/skills/image-generation/scripts
# Text-to-video (Grok Imagine - high quality, 720p)
npx tsx generate_video.ts -d /tmp/video.mp4 "A futuristic city at sunset, cinematic drone shot"
# Cheap mode: fal.ai LTX-2 (fast, low cost)
npx tsx generate_video.ts --cheap -d /tmp/video.mp4 "A futuristic city at sunset"
# Image-to-video (animate a still image)
npx tsx generate_video.ts -d /tmp/animated.mp4 --image /path/to/image.jpg "Slow zoom with particles floating"
npx tsx generate_video.ts --cheap -d /tmp/animated.mp4 --image /path/to/image.jpg "Gentle camera movement"
# Custom duration and aspect ratio
npx tsx generate_video.ts -d /tmp/long.mp4 -t 10 -a 9:16 "Vertical video for stories"
| Provider | Flag | Quality | Duration | Resolution | Cost |
|----------|------|---------|----------|------------|------|
| Grok Imagine | (default) | High, cinematic | 1-15s | 480p/720p | Per-second billing |
| fal.ai LTX-2 | --cheap | Good, fast | 1-10s | ~480p | Budget-friendly |
| Option | Flag | Default | Description |
|--------|------|---------|-------------|
| Prompt | (positional) | required | Text description of the video |
| Destination | -d | required | Output file path (.mp4) |
| Duration | -t | 5 | Duration in seconds |
| Aspect ratio | -a | 16:9 | 16:9, 9:16, 1:1, 4:3, 3:4, 3:2, 2:3 |
| Resolution | -r | 720p | 480p or 720p (Grok only) |
| Image source | --image | none | Source image for image-to-video |
| Cheap mode | --cheap | false | Use LTX-2 instead of Grok |
tools
Start real-time microphone transcription using ElevenLabs Scribe v2 Realtime. Use when user wants to start live transcription, dictation, or real-time speech capture. Triggers on: 'תתחיל תמלול', 'תמלל בזמן אמת', 'start transcribing', 'live transcribe', 'הקלט מה שאני אומר'. After starting, tell user they can say 'אוקי זה מספיק בוא נעצור את התמלול' to stop, or use /live-transcribe-stop.
tools
Stop a running real-time transcription. Use when user wants to stop/end live transcription. Triggers on: 'עצור תמלול', 'תעצור את התמלול', 'stop transcribing', 'end transcription', 'תפסיק להקליט'.
testing
Read the latest real-time transcription. Use when user asks to see, read, or show a transcription that was captured via live-transcribe. Triggers on: 'תקריא תמלול', 'מה תמללתי', 'התמלול האחרון', 'show transcription', 'what did I say', 'read the transcript', 'מה נכתב בתמלול', 'תראה לי את התמלול'. Also use when user references transcription content without being explicit — e.g. 'summarize what I said', 'translate the transcription'.
development
Fetch X (Twitter) bookmarks via the official X API v2. Downloads recent bookmarks with text, images, and videos into a local folder. Use whenever user asks to grab/download/export their X bookmarks, save bookmarked tweets, or pull recent saved posts from X/Twitter. Uses OAuth 2.0 user-context auth (one-time browser consent, then refresh-token forever).