Alibabacloud Bailian Image Creator
/install alibabacloud-bailian-image-creator
AI Image Creator
Professional-grade AI image creation skill built on Alibaba Cloud DashScope API.
Warning: Before executing any image task, you must read and follow the "Mandatory Rules" section. Violations will cause task failure.
Mandatory Rules
First Principle: Must Use Existing Scripts
All image generation, editing, and understanding tasks must and can only be completed by running existing scripts in the scripts/ directory.
- Do NOT write your own API call code -- Do not create new Python scripts to call DashScope API. You must use the scripts specified in the "Task-to-Script Mapping" table below
- Do NOT use PIL/Pillow or other local libraries for image generation or editing (only allowed for auxiliary operations such as size validation)
- Do NOT use third-party APIs -- Including but not limited to Pollinations.ai, Stability.ai, DALL-E, Midjourney
- Do NOT create mock/simulated scripts -- Do not bypass real API calls in any way
- Do NOT use deprecated models --
wanx-v1,wanx-v2,wan2.6-imageand other legacy models are discontinued - Do NOT mix APIs -- Qwen models (qwen-) can only use
MultiModalConversation.call(), Wanx models (wan2.7-) can only useImageGeneration.call() - Do NOT use curl to call DashScope REST API -- Must call through provided scripts, do not write shell scripts as substitutes
- Do NOT generate placeholder/blank images -- Do not use hardcoded byte streams, blank canvases, or PIL-scaled images to impersonate API-generated images
- Do NOT claim success when API calls fail -- Must truthfully report failure reasons, do not generate false success reports
Task-to-Script Mapping (The Only Execution Method)
Based on user request keywords, look up the table to select the script. No other methods are allowed:
| User Request Keywords | Script | API | Default Model |
|---|---|---|---|
| Wanx, wan2.7, reference image + generation, style fusion, multi-image fusion, graffiti-on-car, virtual try-on | wanx_generate.py |
ImageGeneration.call() |
wan2.7-image |
| 4K HD text-to-image | wanx_generate.py |
ImageGeneration.call() |
wan2.7-image-pro |
| A set of coherent images, image series generation | wanx_generate.py |
ImageGeneration.call() |
wan2.7-image-pro |
| Text-to-image, generate image, draw a picture (no reference image) | text_to_image.py |
MultiModalConversation.call() |
qwen-image-2.0-pro |
| Edit image (URL input) | image_edit.py |
MultiModalConversation.call() |
qwen-image-edit-max |
| Edit image (local file) | image_edit_base64.py |
MultiModalConversation.call() |
qwen-image-edit-max |
| Analyze/understand image content, describe image | image_understanding.py |
chat.completions.create() |
qwen3.5-plus |
Disambiguation Priority Rules (when multiple keywords match simultaneously):
- User mentions "Wanx" or "wan2.7" -> Use
wanx_generate.pydirectly, regardless of whether "generate image" or similar words are present - User provides reference image URLs and requests generating a new image -> Use
wanx_generate.py(Wanx supports multi-image reference input) - Text description only, no reference image -> Use
text_to_image.py
Allowed Models:
| Script | Allowed Models |
|---|---|
text_to_image.py |
qwen-image-2.0-pro, qwen-image-2.0 |
wanx_generate.py |
wan2.7-image-pro, wan2.7-image |
image_edit.py / image_edit_base64.py |
qwen-image-edit-max, qwen-image-2.0-pro, qwen-image-edit-plus, qwen-image-edit |
image_understanding.py |
qwen3.5-plus, qwen-vl-max, qwen-vl-plus |
API Key Security Management
Scripts automatically handle key retrieval via api_key.py. The Agent does not need to and should not manually extract, set, or pass API Key values.
- Key retrieval is automated: Scripts internally call
api_key.pyto automatically obtain keys from config files/environment variables, or auto-create via CLI. The Agent only needs to run the script command - Never hardcode any form of key: Including
api_key = "sk-...",export DASHSCOPE_API_KEY="sk-...", and assigning keys in shell scripts - Never extract keys from CLI output: The key value returned by
aliyun modelstudio create-api-keyis automatically saved byapi_key.py. The Agent must not write this value into any script, variable, or file - Never expose keys in any output: Including generated scripts, shell commands, log files (summary.md, task_summary.md, execution_log.md, etc.), and terminal output containing strings starting with
sk- - Never read or print keys from config files: Do not use
cat ~/.aliyun/config.json,jq,python -c, or other commands to read and output API Key values from config files - Never directly call CLI key commands: Do not directly run
aliyun modelstudio create-api-keyoraliyun modelstudio list-api-keys. These commands are only called internally byapi_key.py - Mandatory self-check before task completion: Run
grep -rn "sk-" \x3Coutput_directory>/to check all output files; if any strings starting withsk-are found (excluding "sk-xxx" placeholders), delete the affected files and regenerate
API Call Result Validation
- Check status code: API response
status_codemust be200, otherwise abort the task - Check output content: Response must contain valid image URLs (starting with
http). No valid URL means failure - Never fabricate results: Do not generate simulated data, false success reports, or placeholder image URLs
- Never mock/simulate: Do not create mock scripts or simulate API calls to bypass real calls
- Correct behavior on failure:
- Print error information (status code, error code, error message)
- Stop executing subsequent steps
- If it's a key issue,
api_key.pywill automatically retry creation - If retries still fail, report the real error reason without concealment
Output Validation (Must execute before reporting task completion)
- Check output files: Confirm image files exist in the output directory and have reasonable size (typically > 10KB)
- Key leak scan: Run
grep -rn "sk-" \x3Coutput_directory>/to check all output files (including logs, summaries, scripts). If leaks are found, delete and regenerate - No false claims: If API calls actually failed or were not executed, do not claim success in the task summary (e.g., listing checkmarks)
- Blank image detection: If output images are blank, solid color, or merely scaled versions of input images, treat as task failure
Output Size Control
| Model Family | Size Format | Supported Values |
|---|---|---|
qwen-image-2.0-pro / qwen-image-2.0 (text-to-image) |
"width*height" |
1024*1024, 720*1280, 1280*720, 1440*720, 720*1440 |
qwen-image-edit-* / qwen-image-2.0-pro (editing) |
"width*height" |
Width and height each [512, 2048], freely combined |
wan2.7-image-pro (text-to-image) |
Preset tier | 1K, 2K, 4K |
wan2.7-image-pro (editing/series) |
Preset tier | 1K, 2K |
wan2.7-image |
Preset tier | 1K, 2K |
Mapping Rules:
- User requests exact pixels (e.g.,
1280x720) -> Choose Qwen series, setsize='1280*720' - User requests portrait/landscape -> Use the closest fixed size for Qwen text-to-image (e.g., portrait ->
720*1280) - Wanx models ->
sizecan only be1K/2K/4K, not pixel values
Execution Flow
Step 1: Install Dependencies
pip install -r scripts/requirements.txt
Step 2: Select and Run Script Based on "Task-to-Script Mapping" Table
Selection Logic: First check if the user mentions "Wanx"/"wan2.7" or provides reference image URLs -> If yes, use wanx_generate.py; otherwise match by other keywords in the mapping table.
API Key is automatically managed by scripts (three-level retrieval: config file -> environment variable -> auto-create). No manual key handling is needed. The Agent only needs to run the commands in the table below. Do not write your own scripts, set environment variables, or use curl to call APIs.
| Scenario | Command | Example |
|---|---|---|
| Text-to-image (Qwen) | python scripts/text_to_image.py \x3Cprompt> [size] [model] |
python scripts/text_to_image.py 'An orange cat sitting on a windowsill, 8K' 1024*1024 qwen-image-2.0-pro |
| Text-to-image / Multi-image fusion (Wanx) | python scripts/wanx_generate.py \x3Cprompt> [ref_image_URLs...] |
python scripts/wanx_generate.py 'Paint the graffiti from image 2 on the car in image 1' url1 url2 |
| Image editing (URL input) | python scripts/image_edit.py \x3Cinstruction> \x3Cimage_URL1> [URL2] [URL3] |
python scripts/image_edit.py 'Change the background to white' https://example.com/photo.png |
| Image editing (local file) | python scripts/image_edit_base64.py \x3Cinstruction> \x3Clocal_image1> [image2] [image3] |
python scripts/image_edit_base64.py 'Change the background to white' ./photo.png |
| Image understanding | python scripts/image_understanding.py \x3Cimage_URL> [question] |
python scripts/image_understanding.py https://example.com/photo.jpg 'What is in this image?' |
Step 3: Return Results
Scripts will print the list of generated image URLs; text_to_image.py also auto-downloads images to the current directory.
Model Selection Guide
| Condition | Choice | Reason |
|---|---|---|
| Need accurate in-image text rendering | qwen-image-2.0-pro |
Qwen series has the strongest text rendering capability |
| Need 4K ultra-high definition | wan2.7-image-pro |
Only Wanx pro text-to-image supports 4K |
| Need a set of style-consistent images | wan2.7-image-pro + enable_sequential |
Wanx exclusive image series capability |
| Product/industrial design editing | qwen-image-edit-max |
Stronger geometric reasoning and character consistency |
| Multi-image reference + composition | wan2.7-image |
Wanx supports flexible multi-image reference editing |
| Image content analysis/Q&A | qwen3.5-plus |
General multimodal understanding, cost-effective |
| Complex visual reasoning | qwen-vl-max |
Stronger visual understanding capability |
| Low cost priority | qwen-image-2.0 / wan2.7-image |
Standard version at lower cost |
| No special requirements (default) | qwen-image-2.0-pro |
Most balanced overall capability |
Prompt Design Guide
For detailed guide, see Prompt Design Guide
Prompt structure formula: [Subject description] + [Scene/environment] + [Lighting/mood] + [Composition/angle] + [Art style] + [Quality parameters]
Complete example:
A 30-year-old Asian male detective standing on a rainy night Tokyo street, wearing a dark gray trench coat, holding a black umbrella, neon red and blue lights reflecting on his face, raindrops dripping along the umbrella edge, puddles on the ground reflecting brilliant city lights, Rembrandt lighting, volumetric fog, cinematic composition, 35mm anamorphic lens, film grain, moody atmosphere, high detail, photorealistic, 8K
Negative prompt template (Qwen series supports negative_prompt, Wanx series does not):
low quality, blurry, pixelated, oversaturated, deformed hands, extra fingers, distorted face, uncanny valley, text, watermark, logo, signature, cropped, out of frame, worst quality
Reference Information
Environment & Dependencies
| Package | Version Constraint | Purpose |
|---|---|---|
dashscope |
==1.25.16 |
Text-to-image, image editing, Wanx generation |
openai |
==2.23.0 |
Image understanding (OpenAI-compatible interface) |
API Key Configuration
This skill manages DashScope API Keys through scripts/api_key.py, which automatically validates key format (detects invalid keys like sk-sp-).
Retrieval Priority: ~/.aliyun/config.json > Environment variable DASHSCOPE_API_KEY > Auto-create via Alibaba Cloud CLI
Method 1: Alibaba Cloud CLI Config File (Recommended)
Add a dashscope field to the current profile in ~/.aliyun/config.json:
{
"current": "default",
"profiles": [
{
"name": "default",
"mode": "AK",
"access_key_id": "...",
"access_key_secret": "...",
"dashscope": {
"api_key": "sk-xxx",
"api_key_id": "4359606"
}
}
]
}
Method 2: System Environment Variable
export DASHSCOPE_API_KEY=sk-xxx
| Item | Description |
|---|---|
| Key Format | sk-xxx (standard DashScope API Key) |
| Not Supported | sk-sp-xxx (Coding Plan Key, does not support image generation) |
| Get Key | https://help.aliyun.com/zh/model-studio/get-api-key |
| Security | Never hardcode; use from api_key import get_api_key; never output full API Key values to terminal, logs, or any files |
Alibaba Cloud CLI Configuration (API Key Auto-Create/Delete)
scripts/api_key.py creates and deletes API Keys via aliyun modelstudio commands. Complete the following setup before use:
# Enable AI-Mode (allow Agent to call CLI)
aliyun configure ai-mode enable
# Set User-Agent
aliyun configure ai-mode set-user-agent --user-agent "AlibabaCloud-Agent-Skills/alibabacloud-bailian-image-creator"
# Update plugins to latest version
aliyun plugin update
# Install ModelStudio plugin (if not already installed)
aliyun plugin install --names aliyun-cli-modelstudio --enable-pre
# Disable AI-Mode after task completion
aliyun configure ai-mode disable
| Command | Purpose | Called From |
|---|---|---|
aliyun modelstudio list-workspaces |
Get Bailian Workspace ID | api_key.py: generate_api_key() |
aliyun modelstudio create-api-key |
Create DashScope API Key | api_key.py: generate_api_key() |
aliyun modelstudio list-api-keys |
List existing API Keys (used for limit recycling) | api_key.py: generate_api_key() |
aliyun modelstudio delete-api-key |
Delete cloud API Key | api_key.py: delete_api_key() / generate_api_key() |
Regions & API Endpoints
| Region | DashScope API | OpenAI Compatible Mode |
|---|---|---|
| Beijing (China) | https://dashscope.aliyuncs.com/api/v1 |
https://dashscope.aliyuncs.com/compatible-mode/v1 |
| Singapore | https://dashscope-intl.aliyuncs.com/api/v1 |
https://dashscope-intl.aliyuncs.com/compatible-mode/v1 |
| Virginia (US) | https://dashscope-us.aliyuncs.com/api/v1 |
https://dashscope-us.aliyuncs.com/compatible-mode/v1 |
Note: API Keys are not interchangeable between regions.
Script Parameter Reference
text_to_image.py -- Text-to-Image (Qwen Series)
| Parameter | Description |
|---|---|
size |
Only supports 1024*1024, 720*1280, 1280*720, 1440*720, 720*1440 |
prompt_extend |
True to auto-optimize prompts |
negative_prompt |
Negative prompt to avoid generating undesired content |
watermark |
Whether to add watermark |
image_edit.py / image_edit_base64.py -- Image Editing (Qwen Series)
| Parameter | Type | Description |
|---|---|---|
n |
int | Number of output images, 1-6 (qwen-image-edit fixed at 1) |
size |
str | Output resolution, format "width*height", range [512, 2048] |
negative_prompt |
str | Negative prompt |
prompt_extend |
bool | Smart prompt rewriting, default true |
watermark |
bool | Whether to add watermark, default false |
seed |
int | Random seed [0, 2147483647], for result reproduction |
Editing Model Comparison:
| Model | Strengths | Use Case |
|---|---|---|
qwen-image-edit-max |
Strong geometric reasoning, character consistency | Product design, precise editing |
qwen-image-2.0-pro |
Strong text rendering, realistic quality | General editing, text editing |
qwen-image-edit-plus |
Multi-image output and custom resolution | General editing |
qwen-image-edit |
Basic version, fixed single image output | Simple editing |
Common Resolution Recommendations:
| Aspect Ratio | Recommended Resolution |
|---|---|
| 1:1 | 1024*1024, 1536*1536 |
| 2:3 | 768*1152, 1024*1536 |
| 3:2 | 1152*768, 1536*1024 |
| 3:4 | 960*1280, 1080*1440 |
| 4:3 | 1280*960, 1440*1080 |
| 9:16 | 720*1280, 1080*1920 |
| 16:9 | 1280*720, 1920*1080 |
| 21:9 | 1344*576, 2048*872 |
Image Input Methods:
- HTTP/HTTPS URL:
"https://example.com/image.png" - Base64 Encoding:
"data:image/png;base64,..."-- Seescripts/image_edit_base64.py - Input: 1-3 reference images; Output: 1-6 images (controlled via
nparameter)
wanx_generate.py -- Wanx Image Generation
| Parameter | Description |
|---|---|
size |
1K, 2K, 4K (4K only for wan2.7-image-pro text-to-image) |
enable_sequential |
Series mode, generates 1-12 style-consistent images |
thinking_mode |
Default true, enhances reasoning quality (increases latency) |
n |
Normal mode 1-4, series mode 1-12 |
| Model | Strengths |
|---|---|
wan2.7-image-pro |
Pro version, text-to-image supports 4K HD |
wan2.7-image |
Standard version, faster generation |
image_understanding.py -- Image Understanding
Uses OpenAI-compatible mode to call DashScope. Default model qwen3.5-plus (general understanding), optional qwen-vl-max (complex reasoning).
Pricing
| Model | Unit Price | Notes |
|---|---|---|
| qwen-image-2.0-pro | CN price | Pro version, strongest text rendering and realistic quality |
| qwen-image-edit-max | CN price | Pro version, image generation and editing fusion |
| qwen-image-2.0 | CN price | Standard version |
| qwen-image-edit-plus | CN price | Standard editing |
| wan2.7-image-pro | CN price | Wanx pro version |
| wan2.7-image | CN price | Wanx standard version |
New users get 100 free image credits (valid for 90 days) after activating Bailian. View bills: https://usercenter2.aliyun.com/finance/expense-center/overview
Best Practices
- Use
prompt_extend=Trueto let the model auto-optimize prompts - Qwen series supports
negative_prompt, Wanx series does not support this parameter - Choose appropriate sizes based on requirements to avoid unnecessary large image generation
- Use the
nparameter to generate multiple images at once for selection - Use URLs for online images, Base64 for small local files,
file://protocol for large files
Error Handling
Scripts have built-in error handling logic. For errors, refer to: https://help.aliyun.com/zh/model-studio/developer-reference/error-code
Related Resources
- Prompt Design Guide - Professional prompt construction methods
- API Documentation - Detailed API parameter reference
- Model List - Supported models and features
- Error Code Reference - Common error codes and solutions
- Example Scripts - Ready-to-use scripts
| Script | Function | Description |
|---|---|---|
text_to_image.py |
Text-to-image | Generate images from text descriptions, supports auto-download |
image_edit.py |
Image editing | Supports URL, local file, and Base64 input methods |
image_edit_base64.py |
Base64 image editing | Demonstrates Base64 encoding method |
base64_tool.py |
Base64 tool | CLI tool for image-Base64 conversion |
wanx_generate.py |
Wanx generation | Uses wan2.7-image model for generation |
image_understanding.py |
Image understanding | Analyze image content, answer questions |
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install alibabacloud-bailian-image-creator - After installation, invoke the skill by name or use
/alibabacloud-bailian-image-creator - Provide required inputs per the skill's parameter spec and get structured output
What is Alibabacloud Bailian Image Creator?
Generates, edits, and analyzes images using Alibaba Cloud DashScope API with supported qwen and wan2.7 models via predefined scripts. It is an AI Agent Skill for Claude Code / OpenClaw, with 91 downloads so far.
How do I install Alibabacloud Bailian Image Creator?
Run "/install alibabacloud-bailian-image-creator" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Alibabacloud Bailian Image Creator free?
Yes, Alibabacloud Bailian Image Creator is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Alibabacloud Bailian Image Creator support?
Alibabacloud Bailian Image Creator is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Alibabacloud Bailian Image Creator?
It is built and maintained by alibabacloud-skills-team (@sdk-team); the current version is v0.0.1.