Nodes/civitai-comfy-nodes/Civitai Wd Tagging
ComfyUI Node

Civitai Wd Tagging

Auto-tag your images the lazy way — WD tagging, hosted by Civitai

By civitai·Created 2 months ago·Updated about a month ago· 42
Civitai Wd Tagging
  • media_url
  • api_config
  • tags
  • rating
  • workflow_id
  • raw_json
threshold0.00
prompt

If you've ever trained a LoRA, you know the first hour of every project is captioning a folder of images by hand. WD tagging is the shortcut that job was invented for: it runs a WD-family tagger over your image and spits out the danbooru-style tag list plus a quality rating - the exact input format your training pipeline wants. This node does that on Civitai's fleet instead of your GPU, so it costs Buzz instead of VRAM.

Reach for it when you're prepping a dataset and either don't have a tagger installed or don't want to babysit one locally. It also makes a neat building block in a live workflow: caption an image mid-graph, feed the tags back into a prompt string, and chain it straight into a generation node. The pack's whole pitch is "Civitai's toolbox inside ComfyUI," and this is one of its more genuinely useful utilities.

How it works

Standard pack plumbing, one step: the node uploads your media, submits a wdTagging workflow to Civitai's orchestration API, long-polls until the classifier finishes, and returns the tags as strings. The model runs on Civitai's servers - nothing is downloaded to your machine, and (as with every node here) your image leaves your box.

The inputs that matter

  • media_url (required) - the image to tag. The socket is IMAGE type, so wire a LoadImage in; URLs are accepted too.
  • threshold - a confidence filter. The tooltip is clear: tags below this value get excluded. Default 0 means "keep everything"; nudge it up (say 0.3–0.5) when you want a cleaner, shorter list.
  • prompt - an optional guide for the tagging process, for when the default tagger is fighting you on a specific subject.

Outputs are four strings: tags (the tag list), rating (the model's quality/safety rating of the image), workflow_id, and raw_json. Wire tags into a text node, a prompt concatenator, or a dataset-prep step.

Install and auth

Pack-wide install, once. ComfyUI Manager → Custom Nodes Manager → search Civitai Comfy Nodes → Install → restart. Or:

cd ComfyUI/custom_nodes
git clone https://github.com/civitai/civitai-comfy-nodes.git
pip install -r civitai-comfy-nodes/requirements.txt   # just requests

Auth order: Civitai Auth node → CIVITAI_API_TOKEN env var → stored key/OAuth from the Civitai sidebar → browser login.

Where people get burned

The classic tagging failure is a threshold of zero giving you a 300-tag wall of noise - set it deliberately. And remember this is the hosted version: if you're captioning a large private dataset, every image goes to Civitai's servers and each call is metered, so it adds up where a local WD14 tagger would be free. For one-off tagging inside a workflow it's great; for bulk captioning of a big training set, the local open-source tagger still wins.

CategoryCivitai/Analysis

Inputs (4)

NameTypeDefaultDescription
media_urlIMAGEThe URL of the media to tag (image or video).
thresholdoptFLOAT0.000–2147483647Optional threshold for tag confidence filtering. Tags below this threshold will be excluded.
promptoptSTRINGOptional prompt to guide the tagging process.
api_configoptCIVITAI_CONFIGOptional Civitai Auth connection; defaults to CIVITAI_API_TOKEN or stored OAuth login.

Outputs (4)

NameTypeDescription
tagsSTRING
ratingSTRING
workflow_idSTRING
raw_jsonSTRING