AWS Machine Learning Blog

Running ComfyUI workflows on Amazon SageMaker AI processing jobs

8.5内容质量
Running ComfyUI workflows on Amazon SageMaker AI processing jobs

TL;DR · AI 摘要

AWS 通过 SageMaker AI Processing Jobs 支持 ComfyUI 工作流,实现大规模自动化内容生成。

核心要点

  • 使用 SageMaker AI Processing Jobs 可以在几分钟到几小时内生成高质量图像。
  • ComfyUI 的节点式工作流支持非编码的复杂图像、音频和视频生成。
  • GPU 加速实例和按秒计费模式降低了计算成本。

结构提纲

按章节快速跳转。

  1. 介绍 ComfyUI 工作流在 SageMaker AI Processing Jobs 上的应用场景和价值。

  2. 说明在 SageMaker 上运行 ComfyUI 的关键优势,包括加速内容生成和品牌一致性。

  3. 介绍 ComfyUI 的节点式工作流构建方式及其在图像生成中的优势。

  4. 描述如何使用 AWS CDK 设置基础设施并配置 GPU 加速处理。

思维导图

用一张图看清主题之间的关系。

查看大纲文本(无障碍 / 无 JS 友好)
  • AWS SageMaker AI Processing Jobs
    • ComfyUI 工作流部署
      • GPU 加速实例
      • 按秒计费
      • 节点式工作流构建
    • 优势
      • 加速内容生成
      • 品牌一致性
      • 自动化内容生产

金句 / Highlights

值得收藏与分享的关键句。

  • Generate content within minutes to hours depending on the size, capturing fleeting trends and deadlines.

    Why this matters

    ⬇︎ 下载 PNG𝕏 分享到 X
  • ComfyUI is a node-based, visual workflow builder for generative AI that makes it straightforward to compose, test, and iterate on complex image, audio, or video pipelines without coding every step.

    ComfyUI

    ⬇︎ 下载 PNG𝕏 分享到 X
  • GPU-accelerated instances deliver fast inference times, while pay-per-second billing with automatic job termination makes sure you only pay for the compute you use.

    ComfyUI

    ⬇︎ 下载 PNG𝕏 分享到 X
#AWS#SageMaker#ComfyUI#AI Processing#机器学习
打开原文

在 Amazon SageMaker AI 处理作业上运行 ComfyUI 工作流 | 人工智能

在 Amazon SageMaker AI 处理作业上运行 ComfyUI 工作流

通过在 Amazon SageMaker AI 处理作业上运行 ComfyUI 工作流,您可以大规模地自动化内容生成。对于企业而言,每一段延迟或失误都可能导致销售损失、品牌相关性减弱或错过营销截止日期。当产品发布临近或需要紧急素材的季节性促销时,等待设计师反复修改一条社交媒体帖子或15秒的视频广告,可能会造成数千美元的转化率损失。

借助人工智能,您可以大规模自动化生成带来收入的图像、音频和视频。想象一下,可以在一小时内为全球活动生成数百张符合品牌风格的社交媒体视觉素材,为多语言广告审核合成高度个性化的旁白,或利用人工智能创作的脚本和视觉素材生成视频片段,同时严格遵循品牌指南。另一个好处是,让创意团队专注于高影响力的战略,而人工智能则处理重复且耗时的任务。对于企业而言,节省在内容制作上的时间,就是用于启动另一个活动、针对另一个细分受众或重新吸引流失客户的时间。

在本文中,我们将指导您如何在 Amazon SageMaker AI 处理作业上部署 ComfyUI 工作流,以批量生成数百张高质量图像。您将学习如何使用 AWS 云开发工具包(AWS CDK)设置基础设施、配置 GPU 加速处理,并大规模自动化图像生成。然后,您可以根据自己的需求调整此解决方案,以适应特定的 ComfyUI 工作流。我们将逐步引导您完成一个实际的操作流程,以自动化 ComfyUI 工作流,从而批量生成数百张高质量图像,帮助您扩展创意流程。

为什么这很重要

在 SageMaker AI 处理作业上运行 ComfyUI 为您的内容流程带来以下关键优势:

  • 加速活动:根据规模大小,在几分钟到几小时内生成内容,从而抓住转瞬即逝的趋势和截止日期。
  • 通过个性化提高转化率:为不同的受众群体提供定制的视觉、旁白和视频内容,从而提高点击率和购买率。
  • 保护品牌价值:在各种媒体类型中保持一致的风格、语气和合规性。
  • 安全的原型设计,自信的扩展:在受控环境中测试人工智能生成的内容,然后再向全球受众推出。

ComfyUI

ComfyUI 是一个基于节点的可视化工作流构建器,用于生成式人工智能,使您能够轻松地构建、测试和迭代复杂图像、音频或视频流程,而无需编写每一步的代码。您可以通过连接模块化组件,创建可重复使用的图,这些图可以进行版本控制并在团队之间共享。

在 SageMaker AI 处理作业上部署 ComfyUI 为您的图像生成工作流带来诸多优势。GPU 加速实例提供快速的推理时间,而按秒计费并自动终止作业的模式确保您只需为实际使用的计算资源付费。基于队列的架构可以随着工作负载自然扩展,无需人工干预即可并行处理多个请求。最后,您可以将自己创建的 ComfyUI 工作流导出为 JSON 格式并进行部署。

使用 Z-Image Turbo 进行图像生成

Z-Image Turbo 引入了一种可扩展的单流 Transformer 架构(S3DiT),用于文本到图像的扩散。Z-Image 将文本和图像模态的标记合并为一个统一的序列(早期融合),允许在每一层进行密集的跨模态交互。这种早期融合设计意味着模型在 Transformer 中将文本标记、图像潜在标记,甚至图像语义标记统一处理,从而在不同模态之间最大化参数共享。

Z-Image Turbo 使用一个仅解码器的 Transformer 主干,灵感来自于大型语言模型(LLM)的解码器,包含 30 层,隐藏大小为 3840,32 个注意力头,10240 个前馈网络中间维度,总共有 60 亿个参数。该主干交替使用单流多头注意力块和单流前馈块,每种块都通过归一化和门控技术进行定制以提高稳定性。

对于此解决方案,我们使用 ComfyUI 中存储在处理作业容器中的 Z-image Turbo 工作流程。此工作流程可以插入到您的 ComfyUI 工作流程中。在更改工作流程时,请确保已下载工作流程中使用的模型,在容器中安装了自定义节点,并且您的实例类型具有足够的 VRAM。

其他使用案例

虽然这个示例专注于图像生成,但如前所述,ComfyUI 的工作流程引擎可以扩展用于其他 AI 驱动的创意任务,无论是音频合成、3D 资产渲染还是动态视频动画,使企业能够大规模自动化多样化的内容管道。通过使用 AWS 基础设施,企业可以在数千个输出上部署这些工作流程,将每一个创意想法转化为产生收入的资产。以下是运行 ComfyUI 作为批量作业进行大规模生成的其他应用示例:

  • 可扩展的广告创意 A/B 测试:自动生产数百种广告变体、社交媒体轮播图、视频片段或社交媒体就绪的剪辑,用于全球活动,包括超具体的定制设计或风格迭代(极简或大胆),以测试哪种创意最能与每个目标人群产生共鸣。
  • 全球发布时的动态包装和标签设计:为国际产品发布生成特定地区的设计,调整颜色、图像和文本以符合区域审美、法规或节假日(例如,农历新年主题标签),并在物理生产之前大规模测试多种设计。
  • 游戏和娱乐的交互式视频叙事:为游戏、流媒体服务或互动广告构建分支视频叙事,其中 AI 生成根据用户选择(例如英雄的出现或对话选项)动态变化的过场动画,将被动观看转变为引人入胜的个性化体验。

解决方案架构

现在你已经了解了该解决方案的商业价值和使用案例,让我们探讨如何实现该解决方案。架构使用了三个 AWS CDK 堆栈:DataStack 包含一个 Amazon Simple Storage Service(Amazon S3)输出存储桶,SecurityStack 包含一个 Amazon Virtual Private Cloud(Amazon VPC),ComfyUISmStack 包含一个 AWS Lambda 触发函数。它还使用了在 GPU 实例上运行的 SageMaker AI 处理作业,Amazon Elastic Container Registry(Amazon ECR)用于容器镜像,以及 Amazon CloudWatch 用于日志记录。处理作业在 VPC 的私有子网内运行。要查看完整的代码实现,请参见 GitHub 仓库。

