Prompt Optimizer
Playground
Try it on WavespeedAI!Advanced Prompt Optimizer for image and video generation. Automatically enhances prompts for clarity, structure, composition, motion dynamics, and style control—producing significantly better outputs across models like FLUX, Wan, Kling, Veo, Seedance, and more. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.
Features
Image & Video Prompt Optimizer API
Overview
The WaveSpeedAI Prompt Optimizer enhances prompts specifically for image and video generation workflows. It restructures and enriches your input prompt to improve visual clarity, composition, cinematic framing, lighting, camera movement, and style consistency.
Designed for models such as Nano Banana, Seedream, FLUX, Wan, Kling, Veo, Seedance, Hailuo, and other leading visual-generation systems.
Key Features
- Improves visual composition (lighting, framing, perspective)
- Expands prompts with cinematic and artistic attributes
- Enhances style, mood, and motion for video models
- Reduces ambiguity and ensures consistent reproducible outputs
- Works seamlessly in automated pipelines and API workflows
Why Use It?
Raw user prompts often produce unstable or low-quality visual outputs. The Prompt Optimizer standardizes and enriches prompts, leading to:
- Better image detail and fidelity
- More stable, coherent video motion
- Consistent art direction across batches
- Improved adherence to user intent
Usage
Send any raw text prompt to the /v1/prompt/optimize endpoint and receive a fully optimized version ready for visual generation models.
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/prompt-optimizer" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}" \
--data-raw '{
"style": "default",
"mode": "image",
"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 | No | - | Image to use as context for prompt optimization. | |
| text | string | No | - | - | Text to expand or use as context for prompt optimization. |
| style | string | No | default | default, artistic, photographic, technical, anime, realistic | Style or tone to apply to the optimized prompt. |
| mode | string | No | image | image, video | The aim of the optimization, either for image or video generation. |
| 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 |