Amazon SageMaker AI処理ジョブでのComfyUIワークフローの実行
この投稿では、Amazon SageMaker AI処理ジョブでComfyUIワークフローをデプロイし、1回のバッチで数百の高品質画像を生成する方法を説明します。AWS CDKを使用したインフラのセットアップ、GPUアクセラレーション処理の構成、大規模な画像生成の自動化について学びます。このソリューションは独自のComfyUIワークフローに適合させることができます。
ComfyUIワークフローとAmazon SageMaker AI処理ジョブを使用することで、企業は大規模なコンテンツ生成を自動化できます。マルチメディアアセットの作成において、遅延やミスは売上損失、ブランドの関連性低下、マーケティング期限の遅れにつながる可能性があります。製品発売の期限が迫っていたり、季節限定のプロモーションに緊急のアセットが必要な場合、デザイナーが1つのソーシャルメディア投稿や15秒の動画広告を繰り返し作業するのを待つことで、数千ドルのコンバージョン損失が発生する可能性があります。
AIを使用することで、収益を生み出す画像、オーディオ、ビデオの大規模作成を自動化できます。1時間でグローバルキャンペーン向けのブランドに合ったソーシャルメディアビジュアルを数百生成したり、多言語広告監査用にハイパーパーソナライズされたナレーションを合成したり、AIが作成したスクリプトとビジュアルで動画クリップを制作したりしながら、ブランドガイドラインに厳密に準拠することが可能です。もう1つの利点は、クリエイティブチームが反復的で時間のかかるタスクをAIに任せ、ハイインパクトな戦略に集中できることです。企業にとって、コンテンツ制作で節約した時間は、別のキャンペーンの開始、別のニッチなオーディエンスへのターゲティング、または失った顧客の再エンゲージメントに費やすことができます。
この記事では、Amazon SageMaker AI処理ジョブでComfyUIワークフローをデプロイし、1回のバッチで数百の高品質画像を生成する方法を段階的に説明します。AWS Cloud Development Kit(AWS CDK)を使用したインフラストラクチャの設定、GPUアクセラレーション処理の構成、大規模な画像生成の自動化を学びます。その後、必要に応じてこのソリューションを独自のComfyUIワークフローに適合させることができます。
重要性
SageMaker AI処理ジョブでComfyUIを実行すると、コンテンツパイプラインにいくつかの重要な利点がもたらされます。
- キャンペーンの加速:規模に応じて数分から数時間でコンテンツを生成し、一過性のトレンドや期限を捉えます。
- パーソナライゼーションによるコンバージョン向上:異なるオーディエンスセグメントに合わせたビジュアル、ナレーション、動画を提供し、クリック率と購入率を高めます。
- ブランド価値の保護:メディアタイプ全体で一貫したスタイル、トーン、コンプライアンスを適用します。
- 安全なプロトタイピング、自信を持ったスケーリング:AI生成コンテンツを管理された環境でテストし、その後グローバルオーディエンスに展開します。
ComfyUIについて
ComfyUIは、生成AI向けのノードベースのビジュアルワークフロービルダーであり、複雑な画像、オーディオ、またはビデオパイプラインをコーディングせずに構成、テスト、反復することが容易です。モジュラーコンポーネントを再現可能なグラフに接続し、チーム間でバージョン管理および共有できます。
SageMaker AI処理ジョブにComfyUIをデプロイすると、画像生成ワークフローにいくつかの利点がもたらされます。GPUアクセラレーションインスタンスは高速な推論時間を提供し、秒単位の課金と自動ジョブ終了により、使用したコンピューティングリソースに対してのみ支払いを行います。キューアーキテクチャはワークロードに合わせて自然に拡張され、手動介入なしで複数のリクエストを並行処理します。最後に、独自のComfyUIワークフローをJSONとしてエクスポートしてデプロイできます。
Z-Image Turboによる画像生成
Z-Image Turboは、テキストから画像への拡散のためのスケーラブルなシングルストリームトランスフォーマーアーキテクチャ(S3DiT)を導入します。Z-Imageはテキストと画像のモダリティトークンを1つの統一シーケンスに連結し(初期融合)、すべてのレイヤーで密なクロスモーダル相互作用を可能にします。この初期融合設計により、モデルはテキストトークン、画像潜在トークン、さらには画像セマンティックトークンをトランスフォーマー内で均一に処理し、モダリティ間のパラメーター共有を最大化します。
Z-Image Turboは、大規模言語モデル(LLM)デコーダーに触発されたデコーダーのみのトランスフォーマーバックボーンを使用し、30層、隠れサイズ3840、32アテンションヘッド、10240のフィードフォワードネットワーク中間次元、合計6Bのパラメーターを持ちます。このバックボーンは、シングルストリームのマルチヘッドアテンションブロックとシングルストリームのフィードフォワードブロックを交互に配置し、それぞれ正規化とゲーティング技術を使用して安定性をカスタマイズします。
このソリューションでは、Z-Image Turbo用のComfyUIワークフローを処理ジョブコンテナに保存して使用します。このワークフローは独自のComfyUIワークフローと交換できます。ワークフローを変更する場合は、ワークフローで使用されるモデルがダウンロードされ、カスタムノードがコンテナにインストールされ、インスタンスタイプに十分なVRAMがあることを確認してください。
その他のユースケース
この例は画像生成に焦点を当てていますが、ComfyUIのワークフローエンジンは、前述のとおり、オーディオ合成、3Dアセットレンダリング、動的ビデオアニメーションなど、AI駆動のクリエイティブタスクを拡張でき、企業は多様なコンテンツパイプラインを大規模に自動化できます。AWSインフラストラクチャを使用することで、企業はこれらのワークフローを数千の出力に展開し、すべてのクリエイティブアイデアを収益を生み出すアセットに変えることができます。以下は、大規模生成のためのバッチジョブとしてComfyUIを実行する他のアプリケーションの例です。
- スケーラブルな広告クリエイティブの高速A/Bテスト:グローバルキャンペーン向けに数百の広告バリエーション、ソーシャルメディアカルーセル、動画スニペット、またはソーシャルメディア対応クリップを自動生成します。各人口統計に最適なクリエイティブをテストするために、超具体的なデザインやスタイルの反復(ミニマリストまたは大胆)を含みます。
- グローバルローンチ向けの動的パッケージおよびラベルデザイン:国際的な製品ローンチ向けに地域固有のデザインを生成し、地域の美学、規制、または祝日(旧正月をテーマにしたラベルなど)に合わせて色、画像、テキストを適応させ、物理的な生産前に複数のデザインを大規模にテストします。
- ゲームおよびエンターテインメント向けのインタラクティブビデオストーリーテリング:ゲーム、ストリーミングサービス、またはインタラクティブ広告向けに分岐型ビデオナラティブを構築し、AIがユーザーの選択に基づいて動的なカットシーン(ヒーローの外観や会話オプションなど)を生成し、受動的な視聴を魅力的でパーソナライズされた体験に変えます。
ソリューションアーキテクチャ
ビジネス価値とユースケースを理解したところで、このソリューションの実装方法を見ていきましょう。アーキテクチャは3つの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は、ソリューション全体の基盤となるセキュリティインフラストラクチャを確立します。高可用性とネットワーク分離のために、2つのアベイラビリティーゾーンにパブリックおよびプライベートサブネットを持つAmazon VPCを作成します。VPCには、SageMaker AI処理ジョブが実行されるプライベートサブネットからの安全なアウトバウンドインターネットアクセスのためのNATゲートウェイが含まれています。
カスタマー管理の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へのデプロイを処理する再利用可能な処理ジョブコンストラクト、SageMaker AI、Amazon S3、Amazon ECR、Amazon VPC、CloudWatchへの包括的なアクセス権限を持つIAMロールの作成、VPC統合、AWS KMS暗号化、ネットワーク分離を備えた処理ジョブ定義、および完全なジョブ設定を含む環境変数を持つLambdaトリガー関数の構成を作成します。
処理ジョブはプライベートサブネットで実行され、安全なAWSサービス通信を確保します。コンテナログはCloudWatchにストリーミングされ、リアルタイムの監視とトラブルシューティングを可能にします。ジョブは連続的なAmazon S3アップロードモードを使用し、生成された画像をジョブの完了を待たずに作成され次第、出力バケットにストリーミングします。
処理フロー
プロセスは、Lambda関数をトリガーするところから始まります。Lambda関数は処理ジョブを作成し、SageMaker AIに送信します。SageMaker AIはプライベートネットワーク内にGPUインスタンスをプロビジョニングし、レジストリからComfyUIコンテナイメージをプルし、必要なストレージとネットワーク構成でデプロイします。コンテナが実行されると、ComfyUIサーバーは以下の処理を行います。
- 安全なアウトバウンド接続を介してHuggingFaceからAIモデルコンポーネントをダウンロード。
- それらをそれぞれのディレクトリに整理。
- モデルをGPUメモリにロードし、完全な初期化を待機。
サーバーの準備が整うと、システムはテキストプロンプトをファイルから読み取り、バッチでループ処理します。各画像について、次の処理を実行します。
- 一意のシード値に基づいてプロンプトを選択。
- プロンプトとシードでワークフローテンプレートを設定。
- リクエストをComfyUIに送信して処理。
GPUはワークフロー命令に従って各画像を生成します。画像が生成されると:
- 出力ディレクトリに書き込まれ、リアルタイムでAmazon S3に同期されるため、ジョブが完了する前に結果を利用できます。
- コンテナログはCloudWatchにストリーミングされ、監視とトラブルシューティングに使用されます。
各バッチがキューイングされた後、ポーリングループは15秒ごとに処理キューをチェックし、すべてのリクエストが完了するまで続行します。キューが空になると、サーバーはシャットダウンし、コンテナは終了し、SageMaker AIはインスタンスを終了します。その後、Amazon S3にアクセスして、ジョブのタイムスタンプで整理された生成画像をダウンロードし、CloudWatchログで問題を確認できます。
ウォークスルー
以下のセクションでは、SageMaker Processing JobsでComfyUIをデプロイするソリューションの手順を説明します。
前提条件
デプロイを開始する前に、以下のものを用意してください。
- 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 syncpipを使用することもできます:
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処理ジョブ用に6つのml.g5.xlargeインスタンスのサービス割り当て増加をリクエストします。
設定
処理ジョブの設定はconfig/config.yamlで定義されます。
インスタンス
[AIコスト制御のため省略]