Krea 3

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.

Complete technical specification for integration
Ready-to-use code snippets for common workflows
Step-by-step tutorials for advanced use cases
← All GuidesEditing images
How to edit a photo with Krea 3 using an instruction alone: relighting, replacing a background, changing the season, restyling, and reframing to a new aspect ratio.
Introduction
Krea 3 edits an existing image when you send it as a reference and describe the change in the prompt. The photo goes in inputs.referenceImages, the instruction goes in positivePrompt, and the model returns the photo with the change applied. A listing photographer's twilight conversion is one sentence.
The sofa, the table, the window and the camera position stay where they were. What changed is the light and the sky, which is all the prompt asked for.
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: 'Turn this into a twilight listing photo. The sky in the window becomes deep blue dusk, the white globe pendant lamp is switched on with a warm glow, and soft warm lamplight falls across the sofa and the floor. Keep the furniture, the layout, the camera angle and the framing exactly as they are.',
resolution: '2K',
inputs: {
referenceImages: [
'https://assets.runware.ai/guides/krea-3/editing-images/source-living.jpg'
]
}
})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": "Turn this into a twilight listing photo. The sky in the window becomes deep blue dusk, the white globe pendant lamp is switched on with a warm glow, and soft warm lamplight falls across the sofa and the floor. Keep the furniture, the layout, the camera angle and the framing exactly as they are.",
"resolution": "2K",
"inputs": {
"referenceImages": [
"https://assets.runware.ai/guides/krea-3/editing-images/source-living.jpg"
]
}
})
asyncio.run(main())curl https://api.runware.ai/v1 \
-H "Authorization: Bearer $RUNWARE_API_KEY" \
-H "Content-Type: application/json" \
-d '[
{
"taskType": "imageInference",
"taskUUID": "c3a7e9f1-5b2d-4e86-a0c4-9d1f7b3e5a28",
"model": "krea:krea@3",
"positivePrompt": "Turn this into a twilight listing photo. The sky in the window becomes deep blue dusk, the white globe pendant lamp is switched on with a warm glow, and soft warm lamplight falls across the sofa and the floor. Keep the furniture, the layout, the camera angle and the framing exactly as they are.",
"resolution": "2K",
"inputs": {
"referenceImages": [
"https://assets.runware.ai/guides/krea-3/editing-images/source-living.jpg"
]
}
}
]'runware run krea:krea@3 \
positivePrompt="Turn this into a twilight listing photo. The sky in the window becomes deep blue dusk, the white globe pendant lamp is switched on with a warm glow, and soft warm lamplight falls across the sofa and the floor. Keep the furniture, the layout, the camera angle and the framing exactly as they are." \
resolution=2K \
inputs.referenceImages.0=https://assets.runware.ai/guides/krea-3/editing-images/source-living.jpg{
"taskType": "imageInference",
"taskUUID": "c3a7e9f1-5b2d-4e86-a0c4-9d1f7b3e5a28",
"model": "krea:krea@3",
"positivePrompt": "Turn this into a twilight listing photo. The sky in the window becomes deep blue dusk, the white globe pendant lamp is switched on with a warm glow, and soft warm lamplight falls across the sofa and the floor. Keep the furniture, the layout, the camera angle and the framing exactly as they are.",
"resolution": "2K",
"inputs": {
"referenceImages": [
"https://assets.runware.ai/guides/krea-3/editing-images/source-living.jpg"
]
}
}Response
[
{
"taskType": "imageInference",
"taskUUID": "c3a7e9f1-5b2d-4e86-a0c4-9d1f7b3e5a28",
"imageUUID": "5e8b1d43-7a2c-4f96-b0e5-3c9a7d1f4b62",
"imageURL": "https://im.runware.ai/image/os/a14d18/ws/2/ii/5e8b1d43-7a2c-4f96-b0e5-3c9a7d1f4b62.jpg"
}
]This guide covers edits that change the whole picture: light, background, season and style, plus how to reframe a photo to a new aspect ratio. Changes to one object while everything around it stays untouched use boxes, which the edit regions guide covers.
Writing an edit instruction
An edit prompt has two halves: what changes and what stays. The first half is the edit itself. The second half lists the things a reader of the result will check, so the model treats them as fixed instead of as material to reinterpret.
Name the things that must survive by what they are, not with a blanket "keep everything else". A blanket clause gives the model nothing to hold on to, while "the furniture, the layout, the camera angle" are three specific things it can compare against the original.
Describe the change as a state, not a process. "The pendant lamp is switched on with a warm glow" tells the model what the finished image looks like. "Make it look like evening" leaves it to decide which parts of the room evening should touch.
Replacing the background
A product shot on white becomes a lifestyle image when the prompt moves the product into a setting and pins down every detail of the product itself. This is the edit a catalog runs on hundreds of SKUs, so the product has to come back identical.
The prompt lists shape, leather, stitching, laces and sole before it says anything about the setting, and it asks for the same position and side profile. That ordering matters: the product details are what the shopper is buying, and the street is decoration around them.
The background edit keeps the original framing, so the product stays where it was in the frame. To move the product into a scene that already exists, such as a photo of a real store, send both images as references and see the reference images guide.
Changing the season
Weather and season edits touch every surface in the frame while leaving the architecture alone. Snow lands on the sidewalk and the bikes and the trees lose their leaves, while the facade keeps its color and shape.
The change half of the prompt names where the snow goes: the sidewalk, the ledges and the bikes. Naming the locations decides how much of the street is covered, instead of leaving that to the model. A local business refreshing its website for the holidays gets the same storefront in a new season without a second shoot.
Restyling a photo
A restyle keeps the composition and replaces the medium. The prompt names the target style precisely, with a palette and the rules of the style, and then lists what the drawing has to preserve from the photo.

