Kwaivgi Kling Image O3
Playground
Try it on WavespeedAI!Kling Image O3 is Kuaishou’s latest image generation model based on the Kling 3.0 series. Supports text-to-image and multi-reference image generation with up to 10 reference images, element control with up to 3 elements, multiple resolutions (1K/2K/4K), and flexible aspect ratios. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.
Features
Kling Image O3
Kling Image O3 is Kuaishou’s latest text-to-image model in the O3 generation, delivering high-fidelity, photorealistic image generation from detailed text prompts. With broad aspect ratio support, resolutions up to 4K, reference image guidance, and element list control, it is built for both creative and production-grade workflows.
Why Choose This?
-
O3-generation image quality Produces richly detailed, photorealistic images with accurate composition, lighting, and texture rendering.
-
Up to 4K resolution Generate images at 1k, 2k, or 4k for everything from social media to print-quality output.
-
Broad aspect ratio support Nine aspect ratio options including 16:9, 9:16, 1:1, 4:3, 3:2, 21:9, and auto to fit any platform or format.
-
Reference image guidance Upload one or more reference images to steer the style, composition, or subject appearance of the output.
-
Element list control Reference specific visual elements to maintain consistency in characters, objects, or stylistic details across generations.
-
Batch generation Generate multiple images in a single run using the num_images parameter.
-
Prompt Enhancer Built-in tool to automatically improve your text descriptions for better results.
Parameters
| Parameter | Required | Description |
|---|---|---|
| prompt | Yes | Text description of the image scene, subject, style, lighting, and mood. |
| images | No | Reference images to guide style, composition, or subject appearance. |
| aspect_ratio | No | Output aspect ratio. Options: 16:9, 9:16, 1:1, 4:3, 3:4, 3:2, 2:3, 21:9, auto. |
| resolution | No | Output resolution: 1k (default), 2k, 4k. |
| result_type | No | Output mode. Default: single. |
| num_images | No | Number of images to generate per run. Default: 1. |
| element_list | No | List of specific visual elements to maintain consistency across the generation. |
How to Use
- Write your prompt — describe the subject, scene, style, lighting, and mood in detail. Use the Prompt Enhancer for better results.
- Add reference images (optional) — upload images to guide style or subject appearance.
- Select aspect ratio — choose the format that fits your target platform or use auto.
- Select resolution — 1k for standard use, 2k or 4k for higher-detail output.
- Set num_images (optional) — generate multiple variations in one run.
- Add element list items (optional) — see Notes below for how to use elements effectively.
- Submit — generate, preview, and download your images.
Pricing
| Resolution | Cost per Image |
|---|---|
| 1k | $0.028 |
| 2k | $0.028 |
| 4k | $0.056 |
Billing Rules
- 1k and 2k: $0.028 per image
- 4k: $0.056 per image (2× base price)
- Total cost = cost per image × num_images
Best Use Cases
- Photorealistic Portraits — Generate high-detail character images with precise lighting and texture control.
- Marketing & Advertising — Produce on-brand campaign visuals at production-ready resolutions.
- Concept Art & Storyboarding — Rapidly visualize scenes, characters, and environments from text descriptions.
- E-commerce — Generate product lifestyle imagery without photography.
- Social Media Content — Create platform-optimized visuals across multiple aspect ratios in one workflow.
Pro Tips
- The more specific your prompt, the better — include camera angle, lighting style, color palette, and subject details.
- Use reference images to lock in a visual style or maintain character consistency across multiple generations.
- Use auto aspect ratio when you want the model to determine the best composition for your prompt.
- Generate 3–4 images per run at 1k to explore variations before committing to a 4k final render.
- Use element_list for consistent characters or branded elements across a series of images.
Notes
- Only prompt is required; all other parameters are optional.
- 4k resolution costs 2× the base price per image.
- Using element_list: First use Kling Elements to generate your element and note its name and ID. Then simply write the element name naturally in your prompt, and enter the corresponding element ID in the element_list field. No special characters or syntax required.
Related Models
- Kling Elements — Create reusable visual elements for consistent character and object rendering.
- Kling Video O3 Pro Text-to-Video — Generate cinematic video from text prompts with O3 Pro quality.
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/kwaivgi/kling-image-o3" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}" \
--data-raw '{
"aspect_ratio": "auto",
"resolution": "1k",
"result_type": "single",
"num_images": 1
}'
# 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 |
|---|---|---|---|---|---|
| prompt | string | Yes | - | The positive prompt for the generation. | |
| images | array | No | [] | - | Including reference images of the element, scene, style, etc.max 10 |
| aspect_ratio | string | No | auto | 16:9, 9:16, 1:1, 4:3, 3:4, 3:2, 2:3, 21:9, auto | The aspect ratio of the generated image. |
| resolution | string | No | 1k | 1k, 2k, 4k | Image generation resolution |
| result_type | string | No | single | single | Switch for generating single image/group image |
| num_images | integer | No | 1 | 1 ~ 9 | The number of images to generate. When the result_type value is series, the current parameter is invalid |
| element_list | array | No | - | - | Element reference list. |
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 |
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, the ID of the prediction to get |
| data.model | string | Model ID used for the prediction |
| data.outputs | string | 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.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 |