此專案示範如何透過在 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 許可證獲得許可。請參閱許可證文件。