WD14 batch tagger & tag editor

Tag a whole folder of anime and illustration images with the WD14 models (often called the WD tagger), then search, filter and bulk-edit the booru tags and download them as .txt caption files. It all runs in your browser, so your images never leave your device.

0 images
โœ–
Drop images or a whole folder here or click to choose files. Matching .txt captions load too. You can drop onto any part of the page. Nothing is uploaded.

Click a thumbnail below to see and edit its tags. To add more, drop images or folders anywhere on the page.

โšก Auto-tag

An AI model looks at each image and adds tags. Tags an image already has are kept.

More tags Fewer, surer

Advanced

โœš Add tags


Add Mode

โˆ’ Remove tags


๐Ÿ” Filter by tag

โฌ†
๐Ÿ–ผ๏ธ 0
โšกAuto-tag
โœšAdd
โˆ’Remove
๐Ÿ”Filter
๐Ÿ“‚ Drop images here or click to select

Auto-tagging images...

ImgTagger runs SmilingWolf's WD14 tagger models on your own computer. Each image gets a list of Danbooru-style tags such as long_hair, smile or outdoors, which you can edit and download as one .txt caption per image, the format most LoRA training scripts read.

It's built for captioning LoRA training datasets and for organizing large illustration collections. If your folder has near-identical shots, remove them first with the duplicate image finder.

Quick start

  1. Let the model load. It starts loading as soon as the page opens, with a progress bar under the page title. The first visit downloads 365โ€“455 MB from Hugging Face, depending on the model. Later visits use your browser's cache.
  2. Add images. Drag images, or a whole folder, anywhere onto the page, or click the big box in the middle to choose files. Include any existing .txt captions; they're matched to images by file name.
  3. Click the big "Auto-tag all" button at the top. It uses the default settings. To change them (how many tags, tags to never add, a trigger word to always add first), open the โšก Auto-tag tab at the bottom right first. If the model is still loading, the run waits for it. Cancel stops the run.
  4. Review the summary of added tags, and click โŒ to take any tag back off.
  5. Refine. Click a thumbnail to edit its tags, or use the Add, Remove and Filter panels for batch changes.
  6. Click "Download captions" (also at the top), choose tag files, images or both, and save the ZIP.
Nothing is saved automatically

Images and tags live only in this tab. Reloading or closing it clears them, and bulk edits can't be undone. Download a ZIP before you leave, and before any big change.

The thumbnail bar

Each thumbnail has a checkbox to select it and a โœ– to remove it. Click the picture to open it in the preview pane. The ๐Ÿ“‚ tile at the end opens the file picker, and you can also drop more images or folders anywhere on the page at any time. Above the thumbnails:

  • โฌ† expands the bar to half the screen for easier selecting. โฌ‡ shrinks it.
  • ๐Ÿ–ผ๏ธ is the image count, and ๐Ÿ“ฆ Download opens the export options.
  • ๐Ÿ—‘๏ธ Clear removes every image and its tags.
  • โ˜‘๏ธ Select All ticks every visible thumbnail, then becomes Deselect All.
  • โšก Auto-tag, โœš Add, โˆ’ Remove and ๐Ÿ” Filter open the matching side panels (the words show on wider screens). Close a panel with its โœ• or by clicking its tab again.
"Selected" means ticked and visible

"Selected" buttons act only on ticked images that are currently shown, so images hidden by the Filter panel are skipped. "All" buttons act on every image. A filter plus Select All is the quickest way to edit one group.

Auto-tag panel

  • How many tags? is the confidence threshold: 0 to 1 in steps of 0.01, default 0.35 (reset on reload). Slide toward "More tags" for a longer list or "Fewer, surer" for a shorter one. A tag is kept when its score reaches this value. A few tags ignore the slider: monochrome, greyscale, sketch and blurry need 0.9, the white, grey and simple background tags need 0.5, and the rating general needs only 0.1. The confidence threshold guide helps you pick a value.
  • Never add these tags (the blacklist): comma-separated tags to drop from the model's output. Matching is whole-tag and ignores case and underscores, so simple_background and Simple Background both block simple background.
  • Always add these tags first (prepend): comma-separated tags placed first on every image in the run, such as a LoRA trigger word. If an image already has one further down, it moves to the front.
  • Advanced (closed by default) holds the Model choice (ConvNeXt V2 by default, Swin V2 or ViT; a new choice loads straight away) and ๐Ÿงน Delete downloaded models, which frees disk space. The next run downloads them again.

