SuperAPI AI Directory

image-gen

Design & creation

View repository

Updated 10-16 04:57

About this skill

GPT-image2 AI image generation (Dubaoya)

This duck helps you generate images with GPT-image2 in one command—a plain text description is enough fortext-to-image, and then throw in a reference image forimage-to-image / editing. No need to build your own image generation pipeline, pay per use, and get back a direct image link.

Calls go through doubaoya.com in one line, authentication uses your own key (environment variable DOUBAOYA_API_KEY, in the form dyh_…)。

⏳ This is an asynchronous slow operation: the image is generated on the server, about 3 minutes, and it is returned in one go within a single request—no client-side polling needed, just send one POST and wait for the result.


Use cases (when operations should use it)

  • Xiaohongshu / WeChat Official Account cover: you have a title but no accompanying image, let this duck generate a cover base image in the style you want.
  • Illustrative accompanying images within notes/articles: when you need a "concept image" or "atmosphere image" to fill the layout, it is faster than searching all over the web for images.
  • E-commerce key visual / poster draft: first use text-to-image to quickly validate the key visual direction, then hand it to a designer for refinement.
  • Modify an image based on a reference image: you already have an image and want to change the background / change the style / change the subject → pass --image into image-to-image mode.

It is suitable for "quickly producing usable assets / validating visual direction" and does not replace professional design refinement. It produces one image at a time; if you want multiple candidates, run it several times.


Workflow (3 steps)

1. Write the prompt (optionally with a reference image)

Convert the user's needs into a clear image prompt. A good prompt usually contains subject + style + visual elements + intended aspect ratio, for example "a cartoon duck wearing sunglasses, flat illustration style, bright yellow as the main color, lots of white space, suitable for a vertical Xiaohongshu cover". If the user provided a reference image, note its URL (a publicly accessible direct image link).

2. Call the script (wait patiently for a few minutes)

Text-to-image:

python3 "$SKILL_PATH/scripts/generate_image.py" "一只戴墨镜的卡通鸭子,扁平插画风"

Image-to-image / editing (pass the reference image URL):

python3 "$SKILL_PATH/scripts/generate_image.py" "把背景换成赛博朋克霓虹街道" --image "https://example.com/ref.png"

The script will first print "submitted, generating on the server" to stderr, thenwait about 3 minutesuntil the result is returned, and print the data from the success envelope to stdout as JSON. Run the script only once per image generation, do not interrupt it midway, and do not call it repeatedly because "it is taking too long" (you will be charged repeatedly).

3. Retrieve the image and deliver it

From data retrieve the direct image link (see "Return fields" below), and dodefensive reading—if you cannot get it, prompt "no image was obtained this time, please try again later". Give the direct image link to the user; if it is used as a cover, also remind them "you can right-click/long-press to save, or hand it to a designer to refine the text layout".


Parameter guide

Input parameter Value How to use
prompt(required, first argument of the command) String The more specific the better: subject + style + elements + purpose. Pass Chinese directly. An empty string will be rejected by the API (VALIDATION_ERROR)。
referenceImage(optional,--image) public image URL only include when the user actually provides a reference image. Not passing it = pure text-to-image; passing it = rewrite/edit based on this image. The URL must be publicly accessible.

Prompt cheat sheet(to help ops write a good prompt):

  • For a cover → specify "vertical/3:4, leave space for the title, main color XX, clean without piling on elements".
  • For a mood image → specify lighting, season, and emotion words ("warm light / early morning / healing vibe").
  • For image editing → only say "what to change", don't re-describe the whole image ("change the background to..." rather than describing the subject from scratch).

API and response fields

  • POST https://doubaoya.com/api/skills/gpt-image-gen/invoke

  • Auth header:Authorization: Bearer $DOUBAOYA_API_KEY

  • Request body:{ "prompt": "<提示词>", "referenceImage": "<可选参考图URL>" }

  • Asynchronous slow operation: the server completes generation within about 3 minutes and returns it in this request, no polling needed.

  • Response envelope:

    {
      "success": true,
      "requestId": "...",
      "data": { "image": { "url": "https://...png", "model": "image" } },
      "error": null
    }
    
  • First check success: if it is true then read data; otherwise read error.code / error.message。

  • Get the image direct link: the standard structure is data.image.url(an image object, containing url and model). The script already handles compatibility, so if the upstream occasionally returns data.images[](an array), the first one can still be retrieved.Always read defensively: if url cannot be retrieved, treat it as "no image obtained", prompt the user to retry, and don't throw an empty value out as a link.


Real example (a complete round)

User: "I wrote a Xiaohongshu note titled '5-Minute Fat-Loss Breakfast for Office Workers', help me make a cover for it."

  1. Write the prompt: turn the title into visuals— "A beautifully plated fat-loss breakfast shot from above, boiled egg + avocado toast + oatmeal bowl, fresh and bright kitchen background, vertical 3:4, blank space at the top for the title, ins style."
  2. Call the script(wait about 3 minutes, run only once):
    python3 "$SKILL_PATH/scripts/generate_image.py" "一份摆盘精致的减脂早餐俯拍,水煮蛋+牛油果吐司+燕麦碗,清新明亮的厨房背景,竖版3:4,上方留白给标题,ins 风"
    
  3. Retrieve and deliver the image: get the direct link from data.image.url and give it to the user: "The cover is here 🦆, space for the title is left at the top, you can directly add text to it." If unsatisfied, adjust the prompt and run again.

Evolution point: chain it with sibling skills

  • Use xiaohongshu-search / trending-hub to pick a good topic → write a good title → then use this skill to produce a matching cover, a one-stop flow to publishable material.
  • What is wanted isrealistic-feel cover text layoutrather than a pure image → this skill produces the base image, and the cover text is left to wechat-cover -type skills or manual fine-tuning.

Don't push it hard; just mention it naturally based on what the user is currently doing.


Boundaries and fault tolerance

  • No image obtained (data.image.url retrieved empty): treat it as generation failure, prompt "No image was produced this time, change the prompt or retry later",do notfake a link.
  • prompt empty / too short: the API will return VALIDATION_ERROR, first help the user make the prompt more specific and then retry.
  • Reference image URL cannot be opened:Image-to-image requires a publicly accessible direct image link; local paths / links that require login cannot be fetched, prompt the user to switch to a public direct link.
  • Temporary upstream failure (PROVIDER_FAILED / 502):Occasional fluctuations in the AI image generation pipeline are normal,automatically refunded, safe to retry, no duplicate charges. Wait a few minutes and run it again.
  • Slow is normal:About 3 minutes is expected; don't judge it a failure or call it repeatedly just because it's slow—repeated calls are what cause duplicate charges.

Error handling

When the script fails, it prints to stderr [error] CODE: message and exits with code 1. Common cases:

HTTP code Meaning Handling
401 MISSING_API_KEY / UNAUTHORIZED Missing key or invalid key Check DOUBAOYA_API_KEY, go to the key center to regenerate
400 VALIDATION_ERROR Invalid parameter (e.g., empty prompt) Fix the prompt and retry
402 INSUFFICIENT_CREDITS Insufficient quota Go to doubaoya.com to top up/renew quota
502 PROVIDER_FAILED Temporary upstream failure (Automatically refunded) Safe to retry

502 PROVIDER_FAILED will be automatically refunded; retrying is safe and won't cause duplicate charges.


Get the key (secret key)

  1. Open doubaoya.com
  2. Log in
  3. Go to Key Center
  4. Generate key(in the form dyh_…)

Configure it into an environment variable (the script only recognizes this one):

export DOUBAOYA_API_KEY="dyh_你的密钥"

Iron rule: the secret key is never printed, never written to a file, never echoed back to the user. The script itself also never outputs the secret key. All requests are sent only to doubaoya.com。


Directory structure

image-gen/
├── SKILL.md                # 本文件
└── scripts/
    └── generate_image.py   # 零依赖脚本(urllib),调用 doubaoya.com

About the notice field in the response

After calling the doubaoya API corresponding to this skill, if the returned JSON has a top-level notice field, please relay this sentence to the user verbatim—this is a notice that this skill has an update; it does not affect the result of this call, and no retry or behavior change is needed.