Skip to main content
skill Claude Code CX Codex Cursor GitHub Copilot

videoagent-image-studio — Claude Code skill: image generation across

This skill provides one-command access to Midjourney, Flux, Ideogram, and five other image models without storing API keys. The agent picks the best model and handles Midjourney's async workflow automatically.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add pexoai/pexo-skills --skill videoagent-image-studio -a claude-code
Open on GitHub

What videoagent-image-studio does

VideoAgent Image Studio generates images using eight AI models in a unified interface. Midjourney produces artistic and cinematic results (~15s), Flux Pro handles portraits and product shots (~8s), Flux Schnell delivers fast drafts (~2s), Ideogram excels at text-in-image tasks, Recraft creates vector icons and flat design, SDXL covers anime and stylized illustration. The skill expands user text into a model-appropriate prompt with style descriptors, runs generation, waits for completion, and returns image URLs.

No API keys required—all requests route through a hosted proxy. For custom setup, set environment variables IMAGE_STUDIO_PROXY_URL and IMAGE_STUDIO_TOKEN. Midjourney async handling is built in: the skill generates 4 images then offers upscale, variation, or reroll options for individual frames.

Implemented as a Node.js script invoked via node {baseDir}/tools/generate.js with model, prompt, and aspect ratio parameters. Supports 1:1 to 21:9 ratios, optional negative-prompt, and seed for reproducibility.

What it helps with

  • pick the right model for artistic versus photorealistic output
  • generate images with embedded text, logos, or icons across platforms in one workflow
  • produce quick drafts or upscale existing results without manual model switching
  • avoid managing multiple API keys for different image generators

Example prompts for the agent

  • Draw a snow leopard on a snowy mountain with cinematic lighting
  • Use Flux to generate a luxury perfume bottle product shot, white background, professional quality
  • Make a flat design app icon in blue for instant preview

How to install videoagent-image-studio

1Skills CLI (Vercel)

npx skills add pexoai/pexo-skills --skill videoagent-image-studio -a claude-code

2Manually: put the files in place

~/.claude/skills/videoagent-image-studio/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/videoagent-image-studio/

From the same set3

The whole set →

Similar

hooked-ux wondelai Scores a product's engagement loop against the Hook Model and caps designs the Manipulation Matrix calls extractive. Useful when signups stop coming back. Claude Code CX Codex Cursor +1 6,200installs wpds WordPress Feeds WordPress Design System docs to your agent through an MCP server, so UI work lands on real components and tokens instead of guesses. Claude Code CX Codex Cursor +1 4,000installs visual-plan BuilderIO Turns a plain text plan into a document with diagrams, a file map and open questions you can comment on before the agent starts writing code. Claude Code CX Codex Cursor +1 1,300installs gpt-image-2 prime-skills Generates and edits images via OpenAI GPT Image 2 on RunComfy. Embeds text, logos, and multilingual typography accurately — for e-commerce, ads, and UI mockups. Claude Code CX Codex Cursor +1 83,800installs grill-me Alireza Rezvani Stress-tests project plans and design docs through a disciplined question-and-answer interview to resolve decisions before coding. Claude Code 1,157installs drawio official github Builds native .drawio diagram files and exports them to PNG, SVG, or PDF with embedded XML. GitHub Copilot 314installs frontend-design official anthropics This skill guides intentional visual design for new interfaces and redesigns. Use it when a generic generated UI is not enough. Claude Code Claude.ai 1,025,790installs grill-me Matt Pocock grill-me interviews you about a plan or design to expose gaps and sharpen decisions. Use it before implementation starts. Claude Code 1,424,476installs

Questions about videoagent-image-studio

How do I install videoagent-image-studio in Claude Code?

Run npx skills add pexoai/pexo-skills --skill videoagent-image-studio -a claude-code, then open ~/.claude/skills/videoagent-image-studio/SKILL.md to enable it.

