Aller au contenu

Set Metadata Node

By Kriss Norde

Set Metadata adds or edits a key/value pair in the metadata of the image stream. The metadata travels with the image along the chain and can be read by other nodes (expressions, scripts). It lets you inject context (timecode, scene ID, custom info) that travels with the stream.

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")
       → Saver

Controls 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.MyField displays 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".