A user described a workflow that generates five product-ad creatives with the OpenAI image API. Each run costs close to USD 2. They wanted something cheaper, preferably free.
Free tiers are useful while wiring the flow. I would not build a production ad pipeline around one; limits and pricing tend to move. The useful target here is five workable drafts for well under a dollar, with no rebuild each time a different model is tested.
At the public reAPI prices checked on August 22, 2026, five 1K images cost between USD 0.12 and USD 0.15 on the four models below.
| Model | Price for one 1K image | Price for five | I would test it on |
|---|---|---|---|
| Qwen Image 3.0 Standard | USD 0.024 | USD 0.120 | Ads with headlines, prices, or a dense layout |
| Gemini 3.1 Flash Image | USD 0.028 | USD 0.140 | General ad variants and unusual aspect ratios |
| FLUX.2 Pro | USD 0.028 | USD 0.140 | Product scenes built from reference photos |
| GPT Image 2 basic | USD 0.030 | USD 0.150 | Low-cost drafts with several references |
Compared with a USD 2 run, that is a 92.5% to 94% reduction in generation spend. It is not a claim about final image quality. If the cheaper model needs six retries because it changes the bottle shape or misspells the offer, the attractive rate card stops mattering.
I would start with FLUX.2 for the original job
The Reddit question was about product ads. Product preservation matters more here than it would for a generic illustration.
Start with FLUX.2 Pro when the input includes a real product photo and the product needs to survive the edit. reAPI currently accepts up to eight reference images on this model. Give each reference one job: the product, the setting, the lighting, or the visual style. A pile of conflicting images usually produces a compromise nobody asked for.
If the ad contains a lot of text, run the same brief through Qwen Image 3.0. Standard costs the same at 1K and 2K on reAPI, while Pro is aimed at denser text and page layouts. I would use Qwen for the version that carries the headline and price, not assume that it will preserve a photographed product better than FLUX.2.
Gemini 3.1 Flash Image makes sense when one campaign needs many formats. It accepts up to 14 references, covers 0.5K through 4K, and supports very wide or tall outputs such as 8:1 and 1:8. It can return up to four images in a request, so five creatives take two requests rather than five.
GPT Image 2 basic is cheap, but it returns one image per request. The separate stable tier is the one to test when the job needs a mask, transparent background, output-format control, or several quality levels. Do not quote the USD 0.030 basic price for those features; they use a different rate card.
Five outputs do not always mean one request
The output limits matter in n8n:
| Model | Maximum outputs per request | Requests needed for five images |
|---|---|---|
| Qwen Image 3.0 | 6 | 1 |
| Gemini 3.1 Flash Image | 4 | 2 |
| GPT Image 2 basic | 1 | 5 |
| FLUX.2 | 1 | 5 |
The bill is still based on delivered images. One request that returns five images is not priced like one image.
For ad testing, I prefer five separate items in n8n even when a model supports batches. Each item can carry its own variation value, such as studio, lifestyle, close-up, seasonal, or minimal. If one generation fails, n8n can retry that item instead of repeating the whole batch.
The n8n flow can stay small
For FLUX.2 Pro, the submit request can be made with an HTTP Request node:
POST https://reapi.ai/api/v1/images/generations
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
"model": "flux-2",
"prompt": "Create a clean 1:1 product ad. Keep the bottle shape, label, logo, and cap unchanged. Place it on a pale stone counter in soft morning light. No extra text.",
"input_urls": ["https://example.com/product.jpg"],
"aspect_ratio": "1:1",
"resolution": "1K"
}
The response contains a task ID. Store it, wait a few seconds, then call the task endpoint from another HTTP Request node:
GET https://reapi.ai/api/v1/tasks/TASK_ID
Authorization: Bearer YOUR_API_KEY
If the status is still processing, send it through a Wait node and check again. On completed, save the returned image URL to Google Sheets, Airtable, Notion, or whatever already holds the campaign record.
The model pages document their own reference-image field and supported options. FLUX.2 uses input_urls; some of the other image models use image_urls. Check the request body before swapping the model ID.
Test ten real products before moving the workflow
Vendor samples are useless for this decision. Take ten products from the actual catalog and give every model the same product photo, copy, aspect ratio, and visual brief. Generate three results per product.
Record five things:
- Did the product shape, label, and logo stay intact?
- Is every required word correct?
- Did the image obey the requested ratio and composition?
- How many results passed without manual repair?
- How long did a person spend fixing each accepted result?
Then calculate the number that belongs in the budget:
cost per accepted image = total generation spend / accepted images
If FLUX.2 costs USD 0.028 but only half the images pass, its generation cost per accepted image is already USD 0.056. Add the time spent repairing labels and the ranking may change again.
A note about putting text inside ads
Image models have improved at spelling, but a generated price or disclaimer can still be wrong. For a campaign with fixed legal copy, generate the product scene without text and add the final words in HTML, Canva, Figma, or another deterministic layout step.
Let the model handle text only when the typography is part of the concept and someone will review every output. A wrong shadow is a design issue. A wrong discount can become a customer-support issue.
What I would put in the first n8n run
For the workflow in the Reddit post, my first test would be FLUX.2 Pro at 1K, five separate jobs, using the original product photo as a reference. I would test Qwen Image 3.0 alongside it if the creative needs a headline inside the image. Gemini is the fallback for format-heavy campaigns, and GPT Image 2 stable belongs in the test when masks or transparent output are required.
That gives the workflow a realistic starting batch cost of roughly USD 0.12 to USD 0.15 before retries, rather than close to USD 2. The decision after that belongs to the ten-product acceptance test, not the cheapest row in a pricing table.
Prices and capabilities were checked on August 22, 2026. They can change.
Sources:
- reAPI, Qwen Image 3.0: https://reapi.ai/models/qwen-image-3
- reAPI, Gemini 3.1 Flash Image: https://reapi.ai/models/gemini-3-1-flash-image-preview
- reAPI, FLUX.2: https://reapi.ai/models/flux-2
- reAPI, GPT Image 2: https://reapi.ai/models/gpt-image-2
- n8n, HTTP Request node: https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/