Skip to content
FLORA

How do I batch generate product images from a spreadsheet?

FLORA Team

Save the spreadsheet as a CSV, write one prompt template with a slot for each column, and ask a coding agent with the FLORA MCP to fill the template for every row. FLORA runs up to 20 images in one call. Our five-row run of stoneware mugs finished in 44 seconds and cost $0.275.

Key takeaways

  • One flora_create_generations call takes up to 20 rows, and every row runs at the same time.
  • Five product images from a five-row CSV cost $0.275 with GPT Image 2.5 Flare, $0.055 each.
  • The whole batch finished 44 seconds after it was sent, about as long as a single image.
  • A fixed template keeps light, background and framing the same, so the set reads as one shoot.
  • FLORA's flora-batch-generate skill handles the loop, polling and per-row failures for you.

At a glance

What it doesTurns each spreadsheet row into one product image
Works inClaude Code, Cursor, Codex, or Claude with a pasted list
ModelsAny FLORA image model; GPT Image 2.5 Flare in our run
InputsA CSV with one row per product, plus one prompt template
OutputsOne PNG per row, saved to a FLORA canvas
Typical cost$0.055 per GPT Image 2.5 Flare image
Typical timeAbout 45 seconds for a batch of up to 20

What you need

Key features

  • Batches of 20: One call submits up to 20 generations, and they run in parallel.
  • One status check: flora_list_generations reads every run in the batch in a single call.
  • Per-row failures: Each row reports its own result, so one failed row never reruns the whole batch.
  • Quotes in dollars: Ask for a quote and FLORA prices every row before anything runs.
  • Canvas record: Every image is saved with the exact prompt its row produced.

Best for

  • Catalog and marketplace images for a product line
  • Color, finish or size variants of one product
  • Seasonal refreshes where only the setting changes
  • Localized sets where one column holds the market

Step by step

  1. Step 1: Put one product per row

    Export the sheet as CSV. Keep a column for each thing that changes between images, such as the product name, the color and the surface it sits on. Add a SKU column so you can match each image back to its row later.

    sku,product,glaze,surface
    MUG-12-OAT,12 oz stoneware mug,speckled oat,a pale oak shelf
    MUG-12-SAGE,12 oz stoneware mug,sage green,folded grey linen
    MUG-16-CHAR,16 oz stoneware mug,charcoal matte,a slate tile
    POUR-OAT,small ceramic pour-over cone,speckled oat,a pale oak shelf
    ESP-8-RUST,8 oz espresso cup,rust red,warm travertine
  2. Step 2: Write one template for the whole set

    Fix everything that should match across the set: light direction, color treatment, framing, background space and what to leave out. Put the column names in braces where the row values go.

    Product photo of a {product} in a {glaze} glaze, on {surface}. Soft daylight from the left, muted natural color, true-to-life texture, plenty of negative space, centered, no text, no logo.
  3. Step 3: Hand both to the agent

    Ask the agent to read the CSV, fill the template for each row and send every row to FLORA in one call. Name the model and the settings so they stay the same across the set. If you want a price first, ask for a quote.

    Read products.csv. For each row, fill this template and generate one 1:1 image with FLORA using GPT Image 2.5 Flare at 1K, all rows in one batch. Then poll until every row is done and list each SKU with its image URL and cost.
  4. Step 4: Check the set together

    Open the FLORA canvas and look at the images side by side. Fix a row that drifted by rerunning only that row with a tighter prompt. Write the image URLs back into a new column of the spreadsheet so the sheet stays the source of record.

What happened when we batch generated product images in FLORA?

On October 16, 2026, we ran the five-row CSV above from Claude Code through the FLORA MCP. The agent filled the template once per row and made a single flora_create_generations call with five items, each with model t2i-gpt-image-2-5-flare, aspect_ratio 1:1, quality high and resolution 1k. It tagged the call with the flora-batch-generate skill.

