API 调用规则
在部署解决方案后,您可以通过Amazon API Gateway的API端点,向Stable Diffusion运行时发送请求。
发送请求时,请遵循以下规则:
API 请求示例
您可以使用测试脚本验证解决方案是否部署成功。运行以下命令以进行测试:
如您修改了解决方案堆栈名称,或运行时类型,请将sdoneksStack
和sdwebui
替换成对应内容。
该脚本会自动查找API Gateway端点,获取API Key,并发送测试请求。
- 对SD Web UI运行时,会发送一个文生图和图生图请求。
- 对ComfyUI运行时,会发送一个Pipeline请求。
在数秒至数分钟(取决于是否启用了镜像缓存,和最小实例副本数量)后,您可以在output_location
的位置找到生成的图像。
请求端点和格式
解决方案的API端点可以从CloudFormation的输出中获取:
- 进入 AWS CloudFormation 控制台
- 选择 Stacks (堆栈)
- 在列表中,选择 SdOnEKSStack (或您自定义的名称)
- 选择 Output (输出)
- 记录 FrontApiEndpoint 项的值(格式为
https://abcdefghij.execute-api.ap-southeast-1.amazonaws.com/prod/
)
您需要在端点后附加API版本。目前我们支持v1alpha1
和v1alpha2
版本。当您使用v1alpha2
版本API时,请求应发送至:
该端点仅接收JSON格式的POST请求,需要包含Content-Type: application/json
请求头。
请求类型
根据运行时类型不同,每种运行时只接受特定类型的请求:
具体请求格式请参见各类型请求的详细文档。
API Key
出于安全考虑,所有请求需要附加API Key。通过以下步骤获取API Key:
- 进入 Amazon API Gateway 控制台
- 选择 API Keys
- 在列表中,选择名称类似于
SdOnEK-defau-abcdefghij
(或您自定义的名称)的API Key - 记录 API key 项的值
在发送请求时,需包含x-api-key
请求头,其值为上方获取的API Key。
未验证的请求
未包含API Key的请求将会直接返回401
错误。
限流规则
为保护后端API,对使用同一个API Key发送的过多请求,API Gateway会进行限流。
默认设置为:
- 每秒30个请求
- 可突增50个请求
关于限流的原理详细信息,请参考Throttle API requests for better throughput
如您需要修改该设置,请在config.yaml
中修改APIGW
段的相关内容。您也可以在API Gateway中修改对应Usage Plan。
下一步
根据右方目录的不同使用方式,向Stable Diffusion发送请求。