ComfyUIフォルダ監視で自動処理|設定手順と実務活用3選

ComfyUI(ノードをつないで画像生成AIを動かすツール)で画像処理を自動化したいとき、毎回手動でファイルを読み込んで実行するのは手間がかかります。特に不動産物件の写真を大量に処理する場面では、1枚ずつ操作していては時間がいくらあっても足りません。

そこで役立つのが、ComfyUIフォルダ監視で自動処理|設定手順と実務活用3選です。入力フォルダに画像を置くだけでComfyUIのワークフローが自動実行され、処理結果が出力フォルダに保存されます。Pythonのwatchdogライブラリを使えば、プログラミング初心者でも比較的かんたんに構築できます。

この記事では、ComfyUIのフォルダ監視を使った自動処理パイプラインの構築方法を、設定手順からエラー対策、実務での活用パターンまで詳しく解説します。

Blenderで作る
初めての建築3DCGパース

Blenderの導入から基本操作、太陽光の入る白い部屋の制作まで。全3本のカリキュラムを体験できます。

Blenderの導入から基本操作、
太陽光の入る白い部屋の制作まで。
全3本のカリキュラムを体験できます。

目次

ComfyUIのフォルダ監視とは

フォルダ監視とは、特定のディレクトリに新しいファイルが追加されたことを検知し、あらかじめ設定したワークフローを自動実行する仕組みです。ComfyUIではローカルHTTPサーバーの /prompt エンドポイントと組み合わせることで、この自動処理パイプラインを実現できます。

フォルダ監視の基本的な動作原理

フォルダ監視の流れはシンプルです。監視スクリプトが入力フォルダをリアルタイムに見張り、新しい画像ファイルを検知するとComfyUI APIにリクエストを送信します。ComfyUIがワークフローを実行し、処理済みの画像を出力フォルダに保存する流れになります。

具体的な処理ステップは以下のとおりです。

  1. 監視スクリプトが入力フォルダを常時監視する
  2. 新しいファイルが追加されたことを検知する
  3. ファイルをComfyUI APIに送信してワークフローを実行する
  4. 処理結果を出力フォルダに自動保存する
  5. 処理済みファイルを「完了」フォルダへ移動する

この仕組みにより、ユーザーは入力フォルダに画像をドラッグ&ドロップするだけで処理が完了します。

カスタムノード方式と外部スクリプト方式の使い分け

フォルダ監視の実装には大きく2つのアプローチがあります。それぞれ得意な場面が異なるため、用途に合わせて選択してください。

カスタムノード方式(ComfyUIノード内で完結)

  • ComfyUI-Batch-Process や ComfyUI-batching-nodes を使うと、サブフォルダ再帰読み込みや拡張子フィルタがノード単体で完結します
  • 静的に固定したフォルダをまとめて1回処理する用途に向きます
  • 追加プロセスを立ち上げずに済むため、構成がシンプルになります

外部スクリプト方式(watchdog + /prompt API)

  • 入力フォルダへのファイル追加をリアルタイムで検知し、常駐プロセスが自動投入します
  • Webアプリや他システムからの連携、動的なワークフロー切り替えに強い
  • ジョブステータスの監視や通知連携まで拡張しやすい

実務では、毎日ファイルが追加され続けるような常時運用では外部スクリプト方式、月次のスポット処理であればカスタムノード方式、という切り分けが現実的です。APIによる自動化の詳細は「ComfyUI APIガイド:外部連携と自動化の実践手順」で解説しています。

フォルダ監視の環境構築と設定手順

ここからは、外部スクリプト方式でフォルダ監視パイプラインを構築する具体的な手順を説明します。ComfyUIがすでにインストール済みであることを前提に進めます。

Pythonのwatchdogライブラリを導入する

フォルダ監視にはPythonのwatchdogライブラリを使います。ファイルシステムの変更をリアルタイムに検知できるクロスプラットフォーム対応のライブラリです(2026年4月現在、4.x系が安定版)。

watchdogはOS別のネイティブAPIを抽象化して提供します。Linuxでは inotify、macOSでは FSEvents、Windowsでは ReadDirectoryChangesW が内部で動く仕組みです。そのため、同じスクリプトをどのOSでもほぼ無修正で動かせます。

インストールはpipコマンドで完了します。

pip install watchdog requests

requestsライブラリも併せてインストールしてください。ComfyUI APIへのHTTPリクエスト送信に使用します。

また、フォルダ構成は以下のように準備しておくとスムーズです。

comfyui-watch/
├── input/          # 監視対象フォルダ
├── output/         # 処理結果の保存先
├── processed/      # 処理済みファイルの移動先
├── error/          # エラーファイルの退避先
└── watch_folder.py # 監視スクリプト

ComfyUIのカスタムノードについては「ComfyUIおすすめカスタムノード:用途別に厳選して紹介」も参考にしてみてください。

監視スクリプトの作成と設定項目

