live
MODEL IDkrea:krea@3

Krea 3

Krea
by

Krea 3 is Krea's image model for text-to-image generation and precise editing of existing images. Boxes mark the areas to change and the objects to bring in from up to eight reference images, each with an optional label and instruction, while the rest of the frame stays untouched. Output comes in 1K, 2K, and 4K across ten aspect ratios, with a fast or high thinking level.

Krea 3

Reference images

How to compose new images from up to eight references with Krea 3: naming each image, placing products in scenes, keeping a person consistent and borrowing a style.

Introduction

Krea 3 takes up to eight images in inputs.referenceImages and builds a new image from the parts you point at. A person, a jacket, a pair of sneakers and a location from four different photos come together in one render, and the prompt decides which part each image contributes.

Built from 4 references
  • The model
  • The jacket
  • The sneakers
  • The location

The prompt names all four inputs by position and says what to take from each, then closes with the details that have to survive exactly.

Try in Playground
import { createClient } from '@runware/sdk'

const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()

const [result] = await client.run({
  model: 'krea:krea@3',
  positivePrompt: 'A fashion editorial photo of the woman from the first image standing on the rooftop from the fourth image at golden hour. She wears the denim jacket from the second image over her white T-shirt, and the sneakers from the third image with her black trousers. Full-length shot, relaxed pose with one hand in her jacket pocket, warm low sun from the right. Keep her face, hair and build from the first image and the exact designs of the jacket and the sneakers.',
  resolution: '2K',
  inputs: {
    referenceImages: [
      'https://assets.runware.ai/guides/krea-3/reference-images/ref-model.jpg',
      'https://assets.runware.ai/guides/krea-3/reference-images/ref-jacket.jpg',
      'https://assets.runware.ai/guides/krea-3/reference-images/ref-sneakers.jpg',
      'https://assets.runware.ai/guides/krea-3/reference-images/ref-rooftop.jpg'
    ]
  },
  settings: {
    thinkingLevel: 'high'
  }
})
import asyncio
import os

from runware import Runware


async def main():
    async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
        results = await client.run({
            "model": "krea:krea@3",
            "positivePrompt": "A fashion editorial photo of the woman from the first image standing on the rooftop from the fourth image at golden hour. She wears the denim jacket from the second image over her white T-shirt, and the sneakers from the third image with her black trousers. Full-length shot, relaxed pose with one hand in her jacket pocket, warm low sun from the right. Keep her face, hair and build from the first image and the exact designs of the jacket and the sneakers.",
            "resolution": "2K",
            "inputs": {
                "referenceImages": [
                    "https://assets.runware.ai/guides/krea-3/reference-images/ref-model.jpg",
                    "https://assets.runware.ai/guides/krea-3/reference-images/ref-jacket.jpg",
                    "https://assets.runware.ai/guides/krea-3/reference-images/ref-sneakers.jpg",
                    "https://assets.runware.ai/guides/krea-3/reference-images/ref-rooftop.jpg"
                ]
            },
            "settings": {
                "thinkingLevel": "high"
            }
        })


asyncio.run(main())
curl https://api.runware.ai/v1 \
  -H "Authorization: Bearer $RUNWARE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '[
    {
      "taskType": "imageInference",
      "taskUUID": "e4b8c2a6-9d1f-4e37-a5c0-2f7d9b3e1a84",
      "model": "krea:krea@3",
      "positivePrompt": "A fashion editorial photo of the woman from the first image standing on the rooftop from the fourth image at golden hour. She wears the denim jacket from the second image over her white T-shirt, and the sneakers from the third image with her black trousers. Full-length shot, relaxed pose with one hand in her jacket pocket, warm low sun from the right. Keep her face, hair and build from the first image and the exact designs of the jacket and the sneakers.",
      "resolution": "2K",
      "inputs": {
        "referenceImages": [
          "https://assets.runware.ai/guides/krea-3/reference-images/ref-model.jpg",
          "https://assets.runware.ai/guides/krea-3/reference-images/ref-jacket.jpg",
          "https://assets.runware.ai/guides/krea-3/reference-images/ref-sneakers.jpg",
          "https://assets.runware.ai/guides/krea-3/reference-images/ref-rooftop.jpg"
        ]
      },
      "settings": {
        "thinkingLevel": "high"
      }
    }
  ]'
