ComfyUI は、Stable Diffusion 向けのノードベースのユーザーインターフェースであり、ショートビデオコンテンツの生成やアニメーション制作などのタスクに対応する複雑な AIGC ワークフローを構築できます。このトピックでは、Elastic Algorithm Service (EAS) で ComfyUI をデプロイして使用する方法について説明します。
エディションガイド
シナリオ | 呼び出しメソッド | |
Standard Edition |
|
|
API Edition |
| API 呼び出し (非同期) |
Cluster Edition WebUI |
| WebUI |
Serverless Edition |
| WebUI |
API 呼び出しのタイプ (同期または非同期) は、EAS キューサービスを使用するかどうかによって決まります:
同期呼び出し:EAS キューサービスを使用せず、直接推論インスタンスにリクエストします。
非同期呼び出し:EAS キューサービスを使用して、リクエストを入力キューに送信し、サブスクリプションを通じて結果を取得します。
ComfyUI には独自の非同期キューシステムがあるため、同期呼び出しも非同期で処理されます。リクエストを送信すると、システムはプロンプト ID を返します。その後、このプロンプト ID を使用して推論結果をポーリングする必要があります。
課金
Serverless Edition:デプロイは無料です。実際の推論時間に基づいて課金されます。
その他のエディション:デプロイされたリソースと実行時間に対して課金されます。サービスが正常にデプロイされると、使用されていなくても料金が発生します。
課金の詳細については、「Elastic Algorithm Service (EAS) の課金」をご参照ください。
サービスのデプロイ
Serverless Edition は、シナリオベースのモデルデプロイ方法でのみデプロイできます。Standard、Cluster、および API エディションは、シンプルなシナリオベースのモデルデプロイ方法または、より多くの機能をサポートするカスタムモデルデプロイ方法でデプロイできます。
ComfyUI はシングルカードモード (単一マシン単一カードまたは複数マシン単一カード) のみをサポートし、複数カードの同時操作はサポートしていません。EAS インスタンスには ComfyUI プロセスが 1 つしかないため、デプロイ時に 2 × A10 のような複数の GPU 仕様を持つインスタンスを選択しても、使用される GPU は 1 つだけです。単一の画像生成タスクは高速化されません。
負荷分散:API Edition をデプロイし、非同期キューを使用して負荷分散を実装する必要があります。
方法 1:シナリオベースのモデルデプロイ (推奨)
PAI コンソールにログインします。ページ上部でリージョンを選択します。次に、目的のワークスペースを選択し、[Elastic Algorithm Service (EAS)] をクリックします。
[Elastic Algorithm Service (EAS)] ページで、[サービスのデプロイ] をクリックします。[シナリオベースのモデルデプロイ] で、[AI 動画生成:ComfyUI ベースのデプロイ] をクリックします。
[AI 動画生成:ComfyUI ベースのデプロイ] ページで、次のパラメーターを設定します。
[エディション]:「エディションガイド」に基づいてエディションを選択します。
[ストレージのマウント]:独自のモデルを使用したり、カスタムノードをインストールしたり、API 呼び出しを行ったりする場合は、モデルを設定する必要があります。例えば、Object Storage Service (OSS) を使用する場合、バケットとディレクトリを選択します。デプロイが成功すると、システムはバケット内に必要な ComfyUI ディレクトリを自動的に作成します。バケットが EAS サービスと同じリージョンにあることを確認してください。
[リソース構成]:GU30、A10、または T4 GPU タイプを使用することを推奨します。システムはデフォルトで に設定されており、これはコスト効率の高いオプションです。
[デプロイ] をクリックします。デプロイには約 5 分かかります。[サービスステータス] が [実行中] に変わると、デプロイは成功です。
方法 2:カスタムモデルデプロイ
PAI コンソールにログインします。ページ上部でリージョンを選択します。次に、目的のワークスペースを選択し、[Elastic Algorithm Service (EAS)] をクリックします。
[サービスのデプロイ] をクリックします。[カスタムモデルデプロイ] セクションで、[カスタムデプロイ] をクリックします。
[カスタムデプロイ] ページで、次の主要なパラメーターを設定します。詳細については、「カスタムデプロイのパラメーター説明」をご参照ください。
[デプロイ方法] を [イメージデプロイ] に設定し、[Web アプリケーションを有効にする] チェックボックスをオンにします。
[イメージ構成]:[公式イメージ] リストで、[comfyui] > [comfyui:1.9] を選択します。イメージタグの x.x は Standard Edition、x.x-api は API Edition、x.x-cluster は Cluster Edition を示します。
説明バージョンは急速に更新されるため、デプロイ時には最新のイメージバージョンを選択できます。
各バージョンのシナリオの詳細については、「エディションガイド」をご参照ください。
[ストレージマウント]:独自のモデルを使用したり、カスタムノードをインストールしたり、API 呼び出しを行ったりするには、ストレージをマウントする必要があります。例えば、Object Storage Service (OSS) を使用する場合、バケットとディレクトリを選択します。デプロイが完了すると、選択したディレクトリに ComfyUI に必要なディレクトリが自動的に作成されます。バケットが EAS サービスと同じリージョンにあることを確認してください。
[Uri]:
をクリックして、既存の OSS ストレージディレクトリを選択します。例:oss://bucket-test/data-oss/。[マウントパス]:これを
/code/data-ossに設定します。これにより、設定された OSS ファイルディレクトリがイメージ内の/code/data-ossパスにマウントされます。
コマンドの実行:
イメージバージョンを設定すると、システムは自動的に実行コマンドを
python main.py --listen --port 8000に設定します。ポート番号は 8000 です。ストレージをマウントした場合、[起動コマンド] に
--data-dirパラメーターを追加し、その値をマウントディレクトリに設定する必要があります。このマウントディレクトリは [マウントパス] と同じでなければなりません。例:python main.py --listen --port 8000 --data-dir /code/data-oss。
[リソースタイプ] を [パブリックリソース] に設定します。
[デプロイリソース]:リソース仕様は GPU タイプでなければなりません。[ml.gu7i.c16m60.1-gu30] を推奨します。これは最もコスト効率の高いオプションです。在庫が不足している場合は、[ecs.gn6i-c16g1.4xlarge] を選択できます。
[デプロイ] をクリックします。サービスのデプロイには約 5 分かかります。[サービスステータス] が [実行中] になると、サービスは正常にデプロイされています。
サービスの呼び出し
WebUI の使用
Standard、Cluster、および Serverless エディションは WebUI をサポートしています。
対象のサービス名をクリックして概要ページに移動し、右上隅の [Web アプリケーション] をクリックします。
ページの読み込みが遅い場合は、「ページのフリーズまたはリフレッシュに時間がかかる」をご参照ください。
2. サードパーティモデルの使用とカスタムノード (ComfyUI プラグイン) のインストール
API 呼び出し
Standard Edition サービスは同期呼び出しのみをサポートし、オンラインデバッグ機能を提供します。
API Edition サービスは非同期呼び出しのみをサポートし、api_prompt パスのみをサポートします。
ComfyUI の API リクエストボディはワークフローの構成に依存します。まず、WebUI からワークフローの JSON ファイルをセットアップし、エクスポートする必要があります。
同期呼び出し:リクエストボディは、ワークフロー JSON ファイルの内容を prompt キーでラップする必要があります。
非同期呼び出し:リクエストボディは、ワークフロー JSON ファイルの内容そのものです。
Wan VACE Text to Video ワークフローは時間がかかるため、テスト用に次のワークフローが提供されています。実行には約 3 分かかります。
オンラインデバッグ
[Elastic Algorithm Service (EAS)] ページで、対象のサービスを見つけ、[操作] 列の [オンラインデバッグ] をクリックします。
同期呼び出し
非同期呼び出し
非同期呼び出しは api_prompt パスのみをサポートします。task_id パラメーターは、リクエストと結果を識別するための重要なフラグです。各リクエストに一意の値を割り当てて、キューからの対応する結果と一致させる必要があります。リクエストパスは次のとおりです:
{service_url}/api_prompt?task_id={一意の値を割り当てる必要があります}
[推論サービス] タブで、対象のサービス名をクリックして [概要] ページを開きます。[基本情報] セクションで、[呼び出し情報を表示] をクリックします。[呼び出し情報] ダイアログボックスの [非同期呼び出し] タブで、サービスのエンドポイントとトークンを表示できます。

