关于 alibaba-image-models
面向 Alibaba Cloud Model Studio 图像生成与编辑的制作指南,帮助团队选择模型和端点、构造请求并安排迭代审核,同时区分图像流程与 Wan 视频工作流。
主要功能
- 01为图像任务选择当前模型
- 02涵盖图像生成与编辑
- 03说明区域端点和请求模式
- 04指导参考图与提示词设计
- 05梳理审核和迭代步骤
适用场景
- 01为海报或产品图选择模型
- 02规划使用参考图的编辑
- 03配置区域匹配的 Model Studio 请求
- 04处理含精确文字或品牌要求的图像
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ calesthio/ generative-media-skills --skill alibaba-image-models安装后在 Claude Code 中输入/alibaba-image-models确认已加载。
附带文件EVAL.md
详细介绍
Alibaba 图像模型
请将此技能视为 Alibaba Cloud Model Studio 图像推理的生产指南,而非用于本地 Wan 检查点、图像转视频、模型训练或旧版单用途 Wan 编辑端点。每次生产集成前都要查看实时模型列表,因为模型 ID、别名、区域、价格和配额都会变化。
明确生产要求
生成前,请记录:
- 交付内容和渠道:主视觉、海报、产品图、角色设定表、分镜、社交媒体裁切图或编辑图;
- 所需像素尺寸、宽高比、数量和文件格式;
- 精确文案、品牌色、保护区域和布局层级;
- 参考图的用途,以及使用每张参考图的权限;
- 可接受的身份或产品偏差,以及是否必须在后期合成精确字体;
- 目标区域、工作区、模型 ID 或固定快照、预算上限和保留需求;
- 审批节点:低成本样图、选定方向、编辑环节、最终质检。
付费调用前,请说明提供方、模型、区域、请求图像数量和预估费用。先生成一到两张低成本候选图。不得擅自更改已选定的模型、区域或提示词重写策略。
审慎选择方案
以下信息已根据 Alibaba Cloud 文档于 2026-07-09 核实。
| 需求 | 优先选择 | 原因与限制 |
|---|---|---|
| 广泛的图像生成、文本渲染、品牌配色、编辑、最多九张参考图、边界框编辑或连贯图集 | wan2.7-image-pro | 当前功能最全面的 Wan 方案。纯文本生成图像可达到 4K 规格;编辑和图像集限于 2K。标准模式返回 1–4 张图;顺序模式最多可返回 12 张。 |
| 类似的 Wan 工作流,但输出更快、成本更低 | wan2.7-image | 属于同一工作流系列,但最高为 2K。请针对实际需求验证质量。 |
| 需要负面提示词,或在一次同步请求中生成最多六个变体 | qwen-image-2.0-pro | 集成生成与编辑的方案,可输出 1–6 张 PNG,并支持文档所述的负面提示词。编辑时可接受一到三张图。 |
| 更快的 Qwen 生成与编辑 | qwen-image-2.0 | 加速版 2.0 方案;沿用相同的同步协议,并对照 Pro 测试质量。 |
| 快速、低成本地生成纯肖像或产品照片 | z-image-turbo | 输出一张 PNG,尺寸范围为 512×512 至 2048×2048。不启用编辑。提示词重写会使其文档所列的单张价格翻倍。 |
不要仅凭惯例调用旧版 wanx2.1-*、Qwen Plus/Max 或独立的 Qwen 编辑模型 ID。只有在明确需要兼容或迁移时才使用,并且要先核实其当前区域和协议。当前的 2.0 模型仅支持同步调用;异步 Qwen 图像调用适用于 qwen-image-plus 和 qwen-image,不适用于 Qwen-Image 2.0。
不要将提供方的描述等同于独立的质量证明。“更快”“Pro”和“推荐”是文档中的产品定位;如果选择很重要,请针对具体需求进行简短测试。
绑定区域、密钥、工作空间和端点
使用与模型和端点位于同一区域的 Model Studio API 密钥。将其存储在 DASHSCOPE_API_KEY 中;切勿将其放入源代码、提示词、日志、补丁或构件中。优先使用权限最小化的工作空间,并为开发和生产分别使用不同的密钥。
对于当前同步调用 Wan 2.7、Qwen-Image 2.0 和 Z-Image 原生接口,请使用:
| 区域 | 端点 |
|---|---|
| 新加坡 | https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation |
| 中国(北京) | https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation |
发送 Authorization: Bearer $DASHSCOPE_API_KEY 和 Content-Type: application/json。阿里巴巴建议生产环境使用专属工作空间的域名;共享 DashScope 域名和试用域名各有不同的权衡。对于此处展示的原生图像负载,切勿使用 OpenAI 兼容的 /compatible-mode/v1 路径。
将模型、密钥、区域、部署范围和端点视为一个配置单元。401 或服务错误通常意味着这些配置不匹配。请在控制台或模型列表中确认可用性,不要假设每个模型都在每个区域提供。
有意选择同步或异步方式
当前 Wan 2.7 支持两种原生协议;Qwen-Image 2.0 和 Z-Image Turbo 仅支持同步方式。
| 工作负载 | 创建路由 | 必需标头 | 完成方式 |
|---|---|---|---|
| Wan 2.7 短时交互式调用 | POST .../api/v1/services/aigc/multimodal-generation/generation | 常规 JSON/Bearer 标头 | 在响应中返回结果 |
| Wan 2.7 长时生成、编辑、边界框编辑或序列集合 | POST .../api/v1/services/aigc/image-generation/generation | 添加 X-DashScope-Async: enable | 保存 output.task_id,然后轮询 |
| Qwen-Image 2.0 或 Z-Image Turbo | 仅支持同步多模态路由 | 不要添加异步标头 | 在响应中返回结果 |
对于异步 Wan 调用,在进行其他操作前,先持久化创建请求的 request_id、output.task_id 和初始 task_status。使用 Bearer 身份验证,对 GET https://{WorkspaceId}.{region}.maas.aliyuncs.com/api/v1/tasks/{task_id} 进行轮询,并设置有上限的退避间隔、随机抖动和截止时间。遇到 PENDING 和 RUNNING 时继续轮询;只有在 SUCCEEDED 时才接受输出;遇到 FAILED、CANCELED 或 UNKNOWN 时停止,并记录 code/message。不要仅因轮询中断就创建替代任务。任务 ID、任务数据和结果 URL 的文档记录有效期为 24 小时,因此请在此期限内完成对账和下载。
保留已知的文档歧义
- 当前 Qwen 文本生成图像页面标注了北京端点,但该行及部分 SDK 注释中却列出了新加坡主机名。阿里巴巴的其他当前页面显示北京使用
cn-beijing.maas.aliyuncs.com。请将此视为明显的文档复制错误;部署前在控制台中确认端点。 - 阿里巴巴将
qwen-image-2.0-pro-2026-06-22标记为推荐版本,同时指出浮动别名qwen-image-2.0-pro目前等同于...-2026-04-22。不要假设浮动别名指向最新快照。需要确保可复现时,请在确认区域可用后固定使用带日期的 ID。 - Qwen 以总像素范围描述自定义尺寸,使用“512×512 至 2048×2048”的说法,而推荐预设中包含长边超过 2048 的尺寸。请使用文档列出的预设或验证所请求的尺寸;不要将该说法重新解读为单边尺寸上限。
- Z-Image 页面目前显示的是共享的北京 DashScope 端点,而较新的平台指南建议使用专属工作空间的域名。上线前,请确认所选区域支持的确切 Z-Image 端点。
正确构建请求
使用单条 user 消息。将每个参考图放入一个 image 对象,并将一条指令放入一个 text 对象。使用带星号的 "width*height",绝不要使用 "widthxheight"。
Wan 2.7
- 接受 0–9 张 JPEG/JPG/不含透明通道的 PNG/BMP/WEBP 输入;每张大小不得超过 20 MB,每边尺寸须为 240–8000 像素,宽高比须在 1:8–8:1 之间。
- 提示词可使用中文或英文,最多 5,000 个字符;超出的文本会被截断。
- 使用
size: "1K"、"2K"或"4K",也可使用自定义"width*height"。wan2.7-image-pro仅在非序列模式下进行纯文本生成图像时支持 4K。wan2.7-image最高支持 2K。 - 将请求的 Wan 尺寸视为目标,而非实际交付像素尺寸的保证;检查解码后的输出和用量,因为服务商选择的尺寸可能略有不同。
- 标准模式下使用
n: 1..4。设置enable_sequential: true时,使用n: 1..12;模型返回的结果可能少于n。 - 交互式编辑使用
bbox_list。每张输入图像对应一个外层列表,使用原图坐标[x1,y1,x2,y2],图像没有目标时使用[],每张图像最多指定两个框。 - 对于复杂的纯文本生成图像任务,如果可以接受较高延迟,请保留
thinking_mode: true。该参数仅适用于非序列模式且没有图像输入的情况。 - 仅在非序列模式下使用
color_palette:指定 3–10 种 HEX 颜色,每种颜色的比例保留两位小数,且总和必须恰好为100.00%。 - 不要发送
prompt_extend;当前 Wan 2.7 使用thinking_mode。
Qwen-Image 2.0
- 使用一个文本对象生成图像;2.0 提示词最多接受 1,300 个 token,超出的输入会被截断。
- 使用 1 至 3 张 JPG/JPEG/PNG/BMP/TIFF/WEBP/GIF 输入进行编辑,每张不得超过 10 MB。GIF 只使用第一帧。为获得最佳效果,每边尺寸保持在 384 至 3072 像素之间。
- 按顺序引用输入:“Image 1”、“Image 2”和“Image 3”。说明每张图像的用途,以及哪些内容必须保持不变。
- 设置
n: 1..6、最多 500 个字符的negative_prompt、seed: 0..2147483647,以及size: "width*height"。输出格式为 PNG。 - 对简短的探索性提示词,保留
prompt_extend: true。对于精确文案、品牌限制、可复现的提示词审查或精心指定的布局,将其设为false。改写不会改变负面提示词。 - 将相同的 seed 视为提高稳定性的辅助方式,而非确定性复现的保证。
- 对于 Qwen 编辑,服务会将请求的尺寸调整为邻近的 16 的倍数;官方示例将
1033*1032映射为1040*1024。请解码并记录实际尺寸。需要精确交付像素尺寸时,应在生成后进行确定性裁剪/缩放,而不是声称模型原样返回了请求尺寸。
Z-Image Turbo
- 使用一个中文或英文文本对象,最多 800 个字符,并恰好接收一张 PNG。
- 使用
size: "width*height";文档规定的范围为 512×512 至 2048×2048,默认值为1024*1536。 - 为实现最快、成本最低的直接生成,请保留
prompt_extend: false。仅当 LLM 改写/推理值得额外延迟和文档所述的 2 倍价格时,才将其设为true。 - 不要提供编辑图像,也不要请求多个输出。
用于可控生产的提示词
请将以下内容标记为生产启发式方法,而非提供商保证。
按重要性从高到低编写提示词:
- 指明交付内容和主体。
- 锁定构图:视角、取景、主体位置、留白、景深层次。
- 描述身份/产品的不变特征及参考图的作用。
- 指定材质、光线、色彩、媒介和质感。
- 逐字引用所有必需文本,并描述其层级、位置、对齐方式、大小写和对比度。
- 说明排除项或保留限制。
优先使用具体的空间描述,而不是堆砌形容词。编辑时,分别列出变更清单和保留清单:“将 X 替换为 Y;保留面部、姿势、相机、阴影、包装几何形状、Logo 位置和背景。”处理多张参考图时,为每张输入图指定一项职责,避免让两张图定义同一属性。
为保持角色一致性,先确认一份中性身份表。将其作为第一张参考图重复使用,重申身份不变特征,每次只改变一个场景变量,在支持的情况下使用稳定的种子,并在整组图中比较面部、头发、身体比例、服装标志性元素和独特标记。叙事连贯性很重要时,使用 Wan 顺序模式,但要做好筛选,而非全盘接受每一帧。
需要控制品牌色彩时,若调色板比例很重要,请使用 Wan color_palette,然后测量返回的素材,而不要只相信视觉印象。如果偏差不可接受,则将最终 Logo 几何形状、法律文案、小标签和精确色值留给确定性的合成处理。
排版与布局:
- 逐字引用文案,并确保每轮生成的文案简短。
- 一次只描述一种层级:标题、副标题、标签、页脚。
- 定义清晰的网格、边距、安全区域、对齐方式和对比度。
- 将背景/插图与较长或受监管的文案分开生成。
- 如果必须确保拼写、字体授权、字距、无障碍性或法律准确性,请在设计工具中合成精确文案。
使用带门控的迭代循环
- **本地验证:**检查必需变量、区域/端点匹配情况、模型 ID、输入格式、图像数量、尺寸和预计最高输出费用。此时不要调用 API。
- **低成本探索:**以适当的较低分辨率请求一到两个样本。在清单中记录模型、提示词、参数、种子、请求 ID 和源文件哈希。
- **从结构上筛选:**优先评估构图、身份、文本位置、编辑保真度和品牌契合度,再考虑表面润色。
- **修复单一维度:**每轮只更改提示词、参考图、裁剪、种子、调色板或模型中的一项。保留已确认的变量。
- **以确定性方式完成:**合成精确的排版和 Logo、制作裁剪变体、进行色彩管理,并按需导出配置文件和元数据。
- **进行最终 QA:**以 100% 缩放、缩略图尺寸和每种交付裁剪检查;验证文本原文、人体结构、反射、产品几何形状、参考图泄漏、边缘伪影、水印政策和来源记录。
- **立即持久化:**在返回的 URL 于 24 小时后过期前下载文件,并在标记任务完成前验证状态、MIME 类型、文件魔数、字节数、图像解码和实际尺寸。保留原始文件后,才进行确定性的裁剪/缩放。
使用自动检查验证尺寸、文件类型、Alpha 通道、空白/损坏文件和重复哈希。对于含义、相似度、IP/商标问题、误导性情境、文化敏感性和美学质量,则进行人工审核。
示例:先试运行再生成 Wan
这个完整示例默认只记录请求哈希和脱敏摘要,且仅当 SEND_DASHSCOPE_REQUEST=1 时才发送请求。发送请求会产生计费调用。请先安装 requests 和 Pillow。
import hashlib
import ipaddress
import json
import os
import socket
import tempfile
from pathlib import Path
from urllib.parse import urljoin, urlsplit
import requests
from PIL import Image, UnidentifiedImageError
MAX_JSON_BYTES = 8 * 1024 * 1024
MAX_IMAGE_BYTES = 25 * 1024 * 1024
MAX_IMAGE_PIXELS = 20_000_000
Image.MAX_IMAGE_PIXELS = MAX_IMAGE_PIXELS
def require_safe_https(url):
parsed = urlsplit(url)
if parsed.scheme != "https" or not parsed.hostname:
raise RuntimeError("Artifact URL must use HTTPS")
if parsed.username or parsed.password or parsed.fragment:
raise RuntimeError("Artifact URL contains credentials or a fragment")
addresses = {
info[4][0] for info in socket.getaddrinfo(parsed.hostname, parsed.port or 443)
}
if not addresses or any(not ipaddress.ip_address(value).is_global for value in addresses):
raise RuntimeError("Artifact host did not resolve exclusively to public addresses")
def download_verified_image(url, destination):
current = url
response = None
for _ in range(6):
require_safe_https(current)
response = requests.get(
current,
headers={"Accept": "image/png"}, # Never forward the Ark bearer token.
timeout=(10, 120),
stream=True,
allow_redirects=False,
)
if response.status_code in {301, 302, 303, 307, 308}:
location = response.headers.get("Location")
response.close()
if not location:
raise RuntimeError("Artifact redirect omitted Location")
current = urljoin(current, location)
continue
response.raise_for_status()
break
else:
raise RuntimeError("Too many artifact redirects")
content_type = response.headers.get("Content-Type", "").split(";", 1)[0].lower()
if content_type != "image/png":
response.close()
raise RuntimeError(f"Unexpected artifact Content-Type: {content_type}")
declared = response.headers.get("Content-Length")
if declared and int(declared) > MAX_IMAGE_BYTES:
response.close()
raise RuntimeError("Artifact exceeds declared byte cap")
destination.parent.mkdir(parents=True, exist_ok=True)
handle, temporary = tempfile.mkstemp(dir=destination.parent, prefix=".wan-")
total = 0
digest = hashlib.sha256()
try:
with os.fdopen(handle, "wb") as output:
for chunk in response.iter_content(64 * 1024):
if not chunk:
continue
total += len(chunk)
if total > MAX_IMAGE_BYTES:
raise RuntimeError("Artifact exceeded byte cap while streaming")
digest.update(chunk)
output.write(chunk)
output.flush()
os.fsync(output.fileno())
response.close()
with open(temporary, "rb") as source:
prefix = source.read(8)
if prefix != b"\x89PNG\r\n\x1a\n":
raise RuntimeError("Artifact signature is not PNG")
source.seek(0)
try:
with Image.open(source) as image:
actual_format = image.format
actual_size = image.size
if actual_size[0] * actual_size[1] > MAX_IMAGE_PIXELS:
raise RuntimeError(f"Artifact exceeds pixel cap: {actual_size}")
image.verify()
with Image.open(temporary) as image:
image.load()
except (UnidentifiedImageError, OSError, Image.DecompressionBombError) as exc:
raise RuntimeError("Artifact failed bounded image decode") from exc
if actual_format != "PNG" or actual_size[0] * actual_size[1] > MAX_IMAGE_PIXELS:
raise RuntimeError(f"Unexpected decoded image: {actual_format} {actual_size}")
os.replace(temporary, destination)
except Exception:
response.close()
try:
os.unlink(temporary)
except FileNotFoundError:
pass
raise
return {"bytes": total, "sha256": digest.hexdigest(), "dimensions": actual_size}
key = os.environ.get("DASHSCOPE_API_KEY")
workspace = os.environ.get("DASHSCOPE_WORKSPACE_ID")
region = os.environ.get("DASHSCOPE_REGION", "ap-southeast-1")
hosts = {
"ap-southeast-1": f"https://{workspace}.ap-southeast-1.maas.aliyuncs.com",
"cn-beijing": f"https://{workspace}.cn-beijing.maas.aliyuncs.com",
}
if region not in hosts:
raise SystemExit("DASHSCOPE_REGION must be ap-southeast-1 or cn-beijing")
payload = {
"model": "wan2.7-image-pro",
"input": {"messages": [{"role": "user", "content": [{
"text": "Editorial product hero for a matte navy travel bottle, three-quarter view on a pale stone plinth, bottle centered left with clean negative space on the right, soft window light, restrained shadows, premium realistic photography, no text, no logo invention"
}]}]},
"parameters": {"size": "2K", "n": 1, "thinking_mode": True,
"watermark": False, "seed": 18427},
}
payload_bytes = json.dumps(payload, separators=(",", ":")).encode("utf-8")
print({"model": payload["model"], "request_sha256": hashlib.sha256(payload_bytes).hexdigest(),
"n": payload["parameters"]["n"], "size": payload["parameters"]["size"]})
if os.environ.get("SEND_DASHSCOPE_REQUEST") != "1":
raise SystemExit("Dry run only; set SEND_DASHSCOPE_REQUEST=1 to send a paid call")
if not key or not workspace:
raise SystemExit("Set DASHSCOPE_API_KEY and DASHSCOPE_WORKSPACE_ID")
url = hosts[region] + "/api/v1/services/aigc/multimodal-generation/generation"
r = requests.post(url, headers={"Authorization": f"Bearer {key}",
"Content-Type": "application/json"}, data=payload_bytes,
timeout=(10, 180), stream=True)
raw_response = r.raw.read(MAX_JSON_BYTES + 1, decode_content=True)
r.close()
if len(raw_response) > MAX_JSON_BYTES:
raise RuntimeError("API response exceeded JSON byte cap")
try:
data = json.loads(raw_response)
except (UnicodeDecodeError, ValueError):
raise RuntimeError(f"Non-JSON response: HTTP {r.status_code}")
if not r.ok or data.get("code"):
raise RuntimeError({"http": r.status_code, "request_id": data.get("request_id"),
"code": data.get("code"), "message": data.get("message")})
items = data["output"]["choices"][0]["message"]["content"]
urls = [item["image"] for item in items if item.get("type") == "image" or "image" in item]
if not urls:
raise RuntimeError("Successful response contained no image URL")
out = Path("wan-output.png")
artifact = download_verified_image(urls[0], out)
print({"saved": str(out), **artifact,
"request_id": data.get("request_id"), "usage": data.get("usage")})
对于 Qwen 多图编辑,保留相同的传输方式,但替换模型和消息内容:
payload = {
"model": "qwen-image-2.0-pro",
"input": {"messages": [{"role": "user", "content": [
{"image": os.environ["PRODUCT_IMAGE_URL"]},
{"image": os.environ["MATERIAL_IMAGE_URL"]},
{"text": "Use Image 1 as the product geometry and camera reference. Apply only the brushed copper material from Image 2 to the product shell. Preserve silhouette, controls, label position, perspective, lighting direction, shadows, and background. Do not add objects or text."}
]}]},
"parameters": {"n": 2, "size": "1536*1024", "prompt_extend": False,
"negative_prompt": "warped geometry, altered controls, extra text, extra objects",
"watermark": False, "seed": 18427},
}
对于非敏感引用,仅使用公共 HTTPS URL;或者在策略允许时,使用文档中说明的 Base64 数据 URL。避免在 URL 中嵌入密钥。
处理失败,避免重复花费
- 401/身份验证: 一并核验密钥、区域、工作区 ID、端点和模型部署范围。不要打印密钥。
- InvalidParameter: 验证星号大小语法、数量、特定于模型的字段、输入顺序,以及不受支持的组合,例如 Wan
color_palette与顺序模式同时使用。 DataInspectionFailed: 将其视为审核拒绝。检查提示词和引用内容,确保符合规范;不要伪装或混淆请求以绕过管控。- 速率限制或突发请求: 将调用加入队列、限制并发、加入随机指数退避,并遵循任何重试指引。不要盲目重试验证或审核失败。
- 超时或结果不确定: 保留
request_id;重新提交前,先确认是否已有结果。对于当前的异步 Wan 2.7 或更早的异步 Qwen 路由,请轮询现有的task_id,而不是创建重复任务。Qwen-Image 2.0 和 Z-Image Turbo 没有可用的异步恢复路由。 - URL 缺失或损坏: 至少要求返回一个图像项,立即下载并验证 MIME 类型和解码结果,且仅重试失败的单元。
截至 2026-07-09 的验证结果显示,限制适用于 RAM 用户、工作区和密钥组成的整个账户级别。速率限制页面列出的数值为:新加坡和北京的 Wan 2.7 每秒提交 5 个任务、并发数为 5;Z-Image Turbo 每秒提交 2 个任务;Qwen-Image 2.0 的提交限制则因 Pro ID 与加速 ID 而异。请以控制台和当前速率限制页面为准,不要将这些数值硬编码。速率限制控制的是吞吐量,而不是总花费。
管控成本、数据、权利与安全
截至 2026-07-09 已核实,Alibaba 按成功生成的输出图像计费,不对输入计费;处理失败不收费。当前新加坡标价为:wan2.7-image-pro 每张 $0.075,wan2.7-image 每张 $0.03,qwen-image-2.0-pro 每张 $0.075,qwen-image-2.0 每张 $0.035,Z-Image Turbo 在不改写提示词时每张 $0.015,启用改写时每张 $0.03。北京的价格和免费额度有所不同。所引图像价格表中的免费额度仅适用于国际部署,并在激活后 90 天到期。报价或调用前,请立即重新核实价格和额度。
根据请求生成的输出数量计算最坏情况下的费用,包括 Wan 的顺序生成参数 n,而不是请求数量。设置账户预算和提醒,并在应用侧设置数量及支出上限。
文档说明,返回的图像 URL 和 Wan 任务数据可用 24 小时;这并不完整说明整个服务对输入和输出数据的保留情况。将数据下载到获批的存储位置,然后遵守组织的数据删除、访问、加密和备份规则。模型监控可能会收集账户或工作区的调用数据;启用推理日志记录时,输入和输出会记录到 Log Service。文档说明,基础和高级监控数据默认保留 30 天,但所引页面未说明推理日志的保留期限;请确认 Log Service 的配置。
对于受当前 Alibaba Cloud International Model Studio 条款约束的账户,Alibaba 声明,未经单独同意,不会使用会员内容开发或改进 Model Studio 模型;当前的 Model Studio 隐私材料也说明,客户数据不会用于模型训练。请记录适用的合同、账户和核实日期,不要将此承诺泛化为适用于所有 Alibaba 关联公司或未来条款。此项不用于训练的承诺并不意味着零保留。
仅凭端点所在区域无法严格保证数据驻留:国际条款允许在 Alibaba、其关联公司或分包商设有设施的地点传输、存储和处理数据。在发送机密、生物特征、健康、客户或尚未发布的产品数据之前,请确认控制台设置、部署范围、跨境传输条款、子处理方、区域要求、合同以及 DPA/安全审查。如果公开文档未能解答数据保留或驻留方面的问题,请说明不确定性并上报;不要承诺零保留。
仅使用有权且已获同意处理的参考资料和文案。对于可识别个人的内容,须取得明确同意;涉及未成年人或敏感场景时,须获得更高级别的批准。不要暗示背书、捏造纪实证据、以欺骗为目的移除来源信息,也不要利用生成来规避审核。发布前,请检查商标、名人肖像、受版权保护的角色、包装、字体和许可素材。Alibaba 自己的文生图指南明确规定,客户有责任评估商标、名人肖像和版权风险。
将 watermark: true 视为可见的服务商标记(Wan 2.7 显示 AI Generated;Qwen 显示 Qwen-Image),而非完整的来源证明或权利保障方案。即使关闭可见水印,也应保留内部清单,记录来源授权、模型/快照、区域、提示词、参数、种子、请求 ID、创建时间、编辑记录和人工审批。请独立审核每项输出:服务条款警告,输出可能并非预期、并非独有,或与其他客户生成的内容相似。
主要来源
以上所有易变信息均已于 2026-07-09 根据一手来源核实: