{
  "schemaVersion": "1.0",
  "item": {
    "slug": "imaginepro-api",
    "name": "ImaginePro AI Image Generation API",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/iamzifei/imaginepro-api",
    "canonicalUrl": "https://clawhub.ai/iamzifei/imaginepro-api",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/imaginepro-api",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=imaginepro-api",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "TELEGRAM_ANNOUNCEMENT.md",
      "imaginepro_api.py"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "slug": "imaginepro-api",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-04T07:54:32.780Z",
      "expiresAt": "2026-05-11T07:54:32.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=imaginepro-api",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=imaginepro-api",
        "contentDisposition": "attachment; filename=\"imaginepro-api-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "imaginepro-api"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/imaginepro-api"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/imaginepro-api",
    "agentPageUrl": "https://openagent3.xyz/skills/imaginepro-api/agent",
    "manifestUrl": "https://openagent3.xyz/skills/imaginepro-api/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/imaginepro-api/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "ImaginePro AI Image Generation API",
        "body": "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."
      },
      {
        "title": "Quick Start",
        "body": "# Set your API key (get one at https://platform.imaginepro.ai/dashboard/setup)\nexport IMAGINEPRO_API_KEY=\"your-api-key-here\"\n\n# Generate an image with Flux (fastest)\npython3 imaginepro_api.py wait --prompt \"a cyberpunk cityscape at sunset\" --model flux\n\n# Generate with Midjourney\npython3 imaginepro_api.py wait --prompt \"portrait of a warrior queen, cinematic lighting --ar 2:3\"\n\n# List available models and costs\npython3 imaginepro_api.py models"
      },
      {
        "title": "Authentication",
        "body": "All requests require a Bearer token obtained from the ImaginePro Platform dashboard:\n\nSign up at https://platform.imaginepro.ai\nPurchase credits from https://platform.imaginepro.ai/pricing\nGet your API key at https://platform.imaginepro.ai/dashboard/setup\nSet the environment variable: export IMAGINEPRO_API_KEY=\"your-key\"\n\nBase URL: https://api.imaginepro.ai/api/v1\n\nHeader: Authorization: Bearer <IMAGINEPRO_API_KEY>"
      },
      {
        "title": "Available Models",
        "body": "ModelEndpointCreditsBest ForMidjourney (alpha v6)/midjourney/imagine10 (fast) / 5 (relax)Artistic, photorealistic imagesFlux/flux/imagine6Fast general-purpose generationNano Banana/universal/imagine6Reference image + text (try-on, mockup, staging)Lumi Girl/universal/zimage6Character portraits, anime, stylizedMJ Video/video/mj/generate10Video generation from start/end frames"
      },
      {
        "title": "Image Generation",
        "body": "POST /midjourney/imagine — Midjourney Generation\n\nThe flagship model. Supports Midjourney parameters in the prompt string (e.g., --ar 16:9, --style raw, --relax).\n\nRequest:\n\n{\n  \"prompt\": \"a majestic eagle soaring over mountains --ar 16:9\",\n  \"ref\": \"optional-tracking-id\",\n  \"webhookOverride\": \"https://your-server.com/webhook\"\n}\n\nAppend --relax to the prompt for relax mode (5 credits instead of 10, slower).\nSupports all standard Midjourney prompt parameters: --ar, --style, --chaos, --no, --seed, --q, etc.\n\nResponse:\n\n{\n  \"success\": true,\n  \"messageId\": \"uuid-of-the-generation-task\",\n  \"createdAt\": \"2026-01-15T12:00:00+00:00\"\n}\n\nCredits: 10 (fast mode) / 5 (relax mode)\n\nPOST /flux/imagine — Flux Generation\n\nFast, high-quality generation. Supports batch generation.\n\nRequest:\n\n{\n  \"prompt\": \"a cozy cabin in the woods, watercolor style\",\n  \"n\": 1,\n  \"ref\": \"optional-tracking-id\",\n  \"webhookOverride\": \"https://your-server.com/webhook\"\n}\n\nn (optional, default 1): Number of images to generate (credits multiply by n).\n\nResponse:\n\n{\n  \"success\": true,\n  \"messageId\": \"uuid-of-the-generation-task\",\n  \"createdAt\": \"2026-01-15T12:00:00+00:00\"\n}\n\nCredits: 6 per image\n\nPOST /universal/imagine — Nano Banana (Reference Image Generation)\n\nMulti-modal generation using text + reference images. Ideal for virtual try-on, product mockups, interior staging, and style transfer.\n\nRequest:\n\n{\n  \"contents\": [\n    { \"type\": \"text\", \"text\": \"Image creation: woman wearing this dress in a garden\" },\n    { \"type\": \"image\", \"url\": \"https://example.com/dress.jpg\" }\n  ],\n  \"model\": \"nano-banana-2\",\n  \"ref\": \"optional-tracking-id\",\n  \"webhookOverride\": \"https://your-server.com/webhook\"\n}\n\ncontents: 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.\nmodel: Must be \"nano-banana-2\".\nSupports multiple reference images (e.g., a person photo + a garment photo for virtual try-on).\n\nResponse:\n\n{\n  \"success\": true,\n  \"messageId\": \"uuid-of-the-generation-task\",\n  \"createdAt\": \"2026-01-15T12:00:00+00:00\"\n}\n\nCredits: 6\n\nPOST /universal/zimage — Lumi Girl\n\nSpecialized model for character portraits and stylized images. Supports aspect ratio via --ar in the prompt.\n\nRequest:\n\n{\n  \"prompt\": \"anime girl with silver hair in a moonlit forest --ar 3:4\",\n  \"steps\": 4,\n  \"width\": 768,\n  \"height\": 1024,\n  \"ref\": \"optional-tracking-id\",\n  \"webhookOverride\": \"https://your-server.com/webhook\"\n}\n\nsteps: Always 4 (fixed).\nwidth / 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).\nDefault: 1024x1024 if no aspect ratio specified.\n\nResponse:\n\n{\n  \"success\": true,\n  \"messageId\": \"uuid-of-the-generation-task\",\n  \"createdAt\": \"2026-01-15T12:00:00+00:00\"\n}\n\nCredits: 6\n\nPOST /video/mj/generate — MJ Video\n\nGenerate a video from start and end frame images.\n\nRequest:\n\n{\n  \"prompt\": \"smooth camera pan with cinematic motion\",\n  \"startFrameUrl\": \"https://example.com/start.jpg\",\n  \"endFrameUrl\": \"https://example.com/end.jpg\",\n  \"timeout\": 900,\n  \"ref\": \"optional-tracking-id\",\n  \"webhookOverride\": \"https://your-server.com/webhook\"\n}\n\nstartFrameUrl (required): URL of the starting frame image.\nendFrameUrl (required): URL of the ending frame image.\nprompt (optional, default \"smooth motion transition\"): Motion description.\ntimeout (optional, default 900): Max processing time in seconds.\n\nResponse:\n\n{\n  \"success\": true,\n  \"messageId\": \"uuid-of-the-generation-task\",\n  \"createdAt\": \"2026-01-15T12:00:00+00:00\"\n}\n\nCredits: 10"
      },
      {
        "title": "Post-Processing",
        "body": "POST /midjourney/button — Midjourney Upscale / Variant\n\nUpscale or create variants of Midjourney-generated images.\n\nRequest:\n\n{\n  \"messageId\": \"original-task-message-id\",\n  \"button\": \"U1\",\n  \"ref\": \"optional-tracking-id\",\n  \"webhookOverride\": \"https://your-server.com/webhook\"\n}\n\nmessageId: The messageId (task ID) from the original Midjourney generation.\nbutton: Action to perform. U1-U4 for upscaling quadrants, V1-V4 for variants.\n\nResponse:\n\n{\n  \"success\": true,\n  \"messageId\": \"uuid-of-the-upscale-task\",\n  \"createdAt\": \"2026-01-15T12:00:00+00:00\"\n}\n\nCredits: 5\n\nPOST /flux/upscale — Flux Upscale\n\nUpscale any image (not limited to Flux-generated).\n\nRequest:\n\n{\n  \"image\": \"https://example.com/image.jpg\",\n  \"scale\": 2,\n  \"ref\": \"optional-tracking-id\",\n  \"webhookOverride\": \"https://your-server.com/webhook\"\n}\n\nimage (required): URL of the image to upscale.\nscale (required): Upscale factor, must be between 2 and 4 (inclusive).\n\nResponse:\n\n{\n  \"success\": true,\n  \"messageId\": \"uuid-of-the-upscale-task\",\n  \"createdAt\": \"2026-01-15T12:00:00+00:00\"\n}\n\nCredits: 2\n\nPOST /tools/remove-bg — Background Removal\n\nRemove the background from an image.\n\nRequest:\n\n{\n  \"image\": \"https://example.com/photo.jpg\",\n  \"ref\": \"optional-tracking-id\",\n  \"webhookOverride\": \"https://your-server.com/webhook\"\n}\n\nResponse:\n\n{\n  \"success\": true,\n  \"messageId\": \"uuid-of-the-removebg-task\",\n  \"createdAt\": \"2026-01-15T12:00:00+00:00\"\n}\n\nCredits: 5\n\nPOST /tools/prompt-extend — Prompt Enhancement (Free)\n\nExpand a short prompt into a detailed, high-quality prompt.\n\nRequest:\n\n{\n  \"prompt\": \"a sunset\"\n}\n\nResponse:\n\n{\n  \"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...\"\n}\n\nCredits: Free"
      },
      {
        "title": "Status & History",
        "body": "GET /midjourney/message/{messageId} — Check Generation Status\n\nPoll this endpoint to check the progress of any generation task (works for all models, not just Midjourney).\n\nResponse (in progress):\n\n{\n  \"prompt\": \"a simple red circle on white background\",\n  \"status\": \"PROCESSING\",\n  \"progress\": 0,\n  \"messageId\": \"2346e0bc-c3c3-48ea-adec-3a21609fd288\",\n  \"createdAt\": \"2026-02-22T07:43:37+00:00\",\n  \"updatedAt\": \"2026-02-22T07:43:37+00:00\"\n}\n\nResponse (completed):\n\n{\n  \"prompt\": \"a simple red circle on white background\",\n  \"status\": \"DONE\",\n  \"images\": [\"https://cdn-new.imaginepro.ai/storage/v1/object/public/cdn/2346e0bc-c3c3-48ea-adec-3a21609fd288.png\"],\n  \"uri\": \"https://cdn-new.imaginepro.ai/storage/v1/object/public/cdn/2346e0bc-c3c3-48ea-adec-3a21609fd288.png\",\n  \"progress\": 100,\n  \"messageId\": \"2346e0bc-c3c3-48ea-adec-3a21609fd288\",\n  \"createdAt\": \"2026-02-22T07:43:37+00:00\",\n  \"updatedAt\": \"2026-02-22T07:43:49+00:00\"\n}\n\nResponse (failed):\n\n{\n  \"status\": \"FAIL\",\n  \"error\": \"Description of what went wrong\"\n}\n\nStatuses: SUBMITTED → PROCESSING → DONE | FAIL\n\nCredits: Free (polling is free)"
      },
      {
        "title": "Async Workflow",
        "body": "All generation endpoints are asynchronous. The workflow is:\n\nSubmit a generation request → receive a messageId\nPoll GET /midjourney/message/{messageId} every 3-5 seconds\nWait for status to be DONE (images ready) or FAIL (error)\nDownload the result from the uri or images array\n\nThe helper script's wait command automates this entire flow."
      },
      {
        "title": "Credit Cost Summary",
        "body": "OperationCreditsMidjourney Imagine (fast)10Midjourney Imagine (relax)5Midjourney Upscale/Variant5Flux Imagine6 per imageFlux Upscale2Nano Banana Imagine6Lumi Girl Imagine6MJ Video10Background Removal5Prompt EnhancementFreeStatus PollingFree"
      },
      {
        "title": "Python Helper Script",
        "body": "The included imaginepro_api.py is a zero-dependency Python script (stdlib only) that wraps all API calls."
      },
      {
        "title": "Commands",
        "body": "# Generate an image (async — returns messageId immediately)\npython3 imaginepro_api.py imagine --prompt \"a sunset over mountains\" --model flux\n\n# Generate and wait for result (blocking — polls until done)\npython3 imaginepro_api.py wait --prompt \"a sunset over mountains\" --model flux\n\n# Check status of a generation\npython3 imaginepro_api.py status --id <messageId>\n\n# Upscale (Midjourney)\npython3 imaginepro_api.py upscale --id <messageId> --button U1\n\n# Upscale (Flux)\npython3 imaginepro_api.py upscale --image \"https://example.com/img.jpg\" --scale 2\n\n# Remove background\npython3 imaginepro_api.py removebg --image \"https://example.com/photo.jpg\"\n\n# Enhance a prompt\npython3 imaginepro_api.py enhance --prompt \"a cat\"\n\n# List available models\npython3 imaginepro_api.py models"
      },
      {
        "title": "Flags",
        "body": "--json — Output raw JSON (default is human-readable)\n--timeout <seconds> — Max wait time for wait command (default: 300)\n--interval <seconds> — Polling interval for wait command (default: 5)"
      },
      {
        "title": "curl Examples",
        "body": "# Generate with Flux\ncurl -X POST https://api.imaginepro.ai/api/v1/flux/imagine \\\n  -H \"Authorization: Bearer $IMAGINEPRO_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\": \"a cyberpunk cityscape at sunset\"}'\n\n# Check status\ncurl https://api.imaginepro.ai/api/v1/midjourney/message/<messageId> \\\n  -H \"Authorization: Bearer $IMAGINEPRO_API_KEY\"\n\n# Enhance a prompt (free)\ncurl -X POST https://api.imaginepro.ai/api/v1/tools/prompt-extend \\\n  -H \"Authorization: Bearer $IMAGINEPRO_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\": \"a cat\"}'"
      },
      {
        "title": "Error Handling",
        "body": "API errors return JSON with message, error, and statusCode:\n\n{\n  \"message\": \"Prompt is required.\",\n  \"error\": \"Bad Request\",\n  \"statusCode\": 400\n}\n\nCommon error codes:\n\n400 — Missing required parameter or invalid value\n401 — Invalid or missing API key / insufficient credits\n404 — Message not found\n500 — Internal server error (retry after a short delay)"
      },
      {
        "title": "Tips for AI Agents",
        "body": "Always use the wait command for simple generation tasks — it handles the submit + poll loop automatically.\nCheck 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.\nUse enhance on short prompts before generating — it's free and dramatically improves quality.\nMidjourney supports prompt parameters like --ar 16:9 --style raw --chaos 20 directly in the prompt string.\nFor Nano Banana (virtual try-on, mockups), always provide reference image URLs in the contents array.\nPoll interval: 5 seconds is recommended. Don't poll faster than 3 seconds.\nTimeouts: Midjourney can take 30-120s. Video generation can take up to 15 minutes. Set timeouts accordingly."
      }
    ],
    "body": "ImaginePro AI Image Generation API\n\nGenerate 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.\n\nQuick Start\n# Set your API key (get one at https://platform.imaginepro.ai/dashboard/setup)\nexport IMAGINEPRO_API_KEY=\"your-api-key-here\"\n\n# Generate an image with Flux (fastest)\npython3 imaginepro_api.py wait --prompt \"a cyberpunk cityscape at sunset\" --model flux\n\n# Generate with Midjourney\npython3 imaginepro_api.py wait --prompt \"portrait of a warrior queen, cinematic lighting --ar 2:3\"\n\n# List available models and costs\npython3 imaginepro_api.py models\n\nAuthentication\n\nAll requests require a Bearer token obtained from the ImaginePro Platform dashboard:\n\nSign up at https://platform.imaginepro.ai\nPurchase credits from https://platform.imaginepro.ai/pricing\nGet your API key at https://platform.imaginepro.ai/dashboard/setup\nSet the environment variable: export IMAGINEPRO_API_KEY=\"your-key\"\n\nBase URL: https://api.imaginepro.ai/api/v1\n\nHeader: Authorization: Bearer <IMAGINEPRO_API_KEY>\n\nAvailable Models\nModel\tEndpoint\tCredits\tBest For\nMidjourney (alpha v6)\t/midjourney/imagine\t10 (fast) / 5 (relax)\tArtistic, photorealistic images\nFlux\t/flux/imagine\t6\tFast general-purpose generation\nNano Banana\t/universal/imagine\t6\tReference image + text (try-on, mockup, staging)\nLumi Girl\t/universal/zimage\t6\tCharacter portraits, anime, stylized\nMJ Video\t/video/mj/generate\t10\tVideo generation from start/end frames\nAPI Reference\nImage Generation\nPOST /midjourney/imagine — Midjourney Generation\n\nThe flagship model. Supports Midjourney parameters in the prompt string (e.g., --ar 16:9, --style raw, --relax).\n\nRequest:\n\n{\n  \"prompt\": \"a majestic eagle soaring over mountains --ar 16:9\",\n  \"ref\": \"optional-tracking-id\",\n  \"webhookOverride\": \"https://your-server.com/webhook\"\n}\n\nAppend --relax to the prompt for relax mode (5 credits instead of 10, slower).\nSupports all standard Midjourney prompt parameters: --ar, --style, --chaos, --no, --seed, --q, etc.\n\nResponse:\n\n{\n  \"success\": true,\n  \"messageId\": \"uuid-of-the-generation-task\",\n  \"createdAt\": \"2026-01-15T12:00:00+00:00\"\n}\n\n\nCredits: 10 (fast mode) / 5 (relax mode)\n\nPOST /flux/imagine — Flux Generation\n\nFast, high-quality generation. Supports batch generation.\n\nRequest:\n\n{\n  \"prompt\": \"a cozy cabin in the woods, watercolor style\",\n  \"n\": 1,\n  \"ref\": \"optional-tracking-id\",\n  \"webhookOverride\": \"https://your-server.com/webhook\"\n}\n\nn (optional, default 1): Number of images to generate (credits multiply by n).\n\nResponse:\n\n{\n  \"success\": true,\n  \"messageId\": \"uuid-of-the-generation-task\",\n  \"createdAt\": \"2026-01-15T12:00:00+00:00\"\n}\n\n\nCredits: 6 per image\n\nPOST /universal/imagine — Nano Banana (Reference Image Generation)\n\nMulti-modal generation using text + reference images. Ideal for virtual try-on, product mockups, interior staging, and style transfer.\n\nRequest:\n\n{\n  \"contents\": [\n    { \"type\": \"text\", \"text\": \"Image creation: woman wearing this dress in a garden\" },\n    { \"type\": \"image\", \"url\": \"https://example.com/dress.jpg\" }\n  ],\n  \"model\": \"nano-banana-2\",\n  \"ref\": \"optional-tracking-id\",\n  \"webhookOverride\": \"https://your-server.com/webhook\"\n}\n\ncontents: 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.\nmodel: Must be \"nano-banana-2\".\nSupports multiple reference images (e.g., a person photo + a garment photo for virtual try-on).\n\nResponse:\n\n{\n  \"success\": true,\n  \"messageId\": \"uuid-of-the-generation-task\",\n  \"createdAt\": \"2026-01-15T12:00:00+00:00\"\n}\n\n\nCredits: 6\n\nPOST /universal/zimage — Lumi Girl\n\nSpecialized model for character portraits and stylized images. Supports aspect ratio via --ar in the prompt.\n\nRequest:\n\n{\n  \"prompt\": \"anime girl with silver hair in a moonlit forest --ar 3:4\",\n  \"steps\": 4,\n  \"width\": 768,\n  \"height\": 1024,\n  \"ref\": \"optional-tracking-id\",\n  \"webhookOverride\": \"https://your-server.com/webhook\"\n}\n\nsteps: Always 4 (fixed).\nwidth / 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).\nDefault: 1024x1024 if no aspect ratio specified.\n\nResponse:\n\n{\n  \"success\": true,\n  \"messageId\": \"uuid-of-the-generation-task\",\n  \"createdAt\": \"2026-01-15T12:00:00+00:00\"\n}\n\n\nCredits: 6\n\nPOST /video/mj/generate — MJ Video\n\nGenerate a video from start and end frame images.\n\nRequest:\n\n{\n  \"prompt\": \"smooth camera pan with cinematic motion\",\n  \"startFrameUrl\": \"https://example.com/start.jpg\",\n  \"endFrameUrl\": \"https://example.com/end.jpg\",\n  \"timeout\": 900,\n  \"ref\": \"optional-tracking-id\",\n  \"webhookOverride\": \"https://your-server.com/webhook\"\n}\n\nstartFrameUrl (required): URL of the starting frame image.\nendFrameUrl (required): URL of the ending frame image.\nprompt (optional, default \"smooth motion transition\"): Motion description.\ntimeout (optional, default 900): Max processing time in seconds.\n\nResponse:\n\n{\n  \"success\": true,\n  \"messageId\": \"uuid-of-the-generation-task\",\n  \"createdAt\": \"2026-01-15T12:00:00+00:00\"\n}\n\n\nCredits: 10\n\nPost-Processing\nPOST /midjourney/button — Midjourney Upscale / Variant\n\nUpscale or create variants of Midjourney-generated images.\n\nRequest:\n\n{\n  \"messageId\": \"original-task-message-id\",\n  \"button\": \"U1\",\n  \"ref\": \"optional-tracking-id\",\n  \"webhookOverride\": \"https://your-server.com/webhook\"\n}\n\nmessageId: The messageId (task ID) from the original Midjourney generation.\nbutton: Action to perform. U1-U4 for upscaling quadrants, V1-V4 for variants.\n\nResponse:\n\n{\n  \"success\": true,\n  \"messageId\": \"uuid-of-the-upscale-task\",\n  \"createdAt\": \"2026-01-15T12:00:00+00:00\"\n}\n\n\nCredits: 5\n\nPOST /flux/upscale — Flux Upscale\n\nUpscale any image (not limited to Flux-generated).\n\nRequest:\n\n{\n  \"image\": \"https://example.com/image.jpg\",\n  \"scale\": 2,\n  \"ref\": \"optional-tracking-id\",\n  \"webhookOverride\": \"https://your-server.com/webhook\"\n}\n\nimage (required): URL of the image to upscale.\nscale (required): Upscale factor, must be between 2 and 4 (inclusive).\n\nResponse:\n\n{\n  \"success\": true,\n  \"messageId\": \"uuid-of-the-upscale-task\",\n  \"createdAt\": \"2026-01-15T12:00:00+00:00\"\n}\n\n\nCredits: 2\n\nPOST /tools/remove-bg — Background Removal\n\nRemove the background from an image.\n\nRequest:\n\n{\n  \"image\": \"https://example.com/photo.jpg\",\n  \"ref\": \"optional-tracking-id\",\n  \"webhookOverride\": \"https://your-server.com/webhook\"\n}\n\n\nResponse:\n\n{\n  \"success\": true,\n  \"messageId\": \"uuid-of-the-removebg-task\",\n  \"createdAt\": \"2026-01-15T12:00:00+00:00\"\n}\n\n\nCredits: 5\n\nPOST /tools/prompt-extend — Prompt Enhancement (Free)\n\nExpand a short prompt into a detailed, high-quality prompt.\n\nRequest:\n\n{\n  \"prompt\": \"a sunset\"\n}\n\n\nResponse:\n\n{\n  \"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...\"\n}\n\n\nCredits: Free\n\nStatus & History\nGET /midjourney/message/{messageId} — Check Generation Status\n\nPoll this endpoint to check the progress of any generation task (works for all models, not just Midjourney).\n\nResponse (in progress):\n\n{\n  \"prompt\": \"a simple red circle on white background\",\n  \"status\": \"PROCESSING\",\n  \"progress\": 0,\n  \"messageId\": \"2346e0bc-c3c3-48ea-adec-3a21609fd288\",\n  \"createdAt\": \"2026-02-22T07:43:37+00:00\",\n  \"updatedAt\": \"2026-02-22T07:43:37+00:00\"\n}\n\n\nResponse (completed):\n\n{\n  \"prompt\": \"a simple red circle on white background\",\n  \"status\": \"DONE\",\n  \"images\": [\"https://cdn-new.imaginepro.ai/storage/v1/object/public/cdn/2346e0bc-c3c3-48ea-adec-3a21609fd288.png\"],\n  \"uri\": \"https://cdn-new.imaginepro.ai/storage/v1/object/public/cdn/2346e0bc-c3c3-48ea-adec-3a21609fd288.png\",\n  \"progress\": 100,\n  \"messageId\": \"2346e0bc-c3c3-48ea-adec-3a21609fd288\",\n  \"createdAt\": \"2026-02-22T07:43:37+00:00\",\n  \"updatedAt\": \"2026-02-22T07:43:49+00:00\"\n}\n\n\nResponse (failed):\n\n{\n  \"status\": \"FAIL\",\n  \"error\": \"Description of what went wrong\"\n}\n\n\nStatuses: SUBMITTED → PROCESSING → DONE | FAIL\n\nCredits: Free (polling is free)\n\nAsync Workflow\n\nAll generation endpoints are asynchronous. The workflow is:\n\nSubmit a generation request → receive a messageId\nPoll GET /midjourney/message/{messageId} every 3-5 seconds\nWait for status to be DONE (images ready) or FAIL (error)\nDownload the result from the uri or images array\n\nThe helper script's wait command automates this entire flow.\n\nCredit Cost Summary\nOperation\tCredits\nMidjourney Imagine (fast)\t10\nMidjourney Imagine (relax)\t5\nMidjourney Upscale/Variant\t5\nFlux Imagine\t6 per image\nFlux Upscale\t2\nNano Banana Imagine\t6\nLumi Girl Imagine\t6\nMJ Video\t10\nBackground Removal\t5\nPrompt Enhancement\tFree\nStatus Polling\tFree\nPython Helper Script\n\nThe included imaginepro_api.py is a zero-dependency Python script (stdlib only) that wraps all API calls.\n\nCommands\n# Generate an image (async — returns messageId immediately)\npython3 imaginepro_api.py imagine --prompt \"a sunset over mountains\" --model flux\n\n# Generate and wait for result (blocking — polls until done)\npython3 imaginepro_api.py wait --prompt \"a sunset over mountains\" --model flux\n\n# Check status of a generation\npython3 imaginepro_api.py status --id <messageId>\n\n# Upscale (Midjourney)\npython3 imaginepro_api.py upscale --id <messageId> --button U1\n\n# Upscale (Flux)\npython3 imaginepro_api.py upscale --image \"https://example.com/img.jpg\" --scale 2\n\n# Remove background\npython3 imaginepro_api.py removebg --image \"https://example.com/photo.jpg\"\n\n# Enhance a prompt\npython3 imaginepro_api.py enhance --prompt \"a cat\"\n\n# List available models\npython3 imaginepro_api.py models\n\nFlags\n--json — Output raw JSON (default is human-readable)\n--timeout <seconds> — Max wait time for wait command (default: 300)\n--interval <seconds> — Polling interval for wait command (default: 5)\ncurl Examples\n# Generate with Flux\ncurl -X POST https://api.imaginepro.ai/api/v1/flux/imagine \\\n  -H \"Authorization: Bearer $IMAGINEPRO_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\": \"a cyberpunk cityscape at sunset\"}'\n\n# Check status\ncurl https://api.imaginepro.ai/api/v1/midjourney/message/<messageId> \\\n  -H \"Authorization: Bearer $IMAGINEPRO_API_KEY\"\n\n# Enhance a prompt (free)\ncurl -X POST https://api.imaginepro.ai/api/v1/tools/prompt-extend \\\n  -H \"Authorization: Bearer $IMAGINEPRO_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\": \"a cat\"}'\n\nError Handling\n\nAPI errors return JSON with message, error, and statusCode:\n\n{\n  \"message\": \"Prompt is required.\",\n  \"error\": \"Bad Request\",\n  \"statusCode\": 400\n}\n\n\nCommon error codes:\n\n400 — Missing required parameter or invalid value\n401 — Invalid or missing API key / insufficient credits\n404 — Message not found\n500 — Internal server error (retry after a short delay)\nTips for AI Agents\nAlways use the wait command for simple generation tasks — it handles the submit + poll loop automatically.\nCheck 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.\nUse enhance on short prompts before generating — it's free and dramatically improves quality.\nMidjourney supports prompt parameters like --ar 16:9 --style raw --chaos 20 directly in the prompt string.\nFor Nano Banana (virtual try-on, mockups), always provide reference image URLs in the contents array.\nPoll interval: 5 seconds is recommended. Don't poll faster than 3 seconds.\nTimeouts: Midjourney can take 30-120s. Video generation can take up to 15 minutes. Set timeouts accordingly."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/iamzifei/imaginepro-api",
    "publisherUrl": "https://clawhub.ai/iamzifei/imaginepro-api",
    "owner": "iamzifei",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/imaginepro-api",
    "downloadUrl": "https://openagent3.xyz/downloads/imaginepro-api",
    "agentUrl": "https://openagent3.xyz/skills/imaginepro-api/agent",
    "manifestUrl": "https://openagent3.xyz/skills/imaginepro-api/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/imaginepro-api/agent.md"
  }
}