DataStack

DataStack 使用 Amazon S3 存储桶实现存储层,并对输出数据使用服务器端加密。输出存储桶存储来自 ComfyUI 工作流生成的图像。

SecurityStack

SecurityStack 为整个解决方案建立了基础的安全基础设施。它在两个可用区(AZ)中创建了包含公共子网和私有子网的 Amazon VPC,以实现高可用性(HA)和网络隔离。VPC 包含一个 NAT 网关,用于从运行 SageMaker AI 处理任务的私有子网安全地访问互联网。

一个由客户管理的 AWS Key Management Service(AWS KMS)密钥为数据提供静态加密,包括 Amazon S3 存储桶、Amazon CloudWatch 日志和环境变量。该密钥启用了自动轮换,并包含资源策略,允许 Amazon S3 和 CloudWatch 等 AWS 服务使用它进行加密操作。启用了 VPC 流日志,并将其发送到 CloudWatch 以进行网络流量监控和安全分析。

ComfyUISmStack

ComfyUISmStack 通过一个 AWS Lambda 函数协调核心处理流程,该函数触发 SageMaker AI 处理任务。Lambda 函数可以手动调用,以使用运行自定义 Docker 容器的 ml.g5.xlarge 实例启动 GPU 加速处理。该容器打包了 ComfyUI 和 Z-Image Turbo 模型,提供高质量图像生成,并支持对提示、种子和批量处理的可配置参数。

该堆栈创建了一个可重复使用的处理任务构造,用于处理 Docker 镜像的构建和部署到 Amazon ECR,创建具有全面权限的 AWS Identity and Access Management(IAM)角色,用于 SageMaker AI、Amazon S3、Amazon ECR、Amazon VPC 和 CloudWatch 的访问,定义处理任务时集成 VPC、使用 AWS KMS 加密和网络隔离,并配置 Lambda 触发函数,其中包含完整的任务配置环境变量。

处理任务在私有子网中运行,以确保与 AWS 服务的安全通信。容器日志流式传输到 CloudWatch,用于实时监控和故障排除。任务使用连续的 Amazon S3 上传模式,将生成的图像实时流式传输到输出存储桶,而不是等待任务完成。

处理流程

当您触发 Lambda 函数时,处理流程开始,该函数创建一个处理任务并将其提交给 SageMaker AI。SageMaker AI 在私有网络中分配一个 GPU 实例,从注册表中拉取 ComfyUI 容器镜像,并使用必要的存储和网络配置进行部署。容器运行后,ComfyUI 服务器:

  • 通过安全的出站连接从 HuggingFace 下载 AI 模型组件。
  • 将它们组织到各自的目录中。
  • 将模型加载到 GPU 内存中并等待完全初始化。

当服务器准备就绪后,系统从文件中读取文本提示,并按批次循环处理它们。对于每张图像,它:

  • 根据唯一的种子值选择一个提示。
  • 将提示和种子填充到工作流模板中。
  • 将请求发送到 ComfyUI 进行处理。

GPU 根据工作流指令生成每张图像。当图像生成时:

  • 它们被写入输出目录,并实时同步到 Amazon S3,使结果在任务完成之前即可使用。
  • 容器日志流式传输到 CloudWatch,用于监控和故障排除。

在每个批次排队后,轮询循环会每隔 15 秒检查一次处理队列,直到所有请求完成。队列为空后,服务器关闭,容器退出,SageMaker AI 终止实例。然后你可以访问 Amazon S3 下载按作业时间戳组织的生成图像,并查看 CloudWatch 日志以排查问题。

演示步骤

以下部分将逐步演示如何在 SageMaker 处理作业中部署 ComfyUI 解决方案。

先决条件

在开始部署之前,请确保你具备以下条件:

  • Python 3.13+
  • 已配置 AWS 命令行界面(AWS CLI)并具有适当的凭证
  • 已安装并正在运行 Docker
  • AWS CDK v2
  • 在目标 AWS 账户和 AWS 区域中已启动 AWS CDK

