Design & media

ImaginePro AI Image Generation API

Try it

Generate AI images via ImaginePro API (Midjourney, Flux, Nano Banana, Lumi Girl, video)

What it does

Generate stunning AI images, videos, and edits using the ImaginePro API. This skill wraps the full ImaginePro backend and supports 5 generation models, image upscaling, background removal, prompt enhancement, and video generation.

The skill document

ImaginePro AI Image Generation API

Generate stunning AI images, videos, and edits using the ImaginePro API. This skill wraps the full ImaginePro backend and supports 5 generation models, image upscaling, background removal, prompt enhancement, and video generation.

Quick Start

# Set your API key (get one at https://platform.imaginepro.ai/dashboard/setup)
export IMAGINEPRO_API_KEY="your-api-key-here"

# Generate an image with Flux (fastest)
python3 imaginepro_api.py wait --prompt "a cyberpunk cityscape at sunset" --model flux

# Generate with Midjourney
python3 imaginepro_api.py wait --prompt "portrait of a warrior queen, cinematic lighting --ar 2:3"

# List available models and costs
python3 imaginepro_api.py models

Authentication

All requests require a Bearer token obtained from the ImaginePro Platform dashboard:

  1. Sign up at https://platform.imaginepro.ai
  2. Purchase credits from https://platform.imaginepro.ai/pricing
  3. Get your API key at https://platform.imaginepro.ai/dashboard/setup
  4. Set the environment variable: export IMAGINEPRO_API_KEY="your-key"

Base URL: https://api.imaginepro.ai/api/v1

Header: Authorization: Bearer

Available Models

ModelEndpointCreditsBest For
Midjourney (alpha v6)/midjourney/imagine10 (fast) / 5 (relax)Artistic, photorealistic images
Flux/flux/imagine6Fast general-purpose generation
Nano Banana/universal/imagine6Reference image + text (try-on, mockup, staging)
Lumi Girl/universal/zimage6Character portraits, anime, stylized
MJ Video/video/mj/generate10Video generation from start/end frames

API Reference

Image Generation

POST /midjourney/imagine — Midjourney Generation

The flagship model. Supports Midjourney parameters in the prompt string (e.g., --ar 16:9, --style raw, --relax).

Request:

{
  "prompt": "a majestic eagle soaring over mountains --ar 16:9",
  "ref": "optional-tracking-id",
  "webhookOverride": "https://your-server.com/webhook"
}
  • Append --relax to the prompt for relax mode (5 credits instead of 10, slower).
  • Supports all standard Midjourney prompt parameters: --ar, --style, --chaos, --no, --seed, --q, etc.

Response:

{
  "success": true,
  "messageId": "uuid-of-the-generation-task",
  "createdAt": "2026-01-15T12:00:00+00:00"
}

Credits: 10 (fast mode) / 5 (relax mode)


POST /flux/imagine — Flux Generation

Fast, high-quality generation. Supports batch generation.

Request:

{
  "prompt": "a cozy cabin in the woods, watercolor style",
  "n": 1,
  "ref": "optional-tracking-id",
  "webhookOverride": "https://your-server.com/webhook"
}
  • n (optional, default 1): Number of images to generate (credits multiply by n).

Response:

{
  "success": true,
  "messageId": "uuid-of-the-generation-task",
  "createdAt": "2026-01-15T12:00:00+00:00"
}

Credits: 6 per image


POST /universal/imagine — Nano Banana (Reference Image Generation)

Multi-modal generation using text + reference images. Ideal for virtual try-on, product mockups, interior staging, and style transfer.

Request:

{
  "contents": [
    { "type": "text", "text": "Image creation: woman wearing this dress in a garden" },
    { "type": "image", "url": "https://example.com/dress.jpg" }
  ],
  "model": "nano-banana-2",
  "ref": "optional-tracking-id",
  "webhookOverride": "https://your-server.com/webhook"
}
  • contents: Array of content items. First item should be type: "text" with the prompt prefixed by "Image creation: ". Subsequent items can be type: "image" with a url field for reference images.
  • model: Must be "nano-banana-2".
  • Supports multiple reference images (e.g., a person photo + a garment photo for virtual try-on).

Response:

{
  "success": true,
  "messageId": "uuid-of-the-generation-task",
  "createdAt": "2026-01-15T12:00:00+00:00"
}

Credits: 6


POST /universal/zimage — Lumi Girl

Specialized model for character portraits and stylized images. Supports aspect ratio via --ar in the prompt.

Request:

{
  "prompt": "anime girl with silver hair in a moonlit forest --ar 3:4",
  "steps": 4,
  "width": 768,
  "height": 1024,
  "ref": "optional-tracking-id",
  "webhookOverride": "https://your-server.com/webhook"
}
  • steps: Always 4 (fixed).
  • width / height: Max 1024 per dimension, must be divisible by 8. If --ar W:H is in the prompt, dimensions are auto-calculated from the ratio (max dimension = 1024).
  • Default: 1024x1024 if no aspect ratio specified.

Response:

{
  "success": true,
  "messageId": "uuid-of-the-generation-task",
  "createdAt": "2026-01-15T12:00:00+00:00"
}

Credits: 6


POST /video/mj/generate — MJ Video

Generate a video from start and end frame images.

Request:

{
  "prompt": "smooth camera pan with cinematic motion",
  "startFrameUrl": "https://example.com/start.jpg",
  "endFrameUrl": "https://example.com/end.jpg",
  "timeout": 900,
  "ref": "optional-tracking-id",
  "webhookOverride": "https://your-server.com/webhook"
}
  • startFrameUrl (required): URL of the starting frame image.
  • endFrameUrl (required): URL of the ending frame image.
  • prompt (optional, default "smooth motion transition"): Motion description.
  • timeout (optional, default 900): Max processing time in seconds.

Response:

{
  "success": true,
  "messageId": "uuid-of-the-generation-task",
  "createdAt": "2026-01-15T12:00:00+00:00"
}

Credits: 10


Post-Processing

POST /midjourney/button — Midjourney Upscale / Variant

Upscale or create variants of Midjourney-generated images.

Request:

{
  "messageId": "original-task-message-id",
  "button": "U1",
  "ref": "optional-tracking-id",
  "webhookOverride": "https://your-server.com/webhook"
}
  • messageId: The messageId (task ID) from the original Midjourney generation.
  • button: Action to perform. U1-U4 for upscaling quadrants, V1-V4 for variants.

Response:

{
  "success": true,
  "messageId": "uuid-of-the-upscale-task",
  "createdAt": "2026-01-15T12:00:00+00:00"
}

Credits: 5


POST /flux/upscale — Flux Upscale

Upscale any image (not limited to Flux-generated).

Request:

{
  "image": "https://example.com/image.jpg",
  "scale": 2,
  "ref": "optional-tracking-id",
  "webhookOverride": "https://your-server.com/webhook"
}
  • image (required): URL of the image to upscale.
  • scale (required): Upscale factor, must be between 2 and 4 (inclusive).

Response:

{
  "success": true,
  "messageId": "uuid-of-the-upscale-task",
  "createdAt": "2026-01-15T12:00:00+00:00"
}

Credits: 2


POST /tools/remove-bg — Background Removal

Remove the background from an image.

Request:

{
  "image": "https://example.com/photo.jpg",
  "ref": "optional-tracking-id",
  "webhookOverride": "https://your-server.com/webhook"
}

Response:

{
  "success": true,
  "messageId": "uuid-of-the-removebg-task",
  "createdAt": "2026-01-15T12:00:00+00:00"
}

Credits: 5


POST /tools/prompt-extend — Prompt Enhancement (Free)

Expand a short prompt into a detailed, high-quality prompt.

Request:

{
  "prompt": "a sunset"
}

Response:

{
  "prompt": "a breathtaking sunset over the Pacific Ocean, golden hour light casting warm amber and coral tones across scattered cumulus clouds, silhouetted palm trees in the foreground..."
}

Credits: Free


Status & History

GET /midjourney/message/{messageId} — Check Generation Status

Poll this endpoint to check the progress of any generation task (works for all models, not just Midjourney).

Response (in progress):

{
  "prompt": "a simple red circle on white background",
  "status": "PROCESSING",
  "progress": 0,
  "messageId": "2346e0bc-c3c3-48ea-adec-3a21609fd288",
  "createdAt": "2026-02-22T07:43:37+00:00",
  "updatedAt": "2026-02-22T07:43:37+00:00"
}

Response (completed):

{
  "prompt": "a simple red circle on white background",
  "status": "DONE",
  "images": ["https://cdn-new.imaginepro.ai/storage/v1/object/public/cdn/2346e0bc-c3c3-48ea-adec-3a21609fd288.png"],
  "uri": "https://cdn-new.imaginepro.ai/storage/v1/object/public/cdn/2346e0bc-c3c3-48ea-adec-3a21609fd288.png",
  "progress": 100,
  "messageId": "2346e0bc-c3c3-48ea-adec-3a21609fd288",
  "createdAt": "2026-02-22T07:43:37+00:00",
  "updatedAt": "2026-02-22T07:43:49+00:00"
}

