$npx -y skills add pexoai/pexo-skills --skill videoagent-image-studioTired 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.
| 1 | # 🎨 VideoAgent Image Studio |
| 2 | |
| 3 | **Use when:** User asks to generate, draw, create, or make any kind of image, photo, illustration, icon, logo, or artwork. |
| 4 | |
| 5 | 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. |
| 6 | |
| 7 | --- |
| 8 | |
| 9 | ## Quick Reference |
| 10 | |
| 11 | | User Intent | Model | Speed | |
| 12 | |---|---|---| |
| 13 | | Artistic, cinematic, painterly | `midjourney` | ~15s | |
| 14 | | Photorealistic, portrait, product | `flux-pro` | ~8s | |
| 15 | | General purpose, balanced | `flux-dev` | ~10s | |
| 16 | | Quick draft, fast iteration | `flux-schnell` | ~2s | |
| 17 | | Image with text, logo, poster | `ideogram` | ~10s | |
| 18 | | Vector art, icon, flat design | `recraft` | ~8s | |
| 19 | | Anime, stylized illustration | `sdxl` | ~5s | |
| 20 | | Gemini-powered, consistent style | `nano-banana` | ~12s | |
| 21 | |
| 22 | --- |
| 23 | |
| 24 | ## How to Generate an Image |
| 25 | |
| 26 | ### Step 1 — Enhance the prompt |
| 27 | |
| 28 | Before calling the script, expand the user's prompt with style, lighting, and quality descriptors appropriate for the chosen model. |
| 29 | |
| 30 | - **Midjourney**: Add `cinematic lighting`, `ultra detailed`, `--v 7`, `--style raw` |
| 31 | - **Flux**: Add `masterpiece`, `highly detailed`, `sharp focus`, `professional photography` |
| 32 | - **Ideogram**: Be explicit about text content, font style, and layout |
| 33 | - **Recraft**: Specify `vector illustration`, `flat design`, `icon style` |
| 34 | |
| 35 | ### Step 2 — Run the script |
| 36 | |
| 37 | ```bash |
| 38 | node {baseDir}/tools/generate.js \ |
| 39 | --model <model_id> \ |
| 40 | --prompt "<enhanced prompt>" \ |
| 41 | --aspect-ratio <ratio> |
| 42 | ``` |
| 43 | |
| 44 | **All parameters:** |
| 45 | |
| 46 | | Parameter | Default | Description | |
| 47 | |---|---|---| |
| 48 | | `--model` | `flux-dev` | Model ID from the table above | |
| 49 | | `--prompt` | *(required)* | The image generation prompt | |
| 50 | | `--aspect-ratio` | `1:1` | `1:1`, `16:9`, `9:16`, `4:3`, `3:4`, `3:2`, `21:9` | |
| 51 | | `--num-images` | `1` | Number of images (1–4; Midjourney always returns 4) | |
| 52 | | `--negative-prompt` | — | Things to avoid (not supported by Midjourney) | |
| 53 | | `--seed` | — | Seed for reproducibility | |
| 54 | |
| 55 | ### Step 3 — Return the result |
| 56 | |
| 57 | The script always waits and returns the final image URL(s). No polling required. |
| 58 | |
| 59 | ```json |
| 60 | { |
| 61 | "success": true, |
| 62 | "model": "flux-pro", |
| 63 | "imageUrl": "https://...", |
| 64 | "images": ["https://..."] |
| 65 | } |
| 66 | ``` |
| 67 | |
| 68 | Send the `imageUrl` to the user. |
| 69 | |
| 70 | --- |
| 71 | |
| 72 | ## Midjourney Actions |
| 73 | |
| 74 | After generating a 4-image grid with Midjourney, offer the user these options: |
| 75 | |
| 76 | ```bash |
| 77 | # Upscale image #2 (subtle, preserves details) |
| 78 | node {baseDir}/tools/generate.js \ |
| 79 | --model midjourney \ |
| 80 | --action upscale \ |
| 81 | --index 2 \ |
| 82 | --job-id <job_id> |
| 83 | |
| 84 | # Create a strong variation of image #3 |
| 85 | node {baseDir}/tools/generate.js \ |
| 86 | --model midjourney \ |
| 87 | --action variation \ |
| 88 | --index 3 \ |
| 89 | --job-id <job_id> \ |
| 90 | --variation-type 1 |
| 91 | |
| 92 | # Regenerate with same prompt |
| 93 | node {baseDir}/tools/generate.js \ |
| 94 | --model midjourney \ |
| 95 | --action reroll \ |
| 96 | --job-id <job_id> |
| 97 | ``` |
| 98 | |
| 99 | **Upscale types:** `0` = Subtle (default, best for photos), `1` = Creative (best for illustrations) |
| 100 | |
| 101 | **Variation types:** `0` = Subtle (default), `1` = Strong (dramatic changes) |
| 102 | |
| 103 | --- |
| 104 | |
| 105 | ## Example Conversations |
| 106 | |
| 107 | **User:** "Draw a snow leopard on a snowy mountain with cinematic lighting" |
| 108 | |
| 109 | ```bash |
| 110 | # Choose midjourney for artistic quality |
| 111 | node {baseDir}/tools/generate.js \ |
| 112 | --model midjourney \ |
| 113 | --prompt "a majestic snow leopard on a snowy mountain peak, cinematic lighting, dramatic atmosphere, ultra detailed --ar 16:9 --v 7" \ |
| 114 | --aspect-ratio 16:9 |
| 115 | ``` |
| 116 | |
| 117 | > 🎨 Done! Which one to upscale? (U1-U4) Or create a variant? (V1-V4) |
| 118 | |
| 119 | --- |
| 120 | |
| 121 | **User:** "Use Flux to generate a perfume product poster, white background" |
| 122 | |
| 123 | ```bash |
| 124 | # Choose flux-pro for photorealistic product shots |
| 125 | node {baseDir}/tools/generate.js \ |
| 126 | --model flux-pro \ |
| 127 | --prompt "a luxury perfume bottle on a clean white background, professional product photography, soft shadows, 8k, highly detailed" \ |
| 128 | --aspect-ratio 3:4 |
| 129 | ``` |
| 130 | |
| 131 | --- |
| 132 | |
| 133 | **User:** "Show me a quick draft" |
| 134 | |
| 135 | ```bash |
| 136 | # flux-schnell for instant previews |
| 137 | node {baseDir}/tools/generate.js \ |
| 138 | --model flux-schnell \ |
| 139 | --prompt "..." \ |
| 140 | --aspect-ratio 1:1 |
| 141 | ``` |
| 142 | |
| 143 | --- |
| 144 | |
| 145 | **User:** "Make me an App icon, flat style, blue theme" |
| 146 | |
| 147 | ```bash |
| 148 | # recraft for vector/icon style |
| 149 | node {baseDir}/tools/generate.js \ |
| 150 | --model recraft \ |
| 151 | --prompt "a minimal flat design app icon, blue color scheme, simple geometric shapes, vector style, white background" |
| 152 | ``` |
| 153 | |
| 154 | --- |
| 155 | |
| 156 | ## Setup |
| 157 | |
| 158 | **Zero API k |