What does videoagent-image-studio do?

It generates images across Midjourney, Flux, Ideogram, Recraft, SDXL and others. The agent automatically selects the best model, enhances your prompt with style descriptors, runs generation, and handles Midjourney's asynchronous polling.

Do I need to provide API keys?

No—requests go through a hosted proxy by default. You get 100 free uses per token; for a custom proxy, set IMAGE_STUDIO_PROXY_URL and IMAGE_STUDIO_TOKEN environment variables.

Source text

SKILL.md · MIT
---
name: videoagent-image-studio
version: 2.0.0
author: "wells"
emoji: "🎨"
tags:
  - video
  - image-generation
  - midjourney
  - flux
  - gemini
  - fal
  - ideogram
  - recraft
description: >
  Tired of juggling 8 API keys? This skill gives you one-command access to Midjourney, Flux, Ideogram, and more, with zero setup. Use when you want to generate any image without worrying about API keys.
homepage: https://github.com/pexoai/image-studio-skill
metadata:
  openclaw:
    emoji: "🎨"
    install:
      - id: node
        kind: node
        label: "No dependencies needed — all calls go through the hosted proxy"
---

# 🎨 VideoAgent Image Studio

**Use when:** User asks to generate, draw, create, or make any kind of image, photo, illustration, icon, logo, or artwork.

Generate images with 8 state-of-the-art AI models. This skill automatically picks the best model for the job and handles all the complexity — including Midjourney's async polling — so you can focus on the conversation.

---

## Quick Reference

| User Intent | Model | Speed |
|---|---|---|
| Artistic, cinematic, painterly | `midjourney` | ~15s |
| Photorealistic, portrait, product | `flux-pro` | ~8s |
| General purpose, balanced | `flux-dev` | ~10s |
| Quick draft, fast iteration | `flux-schnell` | ~2s |
| Image with text, logo, poster | `ideogram` | ~10s |
| Vector art, icon, flat design | `recraft` | ~8s |
| Anime, stylized illustration | `sdxl` | ~5s |
| Gemini-powered, consistent style | `nano-banana` | ~12s |

---

## How to Generate an Image

### Step 1 — Enhance the prompt

Before calling the script, expand the user's prompt with style, lighting, and quality descriptors appropriate for the chosen model.

- **Midjourney**: Add `cinematic lighting`, `ultra detailed`, `--v 7`, `--style raw`
- **Flux**: Add `masterpiece`, `highly detailed`, `sharp focus`, `professional photography`
- **Ideogram**: Be explicit about text content, font style, and layout
- **Recraft**: Specify `vector illustration`, `flat design`, `icon style`

### Step 2 — Run the script

```bash
node {baseDir}/tools/generate.js \
  --model <model_id> \
  --prompt "<enhanced prompt>" \
  --aspect-ratio <ratio>
```

**All parameters:**

| Parameter | Default | Description |
|---|---|---|
| `--model` | `flux-dev` | Model ID from the table above |
| `--prompt` | *(required)* | The image generation prompt |
| `--aspect-ratio` | `1:1` | `1:1`, `16:9`, `9:16`, `4:3`, `3:4`, `3:2`, `21:9` |
| `--num-images` | `1` | Number of images (1–4; Midjourney always returns 4) |
| `--negative-prompt` | — | Things to avoid (not supported by Midjourney) |
| `--seed` | — | Seed for reproducibility |

### Step 3 — Return the result

The script always waits and returns the final image URL(s). No polling required.

```json
{
  "success": true,
  "model": "flux-pro",
  "imageUrl": "https://...",
  "images": ["https://..."]
}
```

Send the `imageUrl` to the user.

---

## Midjourney Actions

After generating a 4-image grid with Midjourney, offer the user these options:

