RR_Image_Metadata_Overlay
Bake your generation settings into a side-by-side video grid
- image1
- metadata1
- image2
- metadata2
- original_vid_optional
- image3
- metadata3
- image4
- metadata4
- image5
- metadata5
- image6
- metadata6
- IMAGE
You've run four versions of the same video and you can't remember which one used which checkpoint, CFG, or LoRA. You could scroll your output folder and squint at filenames, or you could let this node write the settings directly onto each clip and tile them into one comparison grid. That's what RR_Image_Metadata_Overlay is for, and it's the reason the whole pack exists - the README says the author built these nodes around their own AnimateDiff workflow, and this one is the centerpiece.
It takes up to six image + metadata pairs, stamps each image with the generation settings pulled out of its embedded workflow JSON, and stacks them into rows of three. Wire the result into a VHS_VideoCombine and you get a single labeled comparison video. There's also an original_vid_optional input for vid2vid workflows, which gets tagged "Original Video" instead of a settings dump - handy when you want the source clip in the same grid as your attempts.
How it works
Every ComfyUI output carries the full graph that produced it as JSON metadata - for PNGs it's tucked into the image info, and VideoHelperSuite writes the same thing into MP4s when you save with metadata enabled. This node takes that JSON, walks every node in the graph, and extracts whatever settings your toggles ask for:
checkpoint- the checkpoint name from CheckpointLoaderSimpleksampler- steps, CFG, and sampler + scheduler from KSamplerAdvancedcontrolnets- control net name, strength, start/end percentanimdiff- AnimateDiff model, motion scale, and the context window (length, stride, overlap, schedule, closed loop)loras- LoRA name and both strengthssearch_query- type any class_type and it dumps that node's entire input list
The result is drawn in a black bar under each frame, wrapped white text at 20px Arial (the repo ships its own arial.ttf). Rows are padded to three columns, so a grid of four becomes a 3+1 with a black placeholder.
One honest catch: the ipadpter toggle in the schema does nothing. There's no IPAdapter branch in the extraction code - flip it all you like, nothing changes. And given this is a 2023 pack built around ADE_AnimateDiffLoaderWithContext, the animdiff toggle only makes sense for actual AnimateDiff metadata. If you're on Wan or LTX, just use search_query and the generic toggles.
Inputs and outputs that matter
You must wire image1/metadata1 and image2/metadata2 - it's a comparison node, it wants at least two. image3 through image6 are optional. The METADATA inputs are plain strings containing the workflow JSON, so anything that hands you that JSON works: RR_VideoPathMetaExtraction for MP4s, RR_LoadImageWithMeta for PNGs. The single IMAGE output is your labeled grid, ready for a video saver.
Install
ComfyUI Manager - search "RenderRift" or "ComfyUI-RenderRiftNodes" - or:
cd ComfyUI/custom_nodes
git clone https://github.com/RenderRift/ComfyUI-RenderRiftNodes
Restart ComfyUI. No model downloads; requirements are just Pillow and tinytag. You do need VideoHelperSuite (VHS) installed as a companion for the video side.
Troubleshooting
- "Metadata not found in file" - the video was saved without metadata enabled in VHS_VideoCombine. Re-save with it on; the metadata IS the fuel for this node.
- "Error parsing metadata" - the METADATA input isn't the workflow JSON. Check that the source node is actually emitting metadata.
- Empty bars - if all toggles are off (and search_query is empty), the overlay is just a black bar with nothing in it. Toggle at least one.
It's a niche, unmaintained utility - last commit was December 2023 and nobody's fixing it - but if you live in the compare-and-iterate loop, a burned-in settings grid beats spreadsheet-keeping every time.
Inputs (20)
| Name | Type | Default | Description |
|---|---|---|---|
| image1 | IMAGE | — | |
| metadata1 | METADATA | — | |
| image2 | IMAGE | — | |
| metadata2 | METADATA | — | |
| checkpoint | BOOLEAN | false | — |
| ksampler | BOOLEAN | false | — |
| controlnets | BOOLEAN | false | — |
| animdiff | BOOLEAN | false | — |
| ipadpter | BOOLEAN | false | — |
| loras | BOOLEAN | false | — |
| original_vid_optionalopt | IMAGE | — | |
| image3opt | IMAGE | — | |
| metadata3opt | METADATA | — | |
| image4opt | IMAGE | — | |
| metadata4opt | METADATA | — | |
| image5opt | IMAGE | — | |
| metadata5opt | METADATA | — | |
| image6opt | IMAGE | — | |
| metadata6opt | METADATA | — | |
| search_queryopt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |