Show Image + Text Pairs
See your captions before you train on them
- images
Captions are the one place in LoRA training where "good enough" quietly destroys your results - and it's also the least fun thing to check, because it means eyeballing image-text pairs one at a time. CCC_ShowImageTextPairs is the eyeballing tool: a display node that shows each image next to its caption text, with the caption copyable, and optionally draws your bounding boxes on top.
It's the "preview before you commit" node in the Consistent Character Creator pipeline. Its big sibling, the Dataset Reviewer, is the interactive editor; this one is the quick glance. You'll reach for it constantly during dataset assembly.
How it works
Feed it images (required) and optionally captions (a list of strings). It renders each image beside its caption in the UI - captions come out as copyable text, which is the small detail that makes it actually usable. Because it's an output node, nothing comes out of it; it exists to show you things.
The interesting inputs are the bbox preview options:
draw_boxes- draw bounding boxes parsed out of your captions onto the image.bbox_format- the box convention your captions use. Default isnormalized_1000_yxyx(Ideogram's[y, x, y, x]on a 0-1000 scale). There's anautomode, plus pixel and 0-1 variants.training_resolution- the preview can be resized to an AI Toolkit training bucket resolution (256 through 2048, oroff). This is the standout feature: it shows you what the image will look like after the trainer buckets it, with boxes rescaled to match. That's the exact resolution where a too-small face or a box clipped off-frame will show up.bucket_divisibility- the multiple used for bucketing, default 64, matching AI Toolkit's convention.
The display also prints per-box pixel coordinates beneath each image, which sounds mundane and is genuinely handy for spotting misaligned boxes.
Where it fits
Run it after tagging, before training. The loop this pack's built around: CCC_ImageBatchLoader feeds images, captions come out of the tagger or a caption loader, this node shows you whether the boxes land on the right features and whether the captions read like English. If something's off, you either fix captions here (visually) or escalate to the Dataset Reviewer to edit in-place.
Installing it
Ships in Mickmumpitz-Nodes:
cd ComfyUI/custom_nodes
git clone https://github.com/mickmumpitz/ComfyUI-Mickmumpitz-Nodes.git
or ComfyUI Manager → search "Mickmumpitz" → install → restart. No model downloads needed; the pack's real dependencies are just numpy, Pillow and opencv-python.
Troubleshooting
- Boxes in the wrong place - it's almost always
bbox_format, not the tagger. If your captions are x-first or 0-1 normalized, the boxes will be drawn shifted. Match the format to what wrote the boxes. - No captions shown -
captionsis optional; if it's unwired, you get images with no text. Wire the list output of your tagger or loader in. - Unexpected layout - the custom preview is a web widget; if it doesn't render after a pack update, a hard refresh of the browser usually fixes it.
- Resolution preview looks blurry - that's the point. A 1024 image bucketed down to 768 is what the model will actually see; if details vanish, that's a real signal to adjust your dataset, not a bug.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| captionsopt | STRING | — | |
| draw_boxesopt | BOOLEAN | true | — |
| bbox_formatopt | COMBO | normalized_1000_yxyx | Ideogram uses [y_min, x_min, y_max, x_max] @ 0-1000 (y-first) = normalized_1000_yxyx. |
| training_resolutionopt | COMBO | off | 9 options: off, 256, 512, 768, 1024, 1280, +3 |
| bucket_divisibilityopt | INT | 641–256 | — |
Outputs (0)
No outputs