Wireflow is now a Claude connector.

Set it up→

Frame Extractor

Copy agent promptDownload schemaOpen in a workflowCopy link

Extract frames from a video for analysis or i2i, or pick the last frame (Frame Index -1) to chain one shot into the next

UtilityFrom 0 creditsWireflow

Input

8 fields

Result Idle

Your result will appear here.

Set your inputs, then open a workflow to create it.

Credit estimate uses the model defaults. Your workflow shows the final estimate for your inputs before you run.

Model guide

Build with Frame Extractor.

Extract frames from a video for analysis or i2i, or pick the last frame (Frame Index -1) to chain one shot into the next

Read the Frame Extractor docs

Best for

Extract frames from a video for analysis or i2i, or pick the last frame (Frame Index -1) to chain one shot into the next Use the playground to set up a single step, then open a workflow when you want to connect more tools.

Inputs explained

Video (required)
Set the video used by this model. Type: video.
Extraction Mode (optional)
Set the extraction mode used by this model. Type: text. Options: scene, scene_midpoint, uniform. Default: "scene".
Max Frames (optional)
Set the max frames used by this model. Type: number. Default: 20.
Scene Sensitivity (optional)
Set the scene sensitivity used by this model. Type: number. Default: 0.3.
Midpoint Fraction (optional)
Set the midpoint fraction used by this model. Type: number. Default: 0.8.
Frame Index (-1 = last) (optional)
Set the frame index (-1 = last) used by this model. Type: number. Default: 0.
Contact Sheet (optional)
Set the contact sheet used by this model. Type: boolean. Default: false.
Sheet Columns (optional)
Set the sheet columns used by this model. Type: number. Default: 3.

Tips before you run

Start with the default settings and change one input at a time. Keep the result you like on your board so the next step can use it.

If you add a reference file, use a link the workflow can read. Check the inputs and credit estimate on the board before starting a run.

Working with this model

Chaining shots: the last frame is the recipe

This is what the node is really for, and it is one setting.

Set Frame Index to -1 and the Frames output carries the LAST extracted frame instead of the first. Wire that into the next shot's image input and shot two starts on exactly the picture shot one ended on, so a multi-shot sequence stays visually continuous with no manual downloading, no ffmpeg, no re-uploading.

Shot 1 video  ->  Frame Extractor (Frame Index -1)  ->  Shot 2 image input
                                                        |
                                    Shot 2 video  ->  Frame Extractor (-1)  ->  Shot 3 image input

One Run Workflow drives the whole chain. Each Frame Extractor waits for the shot above it, so the frames are always taken from the clip that actually rendered rather than from a stale copy.

Negative indexes count from the end, so -2 is the second to last frame, useful when a clip ends on a fade or a black frame. Positive indexes count from the start, 0 being the first. An index past either end clamps to the nearest frame rather than failing.

Frames and All Frames are two different outputs

  • Frames (IMAGE) is ONE url, the frame Frame Index selected. This is the port to wire into an image-to-video model, an edit node, or anything that takes a single picture.
  • All Frames (IMAGE) is the whole extracted set as { url, type, timestamp } objects. Wire this into an array-aware consumer, such as a vision model's frames input or an Image Iterator.

Wiring All Frames where a single image was expected is the usual cause of a downstream node receiving something it cannot read.

Contact Sheet: restyle a whole shot in ONE call

Turn Contact Sheet on and the node also tiles the frames it just extracted into a single grid image, published on the Contact Sheet output.

That output is one ordinary IMAGE, so it wires straight into an edit or image-to-image model. Restyling a twelve-frame shot panel by panel is twelve calls, and because each call is independent the style drifts: the third panel comes back a slightly different palette from the first. One call over the sheet restyles every panel in the same pass, so the storyboard stays consistent, and it costs one generation instead of twelve.

Shot video  ->  Frame Extractor (Contact Sheet on)  ->  Contact Sheet  ->  image edit model

Sheet Columns sets the grid width; the rows follow from how many frames came back. Panels read left to right, top to bottom, in exactly the order All Frames carries, so panel three is frame three. The sheet is built from the frames the current mode already selected. It never runs a second extraction, and it never returns different frames from the ones on All Frames.

Leave it off and nothing changes: the extraction behaves exactly as it did before this existed, and the Contact Sheet output stays empty.

Modes, and how many frames you actually get

Max Frames is a ceiling, not a target.

  • Scene Detect (default) samples one frame per detected cut. A talking head with no cuts returns very few, so the node automatically retries at a fixed interval when scene detection finds fewer than five.
  • Scene 80% takes one frame at 80 percent through each scene, which catches the settled state of an animated or composed shot instead of its first frame mid-transition.
  • Uniform ignores scenes and spaces the frames evenly across the clip. Use it when you want predictable timestamps.

Sensitivity only applies to the two scene modes. Lower means more sensitive, so more cuts are detected and more frames come back.

It does not auto-run

Frame Extractor calls a server-side extraction service, so it is run-gated like any node that reaches out: press Extract Frames on the card, or include it in a Run Workflow. It never fires by itself when something upstream changes, and its result stays cached until you run it again.

When it refuses

The node fails loudly rather than handing you a blank image:

  • Extraction returned zero frames (a black or ultra short clip). Try Uniform mode or raise Max Frames.
  • Frame Index is not a number. This one is only reachable through the API or an agent writing config directly; -1 is the value you want for the last frame.
  • Contact Sheet is on and the extraction produced nothing to tile. The run fails rather than handing back an empty sheet output, because a sheet output that silently reaches nothing is worse than a refusal you can read.
  • The sheet would be taller than 8192 pixels, which means many frames at few columns. The message tells you the smallest column count that fits, or, if none does, how many frames will.

Common questions

How do I use Frame Extractor on Wireflow?

Set the inputs above and choose Open in a workflow. Sign in to save your board, then check its credit estimate before you run.

Can I use Frame Extractor through an API?

Yes. Save a workflow with this model, then call the Wireflow run API with its workflow ID. The API tab has examples you can copy.

What changes the credit price?

The price shown uses the model defaults. Your inputs and model settings can change the total. The workflow shows an estimate before you run.

Can I connect this to another model?

Yes. Open it in a workflow and connect its output to another node with a matching input type.