模型概览
模型名 | 模型简介 |
aitryon | aitryon是一款虚拟试衣图片生成模型,可基于服饰平拍图片以及人物正面全身照,输出服饰的人物试衣效果图片。 |
模型效果与输入要求
模型效果示例
输入全身正面照 | 输入服装平铺图 | 生成试衣效果 |
试衣模特人物图的要求
模特人物图上传要求 | |
基本要求 |
|
照片要求 |
|
正确示例:
错误示例:
非正面全身照 (避免上传侧身、坐姿、躺姿、半身照片) | 多人照片 | 人物服装遮挡 (避免手持物、包等) | 光线过暗/模糊不清 |
试衣服饰图的要求
服装平铺图上传要求 | |
基本要求 |
|
照片要求 |
-上传清晰平整的服装平铺图; -背景简约、干净、光线良好; -图片中只可展示单件服装; -不可叠加其他服装一起拍摄; -服装在图片中的占比尽可能大。 |
正确示例:
错误示例:
多件服装 | 非正面照 | 折叠遮挡 | 服装褶皱 |
HTTP调用接口
功能描述
用于生成人物试衣图片。
前提条件
已开通百炼服务并获得API-KEY:获取API Key。
作业提交接口
POST https://dashscope.aliyuncs.com/api/v1/services/aigc/image2image/image-synthesis
因该算法调用耗时较长,故采用异步调用的方式提交任务。
任务提交之后,系统会返回对应的作业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。
| http://aaa/1.jpg |
input.bottom_garment_url | String | Body | 否 | 用户上传的下半身服饰图片的原图 URL。
说明
| http://aaa/2.jpg |
input.person_image_url | String | Body | 是 | 用户上传的模特人物图片的原图 URL。
| http://aaa/3.jpg |
parameters.resolution | Int | Body | 否 | 输出图片的分辨率控制。包含3个选项:
说明 若后续还需调用AI试衣图片精修API,该值必须设为-1。 | -1 |
parameters.restore_face | Bool | Body | 否 | 输出图片模特脸部的还原控制。包含2个选项:
说明 若后续还需调用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"
}
作业任务状态查询和结果获取接口
GET https://dashscope.aliyuncs.com/api/v1/tasks/{task_id}
入参描述
字段 | 类型 | 传参方式 | 必选 | 描述 | 示例值 |
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": "xxx",
"message": "xxxxxx"
}
}
状态码说明
大模型服务通用状态码请查阅:错误码
同时本模型还有如下特定错误码:
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 | 上传图片大小不符合要求 |
常见问题
为什么一定要上传服装平铺图?
服装平铺图可以清晰展示服装的版型及图案,能够让AI更好的识别服装和人体的关系,从而更好的还原服装上身效果。
如果没有现成的服装平铺图怎么办?
可以在光线较好处,找身边的同事或朋友穿着服装进行拍摄,或者将服装放置人台上进行拍摄。
为什么生成的图片没有细节没有质感?
需要输入高清完整的服装平铺图,如果缺失服装细节或角度,可能会导致AI“自由发挥”,从而无法生成想要的效果。
如何生成单件连体/套装服装的试衣图?
当不需要下装时,在调用input.bottom_garment_url接口时保持该值置为空即可。
如何选择合适的模特图?
需要正面清晰完整的人物全身照或半身照,避免遮挡;人物服饰应尽量简洁(如短袖+短裤),保证人物双手双脚均清晰可见,避免选择长裙、多件叠穿、宽袍大袖以及有丝巾/伞/包等配饰物的模特图片。
如果没有现成的模特图怎么办?
可以点击链接下载官网模特图生成试衣图片。