Install
openclaw skills install @anyunzhong/infinimo-ai-design-image-createGenerate AI images via the Infinimo AI Design API—model/aspect/resolution selection, reference uploads, job submission, and result polling. Use for text-to-image, image-to-image, e-commerce creatives, and reference-based generation.
openclaw skills install @anyunzhong/infinimo-ai-design-image-createInfinimo AI Design is an AI design platform for cross-border e-commerce product images and video. Built for Amazon, Shopify, and global sellers, it delivers studio-quality white-background heroes, lifestyle scenes, and listing-ready visuals. This skill covers multi-style image generation and editing so teams can produce commercial, marketplace-ready assets quickly.
This skill calls the Infinimo AI Design image generation API (same as the web General image generation page): model selection, reference upload, job submission, and result retrieval.
Web page: https://design.infinimo.ai/?source=q-i-d-clawhub
https://www.clawec.com/apiToken: <TOKEN> (session token or API Key)Content-Type: application/json (JSON endpoints)Time-Zone: Asia/Shanghai (optional; matches the web app)Read INFINIMO_TOKEN or INFINIMO_API_KEY from the environment first; if unset, ask the user—never hardcode credentials.
Note: Image generation uses the
Tokenheader, notAuthorization: Bearerused by/aigc/tool/*open tools.
The web app attaches these on every request (query for GET, body fields for POST):
| Parameter | Description |
|---|---|
| platform | Platform id from runtime config |
| terminal | Client type; web uses 4 |
| flag | App flag from runtime config |
| language | Locale, e.g. en |
Scripts may default to: platform=1&terminal=4&language=en (same for upload).
1. GET /aigc/ec_media/image/create/dic → models / ratios / sizes
2. POST /upload/image → upload reference images (optional, max 12)
3. POST /aigc/ec_media/image/create → submit generation job
4. GET /aigc/ec_media/image/create/logs → poll for results
Generation is usually async. After a successful submit, poll logs until urls is non-empty or fail=true.
GET /aigc/ec_media/image/create/dic
Returns models, aspect ratios, and resolutions. Use each option’s id when submitting a job.
curl -s -G "https://www.clawec.com/api/aigc/ec_media/image/create/dic" \
-H "Token: $INFINIMO_TOKEN" \
--data-urlencode "platform=1" \
--data-urlencode "terminal=4" \
--data-urlencode "language=en"
Or use the script:
bash scripts/dic.sh
data| Field | Type | Description |
|---|---|---|
| models | array | Available generation models |
| ratios | array | Aspect ratios; default to the first if omitted |
| sizes | array | Resolutions; default to the first if omitted |
| Field | Description |
|---|---|
| id | Model id; pass as model |
| title | Display name |
| point | Credits per image (optional) |
| level | Required membership tier (optional) |
| levelText | Tier label (optional) |
| Field | Description |
|---|---|
| id | Pass as ratio / size |
| title | Display name, e.g. 16:9, 2K |
POST /upload/image
Upload local images via multipart/form-data; use returned URLs in the images array on create.
| Parameter | Location | Required | Description |
|---|---|---|---|
| file | form | yes | Image file |
| platform | form | yes | e.g. 1 |
| terminal | form | yes | e.g. 4 |
| language | form | no | e.g. en |
Limits (same as web):
image/* onlydata.url or data.path; prepend Base URL if path is relativecurl -s -X POST "https://www.clawec.com/api/upload/image" \
-H "Token: $INFINIMO_TOKEN" \
-F "file=@/path/to/reference.jpg" \
-F "platform=1" \
-F "terminal=4" \
-F "language=en"
Or use the script:
bash scripts/upload.sh /path/to/reference.jpg
data{
"url": "https://cdn.example.com/xxx.jpg"
}
POST /aigc/ec_media/image/create
| Parameter | Location | Required | Description |
|---|---|---|---|
| prompt | body | yes | Prompt text |
| model | body | no | Model id from dic.models[].id |
| ratio | body | no | Ratio id from dic.ratios[].id |
| size | body | no | Size id from dic.sizes[].id |
| images | body | no | Reference image URLs from upload |
Reference images in prompts: after upload, refer to them in order as [Image 1], [Image 2], … e.g. Place the product from [Image 1] on a pure white background.
curl -s -X POST "https://www.clawec.com/api/aigc/ec_media/image/create" \
-H "Token: $INFINIMO_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"prompt": "A cute orange cat, product photography style",
"model": "MODEL_ID",
"ratio": "RATIO_ID",
"size": "SIZE_ID",
"images": ["https://cdn.example.com/ref.jpg"],
"platform": 1,
"terminal": 4,
"language": "en"
}'
Or use the script:
bash scripts/create.sh \
--prompt "A cute orange cat" \
--model MODEL_ID \
--ratio RATIO_ID \
--size SIZE_ID \
--images '["https://cdn.example.com/ref.jpg"]'
Success returns status: 1; data is usually {}. Fetch output URLs from logs.
GET /aigc/ec_media/image/create/logs
| Parameter | Location | Required | Description |
|---|---|---|---|
| start | query | no | Page index, starts at 1, default 1 |
| size | query | no | Page size; web default 5 |
curl -s -G "https://www.clawec.com/api/aigc/ec_media/image/create/logs" \
-H "Token: $INFINIMO_TOKEN" \
--data-urlencode "start=1" \
--data-urlencode "size=5" \
--data-urlencode "platform=1" \
--data-urlencode "terminal=4" \
--data-urlencode "language=en"
Or use the script:
bash scripts/logs.sh 1 5
data| Field | Description |
|---|---|
| count | Total records |
| more | 1 = more pages, 0 = none |
| start | Next page index |
| items | Generation records |
| Field | Description |
|---|---|
| id | Record id |
| urls | Output image URLs; empty while generating |
| fail | true if generation failed |
| param | Original params (prompt / model / ratio / size / images) |
| time | Created-at timestamp |
logs?start=1&size=5urls and failurls is empty and fail is not true, wait 3–5s and retrywss://www.clawec.com/api/aigc/socket for image_result_refresh; scripts can poll onlyGET /aigc/ec_media/image/log/delete?id=<record_id>
All endpoints share this wrapper:
{
"status": 1,
"code": 200,
"msg": "success",
"data": { ... },
"pointInfo": { "type": 0, "point": 0 }
}
status: 1 = success, 0 = failurecode: 2001 = not signed in / invalid Token, 2002 = insufficient creditsdata: payloadpointInfo: credit usageSee references/response-schema.md for full field notes.
INFINIMO_TOKEN or INFINIMO_API_KEY is seturls appear or fail is confirmedDefault to an English summary with:
failpointInfo or model point is presentInput: Generate a wireless earbuds product shot on white background using my uploaded photo
Steps:
dic.sh → model=flux-pro, ratio=1:1, size=2Kupload.sh ref.jpg → https://cdn.../ref.jpgcreate.sh --prompt "White background product photo, wireless earbuds, soft studio lighting" --model flux-pro --ratio 1:1 --size 2K --images '["https://cdn.../ref.jpg"]'logs.sh → urls: ["https://cdn.../output.png"]Summary: