Guide
How to batch-generate product images from a CSV
Making one promotional image is easy. Making forty — each with a different product name, price and photo — is where most small teams lose an afternoon. This guide shows the repeatable version.
What you need
- A product template with the text you want to change marked as variables.
- A CSV file whose column headers match those variable names.
- Nothing else — the images are generated in your browser, not uploaded anywhere.
Steps
- Start from a templateOpen the template library and pick a layout close to what you want, or start from a blank canvas. Every element stays editable.
- Turn the text you change into variablesType a value in curly braces where the text should go —
{{title}},{{price}},{{cta}}. Each one becomes a field you fill in later. The canvas updates as you type, and long values wrap or shrink to fit rather than spilling over the edge. - Save the templateThe variables are part of the saved design, so the same layout can be reused for every future batch.
- Fill in the CSVOpen Batch create, download the sample CSV, and replace the rows with your own products. Column headers must match the variable names exactly, and no value may be empty.
- Validate and previewUpload the file. Framelet checks the headers and values, shows the first row rendered on your template, and lists the first five rows as text so you can catch a swapped column before generating anything.
- Generate the ZIPExport produces one PNG per row plus a
manifest.jsondescribing what was generated, packaged as a single download.
What this workflow does not do
- One batch is limited to 50 rows, and templates have a single page — multi-page documents are not supported.
- Exports are PNG and SVG only. There is no PDF, JPEG, WebP or video output yet.
- Images are rendered by your browser. Nothing is sent to a rendering API, an AI provider or a third-party service.
- There are no scheduled runs, webhooks or CSV-to-API integrations in this version.
Try it with one product first
Make the template, run a two-row CSV, and check the output before committing to a full batch.
Open the editor — no sign-up needed