AI 基于原图内容智能生成扩展区域,扩大画布并补全背景与场景细节。支持画布模式和四边模式,适用于商品图、人像照片、设计素材等扩图场景。支持异步、同步两种调用方式。
接口返回的链接有效期为 1 小时,请及时下载存储。
鉴权
每个 API 请求都必须在请求头中携带你的 API Key。请按当前文档中的请求方式和参数说明,将其作为 X-API-KEY 请求头传入。
X-API-KEY: YOUR_API_KEY 创建智能扩图任务
/api/tasks/visual/advanced-image-expand 请求参数
image_url string 可选 原图下载地址。必须与 image_file 二选一;支持 HTTP 协议和 OSS 协议,最长 512 个字符,下载超时为 10 秒。如果同时传入 image_file 与 image_url,优先使用 image_file。
image_file file 可选 原图文件(二进制)。必须与 image_url 二选一;仅支持 JPG、JPEG、PNG,最大 5MB,分辨率 64x64 至 4096x4096,优先级高于 image_url。
图片上传要求请参看使用规范与限制#7。
mask_url string 可选 mask 图 URL。选填,传入后即为画布模式;支持 HTTP 协议和 OSS 协议,最长 512 个字符,下载超时为 10 秒。如果同时传入 mask_file 与 mask_url,优先使用 mask_file。
return_type integer 可选 结果返回方式。1 表示返回图片下载地址(默认);2 表示将图片作为 Base64 字符串返回。
top number 可选 向上扩展比例。默认值 0.1,取值范围 (0, 1]。
bottom number 可选 向下扩展比例。默认值 0.1,取值范围 (0, 1]。
left number 可选 向左扩展比例。默认值 0.1,取值范围 (0, 1]。
right number 可选 向右扩展比例。默认值 0.1,取值范围 (0, 1]。
strength number 可选 原图相似度。建议取值范围 [0.1, 1.0];值越小越接近原图,值越大越接近文本控制;设为 0 时,结果与原图基本保持一致。
scale number 可选 文本描述的影响程度。默认值 7.0,取值范围 [1, 20]。
steps integer 可选 采样步数。默认值 30;数值越大,图像可能更精细,但耗时也会显著增加。
seed integer 可选 随机种子。默认值 -1;-1 表示使用随机种子。当随机种子为相同正整数且其他参数一致时,生成结果大概率一致。
prompt string 可选 提示词。用于生成图像的提示词,支持中英文输入;建议内容简洁准确,控制在 100 个中文字或英文单词以内;该字段会经过审核。
sync integer 可选 是否同步返回结果。0 表示异步先返回 task_id,再通过查询接口轮询结果;1 表示同步直接返回结果。整体轮询时长建议不超过 180 秒,轮询间隔推荐 1 秒。
返回参数
status number HTTP 响应状态码。200 表示 HTTP 请求成功,并不代表扩图成功,详见 状态码说明。
message string 接口返回消息。任务失败时可参考此字段或联系客服。
data.task_id string 异步智能扩图任务 ID。创建任务成功后返回,用于后续查询智能扩图结果。
status number HTTP 响应状态码。200 表示 HTTP 请求成功,并不代表扩图成功,详见 状态码说明。
message string 接口返回消息。任务失败时可参考此字段或联系客服。
data.task_id string 智能扩图任务 ID。
data.created_at string 任务创建时间戳。
data.processed_at string 任务开始处理时间戳。
data.completed_at string 任务完成时间戳。
data.download_time number 图片下载耗时。
data.image string 结果图 URL 或 Base64 数据,链接有效期为 1 小时。
data.image1 string 部分响应中使用的备用结果字段。
data.image_1 string 部分响应中返回的第一张结果图。
data.image_2 string 部分响应中返回的第二张结果图。
data.image_3 string 部分响应中返回的第三张结果图。
data.image_4 string 部分响应中返回的第四张结果图。
data.return_type number 结果返回方式。
data.progress number 任务处理进度,取值范围 0 到 100。
data.state number 任务状态码。1 表示完成,大于 1 表示处理中,小于 0 表示失败,详见 状态码说明。
data.state_detail string 任务状态详情。
data.time_elapsed string 总耗时。
查询智能扩图结果
异步请求建议每 1 秒 轮询一次结果,本接口最大轮询时长为 180 秒;累计轮询超过该时长仍未返回结果,即可视为超时失败。
/api/tasks/visual/advanced-image-expand/{task_id} 路径参数
task_id string 必填 智能扩图任务 ID。创建异步任务后返回,用于查询任务处理结果。
返回参数
status number HTTP 响应状态码。200 表示 HTTP 请求成功,并不代表扩图成功,详见 状态码说明。
message string 接口返回消息。任务失败时可参考此字段或联系客服。
data.task_id string 智能扩图任务 ID。
data.created_at string 任务创建时间戳。
data.processed_at string 任务开始处理时间戳。
data.completed_at string 任务完成时间戳。
data.download_time number 图片下载耗时。
data.image string 结果图 URL 或 Base64 数据,链接有效期为 1 小时。
data.image1 string 部分响应中使用的备用结果字段。
data.image_1 string 部分异步响应中返回的第一张结果图。
data.image_2 string 部分异步响应中返回的第二张结果图。
data.image_3 string 部分异步响应中返回的第三张结果图。
data.image_4 string 部分异步响应中返回的第四张结果图。
data.return_type number 结果返回方式。
data.progress number 任务处理进度,取值范围 0 到 100。
data.state number 任务状态码。1 表示完成,大于 1 表示处理中,小于 0 表示失败,详见 状态码说明。
data.state_detail string 任务状态详情。
data.time_elapsed string 总耗时。
使用规范与限制
-
接口返回的结果图片链接有效期为 1 小时,请及时下载并存储。
-
HTTP status 为 200 表示 HTTP 请求成功,并非扩图成功,任务结果请结合 data.state 判断,详见 状态码说明。
-
使用 URL 作为参数传递时,请遵守 URL 编码规范,避免参数解析混乱。
-
传入 mask 参数时为画布模式;不传 mask 参数时,可通过 top、bottom、left、right 控制四边扩展比例。
-
mask 图片需要与 image 图片尺寸一致。
-
画布模式下,红框内的图片就是 image 图片,包括原图和需要扩展的区域。
画布模式示意图
-
上传图片需符合以下格式、分辨率和大小限制。
格式 分辨率 大小 jpg, jpeg, png 最小 64x64,最大 4096x4096 最大5MB
# 智能扩图 API
AI 基于原图内容智能生成扩展区域,扩大画布并补全背景与场景细节。支持画布模式和四边模式,适用于商品图、人像照片、设计素材等扩图场景,支持异步与同步两种调用方式。
> 注意:接口返回的结果图片链接有效期为 1 小时,请及时下载并存储。
## 接口域名(Base URL)
```
https://techsz.aoscdn.com
```
## 鉴权
每个请求都必须在请求头中携带你的 API Key:
```http
X-API-KEY: YOUR_API_KEY
```
你可以在 [API Key](https://picwish.cn/my-account?subRoute=api-key) 页面获取或管理 X-API-KEY。
未携带有效 API Key 的请求会被拒绝。
## 调用方式
通过创建请求中的 `sync` 参数选择调用方式:
- 异步(`sync=0`,推荐):创建请求立即返回 `data.task_id`,随后用该任务 ID 轮询查询接口直到处理完成。
- 同步(`sync=1`):创建请求等待处理完成,并在同一个响应中直接返回结果。
## 原图来源与扩图模式
- `image_url` 或 `image_file` 二选一必填。如果同时传入,优先使用 `image_file`。
- `mask_url` 或 `mask_file` 为可选参数。如果同时传入,优先使用 `mask_file`。
- 传入 mask 参数时为画布模式;不传 mask 参数时,可通过 `top`、`bottom`、`left`、`right` 控制四边扩展比例。
- 画布模式下,原图和 mask 图尺寸必须一致。
## 接口列表
| 用途 | 方法 | 路径 |
| --- | --- | --- |
| 创建智能扩图任务 | POST | /api/tasks/visual/advanced-image-expand |
| 查询智能扩图结果(异步) | GET | /api/tasks/visual/advanced-image-expand/{task_id} |
## 创建智能扩图任务
`POST /api/tasks/visual/advanced-image-expand`
Content-Type: `multipart/form-data`
### 请求参数
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| image_url | string | image_url / image_file 二选一 | 原图下载地址。支持 HTTP 协议和 OSS 协议,最长 512 个字符,下载超时为 10 秒。如果同时传入 image_file 与 image_url,优先使用 image_file。 |
| image_file | file | image_url / image_file 二选一 | 原图文件。仅支持 JPG、JPEG、PNG,最大 5MB,分辨率 64x64 至 4096x4096,优先级高于 image_url。 |
| mask_url | string | 可选 | mask 图 URL。传入后即为画布模式;支持 HTTP 协议和 OSS 协议,最长 512 个字符,下载超时为 10 秒。image 与 mask 需要等大。如果同时传入 mask_file 与 mask_url,优先使用 mask_file。 |
| mask_file | file | 可选 | mask 图文件。传入后即为画布模式,优先级高于 mask_url。image 与 mask 需要等大。 |
| return_type | integer | 可选 | 结果返回方式。1 表示返回图片下载地址(默认);2 表示将图片作为 Base64 字符串返回。 |
| top | number | 可选 | 向上扩展比例,默认 0.1,取值范围 (0, 1]。 |
| bottom | number | 可选 | 向下扩展比例,默认 0.1,取值范围 (0, 1]。 |
| left | number | 可选 | 向左扩展比例,默认 0.1,取值范围 (0, 1]。 |
| right | number | 可选 | 向右扩展比例,默认 0.1,取值范围 (0, 1]。 |
| strength | number | 可选 | 原图相似度,建议取值范围 [0.1, 1.0]。值越小越接近原图,值越大越接近文本控制;设为 0 时,结果与原图基本保持一致。 |
| scale | number | 可选 | 文本描述的影响程度,默认 7.0,取值范围 [1, 20]。 |
| steps | integer | 可选 | 采样步数,默认 30。数值越大,图像可能更精细,但耗时也会显著增加。 |
| seed | integer | 可选 | 随机种子,默认 -1。-1 表示使用随机种子;相同正整数 seed 且其他参数一致时,生成结果大概率一致。 |
| prompt | string | 可选 | 用于生成图像的提示词,支持中英文输入。建议内容简洁准确,控制在 100 个中文字或英文单词以内;该字段会经过审核。 |
| sync | integer | 可选 | 是否同步返回结果。0 表示异步先返回 task_id,再通过查询接口轮询结果;1 表示同步直接返回结果。整体轮询时长建议不超过 180 秒,轮询间隔推荐 1 秒。 |
### 返回参数 - 异步(sync=0)
| 参数 | 类型 | 说明 |
| --- | --- | --- |
| status | number | HTTP 响应状态码。200 表示 HTTP 请求成功,并不代表扩图成功,详见 /states。 |
| message | string | 接口返回消息。任务失败时可参考此字段或联系客服。 |
| data.task_id | string | 任务 ID,用于后续查询结果。 |
### 返回参数 - 同步(sync=1)
| 参数 | 类型 | 说明 |
| --- | --- | --- |
| status | number | HTTP 响应状态码。200 表示 HTTP 请求成功,并不代表扩图成功,详见 /states。 |
| message | string | 接口返回消息。任务失败时可参考此字段或联系客服。 |
| data.task_id | string | 任务 ID。任务失败时,可携带该参数联系商务或技术支持。 |
| data.created_at | string | 任务创建时间戳。 |
| data.processed_at | string | 任务开始处理时间戳。 |
| data.completed_at | string | 任务完成时间戳。 |
| data.download_time | number | 图片下载耗时。 |
| data.image | string | 结果图 URL 或 Base64 数据,URL 结果有效期为 1 小时。 |
| data.image1 | string | 部分响应中使用的备用结果字段。 |
| data.image_1 | string | 部分异步响应中返回的第一张结果图。 |
| data.image_2 | string | 部分异步响应中返回的第二张结果图。 |
| data.image_3 | string | 部分异步响应中返回的第三张结果图。 |
| data.image_4 | string | 部分异步响应中返回的第四张结果图。 |
| data.return_type | number | 结果返回方式。 |
| data.progress | number | 任务处理进度,取值范围 0 到 100。 |
| data.state | number | 任务状态码。1 表示完成,大于 1 表示处理中,小于 0 表示失败。详见 /states。 |
| data.state_detail | string | 任务状态详情。 |
| data.time_elapsed | string | 总耗时。 |
### 示例
异步,图片 URL 与 mask URL:
```bash
curl -k 'https://techsz.aoscdn.com/api/tasks/visual/advanced-image-expand' \
-H 'X-API-KEY: YOUR_API_KEY' \
-F 'sync=0' \
-F 'image_url=YOUR_IMAGE_URL' \
-F 'mask_url=YOUR_MASK_IMAGE_URL'
```
异步,本地图片与本地 mask 文件:
```bash
curl -k 'https://techsz.aoscdn.com/api/tasks/visual/advanced-image-expand' \
-H 'X-API-KEY: YOUR_API_KEY' \
-F 'sync=0' \
-F 'image_file=@/path/to/image.jpg' \
-F 'mask_file=@/path/to/mask.png'
```
同步,直接返回结果:
```bash
curl -k 'https://techsz.aoscdn.com/api/tasks/visual/advanced-image-expand' \
-H 'X-API-KEY: YOUR_API_KEY' \
-F 'sync=1' \
-F 'image_url=YOUR_IMAGE_URL' \
-F 'mask_url=YOUR_MASK_IMAGE_URL'
```
## 查询智能扩图结果
异步请求建议每 **1 秒** 轮询一次结果,本接口最大轮询时长为 **180 秒**;累计轮询超过该时长仍未返回结果,即可视为超时失败。
`GET /api/tasks/visual/advanced-image-expand/{task_id}`
异步模式下使用该接口轮询结果。建议每 1 秒查询一次,总轮询时长不超过 180 秒。当 `data.state=1` 或 `data.state<0` 时停止轮询。
### 路径参数
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| task_id | string | 必填 | 创建任务后返回的任务 ID。 |
### 返回参数
| 参数 | 类型 | 说明 |
| --- | --- | --- |
| status | number | HTTP 响应状态码。200 表示 HTTP 请求成功,并不代表扩图成功,详见 /states。 |
| message | string | 接口返回消息。任务失败时可参考此字段或联系客服。 |
| data.task_id | string | 任务 ID。任务失败时,可携带该参数联系商务或技术支持。 |
| data.created_at | string | 任务创建时间戳。 |
| data.processed_at | string | 任务开始处理时间戳。 |
| data.completed_at | string | 任务完成时间戳。 |
| data.download_time | number | 图片下载耗时。 |
| data.image | string | 结果图 URL 或 Base64 数据,URL 结果有效期为 1 小时。 |
| data.image1 | string | 部分响应中使用的备用结果字段。 |
| data.image_1 | string | 部分异步响应中返回的第一张结果图。 |
| data.image_2 | string | 部分异步响应中返回的第二张结果图。 |
| data.image_3 | string | 部分异步响应中返回的第三张结果图。 |
| data.image_4 | string | 部分异步响应中返回的第四张结果图。 |
| data.return_type | number | 结果返回方式。 |
| data.progress | number | 任务处理进度,取值范围 0 到 100。 |
| data.state | number | 任务状态码。1 表示完成,大于 1 表示处理中,小于 0 表示失败。详见 /states。 |
| data.state_detail | string | 任务状态详情。 |
| data.time_elapsed | string | 总耗时。 |
### 示例
```bash
curl -k 'https://techsz.aoscdn.com/api/tasks/visual/advanced-image-expand/{task_id}' \
-H 'X-API-KEY: YOUR_API_KEY'
```
## 推荐异步流程
1. 使用 `sync=0` 和一种原图来源请求 /api/tasks/visual/advanced-image-expand。
2. 如果使用画布模式,可额外传入 mask;如果不传 mask,则通过 `top`、`bottom`、`left`、`right` 控制四边扩展。
3. 从创建任务响应中读取 `data.task_id`。
4. 每 1 秒请求 /api/tasks/visual/advanced-image-expand/{task_id} 查询结果,总轮询时长不超过 180 秒。
5. 当 `data.state=1` 或 `data.state<0` 时停止轮询。
6. 任务成功后,请在 1 小时内下载结果图片。
## 使用规范与限制
- 接口返回的结果图片链接有效期为 **1 小时**,请及时下载并存储。
- HTTP status 为 200 表示 HTTP 请求成功,并非扩图成功,任务结果请结合 data.state 判断,详见 /states。
- 使用 URL 作为参数传递时,请遵守 URL 编码规范,避免参数解析混乱。
- 传入 mask 参数时为画布模式;不传 mask 参数时,可通过 top、bottom、left、right 控制四边扩展比例。
- mask 图片需要与 image 图片尺寸一致。
- 画布模式下,红框内的图片就是 image 图片,包括原图和需要扩展的区域。
| 画布模式示意图 |
| --- |
| [](https://picwish.cnhttps://qncdn.aoscdn.com/astro/picwish/_astro/extend-api-img.DhHtJTsk.png) |
- 上传图片需符合以下格式、分辨率和大小限制。
| 格式 | 分辨率 | 大小 |
| --- | --- | --- |
| jpg, jpeg, png | 最小 64x64,最大 4096x4096 | 最大5MB |
## 状态码
任务是否成功,需要结合 HTTP 响应状态码(`status`)和任务状态码(`data.state`)共同判断。
### HTTP 响应状态码
| 状态码 | 说明 |
| --- | --- |
| 200 | 请求成功。 |
| 400 | 客户端参数传递错误。请检查参数是否缺失或值是否正确。 |
| 401 | 认证失败。请检查 X-API-KEY 是否正确或服务是否开通。 |
| 404 | 请求的 URL 或资源不存在。请检查 URL 或 task_id 是否正确。 |
| 413 | 上传的文件超出大小限制。请参见各服务的最大文件限制。 |
| 429 | 请求频率超出 QPS 限制(默认 QPS 为 2)。请放缓请求速率,或联系商务提升 QPS。 |
| 500 | 服务端异常。请反馈给商务或技术对接人员。 |
### 任务状态码(data.state)
1 = 成功;大于 1 = 处理中;小于 0 = 失败。
| 状态码 | 说明 |
| --- | --- |
| -17 | 处理失败,非法提示词。 |
| -16 | 处理失败,使用第三方检测发现违规。 |
| -15 | 处理失败,资源不足。 |
| -14 | 处理失败,输入图片内容不符合要求。 |
| -13 | 处理失败,任务异常被取消。 |
| -11 | 处理失败,结果为空。 |
| -10 | 处理失败,内部检测非法。 |
| -9 | 处理失败,内部程序循环处理失败。 |
| -8 | 处理超时,最长处理时间 180 秒。 |
| -7 | 无效图片文件(如图片损坏、格式不对等)。 |
| -5 | image_url 图片超出大小限制(30MB)。 |
| -3 | 服务器下载图片文件失败,请检查图片 URL 是否可用。 |
| -2 | 处理完成,但上传 OSS 失败。 |
| -1 | 处理失败。 |
| 0 | 排队中,任务正在队列中等待。 |
| 1 | 完成,处理成功。 |
| 2 | 准备中。 |
| 3 | 等待中。 |
| 4 | 处理中,正在进行。 |
| 5 | 内部发布处理中。 |
| 6 | 处理中,内部循环处理中。 |