设置

#### 1. 克隆仓库

code
git clone https://github.com/aws-samples/sample-comfy-to-sagemaker-processing-job

#### 2. 环境配置

从示例模板创建你的环境文件:

code
cp .env.example .env

使用你的 AWS 账户详细信息编辑 .env 文件:

code
AWS_ACCOUNT_ID=your-account-id
REGION=us-east-1

#### 3. 安装依赖项

该项目使用 uv 进行依赖管理:

code
# 如果尚未安装 uv,请先安装
curl -LsSf https://astral.sh/uv/install.sh | sh

# 创建环境
uv venv --python 3.13

# 激活环境
source .venv/bin/activate

# 安装依赖项
uv sync

你也可以使用 pip:

code
pip install -r requirements.txt

#### 4. 启动 AWS CDK

在目标 AWS 账户和 AWS 区域中启动 AWS CDK(AWS CDK 部署需要此操作):

code
cdk bootstrap aws://YOUR-ACCOUNT-ID/YOUR-REGION

例如:

code
cdk bootstrap aws://123456789012/us-east-1

#### 5. 服务配额请求

通过 AWS 管理控制台,为 SageMaker AI 处理作业中的六个 ml.g5.xlarge 实例请求增加服务配额。

配置

处理作业的配置在 config/config.yaml 中定义:

  • 实例类型:ml.g5.xlarge(支持 GPU)
  • 实例数量:6
  • 存储卷大小:125 GB
  • 容器:自定义 ComfyUI Docker 镜像

部署堆栈

code
cdk deploy --all --require-approval never

注意:运行此命令后,你将开始产生费用。

触发处理作业

部署完成后,通过 AWS CDK 代码创建的 Lambda 函数触发处理作业。

函数名称:ComfyUiSmStack-ProcessingJob-Trigger-ComfyUI-trigger-Lambda

你可以通过以下方式调用该函数:

  • AWS 管理控制台(Lambda 服务 → 测试按钮)
  • AWS CLI:aws lambda invoke --function-name <function-name> response.json

当被调用时,Lambda 函数会执行以下操作:

  • 生成一个带有时间戳的唯一作业名称。
  • 使用预定义的配置创建一个 SageMaker AI 处理作业。
  • 配置六个 ml.g5.xlarge GPU 实例。
  • 运行 ComfyUI 工作流。

处理作业输出

处理作业完成后,输出将存储在解决方案创建的 Amazon S3 输出存储桶中。

示例

以下是一些运行 Z-Image 的示例输出,这些输出来自使用样本提示的批处理作业。

清理

为了避免持续产生费用,请完成以下清理步骤。

清空 Amazon S3 存储桶

code
aws s3 rm s3://<comfyui-output-bucket> --recursive

aws s3 rm s3://<comfyui-logging-bucket> --recursive

销毁 AWS CDK 堆栈

code
cdk destroy --all --force

结论

在本文中,我们展示了企业如何通过在 SageMaker AI 处理作业上运行 ComfyUI 工作流,实现大规模的 AI 驱动内容生成自动化。通过将 ComfyUI 与 SageMaker AI 的托管 GPU 基础设施相结合,我们创建了一个批量作业,可以生成数百张高质量图像,将传统上需要创意团队数周时间完成的工作,缩短到不到一小时即可完成。

该解决方案使用了 Z-Image Turbo 的 6B 参数扩散变换器模型,在保持推理成本低廉的同时,生成逼真的照片级图像。AWS CDK 从底层架构开始就内置了安全性、加密和网络隔离功能,部署了基础设施。通过按秒计费和自动终止实例,企业只需为其实际使用的计算资源付费,从而减少了空闲资源的成本。

AI 驱动的内容生成对于具有竞争力的企业来说变得越来越重要。通过将 ComfyUI 与 Amazon SageMaker AI 结合使用,您可以利用安全、成本效益高的基础设施,实现大规模的内容生成自动化。要开始使用,请访问 SageMaker AI 文档和该解决方案的 GitHub 仓库。我们很想知道您是如何使用 ComfyUI 和 SageMaker AI 进行内容生成的。在评论中分享您的使用案例和问题。

关于作者

'"`