Image Zoom Out
Playground
Try it on WavespeedAI!Professional AI model that generates zoomed-out and outpainted images by expanding an input photo beyond its original frame. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.
Features
WaveSpeedAI — AI Image Zoom-Out
The AI Image Zoom-Out model seamlessly expands the visible area of any photo or artwork. Using WaveSpeedAI’s high-fidelity diffusion outpainting engine, it intelligently reconstructs what lies beyond the frame — maintaining realistic lighting, perspective, and artistic consistency.
⚙️ Key Features
-
Intelligent Outpainting
Extends the canvas naturally with accurate context prediction and realistic scene continuation. -
High-Resolution Support
Handles up to 4K output while maintaining detail coherence and smooth color gradients. -
Context-Aware Composition
Preserves perspective, object integrity, and visual storytelling. -
Multiple Aspect Ratios
Choose how far to zoom out — from subtle framing to wide cinematic compositions. -
Fast Inference
Optimized for WaveSpeedAI’s acceleration clusters for rapid, artifact-free results.
💡 Recommended Use Cases
- Expanding AI-generated portraits or landscapes
- Framing close-up photos into wider compositions
- Creating cinematic storyboards or thumbnails
- Preparing content for print, poster, or wallpaper formats
💰 Pricing
Each run costs $0.016 — pay only for the images you expand.
📝 Notes
- Works best when the original image has clear subject boundaries and context.
- For creative scene re-imagining or large-area completions, try the Ultimate Image Eraser for more flexible reconstruction control.
- Output can be saved in JPEG, PNG, or WEBP format.
Authentication
For authentication details, please refer to the Authentication Guide.
API Endpoints
Submit Task & Query Result
# Submit the task
curl --location --request POST "https://api.wavespeed.ai/api/v3/wavespeed-ai/image-zoom-out" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}" \
--data-raw '{
"output_format": "jpeg",
"enable_base64_output": false,
"enable_sync_mode": false
}'
# Get the result
curl --location --request GET "https://api.wavespeed.ai/api/v3/predictions/${requestId}/result" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}"
Parameters
Task Submission Parameters
Request Parameters
| Parameter | Type | Required | Default | Range | Description |
|---|---|---|---|---|---|
| image | string | Yes | - | The image to generate an image from. | |
| size | string | No | - | 256 ~ 1536 per dimension | The size of the generated media in pixels (width*height). |
| output_format | string | No | jpeg | jpeg, png, webp | The format of the output image. |
| enable_base64_output | boolean | No | false | - | If enabled, the output will be encoded into a BASE64 string instead of a URL. This property is only available through the API. |
| enable_sync_mode | boolean | No | false | - | If set to true, the function will wait for the result to be generated and uploaded before returning the response. It allows you to get the result directly in the response. This property is only available through the API. |
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 | Array of URLs to the generated content (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.has_nsfw_contents | array | Array of boolean values indicating NSFW detection for each output |
| 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 |