ComfyUI Extension: comfyui-auto-mosaic
Run ComfyUI workflows without the setup
No installs, no CUDA version roulette, no GPU sitting idle on your bill. Bring a workflow and run it in the browser.
Auto detect and process sensitive areas using YOLO with mosaic, blur, white out, and PSD export.
Looking for a different extension?
Custom Nodes (0)
README
ComfyUI AutoMosaic
ComfyUI AutoMosaic は、YOLOセグメンテーションモデルを使用して画像内の特定の領域(例:局部の露出など)を自動で検出し、モザイク処理やぼかし、白塗りなどの処理を行う ComfyUI 用のカスタムノードです。PSDファイルとして各レイヤーを分けて保存する機能も備えています。
機能
- 特定領域の自動検出: Ultralytics YOLO セグメンテーションモデルを利用し、指定したクラス名に該当する領域のマスクを検出します。(デフォルトでは
sensitive_detect_v07.ptを使用) - 2モデル同時推論: 2つ目のYOLOモデルを任意で指定できます。指定した場合は2つのモデルを個別にロードして保持し、推論時に同時実行した結果を合算してから画像処理します。
- 画像処理モード: 検出された領域に対して以下の処理を選択可能です。
mosaic(モザイク処理)blur(ぼかし処理)white(白塗り処理)raw(処理なし、そのままのマスク領域)
- PSD保存機能: 処理されたレイヤーと元の背景画像を分けて、1つのPSDファイルとして保存することが可能です。(処理の微調整に便利です)
- モデルの自動ダウンロード機能: デフォルトの指定モデル (
sensitive_detect_v07.pt) が見つからない場合は、自動的に HuggingFace からダウンロードするため、手動でモデルを配置する手間が省けます。
インストール
-
リポジトリのクローン ComfyUIの
custom_nodesディレクトリで以下のコマンドを実行します。cd ComfyUI/custom_nodes git clone <このリポジトリのURL> comfyui-auto-mosaic -
依存関係のインストール 仮想環境またはComfyUIの環境内で以下のライブラリをインストールします。
pip install -r comfyui-auto-mosaic/requirements.txt依存パッケージ:
ultralytics(YOLO用)psd-tools(PSD保存用)opencv-python-headless(画像処理用)
ノードのパラメータ (Inputs)
AutoMosaic ノードの設定項目は以下の通りです。
| パラメータ名 | タイプ | デフォルト | 説明 |
| :--- | :---: | :--- | :--- |
| image | IMAGE | (必須) | 入力画像。 |
| save_psd | BOOLEAN | False | True にすると、出力フォルダに結果をPSDファイルとして保存します(レイヤー分けあり)。 |
| filename_prefix | STRING | "AutoMosaic" | 保存される画像のファイル名のプレフィックス。 |
| confidence | FLOAT | 0.25 | YOLOの検出の信頼度(Confidence)の閾値。最小0.01、最大1.0。値を低くするとより多くの領域を検出しますが、誤検知が増える可能性があります。 |
| process_method | COMBO | "mosaic" | 適用するエフェクト。["raw", "mosaic", "white", "blur"] から選択します。 |
| factor | INT | 100 | モザイクやぼかしのブロックサイズ・強度を決定する係数。値が小さいほどブロックサイズ(モザイク1マスのサイズ)が大きくなります。 |
| target_class | STRING | "pussy,penis" | モデルが検出する対象クラスの名前。複数ある場合はカンマ , 区切りで指定します。 |
| model_name | COMBO | sensitive_detect_v07.pt | 1つ目のYOLOセグメンテーションモデル。 |
| mask_expand | FLOAT | 0.0 | モザイク領域の追加膨張量。画像の長辺に対する%指定(0.1 刻み、最大 20.0%)。factor 由来の自動膨張に上乗せされ、検出マスクをさらに外側へ広げます。 |
| video_mode | BOOLEAN | False | 複数フレーム(バッチ画像)を動画として扱い、検出漏れフレームを前後フレームのマスクから補完します。1 フレームのみの場合は通常モードと同じ挙動になります。 |
| buffer_frames | INT | 10 | 動画モード時、検出漏れを補完できる最大連続フレーム数。検出フレーム間のギャップが buffer_frames 以下なら morph_method で補完。それより長いギャップでも、最後の検出フレームから buffer_frames 分はオプティカルフローで前方追跡、次の検出フレームの直前 buffer_frames 分は後方追跡で補完します。 |
| morph_method | COMBO | "simple" | 動画モード時、検出フレーム間の補完方法。simple は前後マスクの線形補間、optical_flow はマスク輪郭ポリゴンを LK オプティカルフローで動画に追従させながら前後ブレンドします。|
| model_name_2 | COMBO | None | 2つ目のYOLOセグメンテーションモデル。None の場合は1つ目のモデルのみで処理します。 |
動画モード (Video Mode)
動画モードを有効にすると、ComfyUI のバッチ画像入力(フレーム列)を一括で検出し、検出漏れフレームを補完してから出力します。挙動のサマリ:
- 全フレームに対して YOLO で検出を実行
- 検出フレーム間のギャップが
buffer_frames以下 → 選択したモーフィング方式 (simpleまたはoptical_flow) でフレーム間のマスクを補完 - ギャップが
buffer_framesを超える長い未検出区間 → 直前の検出フレームからbuffer_frames分だけオプティカルフローで前方追跡し、次の検出フレーム前buffer_frames分は後方追跡(連続未検出が長すぎる中央部分は補完なし) - 先頭・末尾の未検出フレームも、
buffer_framesの範囲内であればオプティカルフロー追跡で補完
simple は計算が高速で対象がほぼ静止している場合に向き、optical_flow は対象が動いていてフレーム間で位置がずれる場合に追従精度が出やすくなります。
出力 (Outputs)
IMAGE: 処理後の合成画像。ComfyUIの他のノード(Save ImageノードやPreview Imageノードなど)へ接続して使用します。
スタンドアローン WebUI (ComfyUI不要)
ComfyUI本体を起動しなくても、本ノードの機能をブラウザから直接試せるスタンドアローンのGradioベースWebUIを同梱しています。 **Single Image(単一画像処理)と、フォルダ内の画像(サブフォルダ含む)を一括で処理するBatch Process(バッチ処理)**の2つのモードに対応しています。
-
WebUIの起動 付属のバッチファイルを実行するだけで、必要な環境(Python仮想環境の作成、ライブラリのインストール)が自動でセットアップされ、WebUIが起動します。
# Windowsの場合 start_standalone.bat※ 初回起動時に
config.txtファイルがない場合は自動生成され、メモ帳が開きます。必要なPythonとCUDAのバージョンを指定して保存してください。 -
ブラウザでアクセス コンソールに表示されるURL(例:
http://127.0.0.1:7860)にブラウザでアクセスして操作します。
処理の仕組み
- モデルのロード: もし
sensitive_detect_v07.ptがmodels/ultralyticsまたはmodels/yoloにない場合は、HuggingFaceから自動でダウンロードされます。model_name_2が指定されている場合は、2つ目のモデルも別インスタンスとしてロードして再利用します。 - セグメンテーションの実行: 各画像に対し YOLO モデルがマスクとバウンディングボックスを予測します。2モデル指定時は同時に推論し、検出マスクを合算します。
- 設定された処理の適用: 合算後の検出結果のうち、クラス名が
target_classに含まれている領域を切り抜いてprocess_methodとfactorに基づく画像処理を加えます。 - 合成: 背景ベースレイヤーと各加工後のマスクレイヤーを下から順に重ねて出力用のテンソルとして返します。(
save_psdが有効で出力可能な場合は、PSDレイヤーとしても保存されます)。
既知の問題 / 制限事項
- 複数画像のバッチ(Batched Tensors)が入力された場合も順番に処理し、対応する数の結果を出力します。ただし各画像の出力結果ファイル名は連番(
_00001等)で保存されます。 save_psdを使用する場合、大量のレイヤーまたは高解像度画像を処理するとメモリやストレージを消費しやすくなります。
謝辞: このノードは Ultralytics の YOLO の技術基盤によって支えられています。
Run ComfyUI workflows without the setup
No installs, no CUDA version roulette, no GPU sitting idle on your bill. Bring a workflow and run it in the browser.