该项目演示了如何通过在 Amazon SageMaker Inference 上托管 ComfyUI,使用 Stable Diffusion 生成图像。它是一种设计模式,允许将 GenAI 图像生成功能添加到您的应用程序中。
ComfyUI 是最流行的 GUI 和后端之一,允许您使用稳定扩散生成图像。一些主要功能:
通过使用 Amazon SageMaker Inference 托管 ComfyUI,当您想要执行以下操作时,它特别适合:
有一个 Lambda 函数可以调用 SageMaker 推理端点(正在运行 ComfyUI)来生成图像。为了便于说明,已配置 Lambda 函数 URL,以便您可以通过调用此专用 HTTPS 端点来测试图像生成。
最简单的方法是启动运行 AMI Deep Learning OSS Nvidia Driver AMI GPU PyTorch 2.3.0 (Amazon Linux 2)
的g5.xlarge
EC2 实例。使用Session Manager连接到实例,然后通过运行以下命令将用户添加到docker
组。
sudo usermod -a -G docker $( whoami )
断开连接并重新连接以使更新的组成员资格生效。
- 如果您不在本地运行 ComfyUI,非 GPU 实例(例如
t3.small
也可以工作。- 如果要运行 FLUX.1 模型,fp8 版本至少使用
g5.2xlarge
或更高版本。 fp16 版本至少使用g5.4xlarge
。
AWS Cloud9 或本地计算机也可以工作,但请确保以下各项安装正确。
注意: Apple M1/M2/M3 无法工作,因为尚不支持容器的跨架构构建。您必须在与 SageMaker 端点匹配的 x86_64 上构建。
第 1 步- 克隆项目:
git clone https://github.com/aws-samples/comfyui-on-amazon-sagemaker.git
第 2 步- 自定义以下文件(可选):
FLUX.1 - 如果您想尝试 FLUX.1 模型:
- 取消此处或此处的注释以下载模型。
- 此处更新以将
SAGEMAKER_INSTANCE_TYPE
更改为至少ml.g5.2xlarge
。- 在API请求中使用相应的提示文件
flux1-dev-fp8-ckpt.json
或flux1-schnell-fp8-ckpt.json
。
步骤 3 - 运行deploy.sh。通常需要不到一小时即可完成。
./deploy.sh
例如,Lambda 函数 URL 已启用,因此您可以通过调用此专用 HTTPS 端点来测试图像生成。可以在堆栈输出的ComfyUIFunctionUrl
处找到端点 URL。
默认情况下, AWS_IAM
身份验证配置为调用 lambda 函数 URL,因此您必须使用 AWS 签名版本 4 (SigV4) 对每个 HTTP 请求进行签名。 awscurl、Postman 和 AWS SigV4 Proxy 等工具提供了使用 SigV4 签署请求的内置方法。您可以通过在deploy.sh中将LAMBDA_URL_AUTH_TYPE
设置为NONE
来禁用身份验证,但这很危险,因为函数URL对所有人开放。
使用 Postman 的 AWS 签名授权示例:
这是请求正文的示例:
{
"positive_prompt" : " hill happy dog " ,
"negative_prompt" : " hill " ,
"prompt_file" : " workflow_api.json " ,
"seed" : 11245
}
调用成功,可以看到生成的图像:
删除deploy.sh部署的以下资源。
comfyui
)comfyui-sagemaker-<AWS_ACCOUNT_ID>-<AWS_REGION>
)comfyui-sagemaker
) 查看开发
请参阅贡献以获取更多信息。
该库根据 MIT-0 许可证获得许可。请参阅许可证文件。