Nodes/imgutils/Imgutils PixAI Tagger
ComfyUI Node

Imgutils PixAI Tagger

The PixAI tagger, without calling an API

By xiaden·Created 2 months ago·Updated 2 months ago· 0
Imgutils PixAI Tagger
  • image
  • tags
  • json
threshold0.40
drop_overlapfalse

PixAI is an anime image platform, and if you've seen its taggers referenced you might assume using them means calling their API and dealing with keys. Imgutils PixAI Tagger is the pleasant surprise: the name is a lie, there's no API call and no key - the node runs the PixAI tagger models locally via ONNX, as part of the xiaden/comfyui-imgutils pack. The connection makes sense once you know the ecosystem: the deepghs/imgutils library this pack wraps comes out of the same DeepGHS/OnomaAI/PixAI research orbit, so PixAI's tagging models live natively in the imgutils stack.

PixAI's taggers are trained on anime/Danbooru-style vocabulary, and this node's output is general tags plus character tags with confidence scores - though it returns them as one flat dict, not separated into sections. Like the pack's MLDanbooru node, output is truncated to the top 50 tags and there's no rating section. It's the "one threshold for everything" model, which is its main ergonomic difference from WD14.

Inputs:

  • threshold (default 0.4) - one confidence cutoff applied to every tag category. 0.4 is a permissive default, which suits PixAI's confidence distribution (it tends to score lower than WD14).
  • drop_overlap (default off) - removes redundant/overlapping tags.

Outputs are tags (comma-separated STRING) and json (the full scored dict, which the author's description notes carries the character/IP association data alongside each tag's confidence).

Why you'd reach for it

The real argument for PixAI over WD14 is a second opinion and a different training distribution. Every tagger has its own confidence quirks, and running PixAI alongside WD14 and keeping only tags that both call confidently produces cleaner captions than either model alone. It's also a nice pick when you want more tags in the string: at default 0.4 it's chatty, and chatty is fine when you're building training data and plan to trim with the pack's Imgutils Tags node anyway.

Install & gotchas

Same shared install:

cd ComfyUI/custom_nodes/
git clone https://github.com/xiaden/comfyui-imgutils.git
cd comfyui-imgutils
pip install -r requirements.txt

Requires ComfyUI 0.25.0+ - the whole pack is built on the newer V3 node API. PixAI's model weights download from HuggingFace Hub on first run and cache to ~/.cache/huggingface/hub/, so the first call is slow and offline machines are out of luck.

One thing that catches people: at the default 0.4 threshold you'll get tags WD14 wouldn't emit, some of them wrong. That's not the node misbehaving - that's what "permissive threshold" means. For prompt-ready output raise threshold to 0.5–0.6; keep 0.4 only when you're building a scored dataset and filtering later.

Categoryimgutils/tagging

Inputs (3)

NameTypeDefaultDescription
imageIMAGEInput image to tag.
thresholdFLOAT0.400–1Confidence threshold applied to all tag categories.
drop_overlapBOOLEANfalseRemove overlapping/redundant tags.

Outputs (2)

NameTypeDescription
tagsSTRING
jsonSTRING