It then read all five run ids with one flora_list_generations call. The fastest image finished in 38 seconds and the last in 44 seconds after the batch went out. Each image cost $0.055, so the set cost $0.275. Every image came back at 1024 x 1024 pixels.

The set holds together: soft daylight from the left on all five, a pale wall behind, and the product centered with room around it. Glazes came out as named, with visible speckle on the oat pieces and a matte surface on the charcoal mug.

What went wrong: the model added small props we did not ask for, a sprig of greenery and a stack of books beside the oat mug. For a strict catalog set, add "no props, nothing else in frame" to the template and rerun only the rows that need it. The espresso cup also reads larger than 8 oz next to the mugs, because each image is framed alone; put the size in a scale cue, such as a hand or a saucer, if size matters.

A sage green glazed stoneware mug on a folded grey linen cloth against a pale grey wall in soft daylight
Row two of the CSV, MUG-12-SAGE, GPT Image 2.5 Flare raw output: sage green glaze on folded grey linen.
Rows
5
Model
t2i-gpt-image-2-5-flare
Tools called
flora_create_generations (once), flora_list_generations
Cost
$0.275 for five images
Time
44 seconds for the whole batch
From CSV row to prompt in our run
SKURow valuesWhat changed in the image
MUG-12-OAT12 oz mug, speckled oat, pale oak shelfCream speckled glaze on a light wood shelf
MUG-12-SAGE12 oz mug, sage green, folded grey linenGlossy green glaze on a linen cloth
MUG-16-CHAR16 oz mug, charcoal matte, slate tileDark matte glaze on a rough slate base
POUR-OATPour-over cone, speckled oat, pale oak shelfRibbed cone shape, same shelf as row one
ESP-8-RUST8 oz espresso cup, rust red, travertineRed glaze on warm stone

Coding agent or chat for batches: pros and cons

Pros

  • Coding agent: reads the CSV from disk and writes the image URLs back into it.
  • Coding agent: the template and the CSV live in your repo, so the next batch is one command.
  • Chat in Claude: no setup beyond the connector; paste a short list and ask for one image per line.

Cons

  • Coding agent: needs a one-time MCP install in the editor or terminal.
  • Chat in Claude: pasting more than a couple of dozen rows gets slow to review.
  • Both: rows past 20 go out as a second call, so a 100-row sheet is five batches.

How many rows can I run at once?

Up to 20 rows go out in one flora_create_generations call. For a longer sheet the agent splits it into batches of 20 and sends them one after another. Each batch ran in about the time of a single image in our test, so a 100-row sheet is roughly five batches of under a minute each with GPT Image 2.5 Flare.

How do I keep the whole set consistent?

Keep everything that should match in the template and only the product facts in the columns. Use the same model, aspect ratio and resolution for every row. If you have a real product photo, put its URL in a column and switch to an image-to-image model so the product stays exact.

  • Light: one direction and quality for every row, such as soft daylight from the left.
  • Background: name it once in the template, or make it a column if it should change.
  • Framing: centered, same aspect ratio, same amount of empty space.
  • Exclusions: no text, no logo, no props, written once in the template.

What if one row fails?

Each row comes back with its own status. Rerun only the failed or off rows; the rows that succeeded are already paid for and saved on the canvas. The flora-batch-generate skill does this bookkeeping and reports cost per row. None of our five rows failed.

Frequently asked questions

Can I do this without a coding agent?

Yes. In Claude with the FLORA connector, paste the rows into the chat and ask for one image per row. A coding agent is easier past a few dozen rows because it reads and writes the file.

How much does a batch cost?

The price of each image added together. Our five GPT Image 2.5 Flare images cost $0.055 each, $0.275 in total. Ask the agent for a quote first and FLORA returns the price per row.

Can I use my own product photos as the starting point?

Yes. Add a column with each photo's public URL or upload the files from your computer with Claude Code or Cursor, then use an image-to-image model so the product itself stays the same.

Where do the images end up?

On the FLORA canvas of the project you chose, each with its prompt. The agent also returns a URL per row, which you can write back into the spreadsheet.