- name
- wan-image-gen
- description
- |
- homepage
- https://help.aliyun.com/zh/model-studio/text-to-image-v2-api-reference
- metadata
- openclaw
- requires
- env
- bins
- primaryEnv
- DASHSCOPE_API_KEY
Wan Image Gen
通过阿里云百炼 Wan 文生图接口创建异步任务,并自动轮询、下载生成结果。
详细接口与限制见 references/api.md。
Setup
- 配置 API Key:
export DASHSCOPE_API_KEY="sk-xxx"也可以在 skill 目录下创建 config.json:
可先参考 config.example.json 再复制为 config.json。
{
"apiKey": "sk-xxx",
"baseUrl": "https://dashscope.aliyuncs.com",
"defaultGoal": "balanced",
"goals": {
"cheap": {
"tier": "draft",
"preset": "draft"
},
"balanced": {
"tier": "standard"
},
"quality": {
"tier": "final",
"preset": "final"
}
},
"defaultTier": "standard",
"tiers": {
"draft": {
"model": "wanx2.0-t2i-turbo"
},
"standard": {
"model": "wan2.2-t2i-flash"
},
"final": {
"model": "wan2.6-t2i"
}
},
"outputDir": "./outputs"
}- 运行环境要求
Node.js >= 18
配置优先级:
- CLI 参数
- 环境变量
config.json- 脚本默认值
默认模型
- 默认档位为
final,对应wan2.6-t2i - 推荐优先使用
--tier,只有明确要指定模型时再传--model
目标驱动选型
cheap->draft+ 默认preset=draftbalanced->standardquality->final+ 默认preset=final
推荐把这组映射维护在 config.json 的 goals 里;goal 表示用户意图,tier 表示具体模型档位。
档位驱动选型
draft->wanx2.0-t2i-turbostandard->wan2.2-t2i-flashfinal->wan2.6-t2i
推荐把这组映射维护在 config.json 的 tiers 里,而不是改主脚本。
CLI
主要脚本:node scripts/wan-image-gen.js
低成本草稿
node scripts/wan-image-gen.js \
--prompt="一间有着精致窗户的花店,漂亮的木质门,摆放着花朵" \
--goal="cheap" \
--ratio="1:1" \
--n=1最终出图
node scripts/wan-image-gen.js \
--prompt="一个赛博朋克风格的雨夜街道,电影感灯光,雨水反光,细节丰富" \
--goal="quality" \
--ratio="16:9" \
--name="cyberpunk-night"提交任务但不等待
node scripts/wan-image-gen.js \
--prompt="一个赛博朋克风格的雨夜街道" \
--no-wait继续轮询已有任务
node scripts/wan-image-gen.js \
--task-id="你的task_id"仅做预检,不实际提交
node scripts/wan-image-gen.js \
--prompt="一张产品海报,主体是一瓶绿色玻璃香水" \
--ratio="3:4" \
--dry-run参数约定
--prompt:正向提示词。提交新任务时必填--negative-prompt:反向提示词--goal=cheap|balanced|quality:按用户目标选择更合适的默认模型和尺寸策略--tier=draft|standard|final:按成本/质量档位自动选模型--model:模型名,默认wan2.6-t2i
- 优先级:model > tier > goal > 默认 - config.json 中可通过 defaultGoal/defaultTier 与 goals/tiers 维护映射
--ratio:官方推荐比例快捷选项
- 1:1=1280*1280 - 3:4=1104*1472 - 4:3=1472*1104 - 9:16=960*1696 - 16:9=1696*960
--preset:快捷尺寸预设
- draft=1280*1280 - final=1440*1440 - square=1280*1280 - portrait=1104*1472 - landscape=1472*1104 - story=960*1696 - widescreen=1696*960
--size:输出尺寸,如1280*1280
- 优先级:size > ratio > preset
--n:生成张数,建议测试时设为1--seed:随机种子--prompt-extend=true|false:是否启用提示词智能改写,默认true--watermark=true|false:是否添加水印,默认false--task-id:查询已有任务,不再提交新任务--no-wait:只提交任务,返回 task_id--poll-interval:轮询间隔秒数,默认10--timeout:总等待超时秒数,默认600--output-dir:图片下载目录,默认outputs/--name:输出文件名前缀--dry-run:只打印最终请求体和配置预检,不实际调用 API
推荐工作流
- 先用
--goal=cheap做低成本验证。 - Prompt 稳定后,切到
--goal=balanced或--goal=quality。 - 再根据画面需求选择更贴近目标比例的
--ratio=3:4、4:3、9:16或16:9。 - 如果需要更高细节,再切到
--preset=final或显式自定义--size。 - 需要多轮迭代时,用
--name给同一主题打上稳定前缀。 - 下载后的文件名会自动带时间戳、task_id 和 prompt 摘要,便于回溯。
覆盖优先级
- 模型选择:
CLI --model > CLI --tier > CLI --goal > config.defaultGoal/config.goal > config.defaultTier/config.tier > config.model > 内置默认 - 画幅选择:
CLI --size > CLI --ratio > CLI --preset > goal 默认 ratio/preset > config.ratio > config.preset > 脚本默认 goal用于表达用户意图,tier用于表达具体模型档位;显式--tier会覆盖goaltier和goal都只负责给出默认模型或默认尺寸策略,不会锁死size/ratio/preset
提示词建议
- 先写清主体,再写场景、风格、光线、镜头或构图
- 如果只想改一个变量,prompt 里明确写“其余保持不变”
- 反复试 prompt 时,先保持
n=1 - 如果要稳定复现,显式传
--seed
工作流
- 用户要生图时,提交异步任务。
- 提交前脚本会显示一次成本提醒,按中国内地价格表估算总费用。
- 返回
task_id后轮询GET /api/v1/tasks/{task_id}。 - 成功后立即下载图片到本地目录。
- 如果只想拿
task_id,使用--no-wait。
成本提醒
- 脚本会在
preflight和--dry-run中输出预计费用 - 当前内置的是你提供的中国内地单价表
- 图像费用按
单价(元/张) × n估算 - 这不是实时计费查询;如果官方价格调整,需要同步更新脚本
失败时优先检查
DASHSCOPE_API_KEY或config.json是否配置正确baseUrl和 API Key 是否属于同一地域- prompt 是否过短或描述过于模糊
- 是否该先用
--preset=draft而不是直接大尺寸反复试 - 尺寸是否符合所选模型限制
- 宽高比是否在
[1:4, 4:1]范围内 - 自定义尺寸如果被服务端拒绝,优先改用官方推荐尺寸预设
n是否过大导致费用或限流问题task_id是否已超过 24 小时