Nodes/radiance/◎ Radiance Metadata Overlay
ComfyUI Node

◎ Radiance Metadata Overlay

Radiance Metadata Overlay — burn the slate into the frame like you're delivering dailies

By fxtdstudios·Created 7 months ago·Updated 9 days ago· 242
◎ Radiance Metadata Overlay
  • image
  • image
enabledtrue
project◎ Radiance_PRO
shotSH_010
frame1
timecode00:00:00:00
position
font_size20
opacity0.7
user_text
report_text

Anyone who's ever sent review frames to a client or a director knows the drill: the image needs to arrive with the project name, shot, frame number and timecode burned into it, because nobody reviews a bare frame. Radiance Metadata Overlay is that burn-in - a slate generator that draws project, shot, frame, timecode, and optional report text directly onto your image. It's the small production courtesy that separates "here's a render" from "here's the frame from SH_010 at 00:00:12:04."

The KB's image-metadata doc makes the philosophical point that in this ecosystem metadata is the payload, not a footnote. That's about the embedded workflow JSON. This node is the opposite direction - the visible metadata, the kind you put on the pixels themselves for human review, which is a different and older production ritual.

How it works

Plain drawing, no model. It composites a text block onto the image at one of five positions - Bottom Bar (Slate), Top Left, Top Right, Bottom Left, Bottom Right - with font_size (10–100) and opacity (0–1, default 0.7) controlling how it sits. The slate fields are straightforward strings: project, shot, frame (an integer), timecode, and user_text plus report_text for the longer freeform stuff - the report_text field is where you'd drop an automated QC note or a grading summary, multi-line. enabled defaults true and is your one-click bypass for "show me the clean frame."

The Bottom Bar (Slate) position is the classic: a full-width bar across the bottom with the metadata line, which is how review frames traditionally ship. The corner positions are the lighter touch for when you just want a timecode in the corner and nothing else.

The inputs that matter

  • project, shot, frame, timecode - the four slate fields. Defaults: "◎ Radiance_PRO", "SH_010", 1, "00:00:00:00".
  • position - where it draws. Slate bar for delivery, corners for preview.
  • font_size, opacity - legibility and subtlety. 0.7 opacity over the bottom bar is the standard look.
  • enabled - the bypass switch.
  • user_text / report_text - freeform extras.

Output: image, the frame with text burned in.

Why you'd use it

Batch review, mostly. Run a sequence through with frame wired to increment and project/shot set once, and every frame comes out labeled - no more guessing which render is which. It also plays well with the pack's DNA/metadata ecosystem, which is built around the same project/shot/version vocabulary. If you've ever had to re-render a batch because one frame's number was unreadable, you already know the value. And because it's just drawing, it's deterministic and instant - the last node before your save, always.

Installing

cd ComfyUI/custom_nodes
git clone https://github.com/fxtdstudios/radiance.git
cd radiance
pip install -r requirements.txt   # or requirements_windows.txt / requirements_linux.txt / requirements_mac_silicon.txt

Or search Radiance in ComfyUI Manager, restart. Linux needs libopenexr-dev first.

Gotchas

It burns, and "burn" is literal - there's no soft metadata layer to toggle later, so put it at the very end of the chain and keep a clean output node before it if you might need frames without text. Second, the slate is drawn at the image's native resolution, so on small frames a 20px font reads huge and on 4K it's tiny - size for your actual output resolution. Third, frame is an integer and timecode is a string; they don't auto-sync, so if you need "frame 101 = 00:00:04:04" you're wiring that relationship yourself.

CategoryFXTD Studios/Radiance/Draw

Inputs (11)

NameTypeDefaultDescription
imageIMAGE
enabledBOOLEANtrue
projectSTRING◎ Radiance_PRO
shotSTRINGSH_010
frameINT10–999999
timecodeSTRING00:00:00:00
positionCOMBO5 options: Bottom Bar (Slate), Top Left, Top Right, Bottom Left, Bottom Right
font_sizeINT2010–100
opacityFLOAT0.70–1
user_textoptSTRING
report_textoptSTRING

Outputs (1)

NameTypeDescription
imageIMAGE