Skip to content

Image Sequence

Plays a folder of numbered image files (render_0001.exr … render_0240.exr) as one time-based source, with a manually-set frame rate.

Category: Source Menu path: Source > ImageSequenceSource

Ports

PortTypeDirectionDescription
outimageRgba16foutputThe decoded sequence frame for the current time

Parameters

ParamTypeDefaultDescription
pathstring""Absolute path to any one frame of the sequence (a real file, e.g. …/render_0001.exr). The engine scans that file's folder to detect the numbered run — it is not a %04d pattern. PNG, JPEG, EXR, and TIFF are supported.
frameRatescalar24The frame-rate interpretation. A sequence carries no fps of its own, so this sets how fast its frames advance against composition time. When dropped onto the timeline this defaults to the composition's fps (one source frame per comp frame).
colorSpaceenumAutoHow source pixels are interpreted. Auto treats .exr/.hdr as linear and everything else as sRGB. sRGB / Linear force the choice. EXR keeps its high-dynamic-range values (not clamped to 1.0).
timeModeenumLayerComposition: frame follows the composition playhead. Layer: frame is relative to the layer's start on the timeline (default).
speedscalar1.0Playback speed multiplier. 2.0 = double speed, 0.5 = half speed. Clamped to >= 0.
reversebooleanfalsePlay the sequence backwards. Applied after looping.
startOffsetscalar0Skip ahead by this many comp-frames, interpreted at the comp's frame rate (matches VideoSource.startOffset).
loopModeenumNoneNone: holds the last frame after the sequence ends. Loop: wraps to the start. PingPong: plays forward then backward, repeating.

Expose Channels

When enabled (E button on node header), adds input ports that override params via edge connections:

PortTypeOverrides
speed_inscalarspeed
startOffset_inscalarstartOffset

How It Works

The node maps composition time onto a source frame index using the same time math as VideoSource — the only difference is that the source frame rate comes from the frameRate param instead of an embedded value. Unlike video, a sequence is random-access: the node simply resolves which numbered file the current time lands on and decodes that file with the color-managed still-image loader (so EXR/16-bit precision and HDR range survive).

The folder is scanned once to detect the numbered run: a printf pattern (e.g. render_%04d.exr), the first/last frame, and any missing frames. Missing frames use a hold-last policy — a gap renders the nearest earlier frame rather than going blank. Decoded frames live in the shared 512MB frame cache across quality levels.

The time formula is source_time = (comp_or_layer_time * speed) + (startOffset / comp_fps), then source_frame = round(source_time * frameRate), with looping and reverse applied.

Usage Examples

Basic: Add a render

  1. Import any one frame of the sequence (or shift-select all of them) — numbered files automatically collapse into a single sequence asset named like render_[0001-0240].exr.
  2. Drag the sequence asset onto the viewer or timeline to create a layer wired ImageSequenceSource -> Output, trimmed to the sequence length.
  3. Scrub the playhead to see frames advance.

Set the frame rate

A 240-frame render meant for 24fps but dropped into a 30fps comp will play too fast at the default 1:1 mapping. Set frameRate to 24 to interpret it correctly.

Reversed / looping

Enable reverse, or set loopMode to Loop/PingPong when the sequence is shorter than the layer clip so it doesn't freeze on the last frame.

Tips

  • Import collapses numbered siblings into one asset automatically; use File > Import Image Sequence… to force a single-frame file to be treated as a sequence.
  • The asset panel shows a "missing N" badge when frames are absent from the run; those gaps hold the previous frame on screen.
  • path points at a real frame, not a pattern — if you re-point it in the inspector, pick any member frame and the run is re-detected.
  • EXR and 16-bit TIFF sequences keep full precision and HDR range; set colorSpace to Linear if Auto guesses wrong for an unusual extension.
  • Defaults to Layer time mode, so the sequence starts when the layer starts regardless of timeline position.
  • VideoSource -- same time controls for an encoded video file
  • ImageSource -- a single still image (no time mapping)
  • Transform2D -- positions the frame in the composition
  • Time -- outputs frame/seconds/normalized values for driving other time-based effects

Caddis — professional motion design.