✓ Verified ✍️ Content Creation ✓ Enhanced Data

Image Gen

Generate images using multiple AI models — Midjourney (via Legnext.ai), Flux, SDXL, Nano Banana (Gem

Rating
4 (79 reviews)
Downloads
3,198 downloads
Version
1.0.0

Overview

Generate images using multiple AI models — Midjourney (via Legnext.ai), Flux, SDXL, Nano Banana (Gemini)

Complete Documentation

View Source →

Image Generation Skill

This skill generates images using the best AI model for each use case. Model selection is the most important decision — read the dispatch logic carefully before generating.


🧠 Intelligent Dispatch Logic

Always select the model based on the user's actual need, not just the request surface.

Decision Tree

text
Does the request involve MULTIPLE images that share characters, scenes, or story continuity?
  ├─ YES → Use NANO BANANA (Gemini)
  │         Reason: Gemini understands context holistically; supports reference_images
  │         for character/scene consistency across a series (storyboard, comic, sequence)
  │
  └─ NO → Is it a SINGLE standalone image?
            ├─ Artistic / cinematic / painterly / highly detailed?
            │   → Use MIDJOURNEY
            │
            ├─ Photorealistic / portrait / product photo?
            │   → Use FLUX PRO
            │
            ├─ Contains TEXT (logo, poster, sign, infographic)?
            │   → Use IDEOGRAM
            │
            ├─ Vector / icon / flat design / brand asset?
            │   → Use RECRAFT
            │
            ├─ Quick draft / fast iteration (speed priority)?
            │   → Use FLUX SCHNELL (<2s)
            │
            └─ General purpose / balanced?
                → Use FLUX DEV

Model Capability Matrix

ModelIDArtisticPhotorealismTextContext ContinuitySpeedCost
Midjourneymidjourney⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐❌ (no context)~30s~$0.05
Nano Banana Pronano-banana⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐~20s$0.15
Flux Proflux-pro⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐~5s~$0.05
Flux Devflux-dev⭐⭐⭐⭐⭐⭐⭐⭐⭐~8s~$0.03
Flux Schnellflux-schnell⭐⭐⭐⭐⭐⭐⭐<2s~$0.003
Ideogram v3ideogram⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐~10s~$0.08
Recraft v3recraft⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐~8s~$0.04
SDXL Lightningsdxl⭐⭐⭐⭐⭐⭐⭐⭐~3s~$0.01

When to Use Nano Banana (Critical)

Use Nano Banana whenever the user's request involves:

  • Storyboard / 分镜图: Multiple frames that tell a story with the same characters
  • Comic strip / 漫画: Sequential panels with consistent characters
  • Character series: Multiple images of the same person/character in different poses or scenes
  • Scene continuation: "Now show the same girl in the forest" (referencing a previous image)
  • Style consistency: A set of images that must share the same visual style/world
Nano Banana uses Google's Gemini 3 Pro multimodal architecture, which understands context holistically rather than keyword-matching. It supports up to 14 reference images for maintaining character and scene consistency.


How to Use This Skill

  • Analyze the request: Is it a single image or a series? Does it need context continuity?
  • Select model: Use the decision tree above.
  • Enhance the prompt: Add style, lighting, and quality descriptors appropriate for the model.
  • Inform the user: Tell them which model you're using and why, and that generation has started.
  • Run the script: Use exec tool with sufficient timeout.
  • Deliver the result: Send image URL(s) to the user.

Calling the Generation Script

bash
node {baseDir}/generate.js \
  --model <model_id> \
  --prompt "<enhanced prompt>" \
  [--aspect-ratio <ratio>] \
  [--num-images <1-4>] \
  [--negative-prompt "<negative prompt>"] \
  [--reference-images "<url1,url2,...>"]

Parameters:

  • --model: One of midjourney, flux-pro, flux-dev, flux-schnell, sdxl, nano-banana, ideogram, recraft
  • --prompt: The image generation prompt (required)
  • --aspect-ratio: e.g. 16:9, 1:1, 9:16, 4:3, 3:4 (default: 1:1)
  • --num-images: 1-4 (default: 1; Midjourney always returns 4 regardless)
  • --negative-prompt: Things to avoid (not supported by Midjourney)
  • --reference-images: Comma-separated image URLs for context/character consistency (Nano Banana only)
  • --mode: Midjourney speed: turbo (default, ~20-40s), fast (~30-60s), relax (free but slow)
exec timeout: Set at least 120 seconds for Midjourney and Nano Banana; 30 seconds is sufficient for Flux Schnell.


⚡ Midjourney Workflow (Sync Mode — No --async)

Always use sync mode (no --async). The script waits internally until complete.

bash
node {baseDir}/generate.js \
  --model midjourney \
  --prompt "<enhanced prompt>" \
  --aspect-ratio 16:9

Understanding Midjourney Output

json
{
  "success": true,
  "model": "midjourney",
  "jobId": "xxxxxxxx-...",
  "imageUrl": "https://cdn.legnext.ai/temp/....png",
  "imageUrls": [
    "https://cdn.legnext.ai/mj/xxxx_0.png",
    "https://cdn.legnext.ai/mj/xxxx_1.png",
    "https://cdn.legnext.ai/mj/xxxx_2.png",
    "https://cdn.legnext.ai/mj/xxxx_3.png"
  ]
}

CRITICAL — image field meanings:

FieldWhat it isWhen to use
imageUrlA 2×2 grid composite of all 4 imagesSend as preview so user can see all options
imageUrls[0]Image 1 (top-left)Send when user wants image 1
imageUrls[1]Image 2 (top-right)Send when user wants image 2
imageUrls[2]Image 3 (bottom-left)Send when user wants image 3
imageUrls[3]Image 4 (bottom-right)Send when user wants image 4
"放大第N张" / "要第N张" / "give me image N" = send imageUrls[N-1] directly. Do NOT call generate.js again.

Midjourney Interaction Flow

After generation:

🎨 生成完成!这是 4 张图的预览:
预览图
你喜欢哪一张?回复 1、2、3 或 4,我直接发给你高清单图。

When user picks image N:

这是第 N 张的单独高清图:
图片 N


🤖 Nano Banana (Gemini) Workflow

Use for storyboards, character series, and any context-dependent multi-image generation.

Single image (no reference)

bash
node {baseDir}/generate.js \
  --model nano-banana \
  --prompt "<detailed scene description>" \
  --aspect-ratio 16:9

With reference images (character/scene consistency)

bash
node {baseDir}/generate.js \
  --model nano-banana \
  --prompt "<scene description, referencing the character/style from the reference images>" \
  --aspect-ratio 16:9 \
  --reference-images "https://url-of-previous-image-1.png,https://url-of-previous-image-2.png"

How to build a storyboard series:

  • Generate the first frame without reference images (establishes the character/scene)
  • Use the first frame's URL as --reference-images for the second frame
  • For subsequent frames, use the most recent 1-3 images as references to maintain consistency
  • Keep the character description consistent across all prompts
Example storyboard workflow:
text
Frame 1: node generate.js --model nano-banana --prompt "A young girl with red hair, wearing a blue dress, sitting under a magical treehouse in an enchanted forest, warm golden light, storybook illustration style" --aspect-ratio 16:9

Frame 2: node generate.js --model nano-banana --prompt "The same red-haired girl in blue dress climbing the rope ladder up to the treehouse, excited expression, enchanted forest background, same storybook illustration style" --aspect-ratio 16:9 --reference-images "<frame1_url>"

Frame 3: node generate.js --model nano-banana --prompt "Inside the magical treehouse, the red-haired girl discovers a glowing book on a wooden shelf, wonder on her face, warm candlelight, same storybook illustration style" --aspect-ratio 16:9 --reference-images "<frame1_url>,<frame2_url>"

Nano Banana Output

json
{
  "success": true,
  "model": "nano-banana",
  "images": ["https://v3b.fal.media/files/...png"],
  "imageUrl": "https://v3b.fal.media/files/...png"
}
Send imageUrl directly to the user (no grid, single image).


Other Models

Flux Pro / Dev / Schnell

Best for photorealistic standalone images. Output format same as Nano Banana (single imageUrl).

bash
node {baseDir}/generate.js --model flux-pro --prompt "<prompt>" --aspect-ratio 16:9

Ideogram v3

Best for images containing text (logos, posters, signs).

bash
node {baseDir}/generate.js --model ideogram --prompt "A motivational poster with text 'DREAM BIG' in bold typography, sunset gradient background" --aspect-ratio 3:4

Recraft v3

Best for vector-style, icons, flat design.

bash
node {baseDir}/generate.js --model recraft --prompt "A minimal flat design app icon, blue gradient, abstract geometric shape" --aspect-ratio 1:1


Prompt Enhancement Tips

For Midjourney: Add cinematic lighting, ultra detailed, --v 7, --style raw. Legnext supports all MJ parameters.

For Nano Banana: Use natural language descriptions. Describe the character consistently across frames (hair color, clothing, expression). Mention "same style as reference" or "consistent with previous frame".

For Flux: Add masterpiece, highly detailed, sharp focus, professional photography, 8k.

For Ideogram: Be explicit about text content, font style, layout, and color scheme.

For Recraft: Specify vector illustration, flat design, icon style, minimal.


Example Conversations

User: "帮我画一只赛博朋克猫" → Single artistic image → Midjourney → Tell user "🎨 正在用 Midjourney 生成,约 30 秒..." → Send grid preview, ask which one they want

User: "帮我生成一套分镜图,讲述一个女孩在魔法森林的冒险" → Multiple frames with story continuity → Nano Banana → Tell user "🎨 这类有上下文关联的分镜图用 Gemini 生成,能保持角色一致性..." → Generate frame by frame, using previous frames as reference images

User: "要第2张" / "放大第2张" (after Midjourney generation) → Send imageUrls[1] directly. No need to call generate.js again.

User: "做一个 App 图标,蓝色系扁平风格" → Vector/icon → Recraft

User: "生成一张带有'欢迎光临'文字的门牌图" → Text in image → Ideogram

User: "快速生成个草稿看看效果" → Speed priority → Flux Schnell (<2s)

User: "生成一张产品海报,白色背景,一瓶香水" → Photorealistic product → Flux Pro


Environment Variables

VariableDescription
FAL_KEYfal.ai API key (for Flux, Nano Banana, Ideogram, Recraft)
LEGNEXT_KEYLegnext.ai API key (for Midjourney)

Installation

Terminal bash

openclaw install image-gen
    
Copied!

💻Code Examples

→ Use FLUX DEV

--use-flux-dev.txt
### Model Capability Matrix

| Model | ID | Artistic | Photorealism | Text | Context Continuity | Speed | Cost |
|---|---|---|---|---|---|---|---|
| **Midjourney** | `midjourney` | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐ | ❌ (no context) | ~30s | ~$0.05 |
| **Nano Banana Pro** | `nano-banana` | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ~20s | $0.15 |
| **Flux Pro** | `flux-pro` | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ❌ | ~5s | ~$0.05 |
| **Flux Dev** | `flux-dev` | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐ | ❌ | ~8s | ~$0.03 |
| **Flux Schnell** | `flux-schnell` | ⭐⭐ | ⭐⭐⭐ | ⭐⭐ | ❌ | <2s | ~$0.003 |
| **Ideogram v3** | `ideogram` | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ❌ | ~10s | ~$0.08 |
| **Recraft v3** | `recraft` | ⭐⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐⭐ | ❌ | ~8s | ~$0.04 |
| **SDXL Lightning** | `sdxl` | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ | ❌ | ~3s | ~$0.01 |

### When to Use Nano Banana (Critical)

Use **Nano Banana** whenever the user's request involves:
- **Storyboard / 分镜图**: Multiple frames that tell a story with the same characters
- **Comic strip / 漫画**: Sequential panels with consistent characters
- **Character series**: Multiple images of the same person/character in different poses or scenes
- **Scene continuation**: "Now show the same girl in the forest" (referencing a previous image)
- **Style consistency**: A set of images that must share the same visual style/world

Nano Banana uses Google's Gemini 3 Pro multimodal architecture, which understands context holistically rather than keyword-matching. It supports up to 14 reference images for maintaining character and scene consistency.

---

## How to Use This Skill

1. **Analyze the request**: Is it a single image or a series? Does it need context continuity?
2. **Select model**: Use the decision tree above.
3. **Enhance the prompt**: Add style, lighting, and quality descriptors appropriate for the model.
4. **Inform the user**: Tell them which model you're using and why, and that generation has started.
5. **Run the script**: Use `exec` tool with sufficient timeout.
6. **Deliver the result**: Send image URL(s) to the user.

---

## Calling the Generation Script

[--reference-images "<url1,url2,...>"]

---reference-images-url1url2.txt
**Parameters:**
- `--model`: One of `midjourney`, `flux-pro`, `flux-dev`, `flux-schnell`, `sdxl`, `nano-banana`, `ideogram`, `recraft`
- `--prompt`: The image generation prompt (required)
- `--aspect-ratio`: e.g. `16:9`, `1:1`, `9:16`, `4:3`, `3:4` (default: `1:1`)
- `--num-images`: 1-4 (default: `1`; Midjourney always returns 4 regardless)
- `--negative-prompt`: Things to avoid (not supported by Midjourney)
- `--reference-images`: Comma-separated image URLs for context/character consistency (**Nano Banana only**)
- `--mode`: Midjourney speed: `turbo` (default, ~20-40s), `fast` (~30-60s), `relax` (free but slow)

**exec timeout**: Set at least **120 seconds** for Midjourney and Nano Banana; 30 seconds is sufficient for Flux Schnell.

---

## ⚡ Midjourney Workflow (Sync Mode — No --async)

Always use sync mode (no `--async`). The script waits internally until complete.

}

