人物形象训练API调用需“申请体验”并通过后才可使用,否则API调用将返回错误状态码。
人物形象训练
支持的领域 / 任务:aigc /facechain人物写真生成
对上传的图像压缩包进行模型训练,从而获得该图像中对应人物的resource,基于该resource可以实现人物的写真生成。
人物形象训练是人物写真生成的前置环节,只有在针对某人物进行形象训练并成功获得形象resource后,才可基于此进行生成。
模型概览
模型名 | 模型简介 |
facechain-finetune | 对上传的图像进行模型训练,从而获得该图像中对应人物的resource,基于该resource可以实现人物的写真生成。 |
HTTP调用接口
功能描述
本接口为模型定制类服务,需要相对较长的算法调用时间,所以在接口层面采用了异步调用的方式进行任务提交,在通过任务接口提交作业之后,系统会返回对应的作业ID,随后可以通过对模型定制类任务的查询/管理接口进行相应操作。
前提条件
已开通服务并获得API-KEY:API-KEY的获取与配置。
接口限制:对单账户(含主账号与RAM子账号)任务下发接口限制QPS为2,并发任务数量限制为1。
准备训练数据
准备1~10张包含人脸的图片,您可以通过以下方式将这些图片提供给训练服务:
1、将这些图片存储在文件服务(例如阿里云oss)中,并生成授权的访问链接【推荐】
2、如果您没有合适的文件服务,可以将这些图片分别或打包成zip文件上传至DashScope提供的模型定制文件管理服务中,并获取file_id。
文件管理
您可以使用DashScope提供的文件服务来管理您的训练文件,详细的api请参考模型定制文件管理服务
创建模型定制任务接口调用
POST https://dashscope.aliyuncs.com/api/v1/fine-tunes
功能描述
完成训练数据的上传之后,就可以使用在上传之后得到的 file_id 发起facechain模型定制任务。
入参描述
字段 | 类型 | 传参方式 | 必选 | 描述 | 示例值 |
Content-Type | String | Header | 是 | 请求类型:application/json | application/json |
Authorization | String | Header | 是 | API-Key,例如:Bearer d1**2a | Bearer d1**2a |
model | String | Body | 是 | 用于定制的基础模型名 | facechain-finetune |
training_file_ids | Array | Body | 是 | 训练集文件列表,此处使用前述准备好的训练文件,支持url、file_id及两者混合 | "training_file_ids":[ "https://dashscope.oss-cn-beijing.aliyuncs.com/samples/fine-tune/facechain/sample1.jpg","https://dashscope.oss-cn-beijing.aliyuncs.com/samples/fine-tune/facechain/sample2.jpg","https://dashscope.oss-cn-beijing.aliyuncs.com/samples/fine-tune/facechain/sample3.jpg"] |
出参描述
字段 | 类型 | 描述 | 示例值 |
output.job_id | String | 本次创建请求产生的定制任务的任务id | xxxxxxxxx |
output.status | String | 本次创建请求产生的定制任务的状态 | “PENDING” |
request_id | String | 本次请求的系统唯一码 | 7574ee8f-38a3-4b1e-9280-11c33ab46e51 |
output.task_status | String | 提交异步任务后的 作业状态。 | “PENDING” |
请求示例
需要使用您的API-KEY替换示例中的 your-dashscope-api-key ,代码才能正常运行。
curl --location 'https://dashscope.aliyuncs.com/api/v1/fine-tunes' \
--header 'Authorization: Bearer <YOUR-DASHSCOPE-API-KEY>' \
--header 'Content-Type: application/json' \
--data '{ "model":"facechain-finetune",
"training_file_ids":[ "66e83f2f-efd4-4367-8c45-9500f715c3" ],
}'
响应示例
{
"request_id": "39591a98-4bbd-967c-846c-dc98ecd810f2",
"output": {
"job_id": "ft-202308291948-edc2",
"status": "PENDING",
"create_time": "2023-08-29 19:48:24"
}
}
检查定制任务状态接口
GET https://dashscope.aliyuncs.com/api/v1/fine-tunes/<job_id>
功能描述
查询模型定制任务的状态,并在任务完成之后获取对应的任务结果。当训练任务成功之后,就可以使用对应的 finetuned_output 内容做推理调用。
入参描述
字段 | 类型 | 传参方式 | 必选 | 描述 | 示例值 |
Content-Type | String | Header | 是 | 请求类型:application/json | application/json |
Authorization | String | Header | 是 | API-Key,例如:Bearer d1**2a | Bearer d1**2a |
job_id | String | URL | 是 | 需要查询的作业 id | ft-202308291948-edc2 |
出参描述
字段 | 类型 | 描述 | 示例值 |
output.job_id | String | 定制任务的任务id | xxxxxxxxx |
output.status | String | 定制任务的状态 | "SUCCEEDED" |
output.model | String | 定制任务的基础模型 | |
output.finetuned_output | String | 定制任务产出的模型,定制任务成功后才显示该字段,后续将使用这个模型做推理调用 | |
output.training_file_ids | Array | 定制任务使用的训练文件 | |
request_id | String | 本次请求的系统唯一码 | 7574ee8f-38a3-4b1e-9280-11c33ab46e51 |
请求示例
需要使用您的API-KEY替换示例中的 your-dashscope-api-key ,代码才能正常运行。
curl --location 'https://dashscope.aliyuncs.com/api/v1/fine-tunes/ft-202308291948-edc2' \
--header 'Authorization: Bearer <YOUR-DASHSCOPE-API-KEY>' \
--header 'Content-Type: application/json'
响应示例
{
"request_id": "dc2d8515-d681-9a96-84f1-e8b30757257a",
"output": {
"job_id": "ft-202308291948-edc2",
"status": "SUCCEEDED",
"finetuned_output": "facechain-png-ft-202308291948-edc2",
"model": "facechain",
"training_file_ids": [
"66e83f2f-efd4-4367-8c45-9f6500f715c3"
],
"validation_file_ids": [],
"hyper_parameters": {},
"create_time": "2023-08-29 19:48:24"
}
}
其他更多定制任务的列举、删除等能力,请参考API详情
状态码说明
DashScope通用状态码请查阅:返回状态码说明
同时本模型还有如下特定错误码:
http状态码 | 错误码(code) | 错误信息(message) | 含义说明 | 处理方式 |
400 | InvalidParameter | Missing training files | 参数错误,缺少参数或者参数格式问题等 | 根据错误信息,修正您的参数 |
400 | UnsupportedOperation | The fine-tune job can not be deleted because it is succeeded,failed or canceled | 当资源处于特定状态时,无法对其进行操作 | 待要操作的资源到达可操作状态时再进行操作 |
404 | NotFound | Not found! | 要查询/操作的资源不存在 | 检查要查询/操作的资源id是否错误 |
409 | Conflict | Model instance xxxxx already exists, please specify a suffix | 已存在deployed_model名为xxxxx的部署实例,需要指定后缀进行区分 | 为部署指定唯一的后缀 |
429 | Throttling | Too many fine-tune job in running, please retry later | 资源的创建触发平台限制 | 稍后再试 |
500 | InternalError | Internal server error! | 内部错误 | 记录reqeust_id,通过工单联系阿里云 |