Krea V2 Large Text To Image API Documentation
Playground
Try it on WaveSpeedAI!Krea 2 Large Text to Image is a fast AI image generation model that creates high-fidelity images from text prompts with aspect ratio, creativity, and optional style reference controls. Ready-to-use REST inference API for creative design, marketing visuals, product mockups, brand assets, social media content, concept art, and professional text-to-image workflows with simple integration, no coldstarts, and affordable pricing.
Features
WaveSpeed AI Krea V2 Large Text-to-Image generates high-quality images from natural-language prompts, with optional reference images for stronger style guidance. It is designed for premium prompt-based image generation workflows where you want flexible aspect ratios, controllable creativity, and the option to steer the final look with one or more visual references.
Why Choose This?
-
High-quality text-to-image generation
Create polished images from detailed natural-language prompts. -
Reference-guided style control
Add up to10reference images to guide the visual style of the generated result. -
Flexible aspect ratios
Choose from multiple preset aspect ratios for square, portrait, landscape, or cinematic compositions. -
Creativity control
Adjust how loosely the model interprets the prompt withraw,low,medium, orhigh. -
Multi-reference support
Use multiple references with individual strength values for more nuanced style influence. -
Production-ready workflow
Suitable for concept art, marketing visuals, brand creatives, editorial imagery, and visual ideation.
Parameters
| Parameter | Required | Description |
|---|---|---|
| prompt | Yes | Text description of the image to generate. Supports 1–5000 characters. |
| size | No | Output aspect ratio. Supported values: 1:1, 4:3, 3:2, 16:9, 2.35:1, 4:5, 2:3, 9:16. Default: 1:1. |
| creativity | No | Controls how loosely the model interprets the prompt. Supported values: raw, low, medium, high. Default: medium. |
| reference | No | Optional reference images that guide the style of the generated image. Supports up to 10 items. |
Reference Format
Each item in the reference array supports:
| Field | Required | Description |
|---|---|---|
| image_url | Yes | Reference image URL. |
| strength | No | How strongly the reference image influences the generated image. Range: -2 to 2. Default: 1. |
How to Use
- Write your prompt — describe the subject, style, lighting, composition, and mood you want.
- Choose aspect ratio (optional) — select the format that best fits your target use case.
- Set creativity (optional) — use
raworlowfor tighter prompt control, ormedium/highfor looser interpretation. - Add reference images (optional) — upload one or more images if you want stronger style guidance.
- Adjust reference strength (optional) — tune each reference image’s influence individually.
- Submit — run the model and download the generated image.
Example Prompt
A premium editorial portrait of a woman in soft window light, natural skin texture, elegant neutral wardrobe, cinematic depth of field, refined luxury-magazine styling
Pricing
Pricing is based on whether you use reference images.
| Mode | Cost |
|---|---|
| Without reference images | $0.06 |
| With one or more reference images | $0.065 |
Billing Rules
- Base price is $0.06 per image
- Adding
referenceimages adds $0.005 to the request - The number of reference images does not change the surcharge beyond that single addition
aspect_ratioandcreativitydo not affect pricing- Each request returns one generated image
Best Use Cases
- Prompt-based concept generation — Explore visual directions from text prompts alone.
- Style-guided image creation — Use reference images to steer the output toward a desired aesthetic.
- Editorial and fashion visuals — Build polished, art-directed imagery with better style control.
- Brand creative development — Keep generated visuals closer to an existing visual language.
- Marketing and campaign ideation — Generate premium-looking assets for pitches, mockups, and content planning.
Pro Tips
- Use
raworlowcreativity when you want stricter prompt fidelity. - Use
mediumorhighwhen you want more interpretive or stylized output. - Add reference images only when you want style guidance, since they increase the price slightly.
- Start with a single strong reference before stacking multiple references.
- Adjust
strengthcarefully when combining several references, especially if their styles differ. - Be specific in your prompt about subject, lighting, composition, and mood for more controllable results.
Notes
promptis required.referenceis optional and supports up to 10 images.- Each reference image can use a
strengthvalue from -2 to 2. creativitydefaults tomedium.aspect_ratiodefaults to1:1.- Pricing is fixed per request, with a small surcharge when reference images are used.
Related Models
- WaveSpeed AI Krea V2 Large Image-to-Image — Edit or restyle an existing image with Krea V2 Large.
- WaveSpeed AI FLUX.2 Klein Base 9B Text-to-Image — Generate images from prompts with a simpler parameter set.
- WaveSpeed AI FLUX.2 Klein Base 9B Text-to-Image LoRA — Generate images from prompts with custom LoRA support.
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",
"creativity": "medium"
}
JSON
)
# 1. Submit the prediction.
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
-X POST "https://api.wavespeed.ai/api/v3/wavespeed-ai/krea-v2-large/text-to-image" \
-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="https://api.wavespeed.ai/api/v3/predictions/${PREDICTION_ID}/result"
# 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|deleted) printf '%s\n' "${RESULT}" | jq . >&2; exit 1 ;;
*) sleep 2 ;;
esac
doneParameters
Task Submission Parameters
Request Parameters
| Parameter | Type | Required | Default | Range | Description |
|---|---|---|---|---|---|
| prompt | string | Yes | - | Text description of the image to generate. | |
| aspect_ratio | string | No | 1:1 | 1:1, 4:3, 3:2, 16:9, 2.35:1, 4:5, 2:3, 9:16 | Aspect ratio of the generated image. |
| creativity | string | No | medium | raw, low, medium, high | Controls how loosely the model interprets the prompt. |
| reference | array<object> | No | - | 0 ~ 10 items | Optional reference images that guide the style of the generated image. |
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.status | string | Task status. completed is successful; failed, cancelled, timeout, and deleted are failure terminal statuses. |
| 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.status | string | Status: completed is successful; failed, cancelled, timeout, and deleted are failure terminal statuses |
| 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 |