Intelligent batch processing tool for Replicate models with automatic fallback mechanisms
Project description
Replicate Batch Process
中文版 README | English | PyPI Package
Intelligent batch processing tool for Replicate models with automatic fallback mechanisms and concurrent processing.
✨ Key Features
- 🔄 Intelligent Fallback System - Automatic model switching on incompatibility
- ⚡ Smart Concurrency Control - Adaptive rate limiting and batch processing
- 🎯 Three Usage Modes - Single, batch same-model, and mixed-model processing
- 📝 Custom File Naming - Ordered output with correspondence control
- 🛡️ Error Resilience - Comprehensive retry and recovery mechanisms
📦 Installation
pip install replicate-batch-process
🚀 Quick Start
1. Initialize Environment
# Set up API keys (first time only)
replicate-init
2. Single Image Generation
from main import replicate_model_calling
file_paths = replicate_model_calling(
prompt="A beautiful sunset over mountains",
model_name="black-forest-labs/flux-dev",
output_filepath="output/sunset.jpg"
)
3. Batch Processing
import asyncio
from intelligent_batch_processor import intelligent_batch_process
files = await intelligent_batch_process(
prompts=["sunset", "city", "forest"],
model_name="black-forest-labs/flux-dev",
max_concurrent=8
)
🔄 Intelligent Fallback System
Automatic model switching when issues arise:
Reference Image Auto-Detection
# User provides reference image to non-supporting model
replicate_model_calling(
prompt="Generate based on this image",
model_name="black-forest-labs/flux-dev", # Doesn't support reference images
input_image="path/to/image.jpg" # → Auto-switches to flux-kontext-max
)
Parameter Compatibility Handling
# Unsupported parameters automatically cleaned and model switched
replicate_model_calling(
prompt="Generate image",
model_name="black-forest-labs/flux-kontext-max",
guidance=3.5, # Unsupported parameter
num_outputs=2 # → Auto-switches to compatible model
)
API Error Recovery
Automatic fallback chain: Flux Dev → Qwen Image → Imagen 4 Ultra
📋 Usage Scenarios
| Mode | Use Case | Command |
|---|---|---|
| Single | One-off generation, testing | replicate_model_calling() |
| Batch Same | Multiple prompts, same model | intelligent_batch_process() |
| Mixed Models | Different models/parameters | IntelligentBatchProcessor() |
🧠 Smart Processing Strategies
The system automatically selects optimal processing strategy:
- Immediate Processing: Tasks ≤ available quota → Full concurrency
- Window Processing: Tasks ≤ 600 but > current quota → Wait then batch
- Dynamic Queue: Tasks > 600 → Continuous processing with queue management
⚙️ Configuration
API Keys
Get your Replicate API token: replicate.com/account/api-tokens
Custom Fallback Rules
Modify config.py:
FALLBACK_MODELS = {
'your-model': {
'fail': {
'fallback_model': 'backup-model',
'condition': 'api_error'
}
}
}
📊 Rate Limiting
- Replicate API: 600 requests/minute (shared across all models)
- Recommended Concurrency: 5-8 (conservative) to 12 (aggressive)
- Auto-Retry: Built-in 429 error handling with exponential backoff
💡 Best Practices
# For large batches, use chunking
def process_large_batch(prompts, chunk_size=50):
for chunk in chunks(prompts, chunk_size):
files = await intelligent_batch_process(chunk, model_name)
yield files
# Error handling
for result in results:
if result.success:
print(f"✅ Generated: {result.file_paths}")
else:
print(f"❌ Failed: {result.error}")
🏗️ Project Structure
replicate-batch-process/
├── main.py # Single image generation
├── intelligent_batch_processor.py # Batch processing engine
├── config.py # Model configurations & fallbacks
├── init_environment.py # Environment setup
└── example_usage.py # Complete examples
🔧 Development
# Clone repository
git clone https://github.com/preangelleo/replicate_batch_process.git
# Install in development mode
pip install -e .
# Run examples
python example_usage.py
📄 License
MIT License - see LICENSE file for details.
🤝 Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
🔗 Links
- PyPI: https://pypi.org/project/replicate-batch-process/
- GitHub: https://github.com/preangelleo/replicate_batch_process
- Issues: https://github.com/preangelleo/replicate_batch_process/issues
Made with ❤️ for the AI community
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 replicate_batch_process-1.0.1.tar.gz.
File metadata
- Download URL: replicate_batch_process-1.0.1.tar.gz
- Upload date:
- Size: 59.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.23
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fd58487464ddb383d7baf0ad9b025e5fe21cb531006cc12c737a4a9e9d597f2c
|
|
| MD5 |
73532d70247cb33371d55042a2558303
|
|
| BLAKE2b-256 |
c0bb3a456d8fd4ac72fbcd1e9cc0815323cab84f01bb25b414c23ba758506b28
|
File details
Details for the file replicate_batch_process-1.0.1-py3-none-any.whl.
File metadata
- Download URL: replicate_batch_process-1.0.1-py3-none-any.whl
- Upload date:
- Size: 33.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.23
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
17a9a03c4a8eda84e2257d08a4a444f2b23fdf141f06b09c5bdf3d59d60fed7a
|
|
| MD5 |
16527e0e39ecd11a7a731e2d1863a8fe
|
|
| BLAKE2b-256 |
92f7dbb39fa6d142e787de2e788bf83a59f34d3203e7f3422d7896a0a9c90751
|