```bash
# Upscale image #2 (subtle, preserves details)
node {baseDir}/tools/generate.js \
  --model midjourney \
  --action upscale \
  --index 2 \
  --job-id <job_id>

# Create a strong variation of image #3
node {baseDir}/tools/generate.js \
  --model midjourney \
  --action variation \
  --index 3 \
  --job-id <job_id> \
  --variation-type 1

# Regenerate with same prompt
node {baseDir}/tools/generate.js \
  --model midjourney \
  --action reroll \
  --job-id <job_id>
```

**Upscale types:** `0` = Subtle (default, best for photos), `1` = Creative (best for illustrations)

**Variation types:** `0` = Subtle (default), `1` = Strong (dramatic changes)

---

## Example Conversations

**User:** "Draw a snow leopard on a snowy mountain with cinematic lighting"

```bash
# Choose midjourney for artistic quality
node {baseDir}/tools/generate.js \
  --model midjourney \
  --prompt "a majestic snow leopard on a snowy mountain peak, cinematic lighting, dramatic atmosphere, ultra detailed --ar 16:9 --v 7" \
  --aspect-ratio 16:9
```

> 🎨 Done! Which one to upscale? (U1-U4) Or create a variant? (V1-V4)

---

**User:** "Use Flux to generate a perfume product poster, white background"

```bash
# Choose flux-pro for photorealistic product shots
node {baseDir}/tools/generate.js \
  --model flux-pro \
  --prompt "a luxury perfume bottle on a clean white background, professional product photography, soft shadows, 8k, highly detailed" \
  --aspect-ratio 3:4
```

---

**User:** "Show me a quick draft"

```bash
# flux-schnell for instant previews
node {baseDir}/tools/generate.js \
  --model flux-schnell \
  --prompt "..." \
  --aspect-ratio 1:1
```

---

**User:** "Make me an App icon, flat style, blue theme"

```bash
# recraft for vector/icon style
node {baseDir}/tools/generate.js \
  --model recraft \
  --prompt "a minimal flat design app icon, blue color scheme, simple geometric shapes, vector style, white background"
```

---

## Setup

**Zero API keys needed!** All requests go through a hosted proxy that handles authentication server-side.

The skill works out of the box — just install and use.

### Advanced: Custom proxy or token

If you want to use your own proxy or a persistent token, set these environment variables:

```json
{
  "skills": {
    "entries": {
      "videoagent-image-studio": {
        "enabled": true,
        "env": {
          "IMAGE_STUDIO_PROXY_URL": "https://your-proxy.vercel.app",
          "IMAGE_STUDIO_TOKEN": "your_token_here"
        }
      }
    }
  }
}
```

| Variable | Required | Description |
|---|---|---|
| `IMAGE_STUDIO_PROXY_URL` | No | Custom proxy base URL (default: `https://image-gen-proxy.vercel.app`) |
| `IMAGE_STUDIO_TOKEN` | No | Persistent token (auto-obtained if not set, 100 free uses per token) |

To deploy your own proxy, see the [videoagent-audio-studio proxy](../videoagent-audio-studio/proxy/) as a reference implementation. You'll need `FAL_KEY` and `LEGNEXT_KEY` as Vercel environment variables.

---

## Changelog

### v2.0.0
- **Simplified async**: The script now blocks until Midjourney completes. No more `--async` / `--poll` flags needed in SKILL.md instructions.
- **Unified output format**: All models return the same `{ success, imageUrl, images }` shape.
- **Reference images for Nano Banana**: Pass `--reference-images "url1,url2"` for character/style consistency across generations.

### v1.3.0
- Added non-blocking async mode for Midjourney (`--async` + `--poll`).

### v1.2.0
- Midjourney turbo mode enabled by default (~10-20s).

### v1.1.0
- Switched Midjourney provider from TTAPI to Legnext.ai for better stability.

### v1.0.0
- Initial release with Midjourney, Flux, SDXL, Nano Banana, Ideogram, Recraft.

© wells · MIT · pexoai/pexo-skills

See also

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor