Seedance 2.5 is live — 30-second cinematic video with native audio & real-person references
n8n Image Generation: Five Product Ad Candidates Under $0.20
2026/09/03

n8n Image Generation: Five Product Ad Candidates Under $0.20

Build an n8n workflow for five product-ad candidates using a tested $0.075 batch, with bounded polling, retry budgeting, and a practical review checklist.

Five product-ad candidates can fit inside a $0.20 media-API budget. In a five-request test on September 3, 2026, Nano Banana 2 Lite returned five candidates for 75 reAPI credits, or $0.075 total. Each completed 1K image cost 15 credits. This guide turns the same request bodies into an n8n workflow you can download and adapt.

The measured run was sent directly to the API. The workflow JSON was checked for import structure, node fields, branches, and loop connections, but was not executed in a live n8n instance. Import it and attach your own credential before running it.

The $0.075 figure covers five completed API tasks, not five publish-ready ads. Retries for product drift, misspelled copy, or unsafe crops count against the same $0.20 budget.

TL;DR

  • A Reddit user reported spending almost $2 each time an n8n workflow made five product-ad creatives.[1] In this test, five completed candidates cost $0.075 through reAPI.
  • The live rate was 15 credits, or $0.015, per completed Nano Banana 2 Lite image when checked on September 3, 2026.[3]
  • A $0.20 ceiling allows 13 completed generations at that rate. After the first five, there is room for eight retries while keeping the bill at $0.195 or less.
  • Download the n8n workflow JSON. It uses a manual trigger, five briefs, asynchronous task polling, bounded status checks, and no embedded API key.
  • Download the test summary with task IDs, output URLs, recorded credits, and the cost calculation.
  • Keep legal copy, prices, coupon codes, and pixel-exact layouts outside the generated image. Let the model create the scene, then add exact text with a normal design template.

Why five completed files are not the whole cost

The starting problem came from one concrete r/n8n question. The author had an HTTP-node workflow that made five different product-ad concepts per run and said the OpenAI image calls cost almost $2. The thread listed 43 comments when checked on September 3.[1] That is an engagement signal, not a page-view count, and the comments did not establish a community-approved "best" free API.

They did expose the hidden part of the bill. One commenter said Pollinations was not good enough for their use, especially at spelling, and required many generations before they switched providers. That is one person's report, not a measured failure rate.[1]

The author of a separate r/n8n thread said reliability, latency, and predictable output mattered more than squeezing out the absolute best image. In another reply, the same author put reliability ahead of the lowest price because the workflow needed to run with little intervention.[2]

Track the following number:

cost per approved image = total generation cost / approved images

Track total generation spend against the number of images that pass review. A low unit price is not useful if most outputs need to be generated again.

The $0.20 test: one product, five different briefs

The input was a publicly accessible reAPI demo image of an unbranded, two-tone ceramic mug. Every request used that image, a 4:5 canvas, and a different ad direction. For your own workflow, use a product photo you own or are licensed to use. Nano Banana 2 Lite accepts up to ten public image URLs and returns exactly one 1K image per request; it has no n parameter, so five candidates require five tasks.[4]

Source photo of a teal-and-charcoal ceramic mug used for the five-image n8n test

Test settingValue
Test dateSeptember 3, 2026
Modelnano-banana-2-lite
EndpointPOST /api/v1/images/generations
InputOne public PNG product photo
Output requestFive separate images with aspect_ratio: "4:5"
Live unit price15 credits / $0.015 per completed image
Target API budgetLess than $0.20
Included in costCompleted image tasks
Not includedn8n hosting, storage, human review, later text compositing

The batch uses five distinct directions. Five near-duplicate studio prompts would make consistency easier, but they would reveal little about how the same product holds up across different settings.

ConceptRequired headline
Bright minimal studioMORNING, MADE BETTER.
Rainy reading nookSLOW DOWN. SIP.
Cobalt graphic layoutYOUR DESK DESERVES BETTER.
Restrained gift sceneA MUG WORTH KEEPING.
Dark glaze-detail shotFROM FIRST SIP TO LAST.

Four review conditions were defined before submission: preserve the mug's right-side handle, proportions, two-tone glaze, and surface texture; reproduce only the requested headline; show one mug; and keep both product and copy inside safe crop margins.

That rubric matters because it stops the review from changing after the images arrive. It also makes a retry actionable: you can identify the failed condition instead of asking the model to "make it better."

Results: five completed candidates cost $0.075

All five API tasks reached completed. Each response reported 15 credits of usage, for a measured total of 75 credits, or $0.075. There were no failed API tasks. No API retry was made during this completion-and-cost test.

All five files loaded successfully at 928 × 1152 pixels. That is close to the requested 4:5 shape, but it is not mathematically exact. If a destination requires fixed pixel dimensions, crop or pad after generation instead of assuming an aspect-ratio label guarantees the final dimensions.

SubmittedCompletedFailedCreditsAPI costBudget left
55075$0.075$0.125

The dated test summary records the task ID, temporary output URL, credits, and dimensions for every request. A completed task status confirms delivery, not creative approval. Review product fidelity, wording, unwanted text, and crop room separately.

ConceptStatusCreditsRecorded size
Minimal studioCompleted15928 × 1152
Rainy reading nookCompleted15928 × 1152
Cobalt graphic layoutCompleted15928 × 1152
Restrained gift sceneCompleted15928 × 1152
Dark glaze detailCompleted15928 × 1152

The model documentation warns that generated task URLs expire. Download files you approve to storage you control before placing their URLs in a catalog, CMS, or scheduled post.[4]

How much retry room does $0.20 buy?

At $0.015 per completed generation, the ceiling is 13 attempts:

13 × $0.015 = $0.195
14 × $0.015 = $0.210

That leaves eight additional attempts after the initial five. Here is the same budget viewed by retry count, assuming the final approved set contains five images:

Total generationsRetriesTotal costCost per approved image
50$0.075$0.015
61$0.090$0.018
83$0.120$0.024
105$0.150$0.030
138$0.195$0.039
149$0.210Over budget

In batch terms, five approvals from at most 13 attempts require a realized acceptance rate of about 38.5%. That is the minimum acceptance rate needed to remain under budget; it does not remove the need for product and copy review. A broken price, false product label, or mutated package can cost far more than the image call.

Pricing is time-sensitive. Check the live Nano Banana 2 Lite model page before using these figures in a customer quote or automated budget rule.

Build the n8n image generation workflow

Start with the downloadable workflow JSON, then make the following changes in your own n8n editor. n8n supports importing a workflow from a file through the editor menu.[7]

1. Create a Bearer credential

Create a reAPI key in the dashboard. In n8n, create a Generic Credential Type and choose Bearer Auth, then paste the key there. Select that credential on both HTTP Request nodes. Do not type the key into the workflow body or a Code node. Exported workflows can contain credential names and IDs, so the shared file omits the credential binding.[5]

The workflow uses a Manual Trigger. Importing it cannot start paid requests by itself. Keep it manual until you have reviewed at least one complete run.

2. Replace the demo product URL and briefs

Open Build Five Ad Briefs. The Code node returns five n8n items, each with a concept, an exact headline, a prompt, and one source_image_url. Replace the demo URL with a public JPEG, PNG, or WebP URL for your product. Base64 and data: URLs are not accepted by this image endpoint.[4]

You do not need a Loop Over Items node here. Normal n8n nodes process incoming items, so the next HTTP Request node submits one task for each of the five briefs. Add Loop Over Items only when you need deliberate batching or rate limiting.

3. Submit one image task per item

The Create Image Tasks node sends this n8n expression as JSON:

={{ {
  model: 'nano-banana-2-lite',
  prompt: $json.prompt,
  image_urls: [$json.source_image_url],
  aspect_ratio: '4:5'
} }}

The endpoint responds immediately with an id and a processing status. It does not hold the HTTP connection open until the image is finished, so a single long HTTP timeout is the wrong design.

Do not enable blind automatic retries on this POST. If the client loses the response after the server accepted the request, a second POST may create and charge for a duplicate task. Keep the returned task ID and retry the status request instead.

4. Wait, poll, and stop cleanly

After submission, the workflow waits 15 seconds and calls:

={{ 'https://reapi.ai/api/v1/tasks/' + $json.id }}

The GET node retries transport errors up to three times. The two IF nodes then handle the task state:

  1. completed goes to Successful Images.
  2. failed stops with the API error instead of silently returning an empty image URL.
  3. Any other status loops back to Wait 15 Seconds.
  4. A separate IF stops after the twentieth incomplete check, which is roughly five minutes of scheduled waiting.

n8n documents this condition-loop pattern: connect a later node back to an earlier one and use an IF node as the exit condition.[6] The limit expression uses n8n's zero-based $runIndex, so the twentieth pass is index 19.[8]

The cap is shared by this five-item batch; it is not a durable per-item retry counter. For a larger production queue, put the single-task poll sequence in a sub-workflow or persist a pollCount with each job.

5. Run once and read the output

Click Execute workflow. When tasks finish, Successful Images returns the concept, requested headline, task ID, status, credits, and image URL for each completed item. Download the files you approve to durable storage. Then record the review decision and retry only the concept that failed.

The API-layer test in this article used the same five request bodies and endpoint. n8n does not change the per-image API price, but its own cloud plan, self-hosting, storage, and staff review are separate operating costs.

Review product ads before anything is published

Do not connect Successful Images straight to Shopify, a social scheduler, or an ad account. Put a review step between generation and publication, even if it is only a spreadsheet row with an approved checkbox.

