AI试衣API详情

AI试衣生成效果

AI试衣(OutfitAnyone)是通义实验室自主研发的虚拟试衣模型服务产品。用户无需亲临实体店或经历繁琐的试穿过程,仅需上传服装平铺图以及正面全身人像照,便能生成高质量试衣效果,精准展现衣物穿着后的实际观感。

生成方式及效果示意:

输入全身正面照

输入服装平铺图

生成试衣效果

test_client_tryon

image.jpeg

test_client_tryon

image.jpeg

人物照片上传要求

基本要求

  • 图片数量:单张人物照片

  • 文件大小:5KB~5MB之间

  • 分辨率:大于150*150 px,最大边长小于4096,最小边大于150

  • 图片格式:支持jpg/jpeg/png/bmp

照片要求

  • 人群要求:支持生成不同国际、性别、肤色、年龄(6岁以上)、风格(真人/卡通)的人物图。

  • 姿势要求:全身正面照,手部需要展示完整,手臂姿态避免大开大合、交叉等情况。

正确示例:

image.png

image.png

image.png

image.png

错误示例:

非正面全身照

(避免上传侧身、坐姿、躺姿、半身照片)

多人照片

人物服装遮挡

(避免手持物、包等)

光线过暗/模糊不清

image

image.png

image.png

image.png

服装平铺图上传要求

基本要求

  • 图片数量:单张服饰照片

  • 文件大小:5KB~5MB之间

  • 分辨率:大于150*150 px,最大边长小于4096 px,最小边大于150 px

  • 图片格式:支持jpg/jpeg/png/bmp

照片要求

  • 试衣类型:支持上传上下装试衣/套装试衣

  • 服装类目:花纹&图案较少服装。例如:牛仔裤、polo衫、瑜伽服、连衣裙、西装、T恤等。

  • 图片要求:

-上传清晰平整的服装平铺图;

-背景简约、干净、光线良好;

-图片中只可展示单件服装;

-不可叠加其他服装一起拍摄;

-服装在图片中的占比尽可能大。

正确示例:

image.jpeg

image.jpeg

image.jpeg

image.webp

image.jpeg

image.webp

image.jpeg

image.webp

错误示例:

多件服装

非正面照

折叠遮挡

服装褶皱

image.jpeg

image.png

image.png

image.png

API 接口

1. 试衣的pipeline提交任务接口调用

POST https://dashscope.aliyuncs.com/api/v1/services/aigc/image2image/image-synthesis
功能描述:

因为算法属于时间相对较长的算法调用,通常情况下,1张图片大概需要 15 秒左右的生成时间,所以需要采用异步调用的方式提交任务,任务提交之后,系统会返回对应的task_id,随后客户通过对应的异步作业查询接口获取任务状态以及在作业结束后取回对应结果。

入参描述:

字段

类型

传参方式

必选

描述

示例值

Content-Type

String

Header

请求类型:application/json

application/json

Authorization

String

Header

API-Key,例如:Bearer d1**2a

Bearer d1**2a

X-DashScope-Async

String

Header

使用 enable,表明使用异步方式提交作业。

enable

model

String

Body

指明需要调用的模型。

aitryon

input.top_garment_url

String

Body

用户上传的上半身服饰图片的原图 URL, 图片大小应在5KB~5MB,图像格式限于jpg/png/jpeg/bmp,最大边长小于等4096,最小边大于150。

尽量保持服饰是单一主体且完整,背景干净,四周不宜留白过多。

http://aaa/1.jpg

input.bottom_garment_url

String

Body

用户上传的下半身服饰的原图 URL, 图片大小应在5KB~5MB,图像格式限于jpg/png/jpeg/bmp,最大边长小于等4096, 最小边大于150。

尽量保持服饰是单一主体且完整,背景干净,四周不宜留白过多。

若不输入下装图片,下装效果将随机生成。

若不需要下装(如上装是连衣裙),应将该值置空。

http://aaa/2.jpg

input.person_image_url

String

Body

用户上传的模特人物图片的原图 URL, 图片大小应在5KB~5MB,图像格式限于jpg/png/jpeg/bmp,最大边长小于等4096,最小边大于150。

需要保持待换装的人物图片中有且仅有一个完整的人。

http://aaa/3.jpg

parameters.resolution

Int

Body

输出图片的分辨率控制。包含3个选项,值为-1代表还原到原图大小,值为1024代表(576x1024),值为1280代表(720x1280)。默认为-1。

若后续还需调用AI试衣图片精修API,必须选-1。

-1

parameters.restore_face

Bool

Body

输出图片模特脸部的还原控制。包含2个选项,值为true时会还原原图人脸,值为false时会生成新的人脸。默认为true。

若后续还需调用AI试衣图片精修API,必须选true。

true

出参描述:

字段

类型

描述

示例值

output.task_id

String

提交异步任务的作业id,实际作业结果需要通过异步任务查询接口获取。

a8532587-fa8c-4ef8-82be-0c46b17950d1

output.task_status

String

提交异步任务后的作业状态。

PENDING

request_id

String

本次请求的系统唯一码

7574ee8f-38a3-4b1e-9280-11c33ab46e51

