Bulk AI product image generator powered by Google Gemini. Generate 1000s of e-commerce product photos with different backgrounds, angles, and lighting — from a single reference image.
Project description
🖼️ BulkImg
Generate 1000s of e-commerce product photos with AI — from a single reference image.
BulkImg uses Google's Gemini API to automatically create professional product photos with different backgrounds, angles, placements, and lighting. Perfect for sellers on Meesho, Amazon, Shopify, Etsy, and more.
✨ Features
- 🎯 One image in, hundreds out — Upload one product photo, get hundreds of variations
- 🎨 Custom backgrounds — White studio, marble, wood, pastel colors, kitchen scenes, etc.
- 📐 Multiple angles — Front view, top-down, 45°, close-up
- 💡 Lighting variations — Studio, natural daylight, dramatic, high-key
- 🔄 Auto-resume — Interrupted? Just run again, it picks up where it left off
- 💾 Save & reuse configs — Set up once, generate forever
- 📦 Quality control — Choose PNG/JPEG, resize, set compression
- ⏰ Rate limit handling — Automatically waits and retries when hitting API limits
🚀 Quick Start
Install
pip install bulkimg
Get a Gemini API Key
- Go to aistudio.google.com/apikey
- Create a new API key
- Important: Set up billing on the project (free tier gives 500 images/day)
Run
bulkimg
That's it! The interactive wizard walks you through everything:
____ _ _ ___
| __ ) _ _| | | _|_ _|_ __ ___ __ _
| _ \| | | | | |/ /| || '_ ` _ \ / _` |
| |_) | |_| | | < | || | | | | | (_| |
|____/ \__,_|_|_|\_\___|_| |_| |_|\__, |
|___/
📋 SETUP — Answer a few questions to get started
── Step 1: Gemini API Key ──
API Key: AIzaSy...
── Step 2: Product Image ──
Path to your product image [product.jpg]: my_product.png
── Step 3: Describe Your Product ──
Product description: a manual food chopper with mint green handle
── Step 4: Output Settings ──
How many images to generate? [100]: 500
── Step 7: Backgrounds ──
Enter comma-separated values, or one per line.
> white marble, wooden table, pastel pink, kitchen counter
...
Run with a saved config
# First run saves a config file
bulkimg
# Reuse it later
bulkimg bulkimg_config.json
Run as a cron job (daily generation)
# Generate 400 images per day until target is reached
crontab -e
# Add this line (runs at 2 AM daily):
0 2 * * * cd /path/to/project && /path/to/venv/bin/bulkimg bulkimg_config.json >> cron_log.txt 2>&1
📋 Config File
After the first run, your config is saved as bulkimg_config.json. You can edit it directly:
{
"api_key": "YOUR_KEY",
"product_image": "product.jpg",
"product_description": "a manual food chopper with mint green handle",
"output_folder": "generated_images",
"total_images": 1000,
"delay_seconds": 10,
"output_format": "JPEG",
"output_size": 800,
"jpeg_quality": 70,
"model": "gemini-2.5-flash-image",
"backgrounds": [
"clean white studio background",
"white marble countertop",
"wooden kitchen table"
],
"placements": [
"product standing upright",
"product held in a hand"
],
"angles": [
"front view, eye level",
"45-degree angle"
],
"lighting": [
"soft studio lighting",
"warm natural daylight"
]
}
💰 Cost
| Method | Cost | Images/Day |
|---|---|---|
| Free tier (with billing enabled) | $0 | ~500 |
| Paid (gemini-2.5-flash-image) | ~$0.039/image | Unlimited |
| Paid (gemini-3-pro-image-preview) | ~$0.134/image | Unlimited |
Tip: With the free tier, you can generate ~500 images/day. Set up a cron job and get 1000 images in 2 days for $0.
🛠️ Requirements
- Python 3.9+
- Google Gemini API key (get one here)
- Billing enabled on Google Cloud project (free tier is fine)
📄 License
MIT — use it however you want.
🤝 Contributing
PRs welcome! Ideas for improvement:
- Support for multiple reference images
- Web UI
- Batch API support (50% cheaper, 24h processing)
- Template presets (food products, electronics, fashion, etc.)
- Auto-upload to marketplace (Meesho, Amazon, Shopify)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bulkimg-1.0.0.tar.gz.
File metadata
- Download URL: bulkimg-1.0.0.tar.gz
- Upload date:
- Size: 11.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
15c1053e782c581137d1715170fdc2aacdeb454ae0fde8bc61011b0f0d165550
|
|
| MD5 |
6133b000a2ffd7d8aa185ab5e01ebf7f
|
|
| BLAKE2b-256 |
136795750f311d13fa853ef2b4ab7342fc9a495aea2e6a2fd4b5da6bab785700
|
File details
Details for the file bulkimg-1.0.0-py3-none-any.whl.
File metadata
- Download URL: bulkimg-1.0.0-py3-none-any.whl
- Upload date:
- Size: 10.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
794683ddca58fdd09c08917d5f97c2521431c9e4dc83c2409de45cc188d412c2
|
|
| MD5 |
d3a32a2ed1492aa1f85f7527cf3efdd4
|
|
| BLAKE2b-256 |
b7392eed9d0a7fd7288075fed63d75c8bbdc73a505bbe8d4046b262091ff9c94
|