Skip to content

定制数字人

定制数字人用于基于素材训练并管理你的专属数字人形象。完成定制后,可将形象用于 合成数字人视频 等后续流程。

定制数字人并发限制

类型限制说明
QPS10/分钟单个appid,最多可以在1分钟内提交10个数字人定制任务。如有增购需求,请咨询商务。
并发限额50单个appid,最多同时进行50个数字人定制任务。如有增购需求,请咨询商务。

生成数字人形象

说明

异步任务,具体进度通过查询接口查看

QPS   10/min

请求地址

http
POST /open/v1/create_customised_person
http
access_token: {{access_token}}
Content-Type: application/json; charset=utf-8

请求参数 Body

json
{
    "name": "open_api_测试",
    "callback":"https://xx.com",
    "train_type":"",
    "file_id":"XXXX",
    "error_skip":false
}

参数说明

字段说明限制
name定制数字人名称
callback回调地址任务结束后会向该地址发送一个 POST 请求。请求体的格式和拉取数字人详情查询结果返回的data相同
train_type训练类型 【可选】参数可选择
- figure 【仅生成形象形象,允许传递无声视频】
language语种【可选】需生成声音时可传,默认为cn,支持en英文,其他语种暂不支持,如有特殊语种需要支持,请联系客服
file_id文件管理获取的id《文件管理》
error_skip是否跳过定制数字人部分失败目前支持跳过声音克隆失败(声音分离失败、高质量音频裁剪失败),跳过后定制数字人列表/详情的audio_id将为空值
resolution_rate数字人分辨率,0:1080p、1:4K默认0。参数为1时需要上传4K视频,非4K视频也能完成定制,但数字人不是4K分辨率

响应示例

json
{
    "trace_id": "4820a8cb9078e39656c387458de79954",
    "code": 0,
    "msg": "success",
    "data": "C-ef91f3a6db3144ffb5d6c581ff13c7ec"
}

响应字段说明

字段说明
code响应状态码
data定制的数字人id

响应状态码说明

code说明
0响应成功
400传入参数格式错误
10400AccessToken验证失败
train_type参数错误,支持的值为:
["voice", "figure", "both"]
APP状态有误
不支持的视频格式,请上传 mp4, webm 或者 mov
并请确认文件URL的扩展名(如.mp4)位于路径末尾,示例格式:https://domain.com/your_file.mp4?key=xxxxx
获取视频信息失败,请检查视频
视频时长过长,请重新上传,上限5分钟
40000参数错误
40001超出QPS限制
40002定制数字人数量到达上限
50000系统内部错误
51000系统内部错误

示例代码

shell
curl -L 'https://www.chanjing.cc/api/open/v1/create_customised_person' -H 'access_token: token' -H 'Content-Type: application/json' -d '{"name":"数字人","callback":"","train_type":"","file_id":""}'
go
package main

import (
  "fmt"
  "strings"
  "net/http"
  "io"
)

func main() {

  url := "https://www.chanjing.cc/api/open/v1/create_customised_person"
  method := "POST"

  payload := strings.NewReader(`{"name":"数字人","callback":"","train_type":"","file_id":""}`)

  client := &http.Client {
  }
  req, err := http.NewRequest(method, url, payload)

  if err != nil {
    fmt.Println(err)
    return
  }
  req.Header.Add("access_token", "token")
  req.Header.Add("Content-Type", "application/json")

  res, err := client.Do(req)
  if err != nil {
    fmt.Println(err)
    return
  }
  defer res.Body.Close()

  body, err := io.ReadAll(res.Body)
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(string(body))
}
java
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"name\":\"数字人\",\"callback\":\"\",\"train_type\":\"\"\"file_id\":\"\"}");
Request request = new Request.Builder()
  .url("https://www.chanjing.cc/api/open/v1/create_customised_person")
  .method("POST", body)
  .addHeader("access_token", "token")
  .addHeader("Content-Type", "application/json")
  .build();
Response response = client.newCall(request).execute();
py
import requests
import json

url = "https://www.chanjing.cc/api/open/v1/create_customised_person"

payload = "{\"name\":\"数字人\",\"callback\":\"\",\"train_type\":\"\"\"file_id\":\"\"}"
headers = {
  'access_token': 'token',
  'Content-Type': 'application/json'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)

拉取形象列表

请求地址

http
POST /open/v1/list_customised_person

Header

http
access_token: {{access_token}}

请求参数 Body

json
{
  "page": 1,
  "page_size": 20
}

参数说明

字段说明
page当前页
page_size每页数量,最大 50

响应

响应JSON

json
{
    "trace_id": "64e18685b3181c7753513267ce7c5edb",
    "code": 0,
    "msg": "success",
    "data": {
        "list": [
            {
                "id": "C-ef91f3a6db3144ffb5d6c581ff13c7ec",
                "name": "open_api_测试",
                "type": "person",
                "pic_url": "https://changjing.cc/res/3c628295c46d8cee735fb0ec923639a5c0d820d1-cover.png",
                "preview_url": "https://changjing.cc/res/81baa81b-5f6f-40a4-8f88-1575967c9275_480.mp4",
                "width": 960,
                "height": 544,
                "audio_man_id": "C-0ae461135d8a4eb2b59c853162ea9848",
                "status": 2,
                "err_reason": "",
                "is_open": 1,
                "reason": "",
                "progress": 100,
                "height_4k": 3840,
                "width_4k": 2160,
                "support_4k": true
            }
        ],
        "page_info": {
            "page": 1,
            "size": 20,
            "total_count": 1,
            "total_page": 1
        }
    }
}

响应字段说明

一级字段二级字段三级字段说明
code响应状态码
msg响应消息
data响应数据
list形象列表数据
id数字人形象id
name数字人名称
type类型,默认person
pic_url预览封面图
preview_url预览地址
width形象宽度
height形象高度
audio_man_id数字人的声音音色id
status当前状态: 1制作中,2成功,4失败,5系统错误
err_reason失败后显示错误原因
is_open是否可用,1可用,0不可用
reason失败原因
progress进度百分比,0-100。
support_4k布尔类型,是否支持4k视频合成
height_4k4k数字人高度,support_4k为true时有效
width_4k4k数字人宽度,support_4k为true时有效
page_info分页信息
page当前页码
size页面大小
total_count数字人总数
total_page总页数

响应状态码说明

code说明
0响应成功
400传入参数格式错误
10400AccessToken验证失败
APP状态有误
40000参数错误
50000系统内部错误
51000系统错误

拉取形象详情

请求地址

http
GET  /open/v1/customised_person

Header

http
access_token: {{access_token}}

请求参数 Query Params

KeyValue说明
idd5183e2974c2453a84173a8bdb556504视频id,创建任务时返回

响应

响应示例

json
{
    "trace_id": "a2d6adc006baaa904f38140f285a3bf6",
    "code": 0,
    "msg": "success",
    "data": {
        "id": "C-d18784a364e74e77b5bd86e7a560ddcd",
        "name": "open_api_测试_1",
        "type": "person",
        "pic_url": "https://www.chanjing.cc/chanjing/dp/output/2024-08-21/b23fcedc7c602260549a3a46a8a8279007befd0f-cover.png",
        "preview_url": "https://www.chanjing.cc/chanjing/res/person/2024-08-21/11955355-4ff1-46f7-8ae4-cb0b3de31719_480.mp4",
        "width": 1080,
        "height": 1920,
        "audio_man_id": "C-9048cb4e6b7d4a3d868e30e03e357835",
        "status": 2,
        "err_reason": "",
        "is_open": 1,
        "reason": "",
        "progress": 100,
        "create_time": 1724209567,
        "height_4k": 3840,
        "width_4k": 2160,
        "support_4k": true
    }
}

响应字段说明

一级字段二级字段说明
code响应状态码
msg响应消息
data响应数据
id数字人形象id
name数字人名称
type类型,默认person
pic_url预览封面图
preview_url预览地址
width形象宽度
height形象高度
audio_man_id数字人的声音音色id
status当前状态: 1制作中,2成功,4失败,5系统错误
err_reason失败后显示错误原因
is_open是否可用,1可用,0不可用
reason失败原因
progress进度百分比,0-100。
create_time创建时间戳
support_4k布尔类型,是否支持4k视频合成
height_4k4k数字人高度,support_4k为true时有效
width_4k4k数字人宽度,support_4k为true时有效
create_time创建时间戳

响应状态码说明

code说明
0响应成功
10400AccessToken验证失败
APP状态有误
40000参数错误
50000系统内部错误
51000系统内部错误

删除形象

请求地址

http
POST  /open/v1/delete_customised_person

Header

http
access_token: {{access_token}}

请求参数 Body

json
{
    "id": "C-ef91f3a6db3144ffb5d6c581ff13c7ec"
}

参数说明

字段说明
id定制数字人 id

响应

响应示例

json
{
  "trace_id": "add385eca3fe8b8bfa916e9e8719f6cc",
  "code": 0,
  "msg": "success"
}

响应字段说明

字段说明
code响应状态码
msg响应消息

响应状态码说明

code说明
0响应成功
400传入参数格式错误
10400AccessToken验证失败
APP状态错误
40000参数错误
40001超出QPS限制
50000系统内部错误
51000系统内部错误