Civitai Wd Tagging
Auto-tag your images the lazy way — WD tagging, hosted by Civitai
- media_url
- api_config
- tags
- rating
- workflow_id
- raw_json
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 aLoadImagein; 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.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| media_url | IMAGE | The URL of the media to tag (image or video). | |
| thresholdopt | FLOAT | 0.000–2147483647 | Optional threshold for tag confidence filtering. Tags below this threshold will be excluded. |
| promptopt | STRING | Optional prompt to guide the tagging process. | |
| api_configopt | CIVITAI_CONFIG | Optional Civitai Auth connection; defaults to CIVITAI_API_TOKEN or stored OAuth login. |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| tags | STRING | — |
| rating | STRING | — |
| workflow_id | STRING | — |
| raw_json | STRING | — |