stable-diffusion-aws-extension/docs/en/developer-guide/api/1.5.0.md

1575 lines
42 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# ESD 1.5.0
# 健康检查Ping
<a id="opIdTestConnection"></a>
## GET 健康检查 Ping
GET /ping
测试客户端是否可以连接到 API并检查配置是否正确。
Test whether client can connect to api and check the API_TOKEN is correct.
> Response Examples
> Success
```json
{
"message": "pong",
"statusCode": 200
}
```
### Responses
|HTTP Status Code |Meaning|Description|Data schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|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
<a id="opIdListRoles"></a>
## DELETE 删除角色 DeleteRoles
DELETE /roles
删除角色
Delete roles
> Body Parameters
```json
{
"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
```json
{}
```
### Responses
|HTTP Status Code |Meaning|Description|Data schema|
|---|---|---|---|
|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|No Content|Inline|
### Responses Data Schema
<a id="opIdCreateRole"></a>
## POST 创建角色 CreateRole
POST /roles
创建新角色
Create a new role
> Body Parameters
```json
{
"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
```json
{
"statusCode": 201,
"message": "role created"
}
```
### Responses
|HTTP Status Code |Meaning|Description|Data schema|
|---|---|---|---|
|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|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
<a id="opIdListUsers"></a>
## GET 获取用户列表 ListUsers
GET /users
获取用户列表
List all users
### Params
|Name|Location|Type|Required|Description|
|---|---|---|---|---|
|username|header|string| yes |none|
> Response Examples
> Success
```json
{
"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](https://tools.ietf.org/html/rfc7231#section-6.3.1)|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|
<a id="opIdCreateUser"></a>
## POST 创建用户 CreateUser
POST /users
创建新用户
Create a new user
> Body Parameters
```json
{
"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
```json
{
"statusCode": 201,
"message": "Created"
}
```
### Responses
|HTTP Status Code |Meaning|Description|Data schema|
|---|---|---|---|
|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|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|
<a id="opIdDeleteUser"></a>
## DELETE 删除用户 DeleteUsers
DELETE /users
删除用户
Delete users
> Body Parameters
```json
{
"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
```json
{}
```
### Responses
|HTTP Status Code |Meaning|Description|Data schema|
|---|---|---|---|
|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|No Content|Inline|
### Responses Data Schema
# 模型文件Checkpoints
<a id="opIdCreateCheckpoint"></a>
## POST 通过URL上传模型文件 CreateCheckpoint
POST /checkpoints
通过URL上传模型文件
Create a new Checkpoint by URL
> Body Parameters
```json
{
"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
```json
{
"statusCode": 202,
"message": "Checkpoint creation in progress, please check later"
}
```
### Responses
|HTTP Status Code |Meaning|Description|Data schema|
|---|---|---|---|
|202|[Accepted](https://tools.ietf.org/html/rfc7231#section-6.3.3)|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|
<a id="opIdListCheckpoints"></a>
## DELETE 删除模型文件 DeleteCheckpoints
DELETE /checkpoints
删除模型文件
Delete checkpoints
> Body Parameters
```json
{
"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
```json
{}
```
### Responses
|HTTP Status Code |Meaning|Description|Data schema|
|---|---|---|---|
|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|No Content|Inline|
### Responses Data Schema
<a id="opIdUpdateCheckpoint"></a>
## PUT 更新模型文件状态 UpdateCheckpoint
PUT /checkpoints/{checkpointId}
更新模型文件状态
Update Checkpoint
> Body Parameters
```json
{
"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
```json
{
"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](https://tools.ietf.org/html/rfc7231#section-6.3.1)|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
<a id="opIdListEndpoints"></a>
## GET 获取端点列表 ListEndpoints
GET /endpoints
获取推理端点列表
List inference endpoints
### Params
|Name|Location|Type|Required|Description|
|---|---|---|---|---|
|username|header|string| yes |none|
> Response Examples
> Success
```json
{
"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](https://tools.ietf.org/html/rfc7231#section-6.3.1)|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|
<a id="opIdCreateEndpoint"></a>
## POST 创建端点 CreateEndpoint
POST /endpoints
创建推理端点
Create Endpoint
> Body Parameters
```json
{
"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 |开启 AutoscalingEnable 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
```json
{
"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](https://tools.ietf.org/html/rfc7231#section-6.3.1)|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](#schemaendpoint)|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|
<a id="opIdDeleteEndpoints"></a>
## DELETE 删除端点 DeleteEndpoints
DELETE /endpoints
删除推理端点
Delete endpoints
> Body Parameters
```json
{
"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
```json
{}
```
### Responses
|HTTP Status Code |Meaning|Description|Data schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Success|Inline|
### Responses Data Schema
# 推理Inferences
<a id="opIdCreateInferenceJob"></a>
## 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
```json
{
"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 TypeAsync | Real-time|
|» task_type|body|string| yes |任务类型Task Typetxt2img | img2img | rembg|
|» 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
```json
{
"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](https://tools.ietf.org/html/rfc7231#section-6.3.1)|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|
<a id="opIdListInferenceJobs"></a>
## DELETE 删除推理作业 DeleteInferenceJobs
DELETE /inferences
删除推理作业
Delete inference jobs
> Body Parameters
```json
{
"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
```json
{}
```
### Responses
|HTTP Status Code |Meaning|Description|Data schema|
|---|---|---|---|
|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|No Content|Inline|
### Responses Data Schema
<a id="opIdRunInferenceJob"></a>
## PUT 开始推理作业 StartInferenceJob
PUT /inferences/{jobId}/start
开始推理作业
Start inference job
### Params
|Name|Location|Type|Required|Description|
|---|---|---|---|---|
|jobId|path|string| yes |推理作业IDInference Job ID|
|username|header|string| yes |none|
> Response Examples
> Success
```json
{
"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](https://tools.ietf.org/html/rfc7231#section-6.3.1)|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|
<a id="opIdGetInferenceJob"></a>
## GET 获取推理作业详情 GetInferenceJob
GET /inferences/{jobId}
获取指定的推理作业详情
Gets a specific inference job
### Params
|Name|Location|Type|Required|Description|
|---|---|---|---|---|
|jobId|path|string| yes |推理作业IDInference Job ID|
> Response Examples
> Success
```json
{
"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](https://tools.ietf.org/html/rfc7231#section-6.3.1)|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
```json
{
"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": {
"training": {
"output_name": "demo_xl2024",
"max_train_epochs": 100,
"optimizer_type": "AdamW8bit",
"save_every_n_epochs": 50
}
}
}
}
```
### Params
|Name|Location|Type|Required|Description|
|---|---|---|---|---|
|username|header|string| yes | The user who start the training |
|body|body|object| no |Request body|
|» lora_train_type|body|string| yes |The default value is "kohya", keep it as the default value |
|» params|body|object| yes | Parameters|
|»» training_params|body|object| yes |Training parameters|
|»»» training_instance_type|body|string| yes |The instance type used for Kohya training, eg. ml.g5.4xlarge, ml.g4dn.2xlarge |
|»»» s3_model_path|body|string| yes |SD model path, it is an S3 path|
|»»» s3_data_path|body|string| yes |Dataset path, it is an S3 path|
|»»» fm_type|body|string| yes |Foundation model type, valid values are sd_xl and sd_1_5. sd_xl for training based on SDXL model, sd_1_5 for training based on SD 1.5 model |
|»» config_params|body|object| no |Kohya configuration parameters|
|»»» training|body|object| no |Training section, do not change it|
|»»»» output_name|body|string| no |Model output name|
|»»»» save_every_n_epochs|body|integer| no |Save a preview lora model on every N epochs trained|
|»»»» max_train_epochs|body|integer| no |Enforce number of epoch|
|»»»» optimizer_type|body|string| no |Optimizer type|
You can add Kohya parameters under config_params/training, the parameters can be exported from Kohya GUI. If no config_params, it will use a set of default parameters for the training.
> Response Examples
> Success
```json
{
"statusCode": 200,
"data": {
"id": "da2f2934-89f8-4341-bad0-2ca28348ba14",
"status": "Training",
"created": "1710466658.565659",
"params": {
"config_params": {
"training": {
...
}
},
"training_params": {
...
},
"training_type": "kohya"
},
"input_location": "s3://<sample-bucket>/kohya/train/da2f2934-89f8-4341-bad0-2ca28348ba14/input",
"output_location": "s3://<sample-bucket>/kohya/train/da2f2934-89f8-4341-bad0-2ca28348ba14/output"
},
"message": "OK"
}
```
### Responses
|HTTP Status Code |Meaning|Description|Data schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|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|
|»» id|string|true|none||Training job ID, you can use the id to get the training status|
|»» status|string|true|none||Training status|
|»» params|string|true|none||Training params|
|»» input_location|string|true|none||Training input location|
|»» output_location|string|true|none||The S3 location of generated models|
|» message|string|true|none||none|
## GET 获取训练作业状态 GetTrainingJobStatus
GET /trainings/{jobId}
### Params
|Name|Location|Type|Required|Description|
|---|---|---|---|---|
|username|header|string| yes | The user who get the training job status |
|jobId|path|string| yes |Training Job ID|
> Response Examples
> Success
```json
{
"statusCode": 200,
"data": {
"id": "da2f2934-89f8-4341-bad0-2ca28348ba14",
"checkpoint_id": "da2f2934-89f8-4341-bad0-2ca28348ba14",
"job_status": "Completed",
"model_id": "kohya",
"params": {
...
},
"timestamp": "1710466658.565659",
"train_type": "Stable-diffusion"
},
"message": "OK"
}
```
### Responses
|HTTP Status Code |Meaning|Description|Data schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|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|
|»» id|string|true|none||Training job ID|
|»» checkpoint_id|string|true|none||Checkpoint ID|
|»» job_status|string|true|none||Training job status|
|»» model_id|string|true|none||The default is Kohya|
|»» params|string|true|none||Training params|
|»» timestamp|string|true|none||Training date time|
|»» train_type|string|true|none||Training type, the default is Stable-diffusion|
|» message|string|true|none||none|
## DELETE 删除训练作业 DeleteTrainingJobs
DELETE /trainings
删除训练作业
Delete training jobs
> Body Parameters
```json
{
"training_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 |Training job ID List|
> Response Examples
> No Content
```json
{}
```
### Responses
|HTTP Status Code |Meaning|Description|Data schema|
|---|---|---|---|
|204|[No Content](https://tools.ietf.org/html/rfc7231#section-6.3.5)|No Content|Inline|
### Responses Data Schema
## PUT 停止指定的训练作业 StopTrainingJob
PUT /trainings/{jobId}/stop
停止指定的训练作业
Stop a specific training job
### Params
|Name|Location|Type|Required|Description|
|---|---|---|---|---|
|username|header|string| yes | The user who stop the training job |
|jobId|path|string| yes |Training job ID |
> Response Examples
> Success
```json
{
"statusCode": 200,
"message": "OK"
}
```
### Responses
|HTTP Status Code |Meaning|Description|Data schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Success|Inline|
### Responses Data Schema
# Data Schema
<h2 id="tocS_Checkpoint">Checkpoint</h2>
<a id="schemacheckpoint"></a>
<a id="schema_Checkpoint"></a>
<a id="tocScheckpoint"></a>
<a id="tocscheckpoint"></a>
```json
{
"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|
<h2 id="tocS_Endpoint">Endpoint</h2>
<a id="schemaendpoint"></a>
<a id="schema_Endpoint"></a>
<a id="tocSendpoint"></a>
<a id="tocsendpoint"></a>
```json
{
"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|
<h2 id="tocS_User">User</h2>
<a id="schemauser"></a>
<a id="schema_User"></a>
<a id="tocSuser"></a>
<a id="tocsuser"></a>
```json
{
"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|
<h2 id="tocS_InferenceJob">InferenceJob</h2>
<a id="schemainferencejob"></a>
<a id="schema_InferenceJob"></a>
<a id="tocSinferencejob"></a>
<a id="tocsinferencejob"></a>
```json
{
"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|
<h2 id="tocS_Role">Role</h2>
<a id="schemarole"></a>
<a id="schema_Role"></a>
<a id="tocSrole"></a>
<a id="tocsrole"></a>
```json
{
"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|