.txt
**CRITICAL — image field meanings:**

| Field | What it is | When to use |
|---|---|---|
| `imageUrl` | A **2×2 grid composite** of all 4 images | Send as **preview** so user can see all options |
| `imageUrls[0]` | Image 1 (top-left) | Send when user wants image 1 |
| `imageUrls[1]` | Image 2 (top-right) | Send when user wants image 2 |
| `imageUrls[2]` | Image 3 (bottom-left) | Send when user wants image 3 |
| `imageUrls[3]` | Image 4 (bottom-right) | Send when user wants image 4 |

**"放大第N张" / "要第N张" / "give me image N" = send `imageUrls[N-1]` directly. Do NOT call generate.js again.**

### Midjourney Interaction Flow

**After generation:**
> 🎨 生成完成!这是 4 张图的预览:
> [预览图](imageUrl)
> 你喜欢哪一张?回复 1、2、3 或 4,我直接发给你高清单图。

**When user picks image N:**
> 这是第 N 张的单独高清图:
> [图片 N](imageUrls[N-1])

---

## 🤖 Nano Banana (Gemini) Workflow

Use for storyboards, character series, and any context-dependent multi-image generation.

### Single image (no reference)

--reference-images "https://url-of-previous-image-1.png,https://url-of-previous-image-2.png"