Review each candidate in this order:

  1. Product identity: Compare silhouette, handle position, colors, label, closures, buttons, and distinctive material details against the source.
  2. Copy: Check every character. Look for extra microcopy, punctuation changes, and invented logos as well as obvious spelling errors.
  3. Claim safety: Reject any unsupported benefit, price, certification, or ingredient the model inserted.
  4. Layout: Preview the actual crop used by the destination. A clean 4:5 image can still lose its headline inside a feed overlay.
  5. Artifacts: Inspect edges, shadows, reflections, repeated objects, and physically impossible joins at full size.

When a candidate fails, revise one thing. If the product drifted, strengthen the preservation sentence and simplify the scene. If the copy is wrong, do not keep paying the image model to typeset a legal disclaimer. Generate a clean scene with reserved negative space and add the exact words afterward.

For fixed-layout assets such as coupons, tickets, and gift cards, one Reddit commenter suggested programmatic rendering because the layout has to remain exact.[2] The same engineering rule is useful for prices, dates, and regulated copy: put those fields in a deterministic HTML, Canvas, SVG, or design-template layer. The image model can still supply the background or product setting.

Make a cheap workflow safe enough for production

The sample stops on a failed task and does not retry the paid POST automatically. Before scheduling it, add the controls your workload needs:

  • A spend guard before submission. Calculate items × unit price and compare it with a per-run limit. Do not rely on a monthly invoice to catch a runaway schedule.
  • Durable result storage. Copy approved output away from the temporary task URL, then store the task ID beside the permanent object URL.
  • A review state. Use pending_review, approved, and rejected rather than one vague done flag.
  • Selective retry. Resubmit only the rejected concept and save its reason, so later cost analysis can separate copy, fidelity, and layout failures.
  • A failure route. Production runs should usually place failed task IDs in a queue or table for investigation instead of terminating every unrelated item.
  • A small canary batch. Run five or ten inputs after changing the model, prompt template, source-image preprocessing, or output ratio. Current price does not guarantee current acceptance rate.

Track approved / completed by prompt template and product category, then use that acceptance rate to estimate the cost of future batches.

FAQ

Is n8n image generation free?

n8n can orchestrate the requests, but the image model and your n8n hosting may both have costs. In this test, reAPI charged $0.075 for five completed images. No claim of a permanent free image API is being made.

Why does the workflow create five tasks instead of setting n to 5?

Nano Banana 2 Lite returns exactly one 1K image per request and does not expose an n parameter. Five concepts therefore need five request items.[4]

Can I use my own product photo?

Yes. Replace source_image_url with a public HTTP or HTTPS JPEG, PNG, or WebP URL. The model accepts up to ten reference images per request, though this tutorial deliberately uses one clear anchor.

What should I do when the headline is misspelled?

For short exploratory headlines, retry once with only the exact copy and a simpler layout. For prices, coupon codes, disclaimers, dates, or any text that must be exact, remove it from the generation prompt and apply it with a normal template after the image is approved.

Should the POST node use Retry On Fail?

Not by default. A blind POST retry can duplicate a task if the first request was accepted but its response was lost. The included workflow retries the GET status request, not the paid submission.

What to measure after the first run

The API test completed five product-ad candidates for $0.075, leaving room for eight more attempts before crossing $0.20 at the rate tested. The downloadable n8n workflow uses the same request bodies and adds bounded status polling.

Keep the review step. Check the product and copy, store approved files somewhere durable, and measure cost per approved image. If exact text keeps driving retries, stop asking the image model to typeset it. Use generation for the scene and a deterministic template for the words.

References

  1. Reddit, r/n8n. Free image generation api. Posted March 20, 2026; interaction snapshot retrieved September 3, 2026. Thread and comment about spelling and repeated generations
  2. Reddit, r/n8n. Looking for Image generation APIs, I wonder what are you using in production? Posted July 13, 2026; retrieved September 3, 2026. Thread, quality and predictability reply, reliability and low-intervention reply, and programmatic-rendering comment
  3. reAPI. Nano Banana 2 Lite model page and live rate card. Retrieved September 3, 2026. reapi.ai/models/nano-banana-2-lite
  4. reAPI. Nano Banana 2 Lite API reference: request fields, one-image output, async task flow, pricing rules, and URL retention note. Retrieved September 3, 2026. reapi.ai/docs/nano-banana-2-lite
  5. n8n. HTTP Request node and HTTP Request credentials. Retrieved September 3, 2026. HTTP Request node and HTTP Request credentials
  6. n8n. Loop over data and Wait node documentation. Retrieved September 3, 2026. Loop logic and Wait node
  7. n8n. Export and import workflows. Retrieved September 3, 2026. docs.n8n.io export and import
  8. n8n. Built-in methods and variables: $runIndex. Retrieved September 3, 2026. docs.n8n.io metadata

Further reading