このプロジェクトは、ComfyUIサーバーと連携して、プロンプトに基づいて画像を生成するスクリプトです。WebSocketを使用して画像生成の進行状況をリアルタイムで監視し、生成された画像をローカルのimages
フォルダにダウンロードします。プロンプトや設定は、workflow_api.json
ファイルを通じて管理され、サーバーに送信されて処理が行われます。
- ComfyUIサーバーに画像生成のプロンプトを送信
- WebSocketを介して画像生成の進行状況を監視
- 生成された画像をローカルの
images
フォルダに保存 workflow_api.json
ファイルを使用してワークフローを設定- SSLを使用した安全なサーバー通信
このスクリプトを実行する前に、以下の環境が整っていることを確認してください:
- Python 3.7以上
- 必要なPythonライブラリ(下記参照)
-
リポジトリをクローン:
git clone https://github.com/yhayano-ponotech/comfyui-api-example.git cd comfyui-api-example
-
依存関係をインストール: 必要なライブラリをpipでインストールします:
pip install -r requirements.txt
または、以下のコマンドで手動でインストールします:
pip install websockets certifi asyncio
-
ワークフローファイルの設定: プロジェクトディレクトリに
workflow_api.json
ファイルを正しく配置してください。このファイルには、ComfyUIサーバー用のプロンプト設定が含まれています。
スクリプトを実行する前に、以下の設定を確認してください:
-
ComfyUIサーバーのアドレス:スクリプト内の
SERVER_ADDRESS
変数を、使用しているComfyUIサーバーのFQDN(完全修飾ドメイン名)に更新します。SERVER_ADDRESS = "YOUR_SERVER_ADDRESS"
-
ワークフローファイル:
workflow_api.json
ファイルが正しいフォーマットで配置されていることを確認してください。
-
スクリプトを実行:
メインスクリプトをPythonで実行します:
python3 main.py
-
プロンプトの変更(オプション):
スクリプト内の以下の部分を編集することで、プロンプトやシード値を変更できます:
# プロンプトテキストを変更 prompt["6"]["inputs"]["text"] = "masterpiece best quality man" # シード値をランダムに設定 prompt["3"]["inputs"]["seed"] = random.randint(1, 1000000)
-
進行状況の監視:
スクリプトはWebSocketを使用して、画像生成の進行状況をリアルタイムで監視します。生成が完了すると、画像は
images
フォルダにダウンロードされます。
-
生成された画像は、
images
フォルダ内に保存されます。ファイル名はサーバーのレスポンスに基づいて設定されます。画像情報はターミナルに表示されます:
Filename: ComfyUI_00053_.png, Type: output, Subfolder:
-
タイムアウト処理:WebSocket接続が30秒以内に応答を受け取れない場合、タイムアウトエラーメッセージが表示されます。
タイムアウト: サーバーからの応答がありません
-
SSLエラー:SSL証明書の設定が正しく構成されていることを確認してください(
certifi
を使用)。