Skip to content
FLORA DocsGo to app

Stills to motion

Branch from one Technique into another, carrying selected outputs as inputs.

Once you’ve nailed the stills, branch into a different Technique using the winners as keyframes — without losing context. This is where FLORA MCP starts paying for itself: fast iteration in chat, then background mode for the longer-running motion work.

Prerequisite: A set of approved stills from Discover and run or Iterate on favorites.

Take the winners and run them through the Social Motion Technique. I need 3-second loops for IG.

  1. Switches to background mode

    Motion generation takes longer than stills. Most agents propose moving the task to a background panel — Claude calls this Cowork, Cursor calls it an agent run, and so on. The task runs while you keep working in chat.

  2. Finds and inspects the motion Technique

    The agent calls client.techniques.list() to find the Social Motion Technique, then client.techniques.retrieve(techniqueId) to read its inputs. It expects keyframes as imageUrl inputs and accepts duration and loop parameters.

  3. Submits one run per chosen still

    The agent calls client.techniques.runs.create(techniqueId, { inputs: [...] }) for each chosen still, passing the output URL as a keyframe. The background panel displays the task: “Generating motion versions of 5 thumbnails.”

  4. Polls each run for results

    The agent calls client.techniques.runs.retrieve(runId, { techniqueId }) to poll each run. Inline MP4 previews start playing on autoplay-loop as each one finishes, labeled with the source thumbnail number.

A task panel appears with progress per run. As each motion version finishes, it pops into the chat as a short looping MP4, tagged “from #4”, “from #7”, and so on. Click any one to open it full-size or download.

You didn’t re-describe the brand direction, the brief, or your favorites. The Social Motion Technique didn’t need to know any of that — the agent just passed the chosen output URLs as keyframes. The Technique system handles the rest.

This is the part that’s hard with single-shot generative MCPs. With FLORA, your choice of favorites doesn’t get lost when you switch from stills to motion.

  • “Run only #4 through Social Motion — 3 seconds, loop. And #7 through the Hero Motion Technique — 6 seconds, no loop.”
  • “Use #4 as the start frame and #7 as the end frame for a single morphing loop.” (Requires a Technique that accepts paired keyframes.)
  • “Generate the motion versions in 9:16 vertical for IG Stories.” (Most motion Techniques expose an aspect ratio input.)
async function run(client) {
// Find the motion Technique
const { techniques } = await client.techniques.list({ query: "social motion" });
const technique = await client.techniques.retrieve(techniques[0].technique_id);
// One run per chosen still, submitted in parallel
const chosenUrls = ["<url for #4>", "<url for #7>"]; // ...etc
const runs = await Promise.all(
chosenUrls.map(url =>
client.techniques.runs.create(technique.technique_id, {
inputs: [
{ id: "keyframe", type: "imageUrl", value: url },
{ id: "duration_seconds", type: "text", value: "3" },
{ id: "loop", type: "text", value: "true" }
]
})
)
);
// Poll each run independently
for (const run of runs) {
let status;
do {
status = await client.techniques.runs.retrieve(run.run_id, {
techniqueId: technique.technique_id
});
} while (status.status !== "completed" && status.status !== "failed");
console.log(status.outputs);
}
}

| | Inline chat | Background mode | | --- | --- | --- | | Run time | Seconds to ~30s | Anything longer | | Inline rendering | Yes | Yes, when ready | | Keep working in parallel | Blocked while polling | Unblocked | | Best for | Discovery, iteration, single runs | Motion, batches, anything >30s | | Examples by client | Default chat | Claude Cowork, Cursor agent runs, VS Code agent mode |

Most clients auto-pick background mode for longer tasks. You can override: “Do this inline — I want to watch it.”

  • For consistent motion across a set, run all keyframes through the same Technique in one batch — don’t mix Techniques mid-set.
  • Motion Techniques cost more per run than stills. Confirm run_cost (USD) via client.techniques.retrieve(techniqueId) before kicking off a big batch.
  • Save approved motion outputs to a Project (client.projects.assets.attachAsset(...)) so they show up in FLORA’s canvas alongside the stills.