生成された画像や動画は、マウントされた output ディレクトリに保存されます。API 呼び出しの結果は、ファイル名とサブディレクトリ名を返します。OSS の場合、ファイルをダウンロードするには完全なファイルパスを構築する必要があります。詳細については、「Alibaba Cloud SDK を使用して OSS からファイルをダウンロードする」をご参照ください。
よくある質問
モデルとノード
1. WebUI エラー:モデルが見つかりません
2. 新しいモデルをアップロードしましたが、見つかりません
3. モデルローダーに「undefined」と表示される
4. ノードが見つかりません
5. ComfyUI Manager がモデルのダウンロードまたはノードのインストールに失敗する
6. 利用可能なモデルファイルとノード (ComfyUI プラグイン) のリストを表示するにはどうすればよいですか?
イメージと依存関係
1. wheel パッケージをインストールするにはどうすればよいですか?
2. イメージのバージョンを更新し、インストール済みのカスタムモデルを保持するにはどうすればよいですか?
3. イメージに依存関係ライブラリがありません
実行時の例外
1. ページのフリーズまたはリフレッシュに時間がかかりすぎる
2. ワークフローが途中で実行され、プロセスが再起動する
3. RuntimeError: CUDA error: out of memory
4. API 呼び出しエラー:「url not found」または「404 page not found」?
5. サービスが常に「待機中」状態であるか、ComfyUI が画像を生成できない
6. なぜサービスは一定期間実行された後、自動的に停止するのですか?
その他
1. ログイン不要 URL の有効期間を延長するにはどうすればよいですか?
2. xFormers が画像生成速度に与える高速化効果
3. ComfyUI Serverless Edition をデプロイする際の EAS と Function Compute の主な違い
4. WebUI ページのデフォルト言語を切り替えるにはどうすればよいですか?
付録
Cluster Edition サービスの動作原理の紹介
次の図は、実装原理を示しています:
Cluster Edition サービスは、マルチユーザーシナリオ向けに設計されています。クライアントとバックエンドの推論インスタンスを分離することで、複数のユーザーがバックエンドの推論インスタンスを共有できます。これにより、インスタンスの利用率が向上し、推論コストが削減されます。
各ユーザーは独立したバックエンド環境と作業ディレクトリを持ち、効率的な GPU 共有とファイル管理が可能です。
プロキシはクライアントプロセスと推論インスタンスを管理します。すべてのユーザー操作は自身のプロセスで処理され、ファイル操作はパブリックディレクトリと個人ディレクトリに限定されます。これにより、ユーザー間の作業ディレクトリが効果的に隔離されます。ユーザーがリクエストを処理する必要がある場合、プロキシはバックエンドから利用可能なアイドル状態のインスタンスを見つけて推論リクエストを処理します。






















をクリックします。