runware run krea:krea@3 \
  positivePrompt="A fashion editorial photo of the woman from the first image standing on the rooftop from the fourth image at golden hour. She wears the denim jacket from the second image over her white T-shirt, and the sneakers from the third image with her black trousers. Full-length shot, relaxed pose with one hand in her jacket pocket, warm low sun from the right. Keep her face, hair and build from the first image and the exact designs of the jacket and the sneakers." \
  resolution=2K \
  inputs.referenceImages.0=https://assets.runware.ai/guides/krea-3/reference-images/ref-model.jpg \
  inputs.referenceImages.1=https://assets.runware.ai/guides/krea-3/reference-images/ref-jacket.jpg \
  inputs.referenceImages.2=https://assets.runware.ai/guides/krea-3/reference-images/ref-sneakers.jpg \
  inputs.referenceImages.3=https://assets.runware.ai/guides/krea-3/reference-images/ref-rooftop.jpg \
  settings.thinkingLevel=high
{
  "taskType": "imageInference",
  "taskUUID": "e4b8c2a6-9d1f-4e37-a5c0-2f7d9b3e1a84",
  "model": "krea:krea@3",
  "positivePrompt": "A fashion editorial photo of the woman from the first image standing on the rooftop from the fourth image at golden hour. She wears the denim jacket from the second image over her white T-shirt, and the sneakers from the third image with her black trousers. Full-length shot, relaxed pose with one hand in her jacket pocket, warm low sun from the right. Keep her face, hair and build from the first image and the exact designs of the jacket and the sneakers.",
  "resolution": "2K",
  "inputs": {
    "referenceImages": [
      "https://assets.runware.ai/guides/krea-3/reference-images/ref-model.jpg",
      "https://assets.runware.ai/guides/krea-3/reference-images/ref-jacket.jpg",
      "https://assets.runware.ai/guides/krea-3/reference-images/ref-sneakers.jpg",
      "https://assets.runware.ai/guides/krea-3/reference-images/ref-rooftop.jpg"
    ]
  },
  "settings": {
    "thinkingLevel": "high"
  }
}
Response
[
  {
    "taskType": "imageInference",
    "taskUUID": "e4b8c2a6-9d1f-4e37-a5c0-2f7d9b3e1a84",
    "imageUUID": "7a3e9c15-2b4d-4f68-8e01-d5c7b9a3f246",
    "imageURL": "https://im.runware.ai/image/os/a14d18/ws/2/ii/7a3e9c15-2b4d-4f68-8e01-d5c7b9a3f246.jpg"
  }
]

This guide covers referring to each image, placing a product in a scene, keeping one person consistent, borrowing a style and choosing how many references to send.

Referring to images in the prompt

The prompt points at a reference by its position and what you want from it: "the denim jacket from the second image", "the rooftop from the fourth image". Position is the order of inputs.referenceImages, counted from one, and pairing it with the object removes any doubt about which image a clause means.

Give each reference a role instead of a description. The model can see the jacket, so the prompt does not need to list its buttons and pockets. It needs to say what happens to the jacket: who wears it and in which scene.

Then add a keep clause for what has to survive exactly. "Keep her face, hair and build from the first image and the exact designs of the jacket and the sneakers" lists the details a client would reject the image over.

Placing a product in a scene

A product scene takes two references: a packshot on white and a photo of the place the product belongs. Send the scene first and the product second, then describe where the product goes and how the scene's light falls on it.

Built from 2 references
  • The bathroom
  • The product

"Match the soft daylight from the window" lights the bottle like the rest of the room, and "a faint shadow on the stone" grounds it on the counter.

Correcting the product's size

Krea 3 tends to place a product larger than the scene calls for. The bottle above stands about twice as tall as the faucet, and neither a size written into the prompt nor settings.thinkingLevel: "high" brings it down reliably.

The fix is a second request on the composite. Send it as the only reference, draw a box around the product with settings.editRegions and ask for it smaller.

Try in Playground
import { createClient } from '@runware/sdk'

const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()

const [result] = await client.run({
  model: 'krea:krea@3',
  positivePrompt: 'Make @bottle smaller, a little shorter than the faucet, standing on the countertop in the same spot with a faint shadow on the stone. Keep the rest of the bathroom exactly as it is.',
  resolution: '2K',
  seed: 5002,
  inputs: {
    referenceImages: [
      'https://assets.runware.ai/guides/krea-3/reference-images/product-scene.jpg'
    ]
  },
  settings: {
    editRegions: [
      {
        referenceIndex: 0,
        x: 0.55,
        y: 0.47,
        width: 0.13,
        height: 0.28,
        label: 'bottle'
      }
    ]
  }
})
import asyncio
import os

from runware import Runware


async def main():
    async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
        results = await client.run({
            "model": "krea:krea@3",
            "positivePrompt": "Make @bottle smaller, a little shorter than the faucet, standing on the countertop in the same spot with a faint shadow on the stone. Keep the rest of the bathroom exactly as it is.",
            "resolution": "2K",
            "seed": 5002,
            "inputs": {
                "referenceImages": [
                    "https://assets.runware.ai/guides/krea-3/reference-images/product-scene.jpg"
                ]
            },
            "settings": {
                "editRegions": [
                    {
                        "referenceIndex": 0,
                        "x": 0.55,
                        "y": 0.47,
                        "width": 0.13,
                        "height": 0.28,
                        "label": "bottle"
                    }
                ]
            }
        })


