Overview
Set Metadata writes a Field Name → Value pair into the metadata container of the image passing through. The field can be a string, a number, or any serializable type.
This metadata does not change the visible image, but Fusion or Lua expressions can read it to drive downstream behavior (e.g. adjusting a Color Corrector based on a scene tag, triggering an alternative Saver based on ISO, etc.).
Where to find this node
- Effects Library:
Tools > Metadata > Set Metadata - Quick add: right-click in the Node Editor →
Add Tool > Metadata > Set Metadata
Metadata in Fusion
Every image flowing through Fusion carries a metadata dictionary (key → value). Loaders / MediaIns automatically fill in some fields (TimeCode, Filename, FrameRate, etc.) depending on the source format.
- Reading
- Through expressions:
Image.Metadata.MyField. Lets you drive a property of another node. - Persistence on output
- The Saver / MediaOut writes the metadata into the output file (depending on the format: EXR keeps it natively, MP4 only some standard fields).
- Transmission between nodes
- Metadata is passed along by default. Nodes pass it on unchanged (except Set/Copy Metadata, which change it explicitly).
Inputs
- Input (orange) - the 2D image to enrich.
Setup
Scene tag for a pipeline:
MediaIn → Set Metadata (SceneID = "SC042")
→ Color Corrector (conditional expression on SceneID)
→ MediaOut
Debug annotation:
Renderer 3D → Set Metadata (RenderTime = Time())
→ Set Metadata (Pass = "BeautyV2")
→ Saver (EXR with metadata)
Per-shot quality flag:
MediaIn → Set Metadata (QualityCheck = "approved")
→ MediaOut
Cascading Set Metadata nodes for multiple fields:
MediaIn → Set Metadata (Project = "Trailer")
→ Set Metadata (Episode = "01")
→ Set Metadata (Shot = "0042")
→ SaverControls tab
- Field Name (default: empty)
- The metadata key (any string). Common conventions: CamelCase or snake_case. Avoid spaces and special characters to prevent ambiguity with expressions.
- Field Value (default: empty)
- The associated value. Can be text, a number, or an expression (prefix
=to evaluate it dynamically). - Set Mode (default: Replace)
- Replace: overwrites the existing value. Append: appends to the existing value (useful for list-like data). Skip if Exists: only writes if the field does not exist yet.
Common fields
- TimeCode
- SMPTE timecode (HH:MM:SS:FF). Often filled in by MediaIn, can be overridden for the conform.
- Filename
- Name of the source file. Useful to identify the shot downstream (Saver template based on this field).
- FrameRate
- The effective frame rate. Retime operations may want to overwrite this field.
- Comments / Description
- Free text fields, for human annotations.
Use cases
- Tagging shots for a pipeline - add SceneID, ShotID, Episode to the stream to automate a Saver template (
{Episode}_{Shot}_v{Version}.exr). - Flagging 3D render passes - Beauty / Diffuse / Specular passes → each with metadata identifying the pass for an automatic conform in compositing.
- Debug annotation - add Time, Process, Operator to know how and when the frame was rendered.
- TimeCode override - fix a wrong TC in the source file without touching the original material.
- Conditional switch based on metadata - a Color Corrector whose values depend on a metadata field through an expression => a data-driven pipeline.
- Cataloging through an EXR Saver - EXR keeps the metadata. Third-party tools (Nuke, RV, Shotgun) can read these tags for tracking.
Tips
- Naming convention - pick an in-house prefix (e.g.
CA_*for Creator Academy) to keep your custom fields apart from the Fusion standard ones. Avoids collisions. - Several Set Metadata nodes in a row - to add several fields, chain the nodes (one per field). Easy to read and each one can be bypassed individually.
- Test with a simple expression - on a Text+ Styled Text:
=Image.Metadata.MyFielddisplays the field for a visual check. - Skip if Exists for defaults - do not overwrite an existing field when you just want to provide a default value in case it is missing.
- EXR output format for persistence - custom metadata is kept in EXR, partly in TIFF, and usually lost in MP4/MOV (except standard fields).
- Copy Metadata to transfer - to transfer the metadata from one stream to another (e.g. after a comp that starts from a plain Background), use the Copy Metadata node, not Set Metadata.
- For advanced scripting, metadata can be read/written through the Lua console:
img.Metadata.MyField = "value".
