openapi: "3.0.2" info: title: "Stable Diffusion Train and Deploy API" description: "This service is used to train and deploy Stable Diffusion models." version: "2023-07-05" servers: - url: "https://.execute-api..amazonaws.com/{basePath}" variables: basePath: default: "prod" paths: /model: post: security: - api_key: [] tags: - default summary: Create Model requestBody: content: application/json: schema: type: object example: model_type: Stable-diffusion name: testmodelcreation01 filenames: - filename: v1-5-pruned-emaonly.safetensors.tar parts_number: 5 params: create_model_params: new_model_name: testmodelcreation01 ckpt_path: v1-5-pruned-emaonly.safetensors from_hub: false new_model_url: '' new_model_token: '' extract_ema: false train_unfrozen: false is_512: true responses: '200': description: Successful response content: application/json: schema: type: object example: statusCode: 200 job: id: id status: Initialed s3_base: s3://S3_Location model_type: Stable-diffusion params: {} s3PresignUrl: - upload_id: id bucket: bucket name key: object key '500': description: Error response content: application/json: schema: type: object example: statusCode: 500 error: error_message put: security: - api_key: [] tags: - default summary: Update Model requestBody: content: application/json: schema: type: object example: model_id: c9f59ee7-0672-4fd1-8a45-8a494de8a48d status: Creating multi_parts_tags: v1-5-pruned-emaonly.safetensors.tar: - ETag: cc95c41fa28463c8e9b88d67805f24e0 PartNumber: 1 - ETag: e4378bd84b0497559c55be8373cb79d0 PartNumber: 2 - ETag: 815b68042f6ac5e60b9cff5c697ffea6 PartNumber: 3 - ETag: 2c6cfbd9bfbafd5664cdc8b3ba07df6d PartNumber: 4 - ETag: e613d37e5065b0cd63f1cad216423141 PartNumber: 5 responses: '200': description: Successful response content: application/json: schema: type: object example: statusCode: 200 job: output_path: s3://S3_Location id: job.id endpointName: endpoint_name jobStatus: Created jobType: Stable-diffusion '500': description: Error response content: application/json: schema: type: object example: statusCode: 500 error: error_message /models: get: security: - api_key: [] tags: - default summary: List Models parameters: - name: types in: query schema: type: array items: type: string example: - Stable-diffusion responses: '200': description: Successful response content: application/json: schema: type: object example: statusCode: 200 models: id: id model_name: name created: 12341234.0 params: {} status: Initialed output_s3_location: s3://S3_LOCATION/ '500': description: Error response content: application/json: schema: type: object example: statusCode: 500 error: error_message /checkpoint: post: security: - api_key: [] tags: - default summary: Create Checkpoint requestBody: content: application/json: schema: type: object example: checkpoint_type: Stable-diffusion filenames: - filename: v1-5-pruned-emaonly.safetensors parts_number: 5 params: new_model_name: test_api number: 1 string: abc responses: '200': description: Successful response content: application/json: schema: type: object example: statusCode: 200 checkpoint: id: id type: Stable-diffusion s3_location: s3://S3_Location status: Initialed params: {} s3PresignUrl: - upload_id: id, bucket: bucket name, key: key, '500': description: Error response content: application/json: schema: type: object example: statusCode: 500 error: error_message put: security: - api_key: [] tags: - default summary: Update Checkpoints requestBody: content: application/json: schema: type: object example: checkpoint_id: 906a5a1f-6833-45aa-8a10-fb0e983e0eae status: Active multi_parts_tags: v1-5-pruned-emaonly.safetensors.tar: - ETag: cc95c41fa28463c8e9b88d67805f24e0 PartNumber: 1 - ETag: e4378bd84b0497559c55be8373cb79d0 PartNumber: 2 - ETag: 815b68042f6ac5e60b9cff5c697ffea6 PartNumber: 3 - ETag: 2c6cfbd9bfbafd5664cdc8b3ba07df6d PartNumber: 4 - ETag: e613d37e5065b0cd63f1cad216423141 PartNumber: 5 responses: '200': description: Successful response content: application/json: schema: type: object example: statusCode: 200 checkpoint: id: id type: Stable-diffusion s3_location: s3://S3_Location status: Active params: {} '500': description: Error response content: application/json: schema: type: object example: statusCode: 500 error: error_message /checkpoints: get: security: - api_key: [] tags: - default summary: List Checkpoints parameters: - name: status in: query schema: type: array items: type: string example: - Active - name: types in: query schema: type: array items: type: string example: - Stable-diffusion responses: '200': description: Successful response content: application/json: schema: type: object example: statusCode: 200 checkpoints: - id: id s3Location: s3://S3_Location type: Stable-diffusion status: Active name: - object_1 - object_2 created: 12341234.0 '500': description: Error response content: application/json: schema: type: object example: statusCode: 500 error: error_message /train: post: security: - api_key: [] tags: - default summary: Create Train Job requestBody: content: application/json: schema: type: object example: train_type: dreambooth model_id: 36c9d05e-3445-42a6-8be1-d7d054df7b9d params: train_params: training_instance_type: ml.g4dn.2xlarge test1: 2 filenames: - training_config.json - images.tar responses: '200': description: Successful response content: application/json: schema: type: object example: statusCode: 200 job: id: id status: Initialed trainType: Stable-diffusion params: {} input_location: s3://S3_Location s3PresignUrl: - filename: s3://S3_Location '500': description: Error response content: application/json: schema: type: object example: statusCode: 500 error: error_message put: security: - api_key: [] tags: - default summary: Update Train job requestBody: content: application/json: schema: type: object example: train_job_id: b5183dd3-0279-46ff-b64e-6cd687c0fe71 status: Training responses: '200': description: Successful response content: application/json: schema: type: object example: statusCode: 200 job: id: id status: Training created: 12341234.0 trainType: Stable-diffusion params: {} input_location: s3://S3_Location '500': description: Error response content: application/json: schema: type: object example: statusCode: 500 error: error_message /trains: get: security: - api_key: [] tags: - default summary: List Train Jobs parameters: - name: types in: query schema: type: array items: type: string example: Stable-diffusion responses: '200': description: Successful response content: application/json: schema: type: object example: statusCode: 200, trainJobs: - id: id modelName: model_name status: Complete trainType: Stable-diffusion created: 1234124.0 sagemakerTrainName: sagemaker_train_name '500': description: Error response content: application/json: schema: type: object example: statusCode: 500 error: error_message /dataset: post: security: - api_key: [] tags: - default summary: Create Dataset requestBody: content: application/json: schema: type: object example: dataset_name: test_dataset content: - filename: /path/to/a/file.png name: another_name type: png params: {} responses: '200': description: Successful response content: application/json: schema: type: object example: statusCode: 200 datasetName: dataset_name s3PresignUrl: - filename: s3://S3_Location '500': description: Error response content: application/json: schema: type: object example: statusCode: 500 error: error_message put: security: - api_key: [] tags: - default summary: Update Dataset requestBody: content: application/json: schema: type: object example: dataset_name: test_dataset status: Enabled responses: '200': description: Successful response content: application/json: schema: type: object example: statusCode: 200 datasetName: dataset_name status: Enabled '500': description: Error response content: application/json: schema: type: object example: statusCode: 500 error: error_message /prod/datasets: get: security: - api_key: [] tags: - default summary: List Datasets by dataset status parameters: - name: dataset_status in: query schema: type: array items: type: string example: - Enabled responses: '200': description: Successful response content: application/json: schema: type: object example: statusCode: 200 datasets: - datasetName: dataset_name s3: s3://S3_Location status: Enabled timestamp: 1234124.0 '500': description: Error response content: application/json: schema: type: object example: statusCode: 500 error: error_message /{dataset_name}/data: get: security: - api_key: [] tags: - default summary: List Dataset Items by Dataset Name parameters: - name: dataset_name in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: schema: type: object example: statusCode: 200 dataset_name: dataset_name data: - key: key name: file name type: image preview_url: https://presigned_s3_url dataStatus: Enabled '500': description: Error response content: application/json: schema: type: object example: statusCode: 500 error: error_message # Inference Start /inference: get: summary: Root operationId: root_inference_get responses: '200': description: Successful Response content: application/json: schema: {} /inference/test-connection: get: summary: used to let client test connection operationId: test_connection_get responses: '200': description: Successful Response content: application/json: schema: {} /inference/run-sagemaker-inference: post: summary: Run Sagemaker Inference operationId: run_sagemaker_inference_inference_run_sagemaker_inference_post requestBody: content: application/json: schema: type: object example: Stable-diffusion: {} embeddings: FastNegativeV2.pt: s3://stable-diffusion-aws-extension-aigcbucketa457cb49-1tlr2pqwkosg3/embeddings/checkpoint/custom/c65307dd-c0ee-4649-a900-596f144cd330/FastNegativeV2.pt okuryl3nko.pt: s3://stable-diffusion-aws-extension-aigcbucketa457cb49-1tlr2pqwkosg3/embeddings/checkpoint/custom/219dff2e-a1f0-4a70-9b2b-2bbc21295db7/okuryl3nko.pt Lora: 3DMM_V12.safetensors: s3://stable-diffusion-aws-extension-aigcbucketa457cb49-1tlr2pqwkosg3/Lora/checkpoint/custom/ccbd651b-f239-4776-875a-034377849cb3/3DMM_V12.safetensors hypernetworks: streetArt_v10.pt: s3://stable-diffusion-aws-extension-aigcbucketa457cb49-1tlr2pqwkosg3/hypernetworks/checkpoint/custom/b89cb29f-eba5-4f37-939a-61099f8e13a5/streetArt_v10.pt ControlNet: {} sagemaker_endpoint: infer-endpoint-cb821ea task_type: txt2img responses: '200': description: Successful Response content: application/json: schema: type: object example: # {"inference_id": inference_id, "status": "inprogress", "endpoint_name": endpoint_name, "output_path": output_path} inference_id: XXXXXXX status: inprogress | failed endpoint_name: NAME_OF_ENDPOINT output_path: path_of_prediction_output /inference/deploy-sagemaker-endpoint: post: summary: Deploy Sagemaker Endpoint operationId: deploy_sagemaker_endpoint_inference_deploy_sagemaker_endpoint_post requestBody: content: application/json: schema: type: object example: instance_type: ml.g4dn.xlarge | ml.g4dn.2xlarge | ml.g4dn.4xlarge initial_instance_count: 1|2|3|4 responses: '200': description: Successful Response content: application/json: schema: {} /inference/delete-sagemaker-endpoint: post: summary: Delete Sagemaker Endpoint operationId: delete_sagemaker_endpoint_inference_delete_sagemaker_endpoint_post requestBody: content: application/json: schema: type: object example: delete_endpoint_list: ['infer-endpoint-XXXXXX','infer-endpoint-YYYYYY'] responses: '200': description: Successful Response content: application/json: schema: {} /inference/list-endpoint-deployment-jobs: get: summary: List Endpoint Deployment Jobs operationId: list_endpoint_deployment_jobs_inference_list_endpoint_deployment_jobs_get responses: '200': description: Successful Response content: application/json: schema: type: object example: - EndpointDeploymentJobId: e0f9ccfd-8d14-4e77-9e75-b340e1ef23c8 startTime: '2023-07-04 08:00:35.171309' endTime: '2023-07-04 08:00:37.158519' error: '' status: failed - EndpointDeploymentJobId: 1bd447d2-e561-4cb3-965d-2707b30aea81 startTime: '2023-07-04 08:00:22.435828' endTime: '2023-07-04 08:00:25.421777' error: '' status: failed - EndpointDeploymentJobId: cb821ea9-e9d1-4bae-98f8-c20ecadf11e0 startTime: '2023-07-04 08:00:47.736033' endTime: '2023-07-04 08:12:55.148070' endpoint_name: infer-endpoint-cb821ea endpoint_status: InService status: success /inference/list-inference-jobs: get: summary: List Inference Jobs operationId: list_inference_jobs_inference_list_inference_jobs_get responses: '200': description: Successful Response content: application/json: schema: type: object example: - inference_info_name: "/tmp/417d8bc5-f6d0-49c6-9669-c981beeb602a_param.json" startTime: '2023-07-04 09:14:21.170303' taskType: txt2img completeTime: 2023-07-04-09-14-26 InferenceJobId: '417d8bc5-f6d0-49c6-9669-c981beeb602a' status: succeed sagemakerRaw: "" image_names: - image_0.jpg - inference_info_name: "/tmp/1f9679f3-25b8-4c44-8345-0a845da30094_param.json" startTime: '2023-07-05 06:38:45.752740' taskType: txt2img completeTime: 2023-07-05-06-38-49 InferenceJobId: 1f9679f3-25b8-4c44-8345-0a845da30094 status: succeed sagemakerRaw: "{'awsRegion': 'us-west-2', 'eventTime': '2023-07-05T06:38:47.73Z', 'receivedTime': '2023-07-05T06:38:45.725Z', 'invocationStatus': 'Completed', 'requestParameters': {'accept': '*/*', 'endpointName': 'infer-endpoint-cb821ea', 'inputLocation': 's3://sagemaker-us-west-2-489670441870/async-endpoint-inputs/infer-endpoint-cb821ea-230705-0638/2023-07-05-06-38-45-445-81a1ec03-f000-4a20-9a60-032ab1558a9d'}, 'responseParameters': {'contentType': 'application/json', 'outputLocation': 's3://stable-diffusion-aws-extension-aigcbucketa457cb49-1tlr2pqwkosg3/sagemaker_output/211d2095-68bc-4404-a9e1-8a18a41f4dc7.out'}, 'inferenceId': '1f9679f3-25b8-4c44-8345-0a845da30094', 'eventVersion': '1.0', 'eventSource': 'aws:sagemaker', 'eventName': 'InferenceResult'}" image_names: - image_0.jpg /inference/get-endpoint-deployment-job: get: summary: Get Endpoint Deployment Job operationId: get_endpoint_deployment_job_inference_get_endpoint_deployment_job_get parameters: - required: true schema: title: Jobid type: string name: jobID in: query responses: '200': description: Successful Response content: application/json: schema: type: object example: EndpointDeploymentJobId: cb821ea9-e9d1-4bae-98f8-c20ecadf11e0 startTime: '2023-07-04 08:00:47.736033' endTime: '2023-07-04 08:12:55.148070' endpoint_name: infer-endpoint-cb821ea endpoint_status: InService status: success '422': description: Validation Error content: application/json: schema: "$ref": "#/components/schemas/HTTPValidationError" /inference/get-inference-job: get: summary: Get Inference Job operationId: get_inference_job_inference_get_inference_job_get parameters: - required: false schema: title: Jobid type: string name: jobID in: query responses: '200': description: Successful Response content: application/json: schema: type: object example: inference_info_name: "/tmp/1f9679f3-25b8-4c44-8345-0a845da30094_param.json" startTime: '2023-07-05 06:38:45.752740' taskType: txt2img completeTime: 2023-07-05-06-38-49 InferenceJobId: 1f9679f3-25b8-4c44-8345-0a845da30094 status: succeed sagemakerRaw: "{'awsRegion': 'us-west-2', 'eventTime': '2023-07-05T06:38:47.73Z', 'receivedTime': '2023-07-05T06:38:45.725Z', 'invocationStatus': 'Completed', 'requestParameters': {'accept': '*/*', 'endpointName': 'infer-endpoint-cb821ea', 'inputLocation': 's3://sagemaker-us-west-2-489670441870/async-endpoint-inputs/infer-endpoint-cb821ea-230705-0638/2023-07-05-06-38-45-445-81a1ec03-f000-4a20-9a60-032ab1558a9d'}, 'responseParameters': {'contentType': 'application/json', 'outputLocation': 's3://stable-diffusion-aws-extension-aigcbucketa457cb49-1tlr2pqwkosg3/sagemaker_output/211d2095-68bc-4404-a9e1-8a18a41f4dc7.out'}, 'inferenceId': '1f9679f3-25b8-4c44-8345-0a845da30094', 'eventVersion': '1.0', 'eventSource': 'aws:sagemaker', 'eventName': 'InferenceResult'}" image_names: - image_0.jpg '422': description: Validation Error content: application/json: schema: "$ref": "#/components/schemas/HTTPValidationError" /inference/get-inference-job-image-output: get: summary: Get Inference Job Image Output operationId: get_inference_job_image_output_inference_get_inference_job_image_output_get parameters: - required: false schema: title: Jobid type: string name: jobID in: query responses: '200': description: Successful Response content: application/json: schema: title: Response Get Inference Job Image Output Inference Get Inference Job Image Output Get type: array items: type: string example: - https://stable-diffusion-aws-extension-aigcbucketa457cb49-1tlr2pqwkosg3.s3.amazonaws.com/out/1f9679f3-25b8-4c44-8345-0a845da30094/result/image_0.jpg '422': description: Validation Error content: application/json: schema: "$ref": "#/components/schemas/HTTPValidationError" /inference/get-inference-job-param-output: get: summary: Get Inference Job Param Output operationId: get_inference_job_param_output_inference_get_inference_job_param_output_get parameters: - required: false schema: title: Jobid type: string name: jobID in: query responses: '200': description: Successful Response content: application/json: schema: title: Response Get Inference Job Param Output Inference Get Inference Job Param Output Get type: array items: type: string example: - https://stable-diffusion-aws-extension-aigcbucketa457cb49-1tlr2pqwkosg3.s3.amazonaws.com/out/1f9679f3-25b8-4c44-8345-0a845da30094/result/1f9679f3-25b8-4c44-8345-0a845da30094_param.json '422': description: Validation Error content: application/json: schema: "$ref": "#/components/schemas/HTTPValidationError" /inference/generate-s3-presigned-url-for-uploading: get: summary: Generate S3 Presigned Url For Uploading operationId: generate_s3_presigned_url_for_uploading_inference_generate_s3_presigned_url_for_uploading_get parameters: - required: false schema: title: S3 Bucket Name type: string name: s3_bucket_name in: query - required: false schema: title: Key type: string name: key in: query responses: '200': description: Successful Response content: application/json: schema: type: string example: "https://stable-diffusion-aws-extension-aigcbucketa457cb49-1tlr2pqwkosg3.s3.amazonaws.com/config/aigc.json?XXX" '422': description: Validation Error content: application/json: schema: "$ref": "#/components/schemas/HTTPValidationError" /inference/get-texual-inversion-list: get: summary: Get Textual Inversion List operationId: get_texual_inversion_list_inference_get_texual_inversion_list_get responses: '200': description: Successful Response content: application/json: schema: {} /inference/get-lora-list: get: summary: Get Lora List operationId: get_lora_list_inference_get_lora_list_get responses: '200': description: Successful Response content: application/json: schema: {} /inference/get-hypernetwork-list: get: summary: Get Hypernetwork List operationId: get_hypernetwork_list_inference_get_hypernetwork_list_get responses: '200': description: Successful Response content: application/json: schema: {} /inference/get-controlnet-model-list: get: summary: Get Controlnet Model List operationId: get_controlnet_model_list_inference_get_controlnet_model_list_get responses: '200': description: Successful Response content: application/json: schema: {} /inference/run-model-merge: post: summary: Run Model Merge operationId: run_model_merge_inference_run_model_merge_post responses: '200': description: Successful Response content: application/json: schema: type: object example: primary_model_name : primary_model_name, secondary_model_name : secondary_model_name, tertiary_model_name : teritary_model_name # Inference End components: schemas: Empty: title: "Empty Schema" type: "object" HTTPValidationError: title: HTTPValidationError type: object properties: detail: title: Detail type: array items: "$ref": "#/components/schemas/ValidationError" ValidationError: title: ValidationError required: - loc - msg - type type: object properties: loc: title: Location type: array items: anyOf: - type: string - type: integer msg: title: Message type: string type: title: Error Type type: string securitySchemes: api_key: type: "apiKey" name: "x-api-key" in: "header"