Install
openclaw skills install wan-image-gen基于阿里云百炼 Wan 图像生成模型的生图 skill。支持文生图任务提交、轮询任务状态、下载生成图片到本地。 当用户需要根据提示词生成图片、批量出图、指定尺寸或继续查询已有图片生成任务时,使用此 skill。
openclaw skills install wan-image-gen通过阿里云百炼 Wan 文生图接口创建异步任务,并自动轮询、下载生成结果。
详细接口与限制见 references/api.md。
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配置优先级:
config.jsonfinal,对应 wan2.6-t2i--tier,只有明确要指定模型时再传 --modelcheap -> 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 里,而不是改主脚本。
主要脚本: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*12803:4=1104*14724:3=1472*11049:16=960*169616:9=1696*960--preset:快捷尺寸预设
draft=1280*1280final=1440*1440square=1280*1280portrait=1104*1472landscape=1472*1104story=960*1696widescreen=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 做低成本验证。--goal=balanced 或 --goal=quality。--ratio=3:4、4:3、9:16 或 16:9。--preset=final 或显式自定义 --size。--name 给同一主题打上稳定前缀。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/presetn=1--seedtask_id 后轮询 GET /api/v1/tasks/{task_id}。task_id,使用 --no-wait。preflight 和 --dry-run 中输出预计费用单价(元/张) × n 估算DASHSCOPE_API_KEY 或 config.json 是否配置正确baseUrl 和 API Key 是否属于同一地域--preset=draft 而不是直接大尺寸反复试[1:4, 4:1] 范围内n 是否过大导致费用或限流问题task_id 是否已超过 24 小时