A portrait of a woman in her thirties with curly black hair, wearing a mustard knit sweater, smiling at the camera while sitting at a desk with an open laptop and a ceramic mug in a bright home office. Soft window light from the left, a bookshelf softly out of focus behind her. Chest-up framing, 50mm lens. Photoreal lifestyle photography, warm palette.

Redraw this photo as a flat vector illustration for a blog header: clean geometric shapes, a limited palette of mustard, teal and cream, no gradients and no outlines. Keep the same woman, her curly hair, her pose, the desk, the laptop and the composition.
"Flat vector" alone could mean a dozen house styles. "No gradients and no outlines" with a three-color palette narrows it to one, and the palette borrows the mustard from her sweater so the illustration still reads as the same person. Editorial teams use this to turn a staff photo into a header image that matches the rest of a site's illustrations.
Output size
An edit sizes its output one of two ways. resolution keeps the framing of the reference and sets only the tier: 1K, 2K or 4K. Every edit above uses resolution: "2K", which is why each result lines up with its original in the slider.
width and height reframe the image to one of the 30 sizes listed in the prompting guide. When the new aspect ratio differs from the original, the model fills the extra space, which turns a square product shot into a wide banner.

A skincare serum in a frosted glass dropper bottle standing on a white marble bathroom shelf, next to a folded sage linen towel and a single eucalyptus sprig. Soft morning light from the right, a pale plaster wall behind. Straight-on shot at shelf height, 50mm lens, the bottle centered. Photoreal product photography, soft neutral palette.

Extend this into a wide web banner. Continue the marble shelf and the plaster wall to the left and to the right, leaving a wide stretch of empty wall on the left for a headline. Keep the serum bottle, the towel and the eucalyptus exactly as they are, on the right side of the frame.
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: 'Extend this into a wide web banner. Continue the marble shelf and the plaster wall to the left and to the right, leaving a wide stretch of empty wall on the left for a headline. Keep the serum bottle, the towel and the eucalyptus exactly as they are, on the right side of the frame.',
width: 2736,
height: 1536,
inputs: {
referenceImages: [
'https://assets.runware.ai/guides/krea-3/editing-images/source-shelf.jpg'
]
}
})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": "Extend this into a wide web banner. Continue the marble shelf and the plaster wall to the left and to the right, leaving a wide stretch of empty wall on the left for a headline. Keep the serum bottle, the towel and the eucalyptus exactly as they are, on the right side of the frame.",
"width": 2736,
"height": 1536,
"inputs": {
"referenceImages": [
"https://assets.runware.ai/guides/krea-3/editing-images/source-shelf.jpg"
]
}
})
asyncio.run(main())curl https://api.runware.ai/v1 \
-H "Authorization: Bearer $RUNWARE_API_KEY" \
-H "Content-Type: application/json" \
-d '[
{
"taskType": "imageInference",
"taskUUID": "8f2d6b4a-1e9c-4a73-b5d0-6c4e2a8f1d97",
"model": "krea:krea@3",
"positivePrompt": "Extend this into a wide web banner. Continue the marble shelf and the plaster wall to the left and to the right, leaving a wide stretch of empty wall on the left for a headline. Keep the serum bottle, the towel and the eucalyptus exactly as they are, on the right side of the frame.",
"width": 2736,
"height": 1536,
"inputs": {
"referenceImages": [
"https://assets.runware.ai/guides/krea-3/editing-images/source-shelf.jpg"
]
}
}
]'runware run krea:krea@3 \
positivePrompt="Extend this into a wide web banner. Continue the marble shelf and the plaster wall to the left and to the right, leaving a wide stretch of empty wall on the left for a headline. Keep the serum bottle, the towel and the eucalyptus exactly as they are, on the right side of the frame." \
width=2736 \
height=1536 \
inputs.referenceImages.0=https://assets.runware.ai/guides/krea-3/editing-images/source-shelf.jpg{
"taskType": "imageInference",
"taskUUID": "8f2d6b4a-1e9c-4a73-b5d0-6c4e2a8f1d97",
"model": "krea:krea@3",
"positivePrompt": "Extend this into a wide web banner. Continue the marble shelf and the plaster wall to the left and to the right, leaving a wide stretch of empty wall on the left for a headline. Keep the serum bottle, the towel and the eucalyptus exactly as they are, on the right side of the frame.",
"width": 2736,
"height": 1536,
"inputs": {
"referenceImages": [
"https://assets.runware.ai/guides/krea-3/editing-images/source-shelf.jpg"
]
}
}The prompt says where the new space goes and what it is for: an empty wall on the left, for a headline. Leave that out and the model decides on its own where the extra space goes.
resolution and width with height are alternatives, and a request carrying both is rejected. resolution also needs a reference image, so a request without one sizes itself with width and height.
Tips for best results
- List what must stay by name. "The furniture, the layout and the camera angle" gives the model specific things to keep, where "keep everything else" gives it none.
- Put product details before the setting. In a background edit the product is what has to survive, so describe it first and in full.
- Describe the finished state. "The lamp is switched on with a warm glow" says what the result looks like, where "make it evening" leaves the details open.
- Use
resolutionwhen the result must line up with the original. It keeps the framing, so before and after line up in a comparison. - Say where new space goes when reframing. A banner needs room for copy on one side, and the prompt is where you reserve it.
- Use boxes for one-object changes. An instruction alone re-renders the whole picture, so a change that must leave everything else untouched belongs to
settings.editRegions.





