Dataset Reviewer
Edit captions and drag boxes without leaving ComfyUI
- images
- edited_captions
Here's the thing nobody warns you about LoRA datasets: the captioning pass is never good enough, and "fix it in the trainer" isn't a thing. Bad captions produce a LoRA that overfits to whatever your captioner got wrong. CCC_DatasetReviewer is the node that makes you actually go through your set: an interactive slideshow that shows each image with its caption and bounding boxes, lets you edit the caption text in place, and drag bbox handles with your mouse. The edited captions come back out of the node as a list, ready to feed a trainer.
It's the "review" stage of this pack's Consistent Character Creator pipeline, and it's the reason the loaders exist - you're meant to pull in a real dataset and suffer through it properly.
How it works
Inputs: images (required), captions (optional list of strings), bbox_format (which convention your boxes use: yxyx_normalized by default, or pixel/xyxy variants), and edited_data_json - a hidden, often-unwired input where the web widget sends your edits back.
The review UI is a slideshow. You step through image + caption pairs, click into the caption to rewrite it, and drag the box handles directly on the image. When you're done, the node patches your edits into the caption JSON and re-emits the whole set through its one output, edited_captions (a list of strings).
Two practical notes. First, the captions output is the full edited list, so it replaces whatever caption stream you had before the reviewer - wire it where your original captions were going. Second, the bbox_format you pick must match how the boxes were written, or the handles will sit on the wrong pixels and you'll "fix" boxes that were already right.
Where it fits
After the tagger, before training. CCC_ImageBatchLoader + CCC_TextBatchLoader (or a tagger) produce your image/caption lists, this reviewer is where you correct them, and edited_captions flows into the trainer or your caption save step. It replaces the classic two-tool workflow (review in one app, edit JSON in another) with one pass in the graph.
Honest take: for a 20-image character set this is arguably overkill - you can eyeball that in Show Image + Text Pairs and edit files by hand. It earns its keep at 50+ images, where dragging a stray box beats finding its JSON entry by hand.
Installing it
Part of Mickmumpitz-Nodes:
cd ComfyUI/custom_nodes
git clone https://github.com/mickmumpitz/ComfyUI-Mickmumpitz-Nodes.git
or Manager → search "Mickmumpitz" → install → restart. It's a web-widget node, so after updating the pack, hard-refresh the browser tab if the interactive panel doesn't appear. Only numpy/Pillow/opencv-python under the hood - no models to download.
Troubleshooting
- Reviewer panel missing after update - refresh the browser fully; stale JS is the usual culprit.
- Boxes on the wrong spot - wrong
bbox_formatfor how the boxes were authored. Check whether the source wrote y-first or x-first, normalized or pixels. - Edited captions ignored downstream - make sure you're consuming the reviewer's
edited_captionsoutput, not the original caption stream. It's a fresh list, not a patch. - Skipping through a huge set - there's no pagination; it's a linear slideshow, so set
max_fileson your loaders to bound a review session.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| captionsopt | STRING | — | |
| bbox_formatopt | COMBO | yxyx_normalized | 4 options: yxyx_normalized, yxyx_pixel, xyxy_normalized, xyxy_pixel |
| edited_data_jsonopt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| edited_captions | STRING | — |