Full AI image creation workflow — intent classification, prompt enhancement, multi-direction generation via fal.ai, and error recovery. Triggers on "generate image", "ai image", "create image", "make an image", "image generation", "/ai-image", or any image creation request.
Scanned 9/9/2026
Install to Claude Code
npx -y skills add Lord1Egypt/awesome-skill-forge --skill phy-ai-image --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Phy Ai Image?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/lord1egypt-phy-ai-image)More formats (shields.io, HTML) on the badges page.
---
name: ai-image
description: Full AI image creation workflow — intent classification, prompt enhancement, multi-direction generation via fal.ai, and error recovery. Triggers on "generate image", "ai image", "create image", "make an image", "image generation", "/ai-image", or any image creation request.
homepage: https://canlah.ai
metadata: {"openclaw": {"emoji": "🎨", "os": ["darwin", "linux"]}}
---
# AI Image Creation Workflow
Complete image creation pipeline: classify intent, enhance prompt, generate via fal.ai, recover from errors.
For brand-specific visuals, use a dedicated brand image skill if available.
For model selection help, reference `/fal-model-selector`.
---
## Phase 1: Intent Classification
When a user mentions image creation, FIRST classify their intent into one of six categories:
### A. EXPLORING — No clear idea yet
**Signals:** "help me think of something", "any inspiration", "not sure what to make"
**Action:**
1. Ask about use case (social media? product? marketing? personal?)
2. Search `references/prompt-library-curated.json` for relevant examples
3. Show 3-5 options with descriptions
4. Let user pick, THEN proceed to generation
### B. BRIEF IDEA — Intent but underspecified
**Signals:** Description under ~30 words, lacks visual details (composition, lighting, color, texture, perspective)
**Examples:** "portrait photo", "tech logo", "gazebo in garden"
**Action:**
1. Enhance the prompt using the appropriate style template from `references/prompt-templates.md`
2. Show the enhanced prompt with brief creative rationale
3. Wait for user confirmation before generating
### C. DETAILED PROMPT — User knows what they want
**Signals:** Multi-sentence prompt with specific visual details, style references, or technical terms
**Examples:** Prompt with lens specs, lighting setup, material descriptions
**Action:**
1. Generate directly — do NOT over-process
2. Only suggest minor tweaks if obvious improvements spotted
### D. EDIT/MODIFY — Change an existing image
**Signals:** User provides/references an image AND describes a specific change
**Examples:** "add text to this", "change the background", "remove the person"
**Action:**
1. Keep prompt minimal and edit-focused
2. Upload reference image if local (use fal.ai upload or public URL)
3. Prompt describes ONLY the edit, not the entire image
4. Use edit-capable models: `fal-ai/flux-2/edit`, `fal-ai/gpt-image-1.5/edit`, `fal-ai/bytedance/seedream/v4.5/edit`
### E. BATCH REQUEST — Multiple variations
**Signals:** "4 directions", "multiple versions", "a set of assets"
**Action:**
1. Plan the variants first, present as a table
2. ASK user which direction(s) to try: "Pick a number, or I can generate all N"
3. NEVER auto-generate all variants without explicit choice
4. Generate AFTER user responds
5. Max 4 parallel per batch
### F. CREATIVE + EXTENSIONS — Multi-step workflow
**Signals:** "design a logo and make mockups", "create X and apply to Y"
**Action:**
1. Plan 3-5 design directions, present to user, ASK which to try
2. Generate ONLY the chosen direction(s)
3. Show result, get approval
4. THEN plan and generate extensions/derivatives
5. NEVER jump from plan to generating everything
---
## Phase 2: Prompt Enhancement
When the user provides a brief idea (Intent B), enhance using the appropriate style template.
### Style Selection
| Style | When to Use | Template |
|-------|-------------|----------|
| **Realistic** | Product photography, architecture, portraits, any photorealistic need | See `references/prompt-templates.md` Section 1 |
| **Anime** | 2D illustration, manga style, character art | See `references/prompt-templates.md` Section 2 |
| **Illustration** | Concept art, digital painting, editorial illustration | See `references/prompt-templates.md` Section 3 |
### Enhancement Protocol
1. Read the appropriate template from `references/prompt-templates.md`
2. Apply the template's methodology to transform the user's brief input
3. Output the enhanced prompt in two parts:
- **Narrative Specification**: Dense descriptive paragraph
- **Technical Metadata**: Visual style, key elements, lighting, composition
4. Show to user, explain creative choices briefly
5. Proceed only after confirmation
### Key Principles (from "Blueprint Method")
- **Technical precision over feeling**: Not "cinematic" but "three-point lighting with warm key, cool fill, 85mm f/1.4"
- **Quantifiable spatial logic**: Foreground/midground/background, lens specs, lighting setup
- **Material physics**: How materials interact with light — "brushed aluminum catching overhead softbox", not just "shiny metal"
- **Cohesive narrative**: Prompt reads like a director's brief, not a tag list
---
## Phase 3: Generation via fal.ai
### Default Models by Task
| Task | Model | Price | Notes |
|------|-------|-------|-------|
| **General image** | `fal-ai/flux-2-pro` | $0.03/MP | Zero-config, production-ready |
| **Product photo** | `fal-ai/image-apps-v2/product-photography` | - | Studio lighting presets |
| **Text in image** | `fal-ai/ideogram/v3` | $0.03-0.09 | Best typography |
| **Photo-real portrait** | `fal-ai/nano-banana-pro` | ~$0.10 | High quality portraits |
| **Scene editing** | `fal-ai/bytedance/seedream/v4.5/edit` | - | Best for scene changes |
| **General editing** | `fal-ai/flux-2/edit` | $0.012/MP | Multi-image support |
| **Google quality** | `fal-ai/gemini-3-pro-image-preview` | $0.15-0.30 | Up to 4K |
### Generation Code Pattern
```python
import fal_client
import os
# Set your FAL API key via environment variable
fal_client.api_key = os.environ.get("FAL_API_KEY")
# Text to image
result = fal_client.subscribe(
"fal-ai/flux-2-pro",
arguments={
"prompt": "YOUR ENHANCED PROMPT HERE",
"image_size": "landscape_16_9", # or square, portrait_4_3, etc.
"num_images": 1,
}
)
image_url = result["images"][0]["url"]
print(f"Generated: {image_url}")
# Download locally
import urllib.request
urllib.request.urlretrieve(image_url, os.path.expanduser("~/Pictures/ai-image/output.jpg"))
```
### Multi-Direction Parallel Generation
For batch requests (Intent E), generate up to 4 in parallel:
```python
import fal_client
import concurrent.futures
import os
fal_client.api_key = os.environ.get("FAL_API_KEY")
prompts = [
"Direction 1: ...",
"Direction 2: ...",
"Direction 3: ...",
]
def generate(prompt):
return fal_client.subscribe(
"fal-ai/flux-2-pro",
arguments={"prompt": prompt, "image_size": "landscape_16_9"}
)
with concurrent.futures.ThreadPoolExecutor(max_workers=4) as pool:
results = list(pool.map(generate, prompts))
for i, r in enumerate(results):
print(f"Direction {i+1}: {r['images'][0]['url']}")
```
### Image Size Options (fal.ai)
| Size Name | Dimensions | Use Case |
|-----------|------------|----------|
| `square` | 1024x1024 | Social media, profile |
| `square_hd` | 1536x1536 | High-res square |
| `portrait_4_3` | 768x1024 | Portrait |
| `portrait_16_9` | 576x1024 | Stories, vertical |
| `landscape_4_3` | 1024x768 | Standard landscape |
| `landscape_16_9` | 1024x576 | Banner, cinematic |
### Reference Image Usage
```python
# Edit with reference
result = fal_client.subscribe(
"fal-ai/flux-2/edit",
arguments={
"prompt": "Change the background to a sunset beach",
"image_url": "https://example.com/original.jpg",
}
)
# Product photography with reference
result = fal_client.subscribe(
"fal-ai/image-apps-v2/product-photography",
arguments={
"product_image_url": "https://example.com/product.jpg",
"aspect_ratio": "1:1",
}
)
```
---
## Phase 4: Presenting Results
### Before generating:
- When enhancing prompts, briefly explain creative direction
- When planning variants, describe each direction distinctively
### After generating:
- Show the image URL and local file path
- Do NOT describe or imagine what the image looks like (you cannot see it)
- Keep it brief
- Suggest next steps: "Want to try a different direction?" or "Ready to create extensions?"
### Format:
```
**Direction 1: Modern Minimal**
Image: [url]
Saved to: ~/Pictures/ai-image/...
**Direction 2: Dramatic Lighting**
Image: [url]
Saved to: ~/Pictures/ai-image/...
```
---
## Phase 5: Error Recovery
When generation fails, diagnose and guide:
| Error Type | Detection | Recovery |
|-----------|-----------|----------|
| **Safety/content** | "safety", "policy", "flagged" | Auto-rephrase prompt, offer cleaned version |
| **Rate limit** | 429, "rate limit" | Wait 30s and retry once |
| **Model unavailable** | "not found", "inactive" | Suggest alternative from `/fal-model-selector` |
| **Invalid size/ratio** | "not supported" | Show valid options |
| **Network error** | "fetch failed", "timeout" | Retry once automatically |
| **Credit/billing** | 402, "insufficient" | Warn user, suggest cheaper model |
### Auto-retry logic:
- Network errors: retry once after 5s
- Rate limits: retry once after 30s
- All others: show error + guidance, don't retry
---
## Prompt Library
A curated collection of high-quality prompt templates is available at `references/prompt-library-curated.json`.
Search it when user is exploring (Intent A) or needs inspiration.
### How to search:
```python
import json
import os
with open(os.path.expanduser("~/.claude/skills/ai-image/references/prompt-library-curated.json")) as f:
library = json.load(f)
# Search by keyword
keyword = "product"
matches = [p for p in library if keyword.lower() in p["prompt"].lower() or keyword.lower() in " ".join(p["categories"]).lower()]
```
### Categories available:
- Product (product photography, packaging, advertising)
- 3D (icons, infographics, typography)
- Photograph (editorial, fashion, landscape)
- Food (food photography, restaurant)
- App (UI/UX mockups)
---
## Decision Tree Summary
```
User mentions image creation
|
v
Classify intent (A-F)
|
+-- A (Exploring) --> Search prompt library --> Show options --> User picks --> Enhance --> Generate
+-- B (Brief idea) --> Enhance prompt --> Show to user --> Confirm --> Generate
+-- C (Detailed) --> Generate directly
+-- D (Edit) --> Upload ref image --> Minimal edit prompt --> Generate with edit model
+-- E (Batch) --> Plan variants --> User picks --> Generate in parallel (max 4)
+-- F (Multi-step) --> Plan directions --> User picks --> Generate --> Approve --> Extensions
|
v
Present results (URL + local path, no description)
|
v
Suggest next steps
```
---
## Integration with Other Skills
| Need | Skill |
|------|-------|
| Brand-specific visuals | Use your brand image skill |
| Model selection help | `/fal-model-selector` |
| Video generation | `/fal-model-selector` (video section) |
| Full model database | `/fal-ai-models` |
---
## Author
**[Canlah AI](https://canlah.ai)** — Run performance marketing without breaking your brand.
- GitHub: [github.com/PHY041](https://github.com/PHY041)
- All Skills: [clawhub.ai/PHY041](https://clawhub.ai/PHY041)
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!