Response (failed):

{
  "status": "FAIL",
  "error": "Description of what went wrong"
}

Statuses: SUBMITTEDPROCESSINGDONE | FAIL

Credits: Free (polling is free)


Async Workflow

All generation endpoints are asynchronous. The workflow is:

  1. Submit a generation request → receive a messageId
  2. Poll GET /midjourney/message/{messageId} every 3-5 seconds
  3. Wait for status to be DONE (images ready) or FAIL (error)
  4. Download the result from the uri or images array

The helper script's wait command automates this entire flow.

Credit Cost Summary

OperationCredits
Midjourney Imagine (fast)10
Midjourney Imagine (relax)5
Midjourney Upscale/Variant5
Flux Imagine6 per image
Flux Upscale2
Nano Banana Imagine6
Lumi Girl Imagine6
MJ Video10
Background Removal5
Prompt EnhancementFree
Status PollingFree

Python Helper Script

The included imaginepro_api.py is a zero-dependency Python script (stdlib only) that wraps all API calls.

Commands

# Generate an image (async — returns messageId immediately)
python3 imaginepro_api.py imagine --prompt "a sunset over mountains" --model flux

# Generate and wait for result (blocking — polls until done)
python3 imaginepro_api.py wait --prompt "a sunset over mountains" --model flux

# Check status of a generation
python3 imaginepro_api.py status --id 

# Upscale (Midjourney)
python3 imaginepro_api.py upscale --id  --button U1

# Upscale (Flux)
python3 imaginepro_api.py upscale --image "https://example.com/img.jpg" --scale 2

# Remove background
python3 imaginepro_api.py removebg --image "https://example.com/photo.jpg"

# Enhance a prompt
python3 imaginepro_api.py enhance --prompt "a cat"

# List available models
python3 imaginepro_api.py models

Flags

  • --json — Output raw JSON (default is human-readable)
  • --timeout — Max wait time for wait command (default: 300)
  • --interval — Polling interval for wait command (default: 5)

curl Examples

# Generate with Flux
curl -X POST https://api.imaginepro.ai/api/v1/flux/imagine \
  -H "Authorization: Bearer $IMAGINEPRO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"prompt": "a cyberpunk cityscape at sunset"}'

# Check status
curl https://api.imaginepro.ai/api/v1/midjourney/message/ \
  -H "Authorization: Bearer $IMAGINEPRO_API_KEY"

# Enhance a prompt (free)
curl -X POST https://api.imaginepro.ai/api/v1/tools/prompt-extend \
  -H "Authorization: Bearer $IMAGINEPRO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"prompt": "a cat"}'

Error Handling

API errors return JSON with message, error, and statusCode:

{
  "message": "Prompt is required.",
  "error": "Bad Request",
  "statusCode": 400
}

Common error codes:

  • 400 — Missing required parameter or invalid value
  • 401 — Invalid or missing API key / insufficient credits
  • 404 — Message not found
  • 500 — Internal server error (retry after a short delay)

Tips for AI Agents

  1. Always use the wait command for simple generation tasks — it handles the submit + poll loop automatically.
  2. Check credits on the dashboard at https://platform.imaginepro.ai/dashboard before large batches to avoid failures mid-way through. There is no API endpoint for checking credits.
  3. Use enhance on short prompts before generating — it's free and dramatically improves quality.
  4. Midjourney supports prompt parameters like --ar 16:9 --style raw --chaos 20 directly in the prompt string.
  5. For Nano Banana (virtual try-on, mockups), always provide reference image URLs in the contents array.
  6. Poll interval: 5 seconds is recommended. Don't poll faster than 3 seconds.
  7. Timeouts: Midjourney can take 30-120s. Video generation can take up to 15 minutes. Set timeouts accordingly.

Related skills

Manage Stripe customers, subscriptions, invoices, products, prices, and payments through OAuth-authenticated API calls.

by byungkyu720 installs29 stars

Post videos, photos, text, and documents to 10 social platforms through a single REST API call.

by victorcavero14375 installs50 stars

Search, read, and manage YouTube videos, playlists, channels, subscriptions, and comments via managed OAuth.

by byungkyu880 installs145 stars

Join a video meeting as an AI bot with voice, avatar, and screenshare across four operating modes.

by johnpatternai21 installs8 stars

docx

Official

Create, read, and edit Word .docx files with reproducible scripts and tracked-changes support.

by Anthropic177.2k stars

More from iamzifei

Browse all skills

Audit, create, and manage Google Ads and Meta Ads campaigns from your AI coding tool using 102 MCP tools.

by iamzifei71 installs1 stars

📐 詹明明·找对标 ——找对标。给一个方向就去抖音/小红书/视频号搜人,给一个名字就去认人;三筛过滤(赚钱 / 看懂 / 能仿)挑出真正值得抄的那个,然后把他的**三批内容**全扒下来——最早 10 条(他怎么起的号)、数据最好 10 条(什么能爆)、最新 10 条(他现在在哪)——封面、大字、逐字稿、互动数据一条不落,最后出完整拆解和抄袭路线图。 触发方式:/zmm-benchmark、/找对标、/对标、「我该学谁」「帮我找个对标」「这个号值不值得学」「把这个博主拆一下」「他是怎么起号的」「扒一下这个账号」 Find and dissect a benchmark creator: search by direction or by name, filter on money/understandable/copyable, then pull the earliest 10, best-performing 10, and latest 10 posts with covers, cover text, transcripts and engagement data, and produce a full teardown plus a copy roadmap. Trigger: /zmm-benchmark, "find me a benchmark account", "is this creator worth learning from", "tear down this account" —— 📐 詹明明 · 不给公式,给判据。每条规则都标了实测代价。

by iamzifei2 installs

📐 詹明明·今天拍什么 ——短视频选题技能。先探寻现象、检验假设、比较解释,把问题转成观众在意的选择。交互式选题:供需判定 + 对标信号 + 本人真实数据佐证 + 配比检查,不一键生成选题清单。 触发方式:/zmm-topic、/拍什么、/选题、/zmm-选题、「今天拍什么」「帮我出选题」「这个题能不能做」「有个想法你帮我判断下」「这题只有一头」「这题没劲」「帮我把它讲出两头来」 Topic selection for short videos: supply-demand test, benchmark signals, real data evidence. Trigger: /zmm-topic, "what topic should I shoot", "is this topic worth making" —— 📐 詹明明 · 不给公式,给判据。每条规则都标了实测代价。

by iamzifei

📐 詹明明·开头前五秒 ——短视频开头专项技能。先诊断内容有没有货(门禁),再比较真实材料入口与大众悬念入口,结合起手与留白出候选,每个候选标注用了哪个原理。 触发方式:/zmm-hook、/钩子、/开头、/zmm-开头、「开头怎么写」「前五秒抓不住人」「帮我想几个钩子」「这个开头行不行」 Opening-hook specialist: gate-check content first, then generate hooks by expectation forms and information-gap methods. Trigger: /zmm-hook, "how to write the opening", "give me some hooks" —— 📐 詹明明 · 不给公式,给判据。每条规则都标了实测代价。

by iamzifei

📐 詹明明 ——两套技能的总入口:做内容(选题/写稿/审核/复盘)+ 看生意(组合体检/营收归因/客户集中度/依赖风险/拿不准的决策)。三种模式:新手上路演示、任务前路由、任务后导航。不知道用哪个就回这里。 触发方式:/zmm、/新手上路、/zmm 教程、「做条视频」「出个口播」「今天拍什么」「内容下一步怎么走」;新手教程:/zmm 新手指南、/zmm 新手、「这个怎么用」「第一次用,带我走一遍」「不知道能干嘛」 Single entry point for both skill sets — content (topic, script, review, retro) and business (portfolio, revenue, concentration, dependency, decisions). Three modes: guided onboarding demo, pre-task routing, post-task navigation. Trigger: /zmm, "make a short video", "what should I shoot today", "how do I use this" —— 📐 詹明明 · 不给公式,给判据。每条规则都标了实测代价。

by iamzifei

📐 詹明明·发布前审一遍 ——口播稿发布前审核技能。按观众的四次决定审:点不点进来 · 留不留下来 · 记不记得你 · 做不做点什么。逐句信息密度评分(60/80 分线)+ 十一问 + 红线五查(改法给稳妥版和保留力度版两版)+ 机器信号层(导流 / 广告形状 / 名单词,与内容违规分开报),默认只诊断不改。 触发方式:/zmm-review、/能不能发、/审核、/zmm-审核、「这稿子能不能发」「帮我审一下」「过一遍红线」「信息密度够不够」 Pre-publish review for talking-head scripts, organised around the viewer's four decisions: click, stay, remember, act. Per-sentence density scoring, eleven questions, red-line audit. Diagnose-only by default. Trigger: /zmm-review, "can I publish this", "review my script" —— 📐 詹明明 · 不给公式,给判据。每条规则都标了实测代价。

by iamzifei