---reference-images-httpsurl-of-previous-image-1pnghttpsurl-of-previous-image-2png.txt
**How to build a storyboard series:**

1. Generate the **first frame** without reference images (establishes the character/scene)
2. Use the first frame's URL as `--reference-images` for the **second frame**
3. For subsequent frames, use the most recent 1-3 images as references to maintain consistency
4. Keep the character description consistent across all prompts

**Example storyboard workflow:**

}

.txt
Send `imageUrl` directly to the user (no grid, single image).

---

## Other Models

### Flux Pro / Dev / Schnell
Best for photorealistic standalone images. Output format same as Nano Banana (single `imageUrl`).

node {baseDir}/generate.js --model flux-pro --prompt "<prompt>" --aspect-ratio 16:9

node-basedirgeneratejs---model-flux-pro---prompt-prompt---aspect-ratio-169.txt
### Ideogram v3
Best for images containing text (logos, posters, signs).

node {baseDir}/generate.js --model ideogram --prompt "A motivational poster with text 'DREAM BIG' in bold typography, sunset gradient background" --aspect-ratio 3:4

node-basedirgeneratejs---model-ideogram---prompt-a-motivational-poster-with-text-dream-big-in-bold-typography-sunset-gradient-background---aspect-ratio-34.txt
### Recraft v3
Best for vector-style, icons, flat design.
example.txt
Does the request involve MULTIPLE images that share characters, scenes, or story continuity?
  ├─ YES → Use NANO BANANA (Gemini)
  │         Reason: Gemini understands context holistically; supports reference_images
  │         for character/scene consistency across a series (storyboard, comic, sequence)
  │
  └─ NO → Is it a SINGLE standalone image?
            ├─ Artistic / cinematic / painterly / highly detailed?
            │   → Use MIDJOURNEY
            │
            ├─ Photorealistic / portrait / product photo?
            │   → Use FLUX PRO
            │
            ├─ Contains TEXT (logo, poster, sign, infographic)?
            │   → Use IDEOGRAM
            │
            ├─ Vector / icon / flat design / brand asset?
            │   → Use RECRAFT
            │
            ├─ Quick draft / fast iteration (speed priority)?
            │   → Use FLUX SCHNELL (<2s)
            │
            └─ General purpose / balanced?
                → Use FLUX DEV
example.sh
node {baseDir}/generate.js \
  --model <model_id> \
  --prompt "<enhanced prompt>" \
  [--aspect-ratio <ratio>] \
  [--num-images <1-4>] \
  [--negative-prompt "<negative prompt>"] \
  [--reference-images "<url1,url2,...>"]
example.sh
node {baseDir}/generate.js \
  --model midjourney \
  --prompt "<enhanced prompt>" \
  --aspect-ratio 16:9

Tags

#image_and-video-generation

Quick Info

Category Content Creation
Model Gemini 2.0
Complexity One-Click
Author wells1137
Last Updated 3/10/2026
🚀
Optimized for
Gemini 2.0
💎

Ready to Install?

Get started with this skill in seconds

openclaw install image-gen