asyncio.run(main())
curl https://api.runware.ai/v1 \
  -H "Authorization: Bearer $RUNWARE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '[
    {
      "taskType": "imageInference",
      "taskUUID": "b2e7a4c9-3f1d-4a68-9c05-6d8e2b7f1a33",
      "model": "krea:krea@3",
      "positivePrompt": "Make @bottle smaller, a little shorter than the faucet, standing on the countertop in the same spot with a faint shadow on the stone. Keep the rest of the bathroom exactly as it is.",
      "resolution": "2K",
      "seed": 5002,
      "inputs": {
        "referenceImages": [
          "https://assets.runware.ai/guides/krea-3/reference-images/product-scene.jpg"
        ]
      },
      "settings": {
        "editRegions": [
          {
            "referenceIndex": 0,
            "x": 0.55,
            "y": 0.47,
            "width": 0.13,
            "height": 0.28,
            "label": "bottle"
          }
        ]
      }
    }
  ]'
runware run krea:krea@3 \
  positivePrompt="Make @bottle smaller, a little shorter than the faucet, standing on the countertop in the same spot with a faint shadow on the stone. Keep the rest of the bathroom exactly as it is." \
  resolution=2K \
  seed=5002 \
  inputs.referenceImages.0=https://assets.runware.ai/guides/krea-3/reference-images/product-scene.jpg \
  settings.editRegions.0.referenceIndex=0 \
  settings.editRegions.0.x=0.55 \
  settings.editRegions.0.y=0.47 \
  settings.editRegions.0.width=0.13 \
  settings.editRegions.0.height=0.28 \
  settings.editRegions.0.label=bottle
{
  "taskType": "imageInference",
  "taskUUID": "b2e7a4c9-3f1d-4a68-9c05-6d8e2b7f1a33",
  "model": "krea:krea@3",
  "positivePrompt": "Make @bottle smaller, a little shorter than the faucet, standing on the countertop in the same spot with a faint shadow on the stone. Keep the rest of the bathroom exactly as it is.",
  "resolution": "2K",
  "seed": 5002,
  "inputs": {
    "referenceImages": [
      "https://assets.runware.ai/guides/krea-3/reference-images/product-scene.jpg"
    ]
  },
  "settings": {
    "editRegions": [
      {
        "referenceIndex": 0,
        "x": 0.55,
        "y": 0.47,
        "width": 0.13,
        "height": 0.28,
        "label": "bottle"
      }
    ]
  }
}
Response
[
  {
    "taskType": "imageInference",
    "taskUUID": "b2e7a4c9-3f1d-4a68-9c05-6d8e2b7f1a33",
    "imageUUID": "5c9d2e71-8a4b-4f03-b6e8-1f7a3c9d2b54",
    "imageURL": "https://im.runware.ai/image/os/a14d18/ws/2/ii/5c9d2e71-8a4b-4f03-b6e8-1f7a3c9d2b54.jpg"
  }
]

"A little shorter than the faucet" ties the new size to an object already in the scene. Some runs leave part of the larger bottle floating above the new one, so check the result and run the request again when that happens. The edit regions guide covers boxes and labels in full.

Keeping a person consistent

One portrait is enough to place the same person in new scenes. Send the portrait as the only reference, describe the new scene in full and close with a keep clause for the features that identify them.

Built from 1 reference
  • The person

The keep clause names face, beard, glasses and overshirt, the four things a viewer uses to recognize him from one image to the next. A company page or a press kit about one founder depends on that recognition holding.

The two results are 16:9 because each request sets width and height. A fixed size is how you get a new aspect ratio from a portrait-shaped reference, and every image in a set comes back at the same dimensions.

Borrowing a style

A reference can supply a look instead of an object. Put the subject first and the style second, and name the parts of the style you want carried over: the inks, the grain, the halftone and the printing flaws.

Built from 2 references
  • The product
  • The style

Listing two inks, grain, halftone and misregistration turns the style into a checklist the result can be measured against, and the keep clause makes sure the product is still recognizable once it is drawn.

Number of references

The limit is eight, but four or fewer keep every reference at full detail. From five references up, each one is resized to at most 1536 pixels on its longest side before the model sees it, which costs fine detail such as small print on a label. Around one megapixel per reference is enough for most jobs.

More references also mean more to reconcile. settings.thinkingLevel: "high" gives the model a stronger planning step for requests that combine several inputs, which is why the hero request above uses it. A single reference with a clear instruction does fine on the default fast.

With reference images, resolution (1K, 2K or 4K) sets the tier and lets the model frame the result. width and height fix the exact size instead, from the list in the prompting guide. The two cannot be sent together.

Tips for best results

  1. Name each reference by position and object. "The jacket from the second image" leaves no doubt about which input a clause refers to.
  2. Give every reference a role. A reference the prompt never mentions leaves the model to guess what it is for, so leave out anything without a job.
  3. Put the base scene first. When one image is the setting and the others are things to add, order the setting first and describe the additions relative to it.
  4. Resize a product in a second request. When an added product comes out too large, box it on the result and ask for it smaller than something in the scene.
  5. Close with a keep clause. List the faces and products that have to come back exactly as they went in.
  6. Stay at four references when detail matters. A fifth reference shrinks every input, including the one with the fine print.
  7. Use high for many-reference compositions. The stronger planning step is meant for requests that combine several inputs.