AI Image Generator & Bulk Editor – Nano Banana, GPT Image avatar

AI Image Generator & Bulk Editor – Nano Banana, GPT Image

Pricing

from $3.00 / 1,000 image generateds

Go to Apify Store
AI Image Generator & Bulk Editor – Nano Banana, GPT Image

AI Image Generator & Bulk Editor – Nano Banana, GPT Image

AI image generator and bulk editor with Nano Banana (Gemini 2.5 Flash Image), Nano Banana Pro and GPT Image: text-to-image from prompts, background swap, restyle, product photos and variations from URLs, CSV or datasets. No API key.

Pricing

from $3.00 / 1,000 image generateds

Rating

0.0

(0)

Developer

Cemal Atakli

Cemal Atakli

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

3 days ago

Last modified

Categories

Share

Bulk AI Image Editor – Nano Banana & GPT Image, No API Key

Edit or generate images in bulk with Nano Banana (Google Gemini 2.5 Flash Image), Nano Banana 2 / Pro (Gemini 3 image models) and GPT Image (OpenAI). Swap product-photo backgrounds, restyle photos, create lifestyle scenes, make variations or generate new images from text, for hundreds of images at once from a list of URLs, a CSV / Google Sheet or an Apify dataset.

Each result is saved as a PNG (or JPEG/WebP) with a public link, and every image gets one dataset row: input image, prompt, result URL, size and model cost. You can export it as CSV/Excel or send it to Google Sheets.

No API key needed. The model is called through Apify's own OpenRouter Actor with your run's Apify token.

$0.003 per saved image + model cost (Nano Banana is about $0.039 per image). Failed images and refusals are free.

How you pay (two parts, both on your Apify bill)

  1. This Actor's fee: $0.003 per image saved (plus a $0.00005 start fee). Images that fail to download, model errors and safety refusals are not charged.
  2. Model cost for each call, billed by Apify to your Apify account through Apify's OpenRouter Actor (apify/openrouter) at OpenRouter's prices. Approximate costs per image on paid plans: Nano Banana (Gemini 2.5 Flash Image) ~$0.039, Nano Banana 2 ~$0.04-0.08, Nano Banana Pro ~$0.13 (1K/2K) to ~$0.24 (4K), GPT Image models are priced per token by OpenAI. Each row shows the exact modelCostUsd. Note: Apify bills OpenRouter usage on the free plan at 10x the OpenRouter price, so this Actor is best on a paid Apify plan.

To cap your spend, set a maximum cost per run in the run options. The Actor stops cleanly before it goes over.

What people use it for

  • Product photo background swap: put every product of a catalogue on a white studio backdrop, a marble counter, a beach or a seasonal scene.
  • Lifestyle and ad creatives: 3 prompts × 50 products = 150 scene variants in one run.
  • Restyle: watercolor, flat illustration, anime, vintage film, brand color palette.
  • E-commerce listings: consistent backgrounds and aspect ratios (1:1, 4:5, 16:9) for Etsy, Shopify, Amazon or marketplace feeds.
  • Text-to-image in bulk: a CSV with a prompt column (or {{title}} placeholders) produces one image per row, e.g. blog headers, social posts, mockups or thumbnails.
  • Scraper + editor pipelines: run a product scraper, pass its dataset (or {{resource.defaultDatasetId}} in an integration), and every product image is edited automatically.

Input

FieldMeaning
promptsOne or more prompts. With input images: each image × each prompt. Without: each prompt generates images. {{column}} placeholders are filled from CSV/dataset rows
imageUrlsInput image URLs (JPG, PNG, WebP, GIF...)
datasetIdsApify datasets with image URLs (column auto-detected: imageUrl, image, photo, thumbnail, displayUrl, images...)
fileUrlsCSV / XLSX / JSON files (Google Sheets, Drive, Dropbox, GitHub links work)
itemsOr paste JSON rows like {"imageUrl": "...", "prompt": "..."}
imageColumn / promptColumnOptional column names. A row's own prompt column overrides prompts
referenceImageUrlsUp to 4 images sent with every job: logo, style or background reference
model / customModelNano Banana (default), Gemini 3.1 Flash (Lite) Image, Nano Banana 2 / 2.1 / Pro, GPT-5 Image (mini), GPT-5.4 Image 2, or any OpenRouter image model ID
aspectRatio, imageSize1:1 … 21:9; 1K/2K/4K for Gemini 3 models
imagesPerPrompt1-4 variations per job
outputFormatPNG (default), JPEG, WebP
maxImages, concurrencyLimits (default 20 images, 4 in parallel)

Example: white background for a product list

{
"imageUrls": ["https://example.com/products/mug.jpg", "https://example.com/products/lamp.jpg"],
"prompts": ["Replace the background with a clean white studio backdrop and a soft natural shadow. Keep the product exactly as it is."],
"aspectRatio": "1:1"
}

Example: 3 scenes per product from a Google Sheet

{
"fileUrls": ["https://docs.google.com/spreadsheets/d/YOUR_SHEET_ID/edit"],
"imageColumn": "photo",
"prompts": [
"Place this {{title}} on a sunlit wooden kitchen table, photorealistic",
"Place this {{title}} on a marble bathroom counter with plants",
"Place this {{title}} in a cozy Christmas scene with warm lights"
],
"aspectRatio": "4:5",
"maxImages": 300
}

Example: text-to-image from prompts

{ "prompts": ["Flat illustration of a robot watering plants, pastel colors"], "imagesPerPrompt": 4, "aspectRatio": "16:9" }

Output

One row per image. The Images view shows the input and result as thumbnails.

{
"jobIndex": 1,
"imageUrl": "https://api.apify.com/v2/key-value-stores/<run store>/records/img-00001-place-this-exact-mug-on-a-sunlit-2c41a9.png",
"inputImageUrl": "https://upload.wikimedia.org/.../1280px-Coffee_Mug_%28Unsplash%29.jpg",
"prompt": "Place this exact mug on a sunlit wooden kitchen table ...",
"variant": 1,
"model": "google/gemini-2.5-flash-image",
"width": 1344, "height": 768, "format": "png", "bytes": 1650231,
"promptTokens": 1301, "completionTokens": 1290, "modelCostUsd": 0.0393,
"status": "ok", "error": null
}

Failed jobs have status: "error" and a readable error (e.g. Input image: HTTP 404, The model returned no image (safety refusal)), and they are not charged. The OUTPUT record has the run summary: images, errors, tokens and total model cost.

Pricing compared

This ActorTypical Nano Banana Actors on Apify
Fee per image$0.003 + model cost (~$0.042 total with Nano Banana)$0.04 to $0.26 all-in
API keynot neededsome need your own key
Batch inputURLs, CSV / Google Sheets, Apify datasets, JSONusually one prompt / a few URLs
Prompt × image matrix, {{column}} placeholdersyesrarely
ModelsNano Banana, Nano Banana 2 / Pro, GPT Image, any OpenRouter image modelusually one
Failed images / refusalsfreevaries

Responsible use: important

  • Only edit images you own or have the right to edit (your product photos, licensed or generated images).
  • No likeness / deepfake edits of real people. Do not use this Actor to create or alter images of real, identifiable people without their consent, to impersonate anyone, or to make sexual, deceptive or harmful content. The model providers' usage policies (Google, OpenAI, OpenRouter) apply, and prohibited requests are refused by the models.
  • Images generated by Gemini models carry Google's invisible SynthID watermark.

Use with AI agents (Apify MCP)

Add the Actor to Claude, ChatGPT, Cursor or any MCP client through the Apify MCP server. An agent can pass image URLs plus a prompt and get public image links back, for example: "Put these 10 product photos on a white background in 1:1 and give me the links."

FAQ

Do I need a Google, OpenAI or OpenRouter key? No. The Actor uses your run's Apify token to call Apify's OpenRouter Actor, and the model cost appears on your Apify bill.

Which model should I use? Start with Nano Banana (google/gemini-2.5-flash-image), which is fast, cheap and good at keeping the product identical. Use Nano Banana Pro for the best detail, text rendering and 2K/4K output, and GPT Image for OpenAI's style.

How long are the result links valid? Images are stored in the run's key-value store and follow your Apify data retention. Download them or copy them to your own storage if you need them long-term.

Can I combine two images? Yes. Add the second image as a reference image and describe the combination ("put the product from the first image on the background of the second").

Why did a job fail without charge? The input could not be downloaded or read, the model returned no image (often a safety refusal), or the model API failed after 4 retries. Note that model tokens already used by a refused call can still be billed by OpenRouter.

How fast is it? About 5-15 s per image per parallel slot. With the default 4 parallel requests, 100 images take about 5 minutes.