Extensions/comfyui-onnxtagger
ComfyUI Extension

comfyui-onnxtagger

ONNX (FP16 + CUDA) で wd-eva02-large-tagger-v3 を呼び、タグ文字列と検閲状態 4 値 (uncensored / censored / no_explicit / unknown) を同時に返す ComfyUI ノード。

By sugarkwork·Created 22 days ago·Updated 9 days ago· 2
sugarkwork/comfyui-onnxtagger
Nodes1
On cloudLocal install
Categoryimage/tagging
Stars2
Updated9 days ago
Readme

comfyui-onnxtagger

ComfyUI のカスタムノード。ONNX (FP16 + CUDA) で wd-eva02-large-tagger-v3 を呼び、 タグ文字列 + 検閲状態 4 値 (BOOLEAN) をひとつのノードから出力する。

ノード

ONNX Tagger (Censor Detector) (内部 ID OnnxTagger|onnxtagger)

入力

| 名前 | 型 | 既定 | 説明 | |---|---|---|---| | image | IMAGE | - | バッチ画像 (B, H, W, C) | | threshold | FLOAT | 0.35 | 一般タグのしきい値 | | character_threshold | FLOAT | 0.85 | キャラ タグのしきい値 | | uncensored_threshold | FLOAT | 0.10 | uncensored 判定のしきい値 | | censored_threshold | FLOAT | 0.50 | censored 判定のしきい値 | | genital_threshold | FLOAT | 0.20 | no_explicit 判定のしきい値 | | replace_underscore | BOOLEAN | False | タグの _ を空白に置換 | | trailing_comma | BOOLEAN | False | 末尾にカンマを付ける | | exclude_tags | STRING | "" | 除外タグ (カンマ区切り) |

出力 (5 つ)

| 名前 | 型 | 内容 | |---|---|---| | tags | STRING | "tag1, tag2, ..." 形式のタグ文字列 (ComfyUI-WD14-Tagger と互換) | | is_uncensored | BOOLEAN | 無修正と判定 | | is_censored | BOOLEAN | 検閲済みと判定 | | is_no_explicit | BOOLEAN | 性器が描かれていないと判定 | | is_unknown | BOOLEAN | 上記いずれでもない (要・人手確認) |

4 値判定の優先順位:

  1. uncensored タグ ≥ uncensored_threshold → is_uncensored
  2. max(検閲タグ群) ≥ censored_threshold → is_censored
  3. max(pussy, penis) < genital_threshold → is_no_explicit
  4. それ以外 → is_unknown

検閲タグ群: censored, mosaic_censoring, bar_censor, convenient_censoring, heart_censor, pointless_censoring, out-of-frame_censoring, hair_censor, novelty_censor, blur_censor, steam_censor, censored_nipples, identity_censor, tail_censor, blank_censor, light_censor, soap_censor, character_censor, censored_text, transparent_censoring

しきい値の根拠は親プロジェクトの report_thresholds.md (249 枚での検証) を参照。

モデルファイル

ノードは初回実行時に以下を 自動でダウンロード する。FP32 モデルの取得やローカルでの FP16 変換は不要:

  • wd-eva02-large-tagger-v3-fp16.onnx (FP16, 約 632 MB)
  • wd-eva02-large-tagger-v3.csv (タグ定義)

配布元: sugarknight/wd-eva02-large-tagger-v3-fp16 の v1.0.0。配布元の selected_tags.csv は上記のファイル名で保存する。

保存先の優先順位:

  1. ComfyUI の models/wd14_tagger/ (既存の WD14 Tagger プラグインと共存可能)
  2. このパッケージ直下の models/

既に上記のいずれかに FP16 ONNX が置かれていればそれを使う。

将来、FP16 モデルを再配布できない場合に備え、FP32 からの変換コードと依存パッケージは残している。 tagger_core.py の HF_FP16_URL を None に設定した場合は、従来の FP32 ダウンロード・変換経路を使う。

インストール

ComfyUI の custom_nodes/ 直下にこのフォルダを配置:

ComfyUI/custom_nodes/comfyui-onnxtagger/

依存パッケージ:

pip install -r requirements.txt

ONNX Runtime 1.27以降の標準GPUパッケージはCUDA 13 / cuDNN 9を使用します。 CUDA 13版PyTorchと組み合わせ、tagger_core.py は onnxruntime.preload_dlls() で PyTorchのライブラリを共有します。WindowsではPyTorchの lib フォルダを指定します。 異なるcuDNNのDLLが混在するため、CUDA 12用NVIDIAパッケージの追加は不要です。

ファイル構成

comfyui-onnxtagger/
├── __init__.py            # ComfyUI への登録 (NODE_CLASS_MAPPINGS)
├── nodes.py               # OnnxTagger ノード本体
├── tagger_core.py         # ONNX 推論 + 判定 + モデル自動セットアップ
├── requirements.txt
├── pyproject.toml
├── README.md
└── models/                 # 初回実行時に自動的に埋まる (空でも可)

ライセンス