Skip to content
FLORA DocsGo to app

Iterate on favorites

Use prior outputs as inputs to explore variations of the ones you like.

After generating a grid, the most natural next move is “more like #4 and #7.” FLORA MCP makes this trivial: the outputs of one execute call become the inputs of the next, all in the same chat.

Prerequisite: You’ve already run a Technique and have outputs in the conversation. Start with Discover and run if not.

Love #4 and #7. Can you make 5 more variations of those? Same visual direction, but explore composition and copy.

  1. Resolve your references

    The agent knows #4 and #7 are specific outputs from the previous run. It pulls their URLs from the chat context.

  2. Submit the run with image references

    The agent calls client.techniques.runs.create(techniqueId, { inputs: [...] }) again, this time passing #4 and #7 as imageUrl inputs (or whichever input name your Technique uses for visual anchors), plus a directive to “explore composition and copy” and a count of 5.

  3. Render new grid inline

    A new grid appears, anchored to the visual direction of #4 and #7 but exploring the requested variation axis.

Locking in the visual direction from #4 and #7, exploring composition and copy.

[5 new thumbnails render progressively]

The original 3×3 grid is still in scroll. You can compare side by side without leaving the chat.

  • “Make 10 more like #2, but pushing harder on the brand “warm minimalism” direction.”
  • “Use #1 as the layout reference and #5 as the color reference. Generate 6 combinations.”
  • “Try #4 again but with the headline from the brief instead of placeholder copy.”

The more specific the directive, the better. The Technique decides which input slots accept image references vs text — the agent figures it out from client.techniques.retrieve(techniqueId) schema.

From the previous run the agent already knows:

  • #4https://ik.imagekit.io/flora/run_abc.../output_3.png
  • #7https://ik.imagekit.io/flora/run_abc.../output_6.png

It submits a new execute call referencing those URLs directly:

async function run(client) {
const run = await client.techniques.runs.create("tech_thumbnail_v3", {
inputs: [
{ id: "brief", type: "text", value: "...original brief..." },
{ id: "image_reference_1", type: "imageUrl", value: "https://ik.imagekit.io/flora/run_abc.../output_3.png" },
{ id: "image_reference_2", type: "imageUrl", value: "https://ik.imagekit.io/flora/run_abc.../output_6.png" },
{ id: "directive", type: "text", value: "explore composition and copy" },
{ id: "count", type: "text", value: "5" },
],
});
let result;
do {
result = await client.techniques.runs.retrieve(run.run_id, { techniqueId: "tech_thumbnail_v3" });
} while (result.status === "pending" || result.status === "running");
return result.outputs; // 5 new imageUrls
}
  • Output URLs are long-lived but not permanent. Re-running a same chat days later may fail if URLs expire — re-generate the favorites or upload them as assets first.
  • If results drift too far from your favorites, increase the weight the agent assigns to references: “Hold the visual direction of #4 even tighter — same lighting, same composition style.”
  • This pattern composes with Techniques that don’t natively accept references: the agent can describe the favorites in text and pass that description as the prompt.