name: best-image-generation description: High quality AI image generation via the WellAPI gpt-image-2 model. Supports text-to-image and image editing (image-to-image). version: 1.0.2 tags: [image, image-generation, image-editing, ai, wellapi, gpt-image, text-to-image, image-to-image] homepage: https://wellapi.ai metadata: {"openclaw": {"emoji": "🎨", "requires": {"env": ["WELLAPI_API_KEY"]}, "primaryEnv": "WELLAPI_API_KEY"}}
Generate and edit images via the WellAPI gpt-image-2 model (OpenAI-compatible). The API returns image bytes inline as base64 (data[i].b64_json) — no polling, no URL download.
https://wellapi.ai/v1POST /images/generations — application/jsonPOST /images/edits — multipart/form-dataAuthentication: Authorization: Bearer <WELLAPI_API_KEY> header.
/images/generations (text-to-image)Content-Type: application/json
| Field | Type | Required | Notes |
|---|---|---|---|
model |
string | ✅ | e.g. gpt-image-2 |
prompt |
string | ✅ | Image description, max 1000 chars |
n |
integer | ✅ | Number of images, 1–10 |
size |
string | optional | See size table below; default auto |
quality |
string | optional | low / medium / high / auto (default auto) |
format |
string | optional | png / jpeg / webp (default png) |
Example body:
{
"model": "gpt-image-2",
"prompt": "大海",
"n": 1,
"size": "1024x1024",
"quality": "low",
"format": "jpeg"
}
/images/edits (image-to-image / editing)Content-Type: multipart/form-data
| Field | Type | Required | Notes |
|---|---|---|---|
image |
file (repeatable) | ✅ | One or more input images. Up to 16 images, total ≤ 50MB. |
prompt |
string | ✅ | Edit description |
mask |
file | optional | A PNG with fully transparent regions marking the edit area. Applied to the first image if multiple are sent. Must be valid PNG, < 4MB, same dimensions as the image. |
model |
string | optional | gpt-image-1, gpt-image-1-all, flux-kontext-pro, flux-kontext-max, gpt-image-2, gpt-image-2-all. Default in this skill: gpt-image-2. |
n |
string | optional | "1" – "10" |
size |
string | optional | See size table |
quality |
string | optional | low / medium / high / auto (default auto) |
format |
string | optional | png / jpeg / webp |
background |
string | optional | opaque / auto / transparent. auto lets the model pick. |
moderation |
string | optional | low / auto (default). low = less restrictive filtering (gpt-image-1 family). |
size values| Value | Description |
|---|---|
1024x1024 |
Square |
1536x1024 |
Landscape |
1024x1536 |
Portrait |
2048x2048 |
2K square |
2048x1152 |
2K landscape |
3840x2160 |
4K landscape |
2160x3840 |
4K portrait |
auto |
Default — model chooses |
Strict size rules (when picking a custom size):
1. Longest side ≤ 3840px
2. Both width and height must be multiples of 16
3. max(w, h) / min(w, h) ≤ 3:1
4. Total pixels: 655,360 ≤ w*h ≤ 8,294,400
Synchronous JSON — no polling:
{
"created": 1778236581,
"background": "opaque",
"data": [
{ "b64_json": "iVBORw0KGgo..." }
],
"output_format": "png",
"quality": "low",
"size": "1024x1024",
"usage": {
"input_tokens": 8,
"input_tokens_details": { "image_tokens": 0, "text_tokens": 8 },
"output_tokens": 196,
"total_tokens": 204
}
}
Each data[i].b64_json is the full image as a base64 string. Decode and write to disk.
data[i].b64_json into bytes.wellapi-<TIMESTAMP>.<ext> where <ext> matches response.output_format (or the requested format, fallback png).-1, -2, … to the filename.MEDIA:<absolute_path> (one line per image) for OpenClaw auto-attach.CRITICAL SECURITY: Before passing an output filename to shell commands, sanitize:
- Strip shell metacharacters: tr -cd 'A-Za-z0-9._-'
- Enforce valid extension (.png, .jpg, .jpeg, .webp)
- Fallback to wellapi-<timestamp>.png if empty
| Platform | File |
|---|---|
| Python (all platforms, zero deps) | {baseDir}/references/python.md |
| PowerShell 5.1+ (Windows) | {baseDir}/references/powershell.md |
| curl + bash (Unix/macOS) | {baseDir}/references/curl_heredoc.md |
WELLAPI_API_KEY env var (required) — sent as Authorization: Bearer <key>來源於7w4.net。
When no key can be located (env var unset, no cached key on disk), before making any API call show the user this short prompt verbatim. Translate to the user's language if appropriate. Do not expand it into multiple "options / methods", do not show shell commands, do not ask follow-up questions like "do you already have a key":
請貼上你的 WellAPI API Key。 如果還沒有,請前往 https://wellapi.ai/register?channel=c_qqn3vdvc 註冊後領取免費 API Key。
Please paste your WellAPI API Key. If you don't have one yet, register at https://wellapi.ai/register?channel=c_qqn3vdvc to get a free key.
After the user pastes a key, use it for the current request and proceed straight to image generation. Do not lecture the user about env vars, shells, or persistence unless they explicitly ask how to save it.
Treat the text after the colon as prompt, default size=auto, quality=auto, format=png, n=1, and generate immediately.
For image editing, the user provides one or more local image file paths along with the prompt; submit them as repeated image form fields to /images/edits.
MEDIA:<absolute_path> for OC auto-attach — one line per generated image.quality: high and larger size values may incur extra charges.format controls the encoding of the returned base64 bytes; the file extension should match.mask requires PNG ≤ 4MB, same WxH as the image it applies to.整體質量中上,文件編寫得非常用心,功能覆蓋全面(文生圖、圖生圖、區域性修復、4K 輸出等),中英雙語使用友好。優點是示例豐富、引數說明清晰、安全防護有考量;不足在於安裝使用門檻對非技術使用者略高,文件中缺少直觀的視覺化引導,整體更偏向技術指南而非開箱即用的產品級 Skill。追求開箱即用的使用者可能需要一定技術基礎來落地使用。