42 KiB
ESD 1.5.0
健康检查(Ping)
GET 健康检查 (Ping)
GET /ping
测试客户端是否可以连接到 API,并检查配置是否正确。 Test whether client can connect to api and check the API_TOKEN is correct.
Response Examples
Success
{
"message": "pong",
"statusCode": 200
}
Responses
| HTTP Status Code | Meaning | Description | Data schema |
|---|---|---|---|
| 200 | OK | Success | Inline |
Responses Data Schema
HTTP Status Code 200
| Name | Type | Required | Restrictions | Title | description |
|---|---|---|---|---|---|
| » message | string | true | none | none | |
| » statusCode | integer | true | none | none |
角色(Roles)
DELETE 删除角色 DeleteRoles
DELETE /roles
删除角色 Delete roles
Body Parameters
{
"role_name_list": [
"role_name_1"
]
}
Params
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| username | header | string | yes | none |
| body | body | object | no | none |
| » role_name_list | body | [string] | yes | 角色列表(Role Name List) |
Response Examples
204 Response
{}
Responses
| HTTP Status Code | Meaning | Description | Data schema |
|---|---|---|---|
| 204 | No Content | No Content | Inline |
Responses Data Schema
POST 创建角色 CreateRole
POST /roles
创建新角色 Create a new role
Body Parameters
{
"role_name": "new_role_name",
"permissions": [
"train:all",
"checkpoint:all"
]
}
Params
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| body | body | object | no | none |
| » role_name | body | string | yes | 角色名(Role Name) |
| » permissions | body | [string] | yes | 权限列表(Permissions) |
Response Examples
Created
{
"statusCode": 201,
"message": "role created"
}
Responses
| HTTP Status Code | Meaning | Description | Data schema |
|---|---|---|---|
| 201 | Created | Created | Inline |
Responses Data Schema
HTTP Status Code 201
| Name | Type | Required | Restrictions | Title | description |
|---|---|---|---|---|---|
| » statusCode | integer | true | none | none | |
| » message | string | true | none | none |
用户(Users)
GET 获取用户列表 ListUsers
GET /users
获取用户列表 List all users
Params
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| username | header | string | yes | none |
Response Examples
Success
{
"statusCode": 200,
"data": {
"users": [
{
"username": "admin",
"roles": [
"IT Operator",
"byoc"
],
"creator": "admin",
"permissions": [
"checkpoint:all",
"inference:all",
"role:all",
"sagemaker_endpoint:all",
"train:all",
"user:all"
],
"password": "********"
},
{
"username": "username",
"roles": [
"IT Operator"
],
"creator": "admin",
"permissions": [
"checkpoint:all",
"inference:all",
"role:all",
"sagemaker_endpoint:all",
"train:all",
"user:all"
],
"password": "********"
}
],
"previous_evaluated_key": "not_applicable",
"last_evaluated_key": "not_applicable"
},
"message": "OK"
}
Responses
| HTTP Status Code | Meaning | Description | Data schema |
|---|---|---|---|
| 200 | OK | Success | Inline |
Responses Data Schema
HTTP Status Code 200
| Name | Type | Required | Restrictions | Title | description |
|---|---|---|---|---|---|
| » statusCode | integer | true | none | none | |
| » data | object | true | none | none | |
| »» users | [object] | true | none | none | |
| »»» username | string | true | none | none | |
| »»» roles | [string] | true | none | none | |
| »»» creator | string | true | none | none | |
| »»» permissions | [string] | true | none | none | |
| »»» password | string | true | none | none | |
| »» previous_evaluated_key | string | true | none | none | |
| »» last_evaluated_key | string | true | none | none | |
| » message | string | true | none | none |
POST 创建用户 CreateUser
POST /users
创建新用户 Create a new user
Body Parameters
{
"username": "username",
"password": "XXXXXXXXXXXXX",
"roles": [
"IT Operator",
"Designer"
]
}
Params
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| body | body | object | no | none |
| » username | body | string | yes | 用户名(User Name) |
| » roles | body | [string] | yes | 角色列表(Roles) |
| » permissions | body | [string] | yes | 权限列表(Permissions) |
| » password | body | string | yes | 密码(Password) |
Response Examples
Created
{
"statusCode": 201,
"message": "Created"
}
Responses
| HTTP Status Code | Meaning | Description | Data schema |
|---|---|---|---|
| 201 | Created | Created | Inline |
Responses Data Schema
HTTP Status Code 201
| Name | Type | Required | Restrictions | Title | description |
|---|---|---|---|---|---|
| » statusCode | integer | true | none | none | |
| » message | string | true | none | none |
DELETE 删除用户 DeleteUsers
DELETE /users
删除用户 Delete users
Body Parameters
{
"user_name_list": [
"string"
]
}
Params
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| username | header | string | yes | none |
| body | body | object | no | none |
| » user_name_list | body | [string] | yes | 用户名列表(User Name List) |
Response Examples
204 Response
{}
Responses
| HTTP Status Code | Meaning | Description | Data schema |
|---|---|---|---|
| 204 | No Content | No Content | Inline |
Responses Data Schema
模型文件(Checkpoints)
POST 通过URL上传模型文件 CreateCheckpoint
POST /checkpoints
通过URL上传模型文件 Create a new Checkpoint by URL
Body Parameters
{
"checkpoint_type": "ControlNet",
"params": {
"message": "placeholder for chkpts upload test"
},
"urls": [
"https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15_canny.pth"
]
}
Params
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| body | body | object | no | none |
| » checkpoint_type | body | string | yes | 模型文件类型(Checkpoint Type) |
| » params | body | object | yes | 参数(Params) |
| »» message | body | string | yes | 模型文件信息(Message) |
| » urls | body | [string] | yes | URLs |
Response Examples
Accepted
{
"statusCode": 202,
"message": "Checkpoint creation in progress, please check later"
}
Responses
| HTTP Status Code | Meaning | Description | Data schema |
|---|---|---|---|
| 202 | Accepted | Accepted | Inline |
Responses Data Schema
HTTP Status Code 202
| Name | Type | Required | Restrictions | Title | description |
|---|---|---|---|---|---|
| » statusCode | integer | true | none | none | |
| » data | object | true | none | none | |
| »» checkpoint | object | true | none | none | |
| »»» id | string | true | none | none | |
| »»» type | string | true | none | none | |
| »»» s3_location | string | true | none | none | |
| »»» status | string | true | none | none | |
| »»» params | object | true | none | none | |
| »»»» message | string | true | none | none | |
| »»»» creator | string | true | none | none | |
| »»»» created | string | true | none | none | |
| »»»» multipart_upload | object | true | none | none | |
| »»»»» v1-5-pruned-emaonly.safetensors2 | object | true | none | none | |
| »»»»»» upload_id | string | true | none | none | |
| »»»»»» bucket | string | true | none | none | |
| »»»»»» key | string | true | none | none | |
| »» s3PresignUrl | object | true | none | none | |
| »»» v1-5-pruned-emaonly.safetensors2 | [string] | true | none | none | |
| » message | string | true | none | none |
DELETE 删除模型文件 DeleteCheckpoints
DELETE /checkpoints
删除模型文件 Delete checkpoints
Body Parameters
{
"checkpoint_id_list": [
"string"
]
}
Params
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| body | body | object | no | none |
| » checkpoint_id_list | body | [string] | yes | 模型文件ID列表(ID List) |
Response Examples
204 Response
{}
Responses
| HTTP Status Code | Meaning | Description | Data schema |
|---|---|---|---|
| 204 | No Content | No Content | Inline |
Responses Data Schema
PUT 更新模型文件状态 UpdateCheckpoint
PUT /checkpoints/{checkpointId}
更新模型文件状态 Update Checkpoint
Body Parameters
{
"checkpoint_id": "5b47fc8f-c1b0-47ad-9d85-ad0f08526e28",
"status": "Active",
"multi_parts_tags": {
"v1-5-pruned-emaonly.safetensors": [
{
"ETag": "\"e6279f0ad8bf8048c0d106095c4d4b24\"",
"PartNumber": 1
},
{
"ETag": "\"01a458e7d019140cb792b577596b7918\"",
"PartNumber": 2
},
{
"ETag": "\"296e59a1fb1ea02f6512c5b4c4565bea\"",
"PartNumber": 3
},
{
"ETag": "\"9dd22961ddf32130a22b36dc53f93fd0\"",
"PartNumber": 4
},
{
"ETag": "\"bfb91caed0e9f1aaaca7a0f125e7e96b\"",
"PartNumber": 5
}
]
}
}
Params
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| checkpointId | path | string | yes | none |
| body | body | object | no | none |
| » status | body | string | yes | 状态(Status) |
| » multi_parts_tags | body | object | yes | ETags |
| »» v1-5-pruned-emaonly.safetensors | body | [object] | yes | none |
| »»» ETag | body | string | yes | none |
| »»» PartNumber | body | integer | yes | none |
Response Examples
Success
{
"statusCode": 200,
"checkpoint": {
"id": "d613760c-c8f7-466a-9838-cea3033bf57d",
"type": "Stable-diffusion",
"s3_location": "s3://******/Stable-diffusion/checkpoint/custom/d613760c-c8f7-466a-9838-cea3033bf57d",
"status": "Initial",
"params": {
"creator": "admin",
"multipart_upload": {
"v1-5-pruned-emaonly.safetensors": {
"bucket": "******",
"upload_id": "KFzbB7FwAuCDkR3NRaAO81uNM6E38KrvbB9m9T2dPlE0XUbOXrDB0c9CbhpLA3wFqnN6uTf0qh7HOYOmSXFwicHYOL7XfPMAhsT0cbxRhWvbyKPo8bO_wXrFcbUMDY.ef4vFZNKfdKaRba23Src44CrwGtYjkp3RQ8dEZubjleVTTTz0gaclwjfxmrdpqcZa",
"key": "Stable-diffusion/checkpoint/custom/d613760c-c8f7-466a-9838-cea3033bf57d/v1-5-pruned-emaonly.safetensors"
}
},
"message": "api-test-message",
"created": "2023-12-07 00:45:59.334826"
}
}
}
Responses
| HTTP Status Code | Meaning | Description | Data schema |
|---|---|---|---|
| 200 | OK | Success | Inline |
Responses Data Schema
HTTP Status Code 200
| Name | Type | Required | Restrictions | Title | description |
|---|---|---|---|---|---|
| » statusCode | integer | true | none | Status Code | |
| » headers | object | true | none | none | |
| »» Access-Control-Allow-Headers | string | true | none | none | |
| »» Access-Control-Allow-Origin | string | true | none | none | |
| »» Access-Control-Allow-Methods | string | true | none | none | |
| » checkpoint | object | true | none | Checkpoint | |
| »» id | string | true | none | ID | |
| »» type | string | true | none | Type | |
| »» s3_location | string | true | none | S3 Key | |
| »» status | string | true | none | Status | |
| »» params | object | true | none | none | |
| »»» creator | string | true | none | User Name | |
| »»» multipart_upload | object | true | none | S3 Multipart Upload | |
| »»»» v1-5-pruned-emaonly.safetensors | object | true | none | none | |
| »»»»» bucket | string | true | none | none | |
| »»»»» upload_id | string | true | none | none | |
| »»»»» key | string | true | none | none | |
| »»» message | string | true | none | Message | |
| »»» created | string | true | none | Created At |
推理端点(Endpoints)
GET 获取端点列表 ListEndpoints
GET /endpoints
获取推理端点列表 List inference endpoints
Params
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| username | header | string | yes | none |
Response Examples
Success
{
"statusCode": 200,
"data": {
"endpoints": [
{
"EndpointDeploymentJobId": "d1253aa5-c884-4989-a7d1-d8806bc4fa59",
"autoscaling": false,
"max_instance_number": "1",
"startTime": "2024-01-30 07:59:46.842717",
"status": null,
"instance_type": "ml.g4dn.2xlarge",
"current_instance_count": "1",
"endTime": "2024-01-30 08:03:33.991793",
"endpoint_status": "InService",
"endpoint_name": "esd-real-time-api-test",
"error": null,
"endpoint_type": "Real-time",
"owner_group_or_role": [
"byoc"
]
},
{
"EndpointDeploymentJobId": "a50ba02e-057f-433d-83be-0f52fdd45b13",
"autoscaling": true,
"max_instance_number": "1",
"startTime": "2024-01-26 08:19:52.759748",
"status": null,
"instance_type": "ml.g4dn.xlarge",
"current_instance_count": "0",
"endTime": "2024-02-02 03:58:32.946464",
"endpoint_status": "InService",
"endpoint_name": "esd-async-api-test",
"error": null,
"endpoint_type": "Async",
"owner_group_or_role": [
"IT Operator"
]
}
]
},
"message": "OK"
}
Responses
| HTTP Status Code | Meaning | Description | Data schema |
|---|---|---|---|
| 200 | OK | Success | Inline |
Responses Data Schema
HTTP Status Code 200
| Name | Type | Required | Restrictions | Title | description |
|---|---|---|---|---|---|
| » statusCode | integer | true | none | none | |
| » data | object | true | none | none | |
| »» endpoints | [object] | true | none | none | |
| »»» EndpointDeploymentJobId | string | true | none | none | |
| »»» autoscaling | boolean | true | none | none | |
| »»» max_instance_number | string | true | none | none | |
| »»» startTime | string | true | none | none | |
| »»» status | null | true | none | none | |
| »»» instance_type | string | true | none | none | |
| »»» current_instance_count | string | true | none | none | |
| »»» endTime | string | true | none | none | |
| »»» endpoint_status | string | true | none | none | |
| »»» endpoint_name | string | true | none | none | |
| »»» error | null | true | none | none | |
| »»» endpoint_type | string | true | none | none | |
| »»» owner_group_or_role | [string] | true | none | none | |
| » message | string | true | none | none |
POST 创建端点 CreateEndpoint
POST /endpoints
创建推理端点 Create Endpoint
Body Parameters
{
"endpoint_name": "test",
"instance_type": "ml.g5.2xlarge",
"initial_instance_count": "1",
"autoscaling_enabled": false,
"assign_to_roles": [
"Designer",
"IT Operator"
]
}
Params
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| body | body | object | no | none |
| » endpoint_name | body | string | yes | 端点名称(Endpoint Name) |
| » endpoint_type | body | string | yes | 端点类型(Endpoint Type) |
| » instance_type | body | string | yes | 实例类型(Instance Type) |
| » initial_instance_count | body | integer | yes | 初始实例数(Initial Instance Count) |
| » autoscaling_enabled | body | boolean | yes | 开启 Autoscaling(Enable Autoscaling) |
| » assign_to_roles | body | [string] | yes | 角色列表(Role List) |
| » creator | body | string | yes | 创建者用户名(Creator User Name) |
| » min_instance_number | body | integer | yes | 最小实例数(Min Instance Count) |
| » max_instance_number | body | integer | yes | 最大实例数(Max Instance Count) |
Response Examples
Success
{
"statusCode": 200,
"message": "Endpoint deployment started: infer-endpoint-prod",
"data": {
"EndpointDeploymentJobId": "60b12a2e-c54d-496c-b405-1bc77b17e2f9",
"autoscaling": false,
"max_instance_number": "1",
"startTime": "2023-12-07 01:08:43.410628",
"status": null,
"current_instance_count": "0",
"endTime": null,
"endpoint_status": "Creating",
"endpoint_name": "infer-endpoint-prod",
"error": null,
"owner_group_or_role": [
"Designer",
"IT Operator"
]
}
}
Responses
| HTTP Status Code | Meaning | Description | Data schema |
|---|---|---|---|
| 200 | OK | Success | Inline |
Responses Data Schema
HTTP Status Code 200
| Name | Type | Required | Restrictions | Title | description |
|---|---|---|---|---|---|
| » statusCode | integer | true | none | none | |
| » message | string | true | none | none | |
| » data | Endpoint | true | none | none | |
| »» EndpointDeploymentJobId | string | true | none | ID | |
| »» autoscaling | boolean | true | none | Autoscaling Enabled | |
| »» max_instance_number | string | true | none | Max Instance Count | |
| »» startTime | string | true | none | Start Time | |
| »» current_instance_count | integer | true | none | Current Instance Count | |
| »» endTime | string | true | none | End Time | |
| »» endpoint_status | string | true | none | Endpoint Status | |
| »» endpoint_name | string | true | none | Endpoint Name | |
| »» error | null | true | none | Error Message | |
| »» owner_group_or_role | [string] | true | none | Roles |
DELETE 删除端点 DeleteEndpoints
DELETE /endpoints
删除推理端点 Delete endpoints
Body Parameters
{
"endpoint_name_list": [
"esd-async-test-tmp"
]
}
Params
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| username | header | string | yes | none |
| body | body | object | no | none |
| » endpoint_name_list | body | [string] | yes | 端点名列表(Endpoint Name List) |
Response Examples
200 Response
{}
Responses
| HTTP Status Code | Meaning | Description | Data schema |
|---|---|---|---|
| 200 | OK | Success | Inline |
Responses Data Schema
推理(Inferences)
POST 创建实时推理作业 CreateInferenceJob
POST /inferences
创建推理作业,创建成功后,需要通过返回的api_params_s3_upload_url 上传推理参数
Create inference, When you got response, you have to upload your Payload to api_params_s3_upload_url
Body Parameters
{
"user_id": "admin",
"inference_type": "Async",
"task_type": "txt2img",
"models": {
"Stable-diffusion": [
"v1-5-pruned-emaonly.safetensors"
],
"VAE": [
"Automatic"
],
"embeddings": []
},
"filters": {
"createAt": 1707141090.135923,
"creator": "sd-webui"
}
}
Params
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| username | header | string | yes | none |
| body | body | object | no | none |
| » inference_type | body | string | yes | 推理类型(Inference Type)Async |
| » task_type | body | string | yes | 任务类型(Task Type)txt2img |
| » models | body | object | yes | 模型列表(Model List) |
| »» Stable-diffusion | body | [string] | yes | none |
| »» VAE | body | [string] | yes | none |
| »» embeddings | body | [string] | yes | none |
Response Examples
Success
{
"statusCode": 201,
"data": {
"inference": {
"id": "f3421ce5-9ab9-40a2-b33b-3f126de70a52",
"type": "txt2img",
"api_params_s3_location": "s3://xxxx/txt2img/infer_v2/f3421ce5-9ab9-40a2-b33b-3f126de70a52/api_param.json",
"api_params_s3_upload_url": "https://xxxx.s3.amazonaws.com/txt2img/infer_v2/f3421ce5-9ab9-40a2-b33b-3f126de70a52/api_param.json?AWSAccessKeyId=xxxx&Signature=HNp81KZy2%2FDSgz7%2FWP%2FdMIUPz8s%3D&x-amz-security-token=IQoJb3JpZ2luX2VjEOz%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaDmFwLXNvdXRoZWFzdC0xIkcwRQIgNMLgV7at1Vaao4wiFDgLOk4vc3OwD1D%2F4vyd%2Bz5vxhkCIQCnDqwzj3jP%2BIEyc2hCFw%2FNbWOHE%2BLDOVNFfxowLpQFEyrhAwi1%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F8BEAAaDDg2MDY2MDYwMDY5MCIM%2B6KJWPfr9JG4NBwKKrUDxMOpMiWgg2N1uusnm%2FRpoZhBFTe4MnPMNHf5M%2Bb8mTZWHD1JnMNAda1RUzfc9QoL%2BO76bH2QxhHQgmWaCnoX9i4hQCH7U%2F2slmF4EVSktyKWPbKMr%2BooX4uSpCiuU7qXqgjhPKbEn3tmsfH0RVf%2ByaGLXe6G43JAHpArjaJTIRnmH%2Bszbq55F%2FaifIpjhw9IlB6X18uVTzx9vqepS8zF%2Bn7%2F0L0da%2FhNvzz5QbRxbTrzjtDIGKd7aOz2%2BuXM03naXLcRFDRw29wzbMH2Z2P%2Bran9lZsrJBDYlWN4BMV3PSaweOghOOTldPlxylTzWiE86xWmw5kUpgU%2B4A8Te%2BZmJRl6Qqhq7sOZ%2BaaNTAqpYYQhjkFxLFziZjub90%2B7%2B0idFmQN7CpKEmBUTVdrQGAcagAJ9jQRUosTfRfHP%2BiXK1dj2sOOgDsDOZE6X2O9dpJQCiQAJKDDDvBKPn1s%2BDp7KlgRh5AdlBEgUkfcx3fUyhFz7hrVGLHR74hYIScIM714eDMlPvqtPtznr8IKtRvzKRYGxMyN%2FM%2FdvqhDE2WEHOP9M%2B4bvDBxMTDhNngjdZsMs524zVcw79aGrgY6ngEPUkOghS7xw2T1%2FGr6jR8AIjsdZ4ZsC5BZp22jizDO%2FQBmWEH2Z9LJK6Jmf7XwCRagmOuZlc8ZSr929Q48f371DwbhPGJdwjb7VPYqA20CJkcz6mFrU5zwLm%2BqDB2%2BpNVWIBMWeRsoGfcEipeR%2BVRd5DhVh0gCYc9BqDtshpstnhEvesuPSr8syAt5VQwUEAplxtWGFHh%2BPH3RHcgu%2Bw%3D%3D&Expires=1707194752",
"models": [
{
"id": "32a7af23-3763-4289-a6af-2156a2331878",
"name": [
"v1-5-pruned-emaonly.safetensors"
],
"type": "Stable-diffusion"
},
{
"id": "VAE",
"name": [
"Automatic"
],
"type": "VAE"
}
]
}
},
"message": "Created"
}
Responses
| HTTP Status Code | Meaning | Description | Data schema |
|---|---|---|---|
| 200 | OK | Success | Inline |
Responses Data Schema
HTTP Status Code 200
| Name | Type | Required | Restrictions | Title | description |
|---|---|---|---|---|---|
| » statusCode | integer | true | none | none | |
| » data | object | true | none | none | |
| »» inference | object | true | none | none | |
| »»» id | string | true | none | none | |
| »»» type | string | true | none | none | |
| »»» api_params_s3_location | string | true | none | none | |
| »»» api_params_s3_upload_url | string | true | none | none | |
| »»» models | [object] | true | none | none | |
| »»»» id | string | true | none | none | |
| »»»» name | [string] | true | none | none | |
| »»»» type | string | true | none | none | |
| » message | string | true | none | none |
DELETE 删除推理作业 DeleteInferenceJobs
DELETE /inferences
删除推理作业 Delete inference jobs
Body Parameters
{
"inference_id_list": [
"99"
]
}
Params
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| username | header | string | yes | none |
| body | body | object | no | none |
| » inference_id_list | body | [string] | yes | 推理作业ID列表(Inference Job ID List) |
Response Examples
No Content
{}
Responses
| HTTP Status Code | Meaning | Description | Data schema |
|---|---|---|---|
| 204 | No Content | No Content | Inline |
Responses Data Schema
PUT 开始推理作业 StartInferenceJob
PUT /inferences/{jobId}/start
开始推理作业 Start inference job
Params
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| jobId | path | string | yes | 推理作业ID(Inference Job ID) |
| username | header | string | yes | none |
Response Examples
Success
{
"statusCode": 202,
"data": {
"inference": {
"inference_id": "f3421ce5-9ab9-40a2-b33b-3f126de70a52",
"status": "inprogress",
"endpoint_name": "esd-async-97fce5e",
"output_path": "s3://xxxx/sagemaker_output/48159016-c040-4b49-8a1c-b57445946918.out"
}
},
"message": "Accepted"
}
Responses
| HTTP Status Code | Meaning | Description | Data schema |
|---|---|---|---|
| 200 | OK | Success | Inline |
Responses Data Schema
HTTP Status Code 200
| Name | Type | Required | Restrictions | Title | description |
|---|---|---|---|---|---|
| » statusCode | integer | true | none | none | |
| » data | object | true | none | none | |
| »» inference | object | true | none | none | |
| »»» inference_id | string | true | none | none | |
| »»» status | string | true | none | none | |
| »»» endpoint_name | string | true | none | none | |
| »»» output_path | string | true | none | none | |
| » message | string | true | none | none |
GET 获取推理作业详情 GetInferenceJob
GET /inferences/{jobId}
获取指定的推理作业详情 Gets a specific inference job
Params
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| jobId | path | string | yes | 推理作业ID(Inference Job ID) |
Response Examples
Success
{
"statusCode": 200,
"data": {
"img_presigned_urls": [
"https://xxxx.s3.amazonaws.com/out/9d93e241-745a-4464-bb99-22253c910a01/result/image_0.png?AWSAccessKeyId=xxxx&Signature=%2BIoU%2BUuY0oJmd9yb8B6xJGnRN3Q%3D&x-amz-security-token=IQoJb3JpZ2luX2VjEOz%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaDmFwLXNvdXRoZWFzdC0xIkgwRgIhAJXX4Y7cAU1VjSQK3Ga5Q3oWrK9Pu7e%2BaJ%2FcP89H3DnAAiEAw%2FSIHzSWR01mAw6xb2kqhTgkapA3hRzRlmIgb%2FQuuNsq4QMItf%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FARAAGgw4NjA2NjA2MDA2OTAiDI5nIbuU88AEtxiKeSq1A0em0PiCJywBO91ACgdnEOZhh46%2BcPMBZS8sbo2G7FuNR8VRz4nGIQjp4HdX468AMjoAN7tRidsufLva6L2xTrqmiiEZobRLqc%2FgsJnuxkK0FFbmdW%2B4GSjUWC8NIyICwF4KtL%2FS05fYVQyq5%2FBV%2B%2FVMw0aT5m7ai4E9FkHAgTsMvhxg31L3v%2BPe8A8Y%2BZbuWGdvonMzHE4CYMKAKe6SfvjK7u8U8YHR8IeCFWd90jzlkygIk83oFVOuyybITePaZbxWKuyEvBSJd3T7y46CeThyzc3I8AlmYTrfbuj8BhSqiptedtN5%2BmtMP5q04c3EGpIQ86B13NAUhHDadBeImztplPRLJFUXJsj7AMUHc5I7h8o%2BRXy1xE4GZD382WXsHOKLJ39UkioqRUvWCAozO%2B%2FBsILadh83RUcE7C7HFGd6%2BdnfcWPfjDOr5i%2FI5P%2BeamDL9Cvw9hakaaMSryI8ki3kmMMbubBc2JExOtspIh3SquN2dw6RUtb34mBZerxZhJHNGFsdARrboM7IZA1f8S6oGuMRX7tr67P%2Fgx5alSHiiS%2FvFlNyPqIRk7O3uAlnzLkQ7IgyMO%2FZhq4GOp0B1Fyc2ySOy88xOUvUFDkJHr5dpVYIOkffdqOgGXOi9H0edCyg8xELWZwofu6eT%2FecDv4xvjkHjXyJ%2B3H7KP1%2FmE2IoQSFJBFvI0El1rvg7jsvROTe8QVuNYG9V1PqH3zLLz%2Fw9V1R9fK6ys5ZdlDCm208LClKZq8YlxQWXlOO%2FLMLcR51FJxqu5tqXLAaVIFDNdwO%2BrUyvZx5xMTifg%3D%3D&Expires=1707195462"
],
"output_presigned_urls": [
"https://xxxx.s3.amazonaws.com/out/9d93e241-745a-4464-bb99-22253c910a01/result/9d93e241-745a-4464-bb99-22253c910a01_param.json?AWSAccessKeyId=xxxx&Signature=sAi%2ByxVsUBdZfSh34QCMAh%2B2jGg%3D&x-amz-security-token=IQoJb3JpZ2luX2VjEOz%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaDmFwLXNvdXRoZWFzdC0xIkgwRgIhAJXX4Y7cAU1VjSQK3Ga5Q3oWrK9Pu7e%2BaJ%2FcP89H3DnAAiEAw%2FSIHzSWR01mAw6xb2kqhTgkapA3hRzRlmIgb%2FQuuNsq4QMItf%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FARAAGgw4NjA2NjA2MDA2OTAiDI5nIbuU88AEtxiKeSq1A0em0PiCJywBO91ACgdnEOZhh46%2BcPMBZS8sbo2G7FuNR8VRz4nGIQjp4HdX468AMjoAN7tRidsufLva6L2xTrqmiiEZobRLqc%2FgsJnuxkK0FFbmdW%2B4GSjUWC8NIyICwF4KtL%2FS05fYVQyq5%2FBV%2B%2FVMw0aT5m7ai4E9FkHAgTsMvhxg31L3v%2BPe8A8Y%2BZbuWGdvonMzHE4CYMKAKe6SfvjK7u8U8YHR8IeCFWd90jzlkygIk83oFVOuyybITePaZbxWKuyEvBSJd3T7y46CeThyzc3I8AlmYTrfbuj8BhSqiptedtN5%2BmtMP5q04c3EGpIQ86B13NAUhHDadBeImztplPRLJFUXJsj7AMUHc5I7h8o%2BRXy1xE4GZD382WXsHOKLJ39UkioqRUvWCAozO%2B%2FBsILadh83RUcE7C7HFGd6%2BdnfcWPfjDOr5i%2FI5P%2BeamDL9Cvw9hakaaMSryI8ki3kmMMbubBc2JExOtspIh3SquN2dw6RUtb34mBZerxZhJHNGFsdARrboM7IZA1f8S6oGuMRX7tr67P%2Fgx5alSHiiS%2FvFlNyPqIRk7O3uAlnzLkQ7IgyMO%2FZhq4GOp0B1Fyc2ySOy88xOUvUFDkJHr5dpVYIOkffdqOgGXOi9H0edCyg8xELWZwofu6eT%2FecDv4xvjkHjXyJ%2B3H7KP1%2FmE2IoQSFJBFvI0El1rvg7jsvROTe8QVuNYG9V1PqH3zLLz%2Fw9V1R9fK6ys5ZdlDCm208LClKZq8YlxQWXlOO%2FLMLcR51FJxqu5tqXLAaVIFDNdwO%2BrUyvZx5xMTifg%3D%3D&Expires=1707195462"
],
"inference_info_name": "/tmp/9d93e241-745a-4464-bb99-22253c910a01_param.json",
"startTime": "2024-02-05 06:10:52.552528",
"taskType": "txt2img",
"completeTime": "2024-02-05 06:10:56.270528",
"params": {
"input_body_presign_url": "https://xxxx.s3.amazonaws.com/txt2img/infer_v2/9d93e241-745a-4464-bb99-22253c910a01/api_param.json?AWSAccessKeyId=xxxx&Signature=i8q7mM74oZoqtl6reQCPEklgXkc%3D&x-amz-security-token=IQoJb3JpZ2luX2VjENb%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaDmFwLXNvdXRoZWFzdC0xIkgwRgIhALn6k5IG2ikYnvMq55N8qzxoi0PcGaPgqzQiNfqjU2ueAiEAlD%2B36qo6fakPvbFIO%2FCEBq3OWIZy3PVRc50g11Yh%2BLAq4QMIn%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FARAAGgw4NjA2NjA2MDA2OTAiDP6CmhQmhgcfvjTYpSq1A%2FUxhB9s6Vam%2FSSyEYlgMkVgvRGOntmYPgfgAdGj9j37KcncPzUxzsuttNgVQzP%2Bu9CVAI4QrO02ObsyNPvsy3KOCLmpBRcSmZDqRkPW5%2BTmQwVEAD8AYut7P3CiLt0mIcCcMS8UOZuXbvb6%2FyaPAegYR20bUEfPDiOEvYxyBOrj9%2FdbED5lvSrS3fHucyIVk9wF6tJQQVucqWRA1qllL6Dj%2BIg86dFYkLl2BiYty0Vd0OBT6y51ATmhBJqqz66M5MlKuVvxWZ5ZL7T%2BcNcJyPnukXAADGuBXt6ZjD7QWxve7TQE6aUTHGi6WbF%2FLi0%2BqWOmVoKdootyVT3bCj34rA56NudSO5t0QjBonQ%2BfnFJlB7s1if4UHZUp%2FijPImWJU8uC6PMp9Qshgux3IwCjO6X%2B5GcyWnL1hO5GaljtyERBLQZ8SS2ZHej3kSw9cJ3w%2FN5cCgejLWkbNffQdkyan1XsRav9ufZOHQMNtupz0LEsUIvbctZjip3FLdBp0rwZDfrBEFlpuDEnmzpCbJVIw7BajO7Fqtu%2FzYHeyEH7ZLLHSMFSkK4apzXb2gkhpmM44XalQzu7MLb1ga4GOp0BghTpORcI%2F6KMUkPVI3YuuZ7O5HLQTlq8TYtl9%2BEWIpG8omXyk232ysXfV4hgvVNA1yOfBpa0IEY86LVLIUOGRgNgPtAkBp2Mao9lA0GcAh2XGCCJYRFyvwVU1veBhN5XgNA15dy1Vqp9YC2ZtwMiTxQcy5R6vlm8mI2cKaI0RJWlD9gWhRhlZJZVx5RTgYI6jjhnr0Zis3L52wmd0A%3D%3D&Expires=1707117052",
"used_models": {
"Stable-diffusion": [
{
"s3": "s3://xxxx/Stable-diffusion/checkpoint/custom/32a7af23-3763-4289-a6af-2156a2331878",
"id": "32a7af23-3763-4289-a6af-2156a2331878",
"model_name": "v1-5-pruned-emaonly.safetensors",
"type": "Stable-diffusion"
}
],
"VAE": [
{
"s3": "None",
"id": "VAE",
"model_name": "Automatic",
"type": "VAE"
}
]
},
"input_body_s3": "s3://xxxx/txt2img/infer_v2/9d93e241-745a-4464-bb99-22253c910a01/api_param.json",
"sagemaker_inference_instance_type": "ml.g4dn.2xlarge",
"sagemaker_inference_endpoint_id": "9ef3c8bf-936e-47bb-a6da-e11e43140fb1",
"sagemaker_inference_endpoint_name": "esd-real-time-9ef3c8b"
},
"InferenceJobId": "9d93e241-745a-4464-bb99-22253c910a01",
"status": "succeed",
"inference_type": "Real-time",
"createTime": "2024-02-05 06:10:52.299624",
"image_names": [
"image_0.png"
],
"owner_group_or_role": [
"admin"
]
},
"message": "OK"
}
Responses
| HTTP Status Code | Meaning | Description | Data schema |
|---|---|---|---|
| 200 | OK | Success | Inline |
Responses Data Schema
HTTP Status Code 200
| Name | Type | Required | Restrictions | Title | description |
|---|---|---|---|---|---|
| » statusCode | integer | true | none | none | |
| » data | object | true | none | none | |
| »» img_presigned_urls | [string] | true | none | none | |
| »» output_presigned_urls | [string] | true | none | none | |
| »» inference_info_name | string | true | none | none | |
| »» startTime | string | true | none | none | |
| »» taskType | string | true | none | none | |
| »» completeTime | string | true | none | none | |
| »» params | object | true | none | none | |
| »»» input_body_presign_url | string | true | none | none | |
| »»» used_models | object | true | none | none | |
| »»»» Stable-diffusion | [object] | true | none | none | |
| »»»»» s3 | string | false | none | none | |
| »»»»» id | string | false | none | none | |
| »»»»» model_name | string | false | none | none | |
| »»»»» type | string | false | none | none | |
| »»»» VAE | [object] | true | none | none | |
| »»»»» s3 | string | false | none | none | |
| »»»»» id | string | false | none | none | |
| »»»»» model_name | string | false | none | none | |
| »»»»» type | string | false | none | none | |
| »»» input_body_s3 | string | true | none | none | |
| »»» sagemaker_inference_instance_type | string | true | none | none | |
| »»» sagemaker_inference_endpoint_id | string | true | none | none | |
| »»» sagemaker_inference_endpoint_name | string | true | none | none | |
| »» InferenceJobId | string | true | none | none | |
| »» status | string | true | none | none | |
| »» inference_type | string | true | none | none | |
| »» createTime | string | true | none | none | |
| »» image_names | [string] | true | none | none | |
| »» owner_group_or_role | [string] | true | none | none | |
| » message | string | true | none | none |
训练(Trainings)
POST 创建训练作业 CreateTrainingJob
POST /trainings
Body Parameters
{
"lora_train_type": "kohya",
"params": {
"training_params": {
"training_instance_type": "ml.g5.2xlarge",
"s3_model_path": "s3://1697072612/Stable-diffusion/checkpoint/custom/05de5ff6-409d-4fd5-a59a-5c58f8fb2d04/v1-5-pruned-emaonly.safetensors",
"s3_data_path": "s3://1697072612/dataset/lego_technic",
"fm_type": "sd_1_5"
},
"config_params": {
"saving_arguments": {
"output_name": "lego_technic_4",
"save_every_n_epochs": 1000
},
"training_arguments": {
"max_train_epochs": 100
}
}
}
}
Params
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| username | header | string | yes | none |
| body | body | object | no | none |
| » lora_train_type | body | string | yes | none |
| » params | body | object | yes | none |
| »» training_params | body | object | yes | none |
| »»» training_instance_type | body | string | yes | none |
| »»» s3_model_path | body | string | yes | none |
| »»» s3_data_path | body | string | yes | none |
| »»» fm_type | body | string | yes | none |
| »» config_params | body | object | yes | none |
| »»» saving_arguments | body | object | yes | none |
| »»»» output_name | body | string | yes | none |
| »»»» save_every_n_epochs | body | integer | yes | none |
| »»» training_arguments | body | object | yes | none |
| »»»» max_train_epochs | body | integer | yes | none |
Response Examples
Success
{
"statusCode": 201,
"data": {
"inference": {
"id": "f3421ce5-9ab9-40a2-b33b-3f126de70a52",
"type": "txt2img",
"api_params_s3_location": "s3://xxxx/txt2img/infer_v2/f3421ce5-9ab9-40a2-b33b-3f126de70a52/api_param.json",
"api_params_s3_upload_url": "https://xxxx.s3.amazonaws.com/txt2img/infer_v2/f3421ce5-9ab9-40a2-b33b-3f126de70a52/api_param.json?AWSAccessKeyId=xxxx&Signature=HNp81KZy2%2FDSgz7%2FWP%2FdMIUPz8s%3D&x-amz-security-token=IQoJb3JpZ2luX2VjEOz%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaDmFwLXNvdXRoZWFzdC0xIkcwRQIgNMLgV7at1Vaao4wiFDgLOk4vc3OwD1D%2F4vyd%2Bz5vxhkCIQCnDqwzj3jP%2BIEyc2hCFw%2FNbWOHE%2BLDOVNFfxowLpQFEyrhAwi1%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F8BEAAaDDg2MDY2MDYwMDY5MCIM%2B6KJWPfr9JG4NBwKKrUDxMOpMiWgg2N1uusnm%2FRpoZhBFTe4MnPMNHf5M%2Bb8mTZWHD1JnMNAda1RUzfc9QoL%2BO76bH2QxhHQgmWaCnoX9i4hQCH7U%2F2slmF4EVSktyKWPbKMr%2BooX4uSpCiuU7qXqgjhPKbEn3tmsfH0RVf%2ByaGLXe6G43JAHpArjaJTIRnmH%2Bszbq55F%2FaifIpjhw9IlB6X18uVTzx9vqepS8zF%2Bn7%2F0L0da%2FhNvzz5QbRxbTrzjtDIGKd7aOz2%2BuXM03naXLcRFDRw29wzbMH2Z2P%2Bran9lZsrJBDYlWN4BMV3PSaweOghOOTldPlxylTzWiE86xWmw5kUpgU%2B4A8Te%2BZmJRl6Qqhq7sOZ%2BaaNTAqpYYQhjkFxLFziZjub90%2B7%2B0idFmQN7CpKEmBUTVdrQGAcagAJ9jQRUosTfRfHP%2BiXK1dj2sOOgDsDOZE6X2O9dpJQCiQAJKDDDvBKPn1s%2BDp7KlgRh5AdlBEgUkfcx3fUyhFz7hrVGLHR74hYIScIM714eDMlPvqtPtznr8IKtRvzKRYGxMyN%2FM%2FdvqhDE2WEHOP9M%2B4bvDBxMTDhNngjdZsMs524zVcw79aGrgY6ngEPUkOghS7xw2T1%2FGr6jR8AIjsdZ4ZsC5BZp22jizDO%2FQBmWEH2Z9LJK6Jmf7XwCRagmOuZlc8ZSr929Q48f371DwbhPGJdwjb7VPYqA20CJkcz6mFrU5zwLm%2BqDB2%2BpNVWIBMWeRsoGfcEipeR%2BVRd5DhVh0gCYc9BqDtshpstnhEvesuPSr8syAt5VQwUEAplxtWGFHh%2BPH3RHcgu%2Bw%3D%3D&Expires=1707194752",
"models": [
{
"id": "32a7af23-3763-4289-a6af-2156a2331878",
"name": [
"v1-5-pruned-emaonly.safetensors"
],
"type": "Stable-diffusion"
},
{
"id": "VAE",
"name": [
"Automatic"
],
"type": "VAE"
}
]
}
},
"message": "Created"
}
Responses
| HTTP Status Code | Meaning | Description | Data schema |
|---|---|---|---|
| 200 | OK | Success | Inline |
Responses Data Schema
HTTP Status Code 200
| Name | Type | Required | Restrictions | Title | description |
|---|---|---|---|---|---|
| » statusCode | integer | true | none | none | |
| » data | object | true | none | none | |
| »» inference | object | true | none | none | |
| »»» id | string | true | none | none | |
| »»» type | string | true | none | none | |
| »»» api_params_s3_location | string | true | none | none | |
| »»» api_params_s3_upload_url | string | true | none | none | |
| »»» models | [object] | true | none | none | |
| »»»» id | string | true | none | none | |
| »»»» name | [string] | true | none | none | |
| »»»» type | string | true | none | none | |
| » message | string | true | none | none |
DELETE 删除训练作业 DeleteTrainingJobs
DELETE /trainings
删除训练作业 Delete training jobs
Body Parameters
{
"inference_id_list": [
"99"
]
}
Params
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| username | header | string | yes | none |
| body | body | object | no | none |
| » training_id_list | body | [string] | yes | 推理作业ID列表(Inference Job ID List) |
Response Examples
No Content
{}
Responses
| HTTP Status Code | Meaning | Description | Data schema |
|---|---|---|---|
| 204 | No Content | No Content | Inline |
Responses Data Schema
PUT 停止指定的训练作业 StopTrainingJob
PUT /trainings/{jobId}/stop
停止指定的训练作业 Stop a specific training job
Params
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| jobId | path | string | yes | 训练作业ID(Training Job ID) |
Response Examples
Success
{
"statusCode": 200,
"message": "OK"
}
Responses
| HTTP Status Code | Meaning | Description | Data schema |
|---|---|---|---|
| 200 | OK | Success | Inline |
Responses Data Schema
Data Schema
Checkpoint
{
"id": "string",
"s3Location": "string",
"type": "string",
"status": "string",
"name": [
"string"
],
"created": 0,
"allowed_roles_or_users": [
"string"
]
}
Attribute
| Name | Type | Required | Restrictions | Title | Description |
|---|---|---|---|---|---|
| id | string | true | none | none | |
| s3Location | string | true | none | none | |
| type | string | true | none | none | |
| status | string | true | none | none | |
| name | [string] | true | none | none | |
| created | number | true | none | none | |
| allowed_roles_or_users | [string] | true | none | none |
Endpoint
{
"EndpointDeploymentJobId": "string",
"autoscaling": true,
"max_instance_number": "string",
"startTime": "string",
"current_instance_count": 0,
"endTime": "string",
"endpoint_status": "string",
"endpoint_name": "string",
"error": null,
"owner_group_or_role": [
"string"
]
}
Attribute
| Name | Type | Required | Restrictions | Title | Description |
|---|---|---|---|---|---|
| EndpointDeploymentJobId | string | true | none | ID | |
| autoscaling | boolean | true | none | Autoscaling Enabled | |
| max_instance_number | string | true | none | Max Instance Count | |
| startTime | string | true | none | Start Time | |
| current_instance_count | integer | true | none | Current Instance Count | |
| endTime | string | true | none | End Time | |
| endpoint_status | string | true | none | Endpoint Status | |
| endpoint_name | string | true | none | Endpoint Name | |
| error | null | true | none | Error Message | |
| owner_group_or_role | [string] | true | none | Roles |
User
{
"username": "string",
"roles": [
"string"
],
"creator": "string",
"permissions": [
"string"
],
"password": "string"
}
Attribute
| Name | Type | Required | Restrictions | Title | Description |
|---|---|---|---|---|---|
| username | string | true | none | 用户名(User Name) | |
| roles | [string] | true | none | 角色列表(Roles) | |
| creator | string | true | none | 创建者用户名(Creator User Name) | |
| permissions | [string] | true | none | 权限列表(Permissions) | |
| password | string | true | none | 密码(Password) |
InferenceJob
{
"inference_info_name": "string",
"startTime": "string",
"taskType": "string",
"completeTime": "string",
"params": {
"input_body_presign_url": "string",
"used_models": {
"Stable-diffusion": [
{
"s3": "string",
"id": "string",
"model_name": "string",
"type": "string"
}
],
"Lora": [
{
"s3": "string",
"id": "string",
"model_name": "string",
"type": "string"
}
]
},
"input_body_s3": "string",
"output_path": "string",
"sagemaker_inference_endpoint_id": "string",
"sagemaker_inference_endpoint_name": "string"
},
"InferenceJobId": "string",
"status": "string",
"sagemakerRaw": "string",
"image_names": [
"string"
],
"owner_group_or_role": [
"string"
]
}
Attribute
| Name | Type | Required | Restrictions | Title | Description |
|---|---|---|---|---|---|
| inference_info_name | string | true | none | Inference Info Name | |
| startTime | string | true | none | Start Time | |
| taskType | string | true | none | Task Type | |
| completeTime | string | true | none | Complete Time | |
| params | object | true | none | Params | |
| » input_body_presign_url | string | true | none | none | |
| » used_models | object | true | none | none | |
| »» Stable-diffusion | [object] | true | none | none | |
| »»» s3 | string | false | none | none | |
| »»» id | string | false | none | none | |
| »»» model_name | string | false | none | none | |
| »»» type | string | false | none | none | |
| »» Lora | [object] | true | none | none | |
| »»» s3 | string | false | none | none | |
| »»» id | string | false | none | none | |
| »»» model_name | string | false | none | none | |
| »»» type | string | false | none | none | |
| » input_body_s3 | string | true | none | none | |
| » output_path | string | true | none | none | |
| » sagemaker_inference_endpoint_id | string | true | none | none | |
| » sagemaker_inference_endpoint_name | string | true | none | none | |
| InferenceJobId | string | true | none | Inference Job Id | |
| status | string | true | none | Status | |
| sagemakerRaw | string | true | none | Sagemaker Raw | |
| image_names | [string] | true | none | Images Array | |
| owner_group_or_role | [string] | true | none | Roles |
Role
{
"role_name": "string",
"creator": "string",
"permissions": [
"string"
]
}
Attribute
| Name | Type | Required | Restrictions | Title | Description |
|---|---|---|---|---|---|
| role_name | string | true | none | 角色名(Role Name) | |
| creator | string | true | none | 创建者用户名(Creator User Name) | |
| permissions | [string] | true | none | 权限列表(Permissions) |