stable-diffusion-aws-extension/docs/zh/deployment/deployment_comfyui.md

8.4 KiB
Raw Blame History

在部署解决方案之前,建议您先查看本指南中有关架构图和区域支持等信息。然后按照下面的说明配置解决方案并将其部署到您的帐户中。

部署时间:约 20 分钟

前提条件

部署概述

在亚马逊云科技上部署本解决方案ComfyUI部分主要包括以下过程

  • 步骤1部署本解决方案中间件。
  • 步骤2部署ComfyUI前端。
  • 步骤3: 在ComfyUI页面调试并创建一个可用的工作流。
  • 步骤4根据创建的工作流部署新的Amazon SageMaker推理节点。

!!! tip "贴士" 遇到部署问题时可以查看“常见问题解答”章节中ComfyUI相关部分。

部署步骤

步骤1: 部署解决方案中间件

此自动化Amazon CloudFormation模板在亚马逊云科技中部署解决方案。

  1. 登录到AWS管理控制台,点击链接Extension for Stable Diffusion on AWS{:target="_blank"}。

  2. 默认情况下该模版将在您登录控制台后默认的区域启动。若需在指定的Amazon Web Service区域中启动该解决方案请在控制台导航栏中的区域下拉列表中选择。

  3. 创建堆栈页面上确认Amazon S3 URL文本框中显示正确的模板URL然后选择下一步

  4. 制定堆栈详细信息页面,为您的解决方案堆栈分配一个账户内唯一且符合命名要求的名称。部署参数参考下表。点击下一步

    参数 说明 建议
    Bucket 填入一个有效的新的S3桶的名字或之前部署的、用于本解决方案ComfyUI部分的S3桶名字
    email 输入一个正确的电子邮件地址,以便接收将来的通知
    SdExtensionApiKey 请输入一个包含数字和字母组合的20个字符的字符串 默认为"09876543210987654321"
    LogLevel 择您心仪的Lambda Log日志打印级别 默认ERROR才打印
  5. 配置堆栈选项页面,选择下一步

  6. 审核页面查看并确认设置。确保选中确认模板将创建Amazon Identity and Access ManagementIAM资源的复选框。并确保选中AWS CloudFormation需要的其它功能的复选框。选择提交以部署堆栈。

  7. 您可以在 AWS CloudFormation 控制台的 状态 列中查看堆栈的状态。您应该会在大约 15 分钟内收到CREATE_COMPLETE状态。

    !!! tip "贴士" 请及时检查您预留邮箱的收件箱并在主题为“AWS Notification - Subscription Confirmation”的邮件中点击“Confirm subscription”超链接按提示完成订阅。

步骤2: 部署ComfyUI前端

步骤2将会为客户安装ComfyUI的前端。该前端自动内置了汉化插件、工作流发布云上等按钮为客户提供更友好的UI交互界面。此自动化Amazon CloudFormation模板在亚马逊云科技中部署。

  1. 登录到AWS管理控制台,点击控制台右上角Create Stack, With new resource(standard),页面跳转至创建堆栈。

  2. 创建堆栈页面上,选择Choose an existing template,在特定模版区域选择Amazon S3 URLe,填入该部署模版链接,然后选择下一步

  3. 制定堆栈详细信息页面,为您的解决方案堆栈分配一个账户内唯一且符合命名要求的名称。在参数部分,部署参数说明如下。点击Next

    !!! tip "贴士" 此处的EC2 Key Pair主要用于本地远程连接EC2。如果没有现有的可以参考官方手册{:target="_blank"}来创建。

    参数 说明 建议
    InstanceType 部署的ec2的实例类型 如果是涉及推理动图、视频等建议G6、G5机器
    NumberOfInferencePorts 推理环境数量 建议不超过5个
    StackName 来自于部署步骤1中成功部署堆栈的名称
    keyPairName 选择现有的一个EC2 Key Pair
  4. 配置堆栈选项页面,选择下一步

  5. 审核页面查看并确认设置。确保选中确认模板将创建Amazon Identity and Access ManagementIAM资源的复选框。并确保选中AWS CloudFormation需要的其它功能的复选框。选择提交以部署堆栈。

  6. 您可以在 AWS CloudFormation 控制台的 状态 列中查看堆栈的状态。您应该会在大约 3 分钟内收到CREATE_COMPLETE状态。

  7. 选择部署成功的堆栈,打开Outputs,点击Designer对应的链接即可打开解决方案部署的ComfyUI前端Designer的访问可能需要关闭VPN或者去掉10000端口后访问。NumberOfInferencePortsStart代表推理环境地址起始路径端口按照部署数量端口地址依次增加例如当NumberOfInferencePorts填写2时地址范围时可访问的推理环境地址依次为http://EC2地址:10001http://EC2地址:10002.

    角色 功能 端口
    主美/工作流管理 能够安装新的custom nodes在EC2上调试工作流发布工作流、环境至Amazon SageMaker。同时可以调用SageMaker资源、选中已发布的工作流进行推理验证 http://EC2地址
    普通美术 从该端口进入的界面可以选择主美已发布的工作流简单修改推理参数后勾选“Prompt on AWS”后、调用Amazon SageMaker进行推理 当NumberOfInferencePorts填写3时地址范围时可访问的推理环境地址依次为

    !!! tip "贴士" 刚部署好贴士以后需要稍作等待。如果打开链接后看到提示“Comfy is Initializing or Starting”表示后端在初始化ComfyUI过程中请稍作等待再次刷新页面确认。

步骤3: 在ComfyUI页面调试并创建一个可用的工作流。

可以参考这里中的“工作流的调试”子章节部分

步骤4: 部署新的Amazon SageMaker推理节点

在步骤1成功完成后需要通过API方式部署所需的Amazon SageMaker推理节点。后续的新发布的ComfyUI工作流推理都将使用该推理节点的计算资源。

以下API代码中所需的ApiGatewayUrl及ApiGatewayUrlToken可以在步骤1部署成功的堆栈Outputs标签页找到。

请打开任何可以运行代码的窗口比如本地Macbook电脑的Terminal运行如下API代码。

curl --location 此处填写您的api地址/endpoints \
--header x-api-key: 此处填写您的apikey \
--header username: api \
--header Content-Type: application/json \
--data-raw {
    “workflow_name”:“此处填写您创建的workflow名称“,
    “endpoint_name”: “当无需关联workflow时需要填写您要创建的推理端点名字",
    “service_type”: “comfy”,
    “endpoint_type”: “Async”,
    “instance_type”: “实例类型”,
    “initial_instance_count”: 1,
    “min_instance_number”: 1,
    “max_instance_number”: 2,
    “autoscaling_enabled”: true,
    “assign_to_roles”: “test”
    “assign_to_roles”: [ “test” ]
}

!!! Important "注意" 如果是相对复杂的workflow 注意选择异步推理节点类型否则受限于service最长等待30s会出现调用推理超时的情况。

后续如需要删除Amazon SageMaker推理节点可通过以下API完成。

curl --location --request DELETE 'https://此处填ApiGatewayUrl地址/endpoints' \
--header 'username: api' \
--header 'x-api-key: 此处填ApiGatewayUrlToken' \
--header 'Content-Type: application/json' \
--data-raw '{
    "endpoint_name_list": [
        "comfy-real-time-test-34"//填要删除的endpoint名字
    ]
}'

!!! Important "注意" 不建议直接进去SageMaker console直接删除endpoint容易造成数据不一致的隐患。