Skip to content
Content
Skill

/videoagent-image-studio

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.

From plugin
pexo-skills
76520 skills
Install
$ npx -y skills add pexoai/pexo-skills --skill videoagent-image-studio --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition โ†’
  • You can call itInvoke it directly when you want it.
  • Slash command/videoagent-image-studio

Context preview

The summary Claude sees to decide when to auto-load this skill.

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.

SKILL.md

videoagent-image-studio.SKILL.md
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

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.

{
  "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:

# 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"

# 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"

# 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"

# 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"

# 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:

{
  "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 environ

Read more
Ships withpexo-skills

A collection of open-source Agent Skills for content creation โ€” images, audio, and video.

Get the whole plugin

Other skills on pexo-skills.