请求示例:
curl --location 'https://dashscope.aliyuncs.com/api/v1/services/aigc/image2image/image-synthesis/' \
--header 'X-DashScope-Async: enable' \
--header 'Authorization: Bearer <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
    "model": "aitryon",
    "input": {
        "top_garment_url": "http://xxx/1.jpg",
        "bottom_garment_url": "http://xxx/2.jpg",
        "person_image_url": "http://xxx/3.jpg"
    },
    "parameters": {
        "resolution": -1,
        "restore_face": true
    }
  }'
响应示例
{
    "output": {
	"task_id": "a8532587-fa8c-4ef8-82be-0c46b17950d1", 
    	"task_status": "PENDING"
    }
    "request_id": "7574ee8f-38a3-4b1e-9280-11c33ab46e51"
}

2. 异步任务查询接口

GET https://dashscope.aliyuncs.com/api/v1/tasks/{task_id}
功能描述:

异步任务接口在任务提交之后就可以获取到对应的 task_id,随后客户可以通过标准的任务查询接口查询作业的状态以及获取到最终任务的生成结果;其中生成的图片将会存储在 OSS 中以 URL 的形式返回给客户供客户下载。

入参描述:

字段

类型

传参方式

必选

描述

示例值

Authorization

String

Header

API-Key,例如:Bearer d1**2a

Bearer d1**2a

task_id

String

Url Path

需要查询作业的 task_id

a8532587-fa8c-4ef8-82be-0c46b17950d1

出参描述:

字段

类型

描述

示例值

output.task_id

String

查询作业的 task_id

a8532587-fa8c-4ef8-82be-0c46b17950d1

output.task_status

String

被查询作业的作业状态

任务状态:

PENDING 排队中

RUNNING 处理中

SUCCEEDED 成功

FAILED 失败

UNKNOWN 作业不存在或状态未知

output.results.image_url

String

如果作业成功,包含模型生成的结果 object,然后每个 object 中包含按照要求生成的结果地址

{"image_url":"https://xxx/1.jpg"}

usage.image_count

Int

本次请求生成图片张数

"image_count": 1

request_id

String

本次请求的系统唯一码

7574ee8f-38a3-4b1e-9280-11c33ab46e51

请求示例:
curl -X GET \
 --header 'Authorization: Bearer <YOUR_API_KEY>' \
 'https://dashscope.aliyuncs.com/api/v1/tasks/<YOUR_TASK_ID>'
响应示例:
{
  "request_id": "xxx",
  "output": {
    "task_id": "xxx",
    "task_status": "SUCCEEDED",
    "submit_time": "2024-07-30 15:39:39.918",
    "scheduled_time": "2024-07-30 15:39:39.941",
    "end_time": "2024-07-30 15:39:55.080",
    "image_url": "YOUR_IMAGE_URL"
  },
  "usage": {
    "image_count": 1
  }
}
异常响应示例:
{
    "request_id": "6bf4693b-c6d0-933a-b7b7-f625d098d742",
    "output": {
        "task_id": "e32bd911-5a3d-4687-bf53-9aaef32213e9",
        "task_status": "FAILED",
        "code": "InvalidInputLength",
        "message": "The image resolution is invalid,  please make sure that the largest length of image is smaller than 4096, and the smallest length of image is larger than 150. and the size of image ranges from 5kb to 5mb"
  }
}

状态码说明

大模型服务通用状态码请查阅:错误码

同时本模型还有如下特定错误码:

HTTP 返回码

错误码(code)

错误信息(message)

含义说明

400

InvalidParameter

The request is missing required parameters or in a wrong format, please check the parameters that you send.

入参格式不对

400

InvalidURL

The request URL is invalid, please check the request URL is available and the request image format is one of the following types: JPEG, JPG, PNG, BMP, and WEBP.

图片URL访问失败,请检查URL或文件格式

400

InvalidPerson

The input image has no human body or multi human bodies. Please upload other image with single person.

输入图片中没有人或多人主体

400

InvalidInputLength

The image resolution is invalid, please make sure that the largest length of image is smaller than 4096, and the smallest length of image is larger than 150. and the size of image ranges from 5KB to 5MB

上传图片大小不符合要求

常见问题

  1. 为什么一定要上传服装平铺图?

    服装平铺图可以清晰展示服装的版型及图案,能够让AI更好的识别服装和人体的关系,从而更好的还原服装上身效果。

  2. 如果没有现成的服装平铺图怎么办?

    可以在光线较好处,找身边的同事或朋友穿着服装进行拍摄,或者将服装放置人台上进行拍摄。

  3. 为什么生成的图片没有细节没有质感?

    需要输入高清完整的服装平铺图,如果缺失服装细节或角度,可能会导致AI“自由发挥”,从而无法生成想要的效果。

  4. 如何生成单件连体/套装服装的试衣图?

    当不需要下装时,在调用input.bottom_garment_url接口时保持该值置为空即可。

  5. 如何选择合适的模特图?

    需要正面清晰完整的人物全身照或半身照,避免遮挡;人物服饰应尽量简洁(如短袖+短裤),保证人物双手双脚均清晰可见,避免选择长裙、多件叠穿、宽袍大袖以及有丝巾/伞/包等配饰物的模特图片。

  6. 如果没有现成的模特图怎么办?

    可以点击链接下载官网模特图生成试衣图片。