在Amazon SageMaker AI处理作业上运行ComfyUI工作流
本文介绍了如何在Amazon SageMaker AI处理作业上部署ComfyUI工作流,以批量生成高质量图像。涵盖使用AWS CDK设置基础设施、配置GPU加速处理以及自动化大规模图像生成的步骤。该解决方案可适应自定义工作流,帮助扩展创意管线。
使用ComfyUI工作流和Amazon SageMaker AI处理作业,企业可以自动化大规模内容生成。在多媒体资产创建中,任何延迟或失误都可能导致销售损失、品牌相关性下降或错过营销截止日期。当产品发布期限临近或季节性促销需要紧急素材时,等待设计师迭代单个社交媒体帖子或15秒视频广告可能造成数千美元的转化损失。
通过AI,您可以自动化创收图像、音频和视频的大规模生产。想象一下,在一小时内为全球活动生成数百个符合品牌形象的社交媒体视觉内容,为多语言广告审核合成超个性化配音,或使用AI脚本和视觉效果制作视频片段,同时严格遵循品牌指南。另一个好处是让创意团队专注于高影响力策略,而AI处理重复性耗时任务。对企业而言,内容制作节省的时间意味着可以用于启动更多活动、瞄准更多小众受众或重新吸引流失客户。
本文将指导您如何在Amazon SageMaker AI处理作业上部署ComfyUI工作流,以批量生成高质量图像。您将学习如何使用AWS Cloud Development Kit(AWS CDK)设置基础设施、配置GPU加速处理以及自动化大规模图像生成。然后可以根据需要调整此解决方案以适应您的ComfyUI工作流。我们将逐步引导您完成自动化ComfyUI工作流的实际过程,使您能够扩展创意管线。
为什么这很重要
在SageMaker AI处理作业上运行ComfyUI为内容管線带来若干关键优势:
- 加速活动:根据规模在几分钟到几小时内生成内容,捕捉瞬息万变的趋势和截止日期。
- 通过个性化提高转化率:为不同受众群体提供量身定制的视觉、配音和视频,从而驱动更高的点击率和购买率。
- 保护品牌资产:跨媒体类型强制执行一致的风格、语气和合规性。
- 安全原型设计,自信扩展:在向全球受众推广之前,在受控环境中测试AI生成的内容。
ComfyUI简介
ComfyUI是一款基于节点的可视化工作流构建器,用于生成式AI,使您无需编写每一步代码即可轻松组合、测试和迭代复杂的图像、音频或视频管线。您将模块化组件连接成可重现的图结构,该图可跨团队进行版本控制和共享。
在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前馈网络中间维度以及总计6B参数。该骨干交替进行单流多头注意力块和单流前馈块,每个块使用归一化和门控技术进行稳定性定制。
对于此解决方案,我们使用存储在处理作业容器中的ComfyUI工作流用于Z-Image Turbo。此工作流可以替换为您的ComfyUI工作流。更改工作流时,请确保已下载工作流中使用的模型、容器中安装了自定义节点,并且您的实例类型具有足够的VRAM。
其他用例
尽管此示例重点介绍图像生成,但如前所述,ComfyUI的工作流引擎可以扩展AI驱动的创意任务,无论是音频合成、3D资产渲染还是动态视频动画,使企业能够大规模自动化多样化内容管线。通过使用AWS基础设施,企业可以将这些工作流部署到数千个输出,将每个创意想法转化为创收资产。以下是将ComfyUI作为批处理作业进行大规模生成的其他应用示例:
- 可扩展的广告创意A/B测试:自动为全球活动生成数百个广告变体、社交媒体轮播、视频片段或社交媒体就绪剪辑,包括超具体的设计或风格迭代(极简或大胆),以测试哪种创意最能引起每个受众群体的共鸣。
- 面向全球发布的动态包装和标签设计:为国际产品发布生成本地化设计,调整颜色、图像和文本以符合区域美学、法规或假期(例如农历新年主题标签),并在物理生产前大规模测试多种设计。
- 面向游戏和娱乐的交互式视频故事:为游戏、流媒体服务或交互式广告构建分支视频叙事,AI根据用户选择生成动态过场动画,例如英雄外观或对话选项,将被动观看转变为引人入胜的个性化体验。
解决方案架构
在了解了业务价值和用例之后,让我们探索如何实现此解决方案。该架构使用三个AWS CDK堆栈:包含Amazon S3输出桶的DataStack、包含Amazon VPC的SecurityStack以及包含AWS Lambda触发函数的ComfyUISmStack。它还使用了在GPU实例上运行的SageMaker AI处理作业、用于容器镜像的Amazon ECR以及用于日志记录的Amazon CloudWatch。处理作业在VPC的私有子网内运行。要查看完整代码实现,请参阅GitHub仓库。
DataStack
DataStack使用带服务器端加密的Amazon S3桶实现存储层,用于输出数据。输出桶存储来自ComfyUI工作流的生成图像。
SecurityStack
SecurityStack为整个解决方案建立基础安全基础设施。它创建一个Amazon VPC,跨两个可用区设置公有和私有子网,以实现高可用性和网络隔离。VPC包括一个NAT网关,用于从SageMaker AI处理作业运行的私有子网安全出站互联网访问。
客户管理的AWS KMS密钥为数据提供静态加密,包括Amazon S3桶、Amazon CloudWatch日志和环境变量。该密钥启用自动轮换,并包含资源策略,允许如Amazon S3和CloudWatch等AWS服务使用它进行加密操作。启用VPC流日志并发送到CloudWatch,用于网络流量监控和安全分析。
ComfyUISmStack
ComfyUISmStack通过AWS Lambda函数协调核心处理管线,该函数触发SageMaker AI处理作业。Lambda函数可以手动调用,以启动使用ml.g5.xlarge实例的GPU处理,运行自定义Docker容器。该容器打包了ComfyUI和Z-Image Turbo模型,提供高质量图像生成,并具有可配置参数(提示词、种子和批处理)。
该堆栈创建可重用的处理作业构造,处理Docker镜像构建和部署到Amazon ECR、创建具有全面权限的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日志以解决问题。
演练
以下部分介绍部署ComfyUI on SageMaker Processing Jobs解决方案的步骤。
先决条件
在开始部署之前,请确保您具备以下条件:
- Python 3.13+
- AWS CLI配置了适当的凭证
- Docker已安装并运行
- AWS CDK v2
- 在目标AWS账户和区域中引导了AWS CDK
设置
- 克隆仓库
git clone https://github.com/aws-samples/sample-comfy-to-sagemaker-processing-job- 环境配置
从示例模板创建环境文件:
cp .env.example .env编辑.env文件,填入您的AWS账户详情:
AWS_ACCOUNT_ID=your-account-id
REGION=us-east-1- 安装依赖
此项目使用uv进行依赖管理:
# 如果您尚未安装uv
curl -LsSf https://astral.sh/uv/install.sh | sh
# 创建环境
uv venv --python 3.13
# 激活环境
source .venv/bin/activate
# 安装依赖
uv sync您也可以使用pip:
pip install -r requirements.txt- 引导AWS CDK
在目标AWS账户和区域中引导AWS CDK(AWS CDK部署所需):
cdk bootstrap aws://YOUR-ACCOUNT-ID/YOUR-REGION例如:
cdk bootstrap aws://123456789012/us-east-1- 服务配额请求
通过AWS管理控制台为SageMaker AI处理作业请求增加六个ml.g5.xlarge实例的服务配额。
配置
处理作业配置在config/config.yaml中定义:
实例
[因AI成本控制省略]