Google Imagen3 Fast
Playground
Try it on WaveSpeedAI!Imagen3 Fast is Google’s top text-to-image model, creating richly detailed, beautifully lit images. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.
Features
Generate high-quality images at speed with Google Imagen 3 Fast. This optimized model delivers Google’s renowned image generation capabilities with faster processing — perfect for rapid iteration, batch generation, and everyday creative work.
Looking for maximum quality? Try Google Imagen 3 for premium output.
Why It Looks Great
- Google quality: Powered by Google’s state-of-the-art Imagen technology.
- Fast generation: Speed-optimized for rapid turnaround.
- Batch support: Generate up to 4 images per request.
- Negative prompts: Exclude unwanted elements for precise control.
- Flexible aspect ratios: Multiple format options for any use case.
- Prompt Enhancer: Built-in tool to refine your descriptions automatically.
- Reproducible results: Use the seed parameter to recreate exact outputs.
Parameters
| Parameter | Required | Description |
|---|---|---|
| prompt | Yes | Text description of the image you want to generate. |
| aspect_ratio | No | Output format: 16:9, 9:16, 1:1, 4:3, 3:4, etc. Default: 16:9. |
| num_images | No | Number of images to generate (1-4). Default: 1. |
| negative_prompt | No | Elements to avoid in the generated image. |
| seed | No | Random seed for reproducibility. Leave empty for random. |
How to Use
- Write your prompt — describe the image you want to create.
- Use Prompt Enhancer (optional) — click to automatically enrich your description.
- Set aspect ratio — choose the format that fits your needs.
- Choose number of images — generate 1-4 variations at once.
- Add negative prompt (optional) — specify elements to exclude.
- Set seed (optional) — for reproducible results.
- Run — click the button to generate.
- Download — preview and save your images.
Pricing
Flat rate per image generated.
| Output | Cost |
|---|---|
| Per image | $0.018 |
| 4 images (max batch) | $0.072 |
Best Use Cases
- Rapid Prototyping — Generate multiple variations quickly to explore ideas.
- Lifestyle & Scenes — Create authentic everyday moments and scenarios.
- Batch Generation — Produce multiple images efficiently in single requests.
- Content Creation — Generate visuals for social media, blogs, and marketing.
- Concept Exploration — Test different prompts and styles at speed.
Example Prompts
- “A couple folding laundry together in a sunlit bedroom, casual clothes, sense of routine”
- “Golden retriever playing fetch on a beach at sunset, action shot, joyful energy”
- “Cozy coffee shop corner with plants, morning light through windows, warm atmosphere”
- “Professional headshot of a smiling businesswoman, neutral background, studio lighting”
- “Minimalist workspace with laptop, succulent plant, and coffee cup, clean aesthetic”
Pro Tips for Best Results
- Use batch generation (num_images: 4) to explore variations efficiently.
- Include mood and atmosphere: “sense of routine”, “joyful energy”, “warm atmosphere”.
- Negative prompts help avoid unwanted elements: “blur”, “distortion”, “watermark”.
- Use the same seed with different prompts to maintain consistency.
- Fast mode is ideal for iteration — find your best prompt, then consider premium for finals.
- Match aspect ratio to your platform: 16:9 for YouTube, 9:16 for Stories, 1:1 for Instagram.
Notes
- Maximum 4 images per generation request.
- Fast mode prioritizes speed while maintaining Google’s quality standards.
- Processing time is optimized for rapid turnaround.
- For highest quality output, consider the standard Imagen 3 model.
Authentication
For authentication details, please refer to the Authentication Guide.
API Endpoints
Submit Task & Query Result
set -euo pipefail
export WAVESPEED_API_KEY="your-api-key"
REQUEST_BODY=$(cat <<'JSON'
{
"prompt": "A cinematic ocean wave at sunrise, highly detailed",
"aspect_ratio": "1:1",
"num_images": 1
}
JSON
)
# 1. Submit the prediction.
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
-X POST "https://api.wavespeed.ai/api/v3/google/imagen3-fast" \
-H "Authorization: Bearer ${WAVESPEED_API_KEY}" \
-H "Content-Type: application/json" \
-d "${REQUEST_BODY}")
TASK=$(printf '%s' "${SUBMIT_RESPONSE}" | jq 'if type == "object" and has("data") then .data else . end')
PREDICTION_ID=$(printf '%s' "${TASK}" | jq -r '.id // empty')
if [ -z "${PREDICTION_ID}" ]; then
printf 'Submission response did not contain a prediction id
' >&2
exit 1
fi
RESULT_URL=$(printf '%s' "${TASK}" | jq -r '.urls.get // empty')
if [ -z "${RESULT_URL}" ]; then RESULT_URL="https://api.wavespeed.ai/api/v3/predictions/${PREDICTION_ID}/result"; fi
# 2. Poll until the prediction finishes.
while true; do
RESPONSE=$(curl --silent --show-error --fail-with-body \
"${RESULT_URL}" \
-H "Authorization: Bearer ${WAVESPEED_API_KEY}")
RESULT=$(printf '%s' "${RESPONSE}" | jq 'if type == "object" and has("data") then .data else . end')
STATUS=$(printf '%s' "${RESULT}" | jq -r '.status // empty')
case "${STATUS}" in
completed) printf '%s\n' "${RESULT}" | jq '.outputs'; break ;;
failed|cancelled|timeout) printf '%s\n' "${RESULT}" | jq . >&2; exit 1 ;;
created|processing) sleep 2 ;;
*) printf 'Unexpected status: %s
' "${STATUS}" >&2; exit 1 ;;
esac
doneParameters
Task Submission Parameters
Request Parameters
| Parameter | Type | Required | Default | Range | Description |
|---|---|---|---|---|---|
| prompt | string | Yes | - | The positive prompt for the generation. | |
| aspect_ratio | string | No | 1:1 | 1:1, 16:9, 9:16, 4:3, 3:4 | The aspect ratio of the generated media. |
| num_images | integer | No | 1 | 1 ~ 4 | The number of images to generate. |
| negative_prompt | string | No | - | The negative prompt for the generation. | |
| seed | integer | No | - | - | The random seed to use for the generation. |
| enable_base64_output | boolean | No | false | - | If set to `true`, the prediction's `output` strings are returned as **naked base64** (no `data:<mime>;base64,` prefix). When `false` (default), outputs are returned as URLs pointing to our CDN. |
Response Parameters
| Parameter | Type | Description |
|---|---|---|
| code | integer | HTTP status code (e.g., 200 for success) |
| message | string | Status message (e.g., “success”) |
| data.id | string | Unique identifier for the prediction, Task Id |
| data.model | string | Model ID used for the prediction |
| data.outputs | array | Output values, usually URL strings; some models return text strings or structured result objects (empty when status is not completed) |
| data.urls | object | Object containing related API endpoints |
| data.urls.get | string | URL to retrieve the prediction result |
| data.status | string | Status of the task: created, processing, completed, or failed |
| data.created_at | string | ISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”) |
| data.error | string | Error message (empty if no error occurred) |
| data.timings | object | Object containing timing details |
| data.timings.inference | integer | Inference time in milliseconds |
Result Request Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| id | string | Yes | - | Task ID |
Result Response Parameters
| Parameter | Type | Description |
|---|---|---|
| code | integer | HTTP status code (e.g., 200 for success) |
| message | string | Status message (e.g., “success”) |
| data | object | The prediction data object containing all details |
| data.id | string | Unique identifier for the prediction |
| data.model | string | Model ID used for the prediction |
| data.outputs | array<string | object> | Array of generated outputs (empty when status is not completed). Items are usually URL strings, but may be text strings or structured result objects, depending on the model. |
| data.urls | object | Object containing related API endpoints |
| data.urls.get | string | URL to poll for the prediction result |
| data.status | string | Status: created, processing, completed, or failed |
| data.created_at | string | ISO timestamp of when the request was created |
| data.error | string | Error message (empty if no error occurred) |
| data.timings | object | Object containing timing details |
| data.timings.inference | integer | Inference time in milliseconds |