watchdogを使った監視スクリプトの基本構成を紹介します。ポイントは、FileSystemEventHandlerを継承して「ファイル作成イベント」に反応する処理を書くことです。

from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
import requests
import time
import json
import shutil
from pathlib import Path

class ImageHandler(FileSystemEventHandler):
    def __init__(self, workflow_path, output_dir, processed_dir):
        self.workflow = json.loads(Path(workflow_path).read_text())
        self.output_dir = output_dir
        self.processed_dir = processed_dir

    def on_created(self, event):
        if event.is_directory:
            return
        ext = Path(event.src_path).suffix.lower()
        if ext in ['.png', '.jpg', '.jpeg', '.webp']:
            time.sleep(1)  # ファイル書き込み完了を待つ
            self.process_image(event.src_path)

    def process_image(self, image_path):
        try:
            response = requests.post(
                'http://127.0.0.1:8188/prompt',
                json={'prompt': self.workflow}
            )
            if response.status_code == 200:
                shutil.move(image_path, self.processed_dir)
        except Exception as e:
            print(f'エラー: {e}')

設定で調整すべき主な項目は3つあります。

  • 監視間隔: watchdogはイベント駆動のためポーリング不要。OS標準の通知APIで即時検知
  • 対象拡張子: PNG、JPG、WEBPなど処理する画像形式を指定する
  • 書き込み待機時間: 大きなファイルのコピー完了を待つための遅延(1〜3秒)

ComfyUI APIとの接続設定

ComfyUIをヘッドレスモードで起動すると、GUIなしでAPIサーバーとして動作します。起動コマンドは以下のとおりです(2026年4月現在、デフォルトポートは8188)。

python main.py --listen 0.0.0.0 --port 8188

ジョブ投入の標準フローは次のとおりです。

  1. ComfyUIのGUI画面で「Save (API Format)」を選びワークフローJSONを書き出す
  2. スクリプトから POST /prompt でワークフローJSONを投入する
  3. レスポンスの prompt_id を保持する
  4. WebSocket(ws://127.0.0.1:8188/ws)または GET /history/{prompt_id} で進捗を取得する

ComfyUIが返すジョブステータスは pending / in_progress / completed / failed / cancelled の5種類です。WebSocketで受信するとリアルタイムに遷移を追えるため、実務ではポーリングよりWebSocketが扱いやすい選択肢になります。ヘッドレス運用の詳細は「ComfyUIヘッドレス運用ガイド:CLIとサーバーモードの活用法」をご覧ください。

ワークフローJSONをバージョン管理して、処理内容を変更したいときにファイルを差し替えるだけで対応できる運用が、保守性を高めやすい進め方です。

バーチャルステージングの量産に活用する

フォルダ監視の実力が最も発揮されるのが、不動産向けバーチャルステージングの量産処理です。空室の写真をフォルダに入れるだけで、家具を配置した画像が自動生成されます。

不動産物件写真のバッチ処理ワークフロー

バーチャルステージングの量産では、以下のような運用フローを組みます。

  1. 物件の空室写真を撮影してPCに取り込む
  2. 入力フォルダに写真をまとめてコピーする
  3. 監視スクリプトが1枚ずつ検知して処理を開始する
  4. ControlNet(コントロールネット)で部屋の構造を維持しながら家具を配置する
  5. 完成画像が出力フォルダに自動保存される

1物件あたり10〜20枚の写真がある場合、手動操作では30分以上かかる作業が、フォルダに入れるだけで自動で完了します。海外では1日1,000枚超のバッチ処理事例も報告されており、スケール面でも実用的です。バーチャルステージングの基本については「ComfyUIバーチャルステージング:空室を魅力的に変える実践ガイド」で詳しく解説しています。

出力ファイルの命名規則と整理

量産処理では、出力ファイルの管理も重要になります。元ファイル名に物件IDとスタイル名、処理日時を付加する命名規則を推奨します。

入力: room_101_living.jpg
出力: PROP-0423_room_101_living_modern_20260416.png

CSV駆動にしておくと、1行1物件の定義ファイルから {物件ID}_{部屋}_{スタイル}_{タイムスタンプ} のテンプレートで機械的に出力名を組み立てられます。実務では、物件コードと部屋番号をファイル名に含めておくと、後から特定の写真を探しやすくなります。処理済みファイルは「processed」フォルダに自動移動させることで、二重処理を防げます。

エラーハンドリングとリトライ設定

自動処理パイプラインを安定運用するには、エラー対策が欠かせません。ファイル破損やAPI接続エラーなど、さまざまなトラブルに備えましょう。

よくあるエラーと対処法

フォルダ監視で発生しやすいエラーは主に3種類あります。

エラー種別 原因 対処法
ファイル読み込み失敗 コピー途中で検知された 書き込み待機時間を延長する
API接続エラー ComfyUIが未起動・過負荷 ヘルスチェックを追加する
VRAM(GPUの作業メモリ)不足 高解像度画像の連続処理 キューの間隔を空ける

特にファイルのコピー中に検知されるケースは頻出します。ファイルサイズの変化が止まったことを確認してから処理を開始するロジックを入れると、安定度が大きく向上します。

ステータス値ごとの分岐とリトライロジック

ComfyUIが返す5種のステータスに応じて、スクリプト側で処理を分けるのが堅牢な設計です。

  • pending / in_progress: 継続して待機
  • completed: 出力ファイルをoutputへ移動
  • failed: リトライ対象としてキューに戻す
  • cancelled: ログだけ記録して手動確認に回す

リトライは指数バックオフ方式が一般的な選択肢です。以下は実装例です。

import time

def process_with_retry(image_path, max_retries=3):
    for attempt in range(max_retries):
        try:
            result = send_to_comfyui(image_path)
            return result
        except Exception as e:
            wait_time = 2 ** attempt  # 1秒、2秒、4秒と間隔を広げる
            print(f'リトライ {attempt + 1}/{max_retries}: {wait_time}秒後に再実行')
            time.sleep(wait_time)
    shutil.move(image_path, error_dir)
    print(f'処理失敗: {image_path}')

リトライ回数の上限は3回が目安です。それでも失敗するファイルはエラーフォルダに退避させ、後から手動で原因を確認します。

実務での活用パターン3選

フォルダ監視による自動処理は、バーチャルステージング以外にもさまざまな場面で活用できます。海外コミュニティで共有されている事例から、代表的な3パターンを紹介します。

建築パースの一括変換

設計事務所では、3Dソフトから書き出した建築パースをフォルダに入れるだけで、画風変換やスタイル統一を自動処理しています。昼間のパースを夕景や夜景に一括変換する用途で活用されています。

間取り図からの3Dイメージ生成

2D間取り図をフォルダに入れると、ControlNetが構造を読み取って3Dイメージを自動生成します。営業資料の作成時間を大幅に短縮できる運用例です。

広告バナーの自動リサイズと加工

不動産ポータルサイトに掲載するバナー画像を、複数サイズに一括変換します。元画像を1枚入れるだけで、各サイトの規定サイズに合わせた画像が出力フォルダに並ぶ仕組みです。

自動化の全体像については「ComfyUI自動化ガイド:ワークフロー効率化の実践手法」で体系的にまとめています。

まとめ

ComfyUIのComfyUIフォルダ監視で自動処理|設定手順と実務活用3選は、画像処理業務を大幅に効率化できる仕組みです。PythonのwatchdogライブラリとComfyUIの /prompt APIを組み合わせることで、入力フォルダにファイルを置くだけの操作で処理が完了します。

導入のポイントは以下の3つです。

  • watchdogで入力フォルダを監視し、ComfyUI APIにワークフローJSONを送信する
  • 5種のジョブステータスに応じた分岐とリトライ設定で安定運用を確保する
  • バーチャルステージングや建築パース変換など、用途に合わせてワークフローを差し替える

この記事で紹介したスクリプトは、公式ベータ提供中のComfy Cloud API(2026年4月現在)ともエンドポイント互換のため、将来ローカルからクラウドへ移行する際も書き換えが最小限で済みます。まずは小規模なテストから始めて、処理件数やワークフローの種類を段階的に増やしていく進め方が安定します。

あわせて読みたい

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!

PERSC Experience Course

未経験から、
最初の一枚を完成させる。

未経験から、
最初の一枚を完成させる。

Blenderの導入から基本操作、
そして建築パースを1作品完成させるところまで。
全3本の体験カリキュラムを無料体験できます。

Blenderの導入から基本操作、
そして建築パースを1作品完成させるところまで。
全3本の体験カリキュラムを無料体験できます。


CONTENTS

3 LESSONS


基礎編① インストール&7項目の初期設定

Blenderの導入から制作に必要な基本設定

基礎編② 画面構成と基本的な操作方法

未経験でも迷わない画面の見方と操作の基本

実践編① 太陽光の入る白い部屋

建築パースを1作品完成させるまでを体験


BONUSES
体験カリキュラム限定の3大特典


実践編完成データ(.blend)

ショートカット・チートシート

マテリアル ライブラリセット

この記事を書いた人

橘 美咲のアバター 橘 美咲 PERSC 専任講師

「CADは裏切らない。昨日引けなかった線が、今日は引ける。それが楽しいの」

元・完全未経験の文系女子。新卒で入った建築現場で「図面が読めない」と絶望し、悔し涙を流しながらCADを独学で習得した過去を持つ。 その後、設計事務所、ゼネコンを経てフリーランスへ転身。現在はPERSCにて「現場で本当に使える技術」を伝授する鬼(?)コーチとして活動中。 「線一本にも意味がある」が口癖。趣味は、完成した建物を見上げながらのビールと、深夜の猫動画巡回。

目次