Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Generate images with Model Studio DashScope SDK using Qwen Image generation models (qwen-image-max, qwen-image-plus-2026-01-09). Use when implementing or documenting image.generate requests/responses, mapping prompt/negative_prompt/size/seed/reference_image, or integrating image generation into the video-agent pipeline.
Generate images with Model Studio DashScope SDK using Qwen Image generation models (qwen-image-max, qwen-image-plus-2026-01-09). Use when implementing or documenting image.generate requests/responses, mapping prompt/negative_prompt/size/seed/reference_image, or integrating image generation into the video-agent pipeline.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
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.
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.
mkdir -p output/alicloud-ai-image-qwen-image python -m py_compile skills/ai/image/alicloud-ai-image-qwen-image/scripts/generate_image.py && echo "py_compile_ok" > output/alicloud-ai-image-qwen-image/validate.txt Pass criteria: command exits 0 and output/alicloud-ai-image-qwen-image/validate.txt is generated.
Write generated image URLs, prompts, and metadata to output/alicloud-ai-image-qwen-image/. Keep at least one sample JSON response per run. Build consistent image generation behavior for the video-agent pipeline by standardizing image.generate inputs/outputs and using DashScope SDK (Python) with the exact model name.
Install SDK (recommended in a venv to avoid PEP 668 limits): python3 -m venv .venv . .venv/bin/activate python -m pip install dashscope Set DASHSCOPE_API_KEY in your environment, or add dashscope_api_key to ~/.alibabacloud/credentials (env takes precedence).
Use one of these exact model strings: qwen-image qwen-image-plus qwen-image-max qwen-image-2.0 qwen-image-2.0-pro qwen-image-max-2025-12-30 qwen-image-plus-2026-01-09
prompt (string, required) negative_prompt (string, optional) size (string, required) e.g. 1024*1024, 768*1024 style (string, optional) seed (int, optional) reference_image (string | bytes, optional)
image_url (string) width (int) height (int) seed (int)
Minimal normalized request body: { "prompt": "a cinematic portrait of a cyclist at dusk, soft rim light, shallow depth of field", "negative_prompt": "blurry, low quality, watermark", "size": "1024*1024", "seed": 1234 } Preview workflow (download then open): curl -L -o output/alicloud-ai-image-qwen-image/images/preview.png "<IMAGE_URL_FROM_RESPONSE>" && open output/alicloud-ai-image-qwen-image/images/preview.png Local helper script (JSON request -> image file): python skills/ai/image/alicloud-ai-image-qwen-image/scripts/generate_image.py \\ --request '{"prompt":"a studio product photo of headphones","size":"1024*1024"}' \\ --output output/alicloud-ai-image-qwen-image/images/headphones.png \\ --print-response
FieldRequiredNotespromptyesDescribe a scene, not just keywords.negative_promptnoBest-effort, may be ignored by backend.sizeyesWxH format, e.g. 1024*1024, 768*1024.stylenoOptional stylistic hint.seednoUse for reproducibility when supported.reference_imagenoURL/file/bytes, SDK-specific mapping.
Use the DashScope SDK and map the normalized request into the SDK call. Note: For qwen-image-max, the DashScope SDK currently succeeds via ImageGeneration (messages-based) rather than ImageSynthesis. If the SDK version you are using expects a different field name for reference images, adapt the input mapping accordingly. import os from dashscope.aigc.image_generation import ImageGeneration # Prefer env var for auth: export DASHSCOPE_API_KEY=... # Or use ~/.alibabacloud/credentials with dashscope_api_key under [default]. def generate_image(req: dict) -> dict: messages = [ { "role": "user", "content": [{"text": req["prompt"]}], } ] if req.get("reference_image"): # Some SDK versions accept {"image": <url|file|bytes>} in messages content. messages[0]["content"].insert(0, {"image": req["reference_image"]}) response = ImageGeneration.call( model=req.get("model", "qwen-image-max"), messages=messages, size=req.get("size", "1024*1024"), api_key=os.getenv("DASHSCOPE_API_KEY"), # Pass through optional parameters if supported by the backend. negative_prompt=req.get("negative_prompt"), style=req.get("style"), seed=req.get("seed"), ) # Response is a generation-style envelope; extract the first image URL. content = response.output["choices"][0]["message"]["content"] image_url = None for item in content: if isinstance(item, dict) and item.get("image"): image_url = item["image"] break return { "image_url": image_url, "width": response.usage.get("width"), "height": response.usage.get("height"), "seed": req.get("seed"), }
ErrorLikely causeAction401/403Missing or invalid DASHSCOPE_API_KEYCheck env var or ~/.alibabacloud/credentials, and access policy.400Unsupported size or bad request shapeUse common WxH and validate fields.429Rate limit or quotaRetry with backoff, or reduce concurrency.5xxTransient backend errorsRetry with backoff once or twice.
Default output: output/alicloud-ai-image-qwen-image/images/ Override base dir with OUTPUT_DIR.
Store the returned image in object storage and persist only the URL in metadata. Cache results by (prompt, negative_prompt, size, seed, reference_image hash) to avoid duplicate costs. Add retries for transient 429/5xx responses with exponential backoff. Some backends ignore negative_prompt, style, or seed; treat them as best-effort inputs. If the response contains no image URL, surface a clear error and retry once with a simplified prompt.
Use WxH format (e.g. 1024*1024, 768*1024). Prefer common sizes; unsupported sizes can return 400.
Do not invent model names or aliases; use official model IDs only. Do not store large base64 blobs in DB rows; use object storage. Do not omit user-visible progress for long generations.
Confirm user intent, region, identifiers, and whether the operation is read-only or mutating. Run one minimal read-only query first to verify connectivity and permissions. Execute the target operation with explicit parameters and bounded scope. Verify results and save output/evidence files.
See references/api_reference.md for a more detailed DashScope SDK mapping and response parsing tips. See references/prompt-guide.md for prompt patterns and examples. For edit workflows, use skills/ai/image/alicloud-ai-image-qwen-image-edit/. Source list: references/sources.md
Agent frameworks, memory systems, reasoning layers, and model-native orchestration.
Largest current source with strong distribution and engagement signals.