Both text boxes are remembered between visits.

Auto-tagging never deletes anything: new tags go after existing ones and duplicates are skipped, so running it twice is harmless. It also means a re-run at a higher threshold won't remove earlier tags. To compare settings, clear the tags (Remove Tags panel) and run again; cached scores make it quick. โŒ Cancel lets images in progress finish, skips the rest and keeps what's done.

The summary window that follows lists each added tag with its image count, plus a search box. โŒ next to a tag removes it, without asking, from every image that run added it to.

Add Tags panel

Type comma-separated tags and click Add to Selected or Add to All. Add Mode puts them at the end (Append) or the start (Prepend), and is remembered. An image that already has a tag keeps it where it is. Use this panel for labels the models never output, such as a series name or your own trigger word.

Remove Tags panel

Type comma-separated tags and click Remove Tags from Selected or from All. Whole tags are matched, ignoring case and underscores, so looking_at_viewer also removes looking at viewer, but hair won't touch long hair. Our tag pruning guide suggests what to drop.

Clear All Tags (Selected or All) empties tag lists completely, including tags loaded from .txt files.

Bulk actions ask for confirmation unless you tick "Don't ask me again for this action". Clearing this site's data in your browser brings the dialogs back (and deletes the cached model).

Filter Tags panel

This panel lists every tag in the batch with its image count.

  • Click a tag to tick it (โ˜‘๏ธ). The thumbnails immediately show only matching images.
  • Show Images That include any, all or none of the ticked tags.
  • โˆ… untagged appears when some images have no tags. Tick it in "any" mode to find them.
  • โœ… Check All / โฌœ Uncheck All tick or clear every tag.
  • Search tags narrows the list and highlights matches.
  • Sort tags by count or alphabetically, in either direction.
  • โŒ next to a tag removes it from every image, after a confirmation.

The filter stays on after you close the panel, so if thumbnails seem to be missing, reopen it and click Uncheck All. Sorting by count, low to high, surfaces one-off tags worth a second look.

Editing tags on a single image

Click a thumbnail to open it in the preview pane. Under the image are its name, pixel dimensions and file size, then a box with its comma-separated tags.

Changes are saved as you type, so there is no Save button. Spaces around tags are trimmed and empty entries ignored, but duplicates you type are kept. The Selected checkbox mirrors the thumbnail's checkbox, and โœ– removes the image.

Keyboard shortcuts

  • โ† and โ†’ step to the previous or next visible image.
  • Delete or Backspace removes the previewed image, after a confirmation.

Both are ignored while you're typing in a text box.

Working with existing caption files

Drop .txt files along with your images. Each one is paired with the image of the same name, ignoring the extension and letter case: cat_01.txt goes with cat_01.png or Cat_01.JPG. Its contents are split at commas and trimmed.

  • Drag or pick them together. Captions are read before the images load, so every image picks up its caption however big the batch.
  • Adding a .txt later works. Its tags go after the image's current ones, skipping duplicates.
  • Unmatched files are dropped with a warning such as "No matching image found for cat_02.txt".
  • Names identify images. Re-dropping a file with the same name replaces the picture but keeps its tags (handy after cropping). A caption dropped with it is merged in. Two different images can't share a name.

Auto-tagging hand-tagged images fills in gaps, but sentence-style captions get cut apart at each comma. Our guide to caption .txt files covers the format in depth.

What the output looks like

Each image gets a .txt file with the same base name, holding one line of tags separated by a comma and a space. Say you prepend mychar and the image came with a caption file containing red scarf. After a run, the file might read:

mychar, red scarf, general, 1girl, solo, smile, long hair, looking at viewer, scarf, upper body, outdoors, snow
  • Order: prepend tags, then the image's existing tags, then new tags by confidence, highest first. Nothing appears twice.
  • Spaces, not underscores: long_hair is written long hair. Commas separate the tags, so spaces inside them are safe.
  • Ratings and characters are ordinary tags: the rating (general here) and, with the v2 models, names like hatsune miku appear like any other tag. Danbooru tags explained covers each kind.

The download window offers .txt tag files, Image files or both, for All Items or Selected Only, and remembers your choices. Images are the original, unmodified files, and untagged images get an empty .txt. The ZIP is named after its contents, such as images_tags.zip.

Choosing a model

All three are WD14 taggers by SmilingWolf on Hugging Face. The two v2 models are Apache 2.0 licensed; the older ViT repository doesn't state a license.

ModelDownloadTagsCharacter tags
ConvNeXt V2 (default)388 MB9,083Yes (2,132)
Swin V2455 MB9,083 (same list)Yes (2,132)
ViT365 MB6,549No

ConvNeXt V2 is a good default, and Swin V2 gives a second opinion with the same vocabulary. ViT can't name characters and lacks 2,560 of the v2 tags (all 2,132 character tags plus 428 general ones). Switching models means running your images through again. Our WD14 tagger model comparison covers the differences, and the newer v3 taggers we don't offer yet.

Performance and memory

Tagging runs on your CPU in a pool of background workers. The pool size is 80% of your logical cores (threads), rounded down, with a minimum of 4 and a maximum of 20. Each worker loads its own copy of the model:

Logical coresWorkersModel file copies (ConvNeXt V2)
44about 1.6 GB
86about 2.3 GB
1612about 4.7 GB
25 or more20about 7.8 GB

Real use is higher: the page holds another copy, and the runtime and your loaded images need memory too.

  • Close other heavy tabs before a big run. The worker count can't be changed, so if the tab crashes, free some RAM and reload.
  • Large batches work but take time. Split huge folders if your computer struggles.

Privacy

Your images are opened and processed inside this tab and never uploaded, and there's no account. The page only goes online to download the model from Hugging Face, load code libraries from public CDNs, show ads and record anonymous visit statistics. How in-browser AI keeps your images private explains the approach, and our privacy policy has the details.

Frequently asked questions

Does the tagger work offline after the first load?

Partly. Once the page is open and the model has loaded, tagging, editing and downloading don't need a connection, so you can go offline mid-session. Opening the page still needs the internet, because the page, ONNX Runtime and the ZIP library load from the web. In a private or incognito window, the cached model is deleted when the window closes.

Which browsers does it work in?

Current desktop versions of Chrome, Edge, Firefox and Safari, which all support the WebAssembly and Web Workers it needs. It caches the model in IndexedDB when the browser allows it, and still works without the cache. Use a desktop or laptop: even the smallest worker pool holds four copies of the model (about 1.6 GB), and mobile browsers often can't give one tab that much memory.

Can I tag photos, or only anime art?

You can tag any image, but keep expectations modest. The WD14 models learned from Danbooru, an illustration site, so their vocabulary is anime-style tags. On photos they can still pick up broad things like outdoors, sky, tree, cat or no humans. But they have no words for many real-world subjects, and sometimes describe people with drawing-style tags that look odd on a photo. For photo datasets, a natural-language captioner is often a better fit; see booru tags vs natural-language captions.

How do I stop rating tags like "general" being added?

Add general, sensitive, questionable, explicit to the Auto-tag panel's "Never add these tags" box before you run it. The blacklist is saved, so it applies to future batches too. To strip ratings from images already tagged, paste the same list into the Remove Tags panel and click Remove Tags from All. Each rating is judged separately, so a borderline image can occasionally get two.

Why do my tags have spaces instead of underscores?

ImgTagger swaps underscores for spaces on purpose, except in emoticon tags such as ^_^ and o_o, where the underscore is part of the face. There is no option to keep underscores. If your training setup needs them, run a regex find-and-replace on the downloaded files that turns each space not preceded by a comma into an underscore, such as (?<!,)\s โ†’ _. The comma separators stay intact.

Is it really free?

Yes. There is no account, no subscription and no cap on how many images you tag. The only practical limit is your computer's memory. The site is supported by ads.