Nodes/ComfyUI-RenderRiftNodes/RR_Image_Metadata_Overlay
ComfyUI Node

RR_Image_Metadata_Overlay

Bake your generation settings into a side-by-side video grid

By RenderRift·Created 3 years ago·Updated 2 years ago· 8
RR_Image_Metadata_Overlay
  • image1
  • metadata1
  • image2
  • metadata2
  • original_vid_optional
  • image3
  • metadata3
  • image4
  • metadata4
  • image5
  • metadata5
  • image6
  • metadata6
  • IMAGE
checkpointfalse
ksamplerfalse
controlnetsfalse
animdifffalse
ipadpterfalse
lorasfalse
search_query

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 CheckpointLoaderSimple
  • ksampler - steps, CFG, and sampler + scheduler from KSamplerAdvanced
  • controlnets - control net name, strength, start/end percent
  • animdiff - AnimateDiff model, motion scale, and the context window (length, stride, overlap, schedule, closed loop)
  • loras - LoRA name and both strengths
  • search_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.

CategoryRenderRiftNodes

Inputs (20)

NameTypeDefaultDescription
image1IMAGE
metadata1METADATA
image2IMAGE
metadata2METADATA
checkpointBOOLEANfalse
ksamplerBOOLEANfalse
controlnetsBOOLEANfalse
animdiffBOOLEANfalse
ipadpterBOOLEANfalse
lorasBOOLEANfalse
original_vid_optionaloptIMAGE
image3optIMAGE
metadata3optMETADATA
image4optIMAGE
metadata4optMETADATA
image5optIMAGE
metadata5optMETADATA
image6optIMAGE
metadata6optMETADATA
search_queryoptSTRING

Outputs (1)

NameTypeDescription
IMAGEIMAGE