图像生成与编辑
Wan2.6-Image 是阿里云百炼通义万相系列的图像生成与编辑模型,支持多样化风格与内容控制,可结合输入图片与文本提示生成新图像,也可进行图像编辑、风格迁移与图文混排。模型在生成图像质量、细节表达与构图能力上表现优秀,适用于对视觉效果与艺术风格有较高要求的场景。Wan2.6-Image 在设计中兼顾可控性与创意表达,能较好处理复杂提示词与参考图像之间的交互关系。
字段名 | 字段类型 | 是否必传 | 字段默认值 | 字段说明 |
|---|---|---|---|---|
| model | string | 否 | "wan2.6-image" | 模型名称,SDK 内部会自动设置为当前实例的 modelName |
| messages | Array<{ role: "user"; content: Array<{ text?: string; image?: string }> }> | 是 | - | 单轮对话消息数组,必须传一条 role 为 user 的消息 |
| messages.role | "user" | 是 | - | 消息角色,目前固定为 "user" |
| messages.content | Array<{ text?: string; image?: string }> | 是 | - | 内容数组,可包含文本提示(text)和/或图像(image) |
| messages.content.text | string | 可选但至少一个 text | - | 文本提示词,支持中英文,不超过2000字符 |
| messages.content.image | string | 可选 | - | 输入图像的URL或 Base64 字符串;编辑模式需传 1-4 张;混排模式可选 0-1 张 |
| parameters | object | 否 | {} | 控制生成图片数量、尺寸、是否混排等参数 |
| parameters.negative_prompt | string | 否 | "" | 可限制不希望出现的内容(≤500字符) |
| parameters.size | string | 否 | "1280*1280" | 输出图像分辨率,格式宽*高,总像素在 768×768 至 1280×1280 之间,宽高比在 1:4 至 4:1 |
| parameters.n | integer | 否 | 1 | 生成图像张数,1-4 当 enable_interleave=false;固定为 1 当 enable_interleave=true |
| parameters.enable_interleave | boolean | 否 | false | 控制是否启用图文混排输出模式:true 时支持文生成图或文本 + 图像混排,false 时图像编辑或纯图生成 |
| parameters.prompt_extend | boolean | 否 | true(图像编辑模式) | 是否对 prompt 进行智能改写以提升质量,非混排模式有效 |
| parameters.watermark | boolean | 否 | false | 是否在图像右下角添加 "AI生成" 水印 |
| parameters.seed | integer | 否 | 随机 | 随机种子,用于结果复现 |
说明:
非流式响应(标准格式):
字段名 | 字段类型 | 是否必传 | 字段默认值 | 字段说明 |
|---|---|---|---|---|
| id | string | 否 | - | 请求/响应 ID |
| object | string | 否 | - | 对象类型,一般为 chat.completion |
| created | number | 否 | - | 时间戳(秒) |
| model | string | 否 | - | 实际使用的模型名 |
| log_id | string | 否 | - | 日志跟踪 ID |
| error | string | 否 | "" | 错误信息 |
| code | number | 否 | 0 | 错误码 |
| choices | Array<{ index: number; message: { content: Array<{ type: "image"; image: string }> }; finish_reason: string }> | 否 | - | 生成结果列表,每个 choice 返回一个或多张图像 URL(PNG 格式),图片有效期约24小时 |
| usage | { image_count: number; size: string } | 否 | - | 统计信息,包括本次生成的图片张数和生成图像的尺寸(如 "1280*1280") |
流式响应(标准格式):
字段名 | 字段类型 | 是否必传 | 字段默认值 | 字段说明 |
|---|---|---|---|---|
| id | string | 否 | - | 同上 |
| object | string | 否 | chat.completion.chunk | 流片段对象类型 |
| created | number | 否 | - | 时间戳(秒) |
| model | string | 否 | - | 模型名 |
| log_id | string | 否 | - | 日志跟踪 ID |
| error | string | 否 | "" | 错误信息 |
| code | number | 否 | 0 | 错误码 |
| choices | Array<{ index: number; message: { content: Array<{ type: "image"; image: string }> }; finish_reason: string|null }> | 否 | - | 生成的增量内容 |
| usage | 同上 | 否 | - | 一般在最后一个片段返回 |
下面示例展示了如何通过自定义 Agent 接入
async sendMessage(message) {
try {
if (!message?.msg) {
return {
code: -1,
msg: '请输入图片描述'
};
}
// 创建 wan2.6-image 模型
const model = this.createModel('wan2.6-image');
const modelResponse = await model.streamText({
messages: [
{
role: 'user',
content: [
{ type: 'text', text: message.msg }
],
},
],
parameters: {
size: '1280*1280',
n: 1,
prompt_extend: true,
watermark: false
},
negative_prompt: '模糊, 低质量, 变形, 失真'
});
// 流式返回生成的图片结果
for await (const chunk of modelResponse) {
this.sseSender.send({ data: chunk });
}
this.sseSender.end();
} catch (error) {
console.error('wan2.6-image stream error:', error);
this.sseSender.end();
}
}