◎ Radiance Metadata Overlay
Radiance Metadata Overlay — burn the slate into the frame like you're delivering dailies
- image
- image
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.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| enabled | BOOLEAN | true | — |
| project | STRING | ◎ Radiance_PRO | — |
| shot | STRING | SH_010 | — |
| frame | INT | 10–999999 | — |
| timecode | STRING | 00:00:00:00 | — |
| position | COMBO | 5 options: Bottom Bar (Slate), Top Left, Top Right, Bottom Left, Bottom Right | |
| font_size | INT | 2010–100 | — |
| opacity | FLOAT | 0.70–1 | — |
| user_textopt | STRING | — | |
| report_textopt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |