Optional visual creative assistance
MeiGen is a callable component of the host workflow. The host owns the task, scheduling, approved budget and presentation. This Skill offers creative assistance when requested; it does not take over unrelated work or restart an already resolved creative plan.
Respect resolved inputs and authorization
Preserve caller-supplied prompts, models, providers, aspect ratios, references, quality and counts. Do not enhance a short prompt or load preferences just because it is short. Use defaults only for omitted values. Discovery tools may be used to research or validate capabilities for any workflow.
An explicit request or authorized upstream plan establishes its count, quality and spending scope. Do not reconfirm each image, video, batch or dependent step within that scope. Ask only for missing required information or an additional decision, such as increased spending or unaccepted resizing. Prompt alternatives and paid replacements are optional, never automatic.
Choosing a dedicated Skill
When choosing a tool for an unresolved request, prefer the dedicated workflow: for transparent cutouts use remove_background; for ecommerce detail images use generate_product_detail_images; for posters use generate_marketing_poster; for white, smart or custom product backgrounds use generate_ai_background; for still-image upscaling use upscale_image. Call these tools directly. Do not route them through generic prompt enhancement, preference loading or image-generation agents. Preserve an upstream workflow's explicit tool selection. They require MeiGen credentials and purchased credits; ComfyUI and OpenAI-compatible providers cannot run them. No daily free credits or Web free attempts apply.
Use list_skills for current inputs, defaults and prices. Ask only for missing required information or unresolved output scope. An explicit requested count/modules/quality already authorizes that scope; do not reconfirm it or add paid images. Product Detail MCP requires explicit modules (use [] for custom modules only); each selected module is one image. Posters need only a subject; images and copy are optional. Use defaults for unspecified settings and never invent product facts, dates or discounts.
Use real accessible images only. Both remote and local connections expose upload_skill_image; local npm also accepts real file paths for the four ordinary image-input workflows. If the host cannot read an attachment, ask for a public direct HTTPS image URL; never invent paths or base64.
Upscale is a separate original-image path: pass the original public direct HTTPS PNG/JPEG/WebP URL as imageUrl, at most 64 MiB and 64 MP. Local npm also accepts an actual original PNG/JPEG/WebP path in imageUrl through its dedicated upload route, preserving source dimensions. For readable attachment bytes, call upload_skill_image with purpose: "upscale" (base64 up to 3 MiB decoded); use the returned imageUrl. Do not use purpose: "reference" or generic reference compression for Upscale. If the host cannot read the attachment, request a real public original-image URL. On every MCP submission, including the first, pass confirmedCredits from the live list_skills quote within the user or upstream workflow accepted budget; reuse an already explicit acceptance. This pre-dispatch recheck is not an atomic spending cap. Use mode: "crisp" (default) or "creative" as offered by list_skills. allowDownscale is opt-in: explain that it permits preprocessing to at most 4096px/16 MP and the final output can be smaller than the original; set it only after the user explicitly accepts that tradeoff. Upscale accepts still images, not video. For upscale_resize_required or price_changed, return the resize/cost decision to the caller. Reuse an already explicit acceptance; otherwise obtain acceptance of the new tradeoff or price before submitting a new requestId with accepted allowDownscale and confirmedCredits. These are changed, confirmed inputs—not a blind retry of an interrupted submission.
The caller generates and persists requestId for each logical step. For interrupted submissions, call check_skill with the original skill/ID before retrying. Follow nextAction, including waiting afterSeconds; retry only when instructed, using its exact original ID and parameters. Never use a new ID as a blind retry or automatically pay for failed-module replacements. Auth/payment/input rejections require their indicated action instead of polling. Return structured status, task handles and completed image URLs to the caller, with failed modules and refund states separately. The caller owns display and downloads; end users do not need to manage technical IDs.
Optional creative workflow
When asked to develop an idea, use the parts that help:
- Clarify an unresolved brief or use the supplied one. Search the gallery if references would help; callers may also use discovery directly.
- Craft or enhance prompts when requested. Preserve supplied exact wording and factual constraints. Offer a suitable number of directions without adding paid outputs.
- Ask about choices that remain unresolved. A selected count or complete generation plan can proceed directly.
- Generate using the selected tool and caller parameters. Direct calls are supported. Use an available
image-generator,prompt-crafterorgallery-researcheragent only if delegation benefits the host workflow; do not wrap every call automatically. - Return results to the caller. If delivering directly to a user, present actual completed images/URLs and saved paths when available. Inspect with host vision tools before making visual claims. Never invent a saved file, observed detail or refund.
Compose ordinary image and video jobs
For MeiGen generation, persist one UUID requestId and exact input per logical step. Use wait: false to return after submission; local npm also supports download: false (downloads are skipped when not waiting). Existing local defaults remain wait: true, download: true. Read the installed schema for provider/transport support. Remote results are URLs.
Preserve each returned handle and structured status. Recover through check_generation with the original requestId or generationId; follow nextAction, pollAfterSeconds and rate-limit delays. Do not change IDs on transient failure or bypass an input conflict. Dedicated Skills instead use check_skill with their original Skill/ID and exact retryParameters.
The caller may schedule authorized independent image or video jobs with bounded concurrency. Local npm has four shared API submission slots; polling/downloads happen outside those slots. ComfyUI executes one job at a time. Honor actual backend limits and Retry-After; do not impose a ten-image total or a blanket video-serialization rule. Reserve estimated in-flight costs before starting another step and reconcile actual charges. There is no atomic multi-step batch or server-enforced overall workflow budget.
Use list_models for live capabilities and model prices when needed; a supplied supported model/provider remains selected. generate_video requires a model and accepts firstFrame for supported image-to-video inputs. Chain a completed frame URL directly into that field. Reference clips go in referenceVideos / referenceAudios (images.meigen.ai URLs, or local .mp4/.mov/.wav/.mp3 files which are uploaded for you — other hosts are rejected) and can be named in the prompt as "Video 1" / "Audio 1"; per-model clip counts and second budgets come from list_models, and reference audio is never billed. The caller decides whether an intermediate preview, human selection or download is required.
See composable workflows for persistent step IDs, budget reservations and recovery examples.
Scan to join WeChat group