$npx -y skills add Wan-Video/Wan-skills --skill wan2.7-image-skill基于 wan2.7-image 模型,支持多种图像生成与编辑能力,包括文本生成图像、文本生成多图组合、基于图像生成多图组合、单图编辑以及基于多张参考图的图像合成,适用于多样化的创作场景。主要覆盖以下三类任务:1、图像生成——如“画一只猫”、“生成一张穿红裙的女士在咖啡馆的照片”等;2、图像编辑——如“将图中的汽车换成自行车”、“这张图片背景换成室外”、“把图中衣服颜色从蓝色改成绿色”等;3、风格迁移——如“将这张照片转为 <xxx> 风格”、“用 <yyy> 风格重绘这张建筑图”、“参考 <yyy> 的画风来改变 <zzz> 的风格”等。触发条件:只要用
| 1 | # Wan2.7 Image Generation Skill (Wan2.7 图片生成编辑技能) |
| 2 | |
| 3 | Generate AI images with "Wan2.7 Image" via direct API calls. |
| 4 | |
| 5 | --- |
| 6 | |
| 7 | ## Quick Start |
| 8 | |
| 9 | **1. 配置环境** → [common.md](references/common.md) |
| 10 | **2. 了解能力** → 阅读下文核心能力介绍 |
| 11 | **3. 选择模式** → 根据需求选择三种操作模式之一 |
| 12 | **4. 详细用法** → [image-generation-editing.md](references/image-generation-editing.md) |
| 13 | |
| 14 | **核心能力:** |
| 15 | - ✅ **文生图**:纯文本生成单张图像 |
| 16 | - ✅ **图像编辑**:基于参考图的编辑、风格迁移、多图融合 |
| 17 | - ✅ **组图生成**:文生组图、图生组图(最多 12 张) |
| 18 | |
| 19 | --- |
| 20 | |
| 21 | ## Workflow: Unified Image Generation & Editing(统一图像生成与编辑) |
| 22 | |
| 23 | ```mermaid |
| 24 | graph TB |
| 25 | A[用户请求] --> B{是否有参考图?} |
| 26 | B -->|无参考图 | C[文生图/文生组图] |
| 27 | B -->|有参考图 | D[图生图/图像编辑/图生组图] |
| 28 | C --> E[调用image-generation-editing.py] |
| 29 | D --> E |
| 30 | E -->|SUCCEEDED| I[返回图片 URL] |
| 31 | E -->|FAILED| J[错误处理] |
| 32 | ``` |
| 33 | |
| 34 | **流程说明:** |
| 35 | 1. **判断模式** - 根据是否有参考图以及用户内容,选择文生图,图生图还是组图生成 |
| 36 | 2. **预处理脚本执行** - 根据输入情况自动选择: |
| 37 | - **有文件路径**:调用 `scripts/file_to_oss.py --file` 上传文件到OSS |
| 38 | - **有 base64 数据**(如Claw chat框粘贴场景):调用 `scripts/file_to_oss.py --base64` 上传到OSS |
| 39 | - **有分辨率和长宽比的需求**:执行 `scripts/parse_resolution.py` 获取size配置 |
| 40 | 3. **调用生成脚本** - 调用 `scripts/image-generation-editing.py`,根据下述三种操作模式进行对应的参数填充 |
| 41 | 4. **获取结果** - 从响应中提取图片 URL(有效期 24 小时) |
| 42 | 5. **展示结果** - 把图片URL在用户交互界面中显示出来 |
| 43 | 6. **保存图片** - 提示用户图片结果链接有有效期,如果用户想长期保存结果,让用户指定一个目录,把图片存进这个目录 |
| 44 | |
| 45 | 📖 **详细流程与参数:** [image-generation-editing.md](references/image-generation-editing.md) |
| 46 | |
| 47 | --- |
| 48 | |
| 49 | ## Three Operation Modes(三种操作模式) |
| 50 | |
| 51 | ### Mode 1: 图像生成(文生图) |
| 52 | |
| 53 | **用途:** 纯文本生成单张图像 |
| 54 | |
| 55 | **输入:** 文本提示词 |
| 56 | **输出:** 图片 |
| 57 | **特点:** 无需输入参考图 |
| 58 | |
| 59 | **关键参数:** |
| 60 | - `enable_sequential`: false |
| 61 | - `n`: 生成数量 1 |
| 62 | - `size`: 分辨率 (支持 1K/2K 或自定义) |
| 63 | |
| 64 | 📖 **详细说明与用例:** [image-generation-editing.md#mode-1](references/image-generation-editing.md) |
| 65 | |
| 66 | --- |
| 67 | |
| 68 | ### Mode 2: 图像编辑(图生图、风格迁移、多图融合) |
| 69 | |
| 70 | **用途:** 基于参考图像进行编辑、风格迁移或保持主体一致性生成 |
| 71 | |
| 72 | **输入:** 文本提示词 + 1-9 张参考图 |
| 73 | **输出:** 图片 |
| 74 | **特点:** 输入1-9张参考图进行参考生成 |
| 75 | |
| 76 | **关键参数:** |
| 77 | - `enable_sequential`: false |
| 78 | - `n`: 生成数量 1 |
| 79 | - `size`: 分辨率(支持 1K/2K 或自定义) |
| 80 | |
| 81 | 📖 **详细说明与用例:** [image-generation-editing.md#mode-2](references/image-generation-editing.md) |
| 82 | |
| 83 | --- |
| 84 | |
| 85 | ### Mode 3: 组图生成 |
| 86 | |
| 87 | **用途:** 根据文本描述生成系列图像(一次生成多张关联的图片,教程、故事等) |
| 88 | |
| 89 | **输入:** 文本提示词 + 可选参考图(最多 9 张) |
| 90 | **输出:** 最多 12 张图片 |
| 91 | **特点:** 一次生成多张关联的图片,实际数量由模型决定 |
| 92 | |
| 93 | **关键参数:** |
| 94 | - `enable_sequential`: true |
| 95 | - `n`: 生成数量范围 [1-12] |
| 96 | - `size`: 分辨率 (支持 1K/2K 或自定义) |
| 97 | |
| 98 | 📖 **详细说明与用例:** [image-generation-editing.md#mode-3](references/image-generation-editing.md) |
| 99 | |
| 100 | --- |
| 101 | |
| 102 | ## Documents Structure(文档结构) |
| 103 | |
| 104 | ### 📖 [Common Configuration](references/common.md) |
| 105 | |
| 106 | **用途:** 通用配置和环境变量管理 |
| 107 | |
| 108 | **包含内容:** |
| 109 | - API Key 获取和配置步骤 |
| 110 | - 环境变量配置(DASHSCOPE_API_KEY, DASHSCOPE_BASE_URL) |
| 111 | - 地域选择(北京、新加坡) |
| 112 | |
| 113 | **何时查阅:** 首次配置环境或需要修改配置时 |
| 114 | |
| 115 | --- |
| 116 | |
| 117 | ### 📖 [Image Generation & Editing](references/image-generation-editing.md) |
| 118 | |
| 119 | **用途:** Wan 2.7 统一技能详细文档 |
| 120 | |
| 121 | **包含内容:** |
| 122 | - 三种操作模式的详细说明和用例(Mode 1/2/3) |
| 123 | - 图像输入要求(格式、分辨率、大小、宽高比) |
| 124 | - 分辨率转换脚本使用说明(parse_resolution.py) |
| 125 | |
| 126 | **何时查阅:** 需要了解具体 API 用法、参数配置或排查问题时 |
| 127 | |
| 128 | --- |
| 129 | |
| 130 | ### 📖 [Upload to OSS](scripts/file_to_oss.py) |
| 131 | |
| 132 | **用途:** 本地文件或 base64 图片数据上传到临时 OSS 存储的 Python 脚本 |
| 133 | |
| 134 | **包含内容:** |
| 135 | - 文件上传功能实现 |
| 136 | - 获取 oss:// URL |
| 137 | - 支持文件路径和 base64 两种输入方式 |
| 138 | - 支持所有需要本地文件的场景,如果用户在聊天框粘贴传入参考图,请把这些参考图,以 base64 形式传递给脚本 |
| 139 | |
| 140 | **何时查阅:** 需要上传本地图片用于图生图、图像编辑、图生组图时 |
| 141 | |
| 142 | **使用示例:** |
| 143 | ```bash |
| 144 | # 方式 1: 从文件路径上传 |
| 145 | python scripts/file_to_oss.py --file /tmp/image.jpg --model wan2.7-image |
| 146 | |
| 147 | # 方式 2: 从 base64 数据上传(OpenClaw 场景) |
| 148 | python scripts/file_to_oss.py --base64 "<base64_data>" --model wan2.7-image |
| 149 | |
| 150 | # 输出:oss://dashscope-instant/xxx/cat.png |
| 151 | ``` |
| 152 | |
| 153 | --- |
| 154 | |
| 155 | ### 📖 [Parse resolution](scripts/parse_resolution.py) |
| 156 | |
| 157 | **用途:** 解析用户输入的分辨率描述,转换为 API 所需的 size 参数。 |
| 158 | |
| 159 | **包含内容:** |
| 160 | - 用户输入中有分辨率,1K,2K,2:4 等相关内容 |
| 161 | - K + 比例:`"2K 3:4"`, `"1K 16:9"` |
| 162 | - 仅 K 值:`"1K"`, `"2K"`(默认 1:1) |
| 163 | - 直接指定:`"1024*1024"`, `"2048*2048"` |
| 164 | |
| 165 | **何时查阅:** 需要解析用户分辨率需求时(如:当用户即对分辨率有要求又对宽高比有要求时,解析用户输入的分辨率描述),转换使用 |
| 166 | |
| 167 | **使用示例:** |
| 168 | ```bash |
| 169 | python scripts/parse_resolution.py "2K 3:4" |
| 170 | # 输出:1774*2364 |
| 171 | ``` |
| 172 | |
| 173 | --- |
| 174 | |
| 175 | ## 📖 生成任务耗时过长及异步任务查询 |
| 176 | |
| 177 | **何时使用:** |
| 178 | 当用户调用scripts/image-generation-editing.py 用时太长时,脚本不会等待最终输出结果,会主动输出task_id。 |
| 179 | 后续每隔10秒用scripts/check_wan_task_status.py 脚本,查询该task_id所对应的任务的状态。连续查询3次,若有url输出则说明最终完成了任务;若还在进行中,则显示该task_id,提示用户之后再用task_id进行查询。 |
| 180 | |
| 181 | **重要原则** |
| 182 | 当多次查询都还在生成进行中(RUNNING),则告知用户task_id,提示用户之后再用task_id进行查询。绝对不要私自更改用户的需求,例如减少参考图片的张数和生成组图的张数。 |
| 183 | |
| 184 | **使用示例:** |
| 185 | ```bash |
| 186 | python scripts/check_wan_task_status.py "<task_id>" |
| 187 | ``` |
| 188 | |
| 189 | --- |
| 190 | |
| 191 | ## Error Handling |
| 192 | |
| 193 | 常见错误及解决方案: |
| 194 | |
| 195 | | 错误 | 原因 | 解决方案 | |
| 196 | |------|------|----------| |
| 197 | | API key not provided | 未设置 API Key | 设置 `DASHSCOPE_API_KEY` 环境变量 | |
| 198 | | 请求失败:code=XXX | API 调用失败 | 检查网络连接、API Key 有效性、模型可用性 | |
| 199 | | 解析响应失败 | 响应格式异常 | 查看原始响应,参考 DashScope 文档 | |
| 200 | |
| 201 | 详细错误码参考:[DashScope 错误码文档](https://help.aliyun.com/zh/model-studio/developer-reference/error-code) |
| 202 | |
| 203 | --- |
| 204 | |
| 205 | ## Related Documents |
| 206 | |
| 207 | - 📖 [common.md](references/common.md) - 环境配置的说明文档 |
| 208 | - 📖 [image-generation-editing.md](references/image-gener |