# provider-replicate/image-generation (State-of-the-Art Image Generation) You can run this example with: ```bash npx promptfoo@latest init --example provider-replicate/image-generation cd provider-replicate/image-generation ``` This example demonstrates state-of-the-art image generation using Replicate's latest models, particularly the FLUX family from Black Forest Labs. ## Features This example tests: - **FLUX 1.1 Pro Ultra** - The highest quality model supporting up to 4MP images - **FLUX 1.1 Pro Ultra (Raw Mode)** - For authentic, photorealistic results - **FLUX Dev** - Open-source version for commercial use - **FLUX Dev Realism** - Specialized for photorealistic outputs - **Stable Diffusion XL** - For comparison with previous generation ## Environment Setup 1. Get a Replicate API token from https://replicate.com/account/api-tokens 2. Set the environment variable: ```bash export REPLICATE_API_TOKEN=r8_your_token_here ``` ## Running the Example ### Full Test Suite (8 different image types across 5 models = 40 images) ```bash promptfoo eval ``` ### Quick Test (2 images with the best model) ```bash promptfoo eval --filter-providers flux-1.1-pro-ultra --max-concurrency 1 ``` ### Test Specific Image Types ```bash # Test only portraits promptfoo eval --filter-tests "Photorealistic portrait" # Test only landscapes and architecture promptfoo eval --filter-tests "landscape|architecture" ``` ## Image Types Tested 1. **Photorealistic Portrait** - Professional headshots 2. **Artistic Landscape** - Traditional painting style 3. **Architectural Visualization** - Modern building photography 4. **Product Photography** - Commercial product shots 5. **Abstract Art** - Expressionist paintings 6. **Science Fiction** - Cyberpunk cityscapes 7. **Food Photography** - Culinary presentation 8. **Wildlife Photography** - Nature and animals ## Model Comparison | Model | Best For | Speed | Cost | Resolution | | ------------------------ | --------------- | ------ | ------------- | ---------- | | FLUX 1.1 Pro Ultra | Highest quality | Fast | $0.06/image | Up to 4MP | | FLUX 1.1 Pro Ultra (Raw) | Photorealism | Fast | $0.06/image | Up to 4MP | | FLUX Dev | General use | Medium | ~$0.02/image | 1024x1024 | | FLUX Dev Realism | Photorealistic | Medium | ~$0.028/image | 1024x1024 | | SDXL | Artistic styles | Fast | ~$0.01/image | 1024x1024 | ## Configuration Options You can customize generation parameters: ```yaml providers: - id: replicate:image:black-forest-labs/flux-dev config: width: 1344 # Image width height: 768 # Image height num_outputs: 1 # Number of images to generate guidance: 3.5 # How closely to follow the prompt (1-20) num_inference_steps: 28 # Quality vs speed tradeoff output_format: 'png' # png, webp, or jpg seed: 42 # For reproducible results ``` ## Important: Image URL Expiration :::warning **Replicate image URLs expire after approximately 24 hours.** To preserve generated images, use the included `save-images.js` hook that automatically downloads all images during evaluation. ::: ## Automatic Image Downloads This example includes a `save-images.js` hook that automatically downloads all generated images to an `images/` directory. To enable it: ```yaml # Add to any config file extensions: - file://save-images.js:hook ``` Or run with the included configuration: ```bash promptfoo eval -c promptfooconfig-with-download.yaml ``` Downloaded images will be saved as: - `images/flux-dev-red-apple-on-a-white-table-2025-07-28T12-30-45.png` - `images/sdxl-portrait-of-elderly-man-2025-07-28T12-31-02.png` ## Tips 1. **For best quality**: Use FLUX 1.1 Pro Ultra 2. **For photorealism**: Use FLUX 1.1 Pro Ultra with `raw: true` 3. **For commercial use with downloaded weights**: Use FLUX Dev 4. **For artistic styles**: SDXL often performs better than FLUX 5. **Always download images** if you need them later - URLs expire! ## Viewing Results After running the evaluation: 1. Check the terminal for immediate results 2. Open the generated web UI for visual comparison 3. Images are displayed inline with markdown formatting ## Cost Estimation Running the full test suite (40 images) costs approximately: - FLUX 1.1 Pro Ultra: 16 images × $0.06 = $0.96 - FLUX Dev models: 16 images × ~$0.025 = $0.40 - SDXL: 8 images × $0.01 = $0.08 - **Total: ~$1.44** ## Troubleshooting 1. **Rate limits**: Replicate has rate limits. Use `--delay 1000` to add delays between requests or `--max-concurrency 1` to run sequentially 2. **Timeouts**: Some models take 20-30 seconds on first run (cold start). The provider handles polling automatically 3. **API errors**: Ensure your Replicate API token is valid and has credits 4. **Model not found**: Check the model ID matches one from https://replicate.com/explore