FLUX Outpainting

FLUX Outpainting is a dedicated image expansion model from Black Forest Labs that extends an existing image beyond its original borders in a single call. It is tuned to continue scene content, lighting, texture, and composition naturally without requiring a text prompt, making it useful for aspect-ratio changes, social reformats, banner layouts, and other canvas-extension workflows.

API Reference
INTEGRATE
Complete technical specification for integration
RequestResponse
Examples4
CODE
Ready-to-use code snippets for common workflows
Guides1
LEARN
Step-by-step tutorials for advanced use cases
Panoramic Alpine Observatory Station

import { createClient } from '@runware/sdk'
const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()
const [result] = await client.run({
model: 'bfl:flux@outpainting',
outpaint: {
left: 384,
right: 384,
top: 160,
bottom: 160
},
settings: {
autoCrop: false
},
inputs: {
image: 'https://assets.runware.ai/assets/inputs/618bc704-437e-4673-89bf-e8a143e7b7c1.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": "bfl:flux@outpainting",
"outpaint": {
"left": 384,
"right": 384,
"top": 160,
"bottom": 160
},
"settings": {
"autoCrop": False
},
"inputs": {
"image": "https://assets.runware.ai/assets/inputs/618bc704-437e-4673-89bf-e8a143e7b7c1.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": "910265aa-bfb6-4840-81ea-0e3357382e1b",
"model": "bfl:flux@outpainting",
"outpaint": {
"left": 384,
"right": 384,
"top": 160,
"bottom": 160
},
"settings": {
"autoCrop": false
},
"inputs": {
"image": "https://assets.runware.ai/assets/inputs/618bc704-437e-4673-89bf-e8a143e7b7c1.jpg"
}
}
]'runware run bfl:flux@outpainting \
outpaint.left=384 \
outpaint.right=384 \
outpaint.top=160 \
outpaint.bottom=160 \
settings.autoCrop=false \
inputs.image=https://assets.runware.ai/assets/inputs/618bc704-437e-4673-89bf-e8a143e7b7c1.jpg{
"taskType": "imageInference",
"taskUUID": "910265aa-bfb6-4840-81ea-0e3357382e1b",
"model": "bfl:flux@outpainting",
"outpaint": {
"left": 384,
"right": 384,
"top": 160,
"bottom": 160
},
"settings": {
"autoCrop": false
},
"inputs": {
"image": "https://assets.runware.ai/assets/inputs/618bc704-437e-4673-89bf-e8a143e7b7c1.jpg"
}
}{
"taskType": "imageInference",
"taskUUID": "910265aa-bfb6-4840-81ea-0e3357382e1b",
"imageUUID": "234b2923-0e20-4901-a146-d74e00ded314",
"imageURL": "https://im.runware.ai/image/os/a09dlim3/ws/3/ii/234b2923-0e20-4901-a146-d74e00ded314.jpg",
"seed": 117638687,
"cost": 0.3
}Cyberpunk Alleyway Banner Expansion

import { createClient } from '@runware/sdk'
const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()
const [result] = await client.run({
model: 'bfl:flux@outpainting',
outpaint: {
right: 512,
top: 256
},
settings: {
autoCrop: false
},
inputs: {
image: 'https://assets.runware.ai/assets/inputs/dcd0b97d-8906-4b5f-8b91-acb086a5a613.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": "bfl:flux@outpainting",
"outpaint": {
"right": 512,
"top": 256
},
"settings": {
"autoCrop": False
},
"inputs": {
"image": "https://assets.runware.ai/assets/inputs/dcd0b97d-8906-4b5f-8b91-acb086a5a613.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": "2591020a-ed5e-4706-acd2-2b23d0ed9636",
"model": "bfl:flux@outpainting",
"outpaint": {
"right": 512,
"top": 256
},
"settings": {
"autoCrop": false
},
"inputs": {
"image": "https://assets.runware.ai/assets/inputs/dcd0b97d-8906-4b5f-8b91-acb086a5a613.jpg"
}
}
]'runware run bfl:flux@outpainting \
outpaint.right=512 \
outpaint.top=256 \
settings.autoCrop=false \
inputs.image=https://assets.runware.ai/assets/inputs/dcd0b97d-8906-4b5f-8b91-acb086a5a613.jpg{
"taskType": "imageInference",
"taskUUID": "2591020a-ed5e-4706-acd2-2b23d0ed9636",
"model": "bfl:flux@outpainting",
"outpaint": {
"right": 512,
"top": 256
},
"settings": {
"autoCrop": false
},
"inputs": {
"image": "https://assets.runware.ai/assets/inputs/dcd0b97d-8906-4b5f-8b91-acb086a5a613.jpg"
}
}{
"taskType": "imageInference",
"taskUUID": "2591020a-ed5e-4706-acd2-2b23d0ed9636",
"imageUUID": "ec7cf455-30c9-4825-936a-fab46cfae72a",
"imageURL": "https://im.runware.ai/image/os/a02d21/ws/3/ii/ec7cf455-30c9-4825-936a-fab46cfae72a.jpg",
"seed": 163476982,
"cost": 0.2
}Art Nouveau Theater Panorama

import { createClient } from '@runware/sdk'
const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()
const [result] = await client.run({
model: 'bfl:flux@outpainting',
outpaint: {
left: 640,
right: 640,
top: 128,
bottom: 128
},
settings: {
autoCrop: false
},
inputs: {
image: 'https://assets.runware.ai/assets/inputs/dae70b20-de1c-4dd0-a0ff-25054e941517.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": "bfl:flux@outpainting",
"outpaint": {
"left": 640,
"right": 640,
"top": 128,
"bottom": 128
},
"settings": {
"autoCrop": False
},
"inputs": {
"image": "https://assets.runware.ai/assets/inputs/dae70b20-de1c-4dd0-a0ff-25054e941517.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": "afed6468-1eca-46ef-a677-06aae34e47a4",
"model": "bfl:flux@outpainting",
"outpaint": {
"left": 640,
"right": 640,
"top": 128,
"bottom": 128
},
"settings": {
"autoCrop": false
},
"inputs": {
"image": "https://assets.runware.ai/assets/inputs/dae70b20-de1c-4dd0-a0ff-25054e941517.jpg"
}
}
]'runware run bfl:flux@outpainting \
outpaint.left=640 \
outpaint.right=640 \
outpaint.top=128 \
outpaint.bottom=128 \
settings.autoCrop=false \
inputs.image=https://assets.runware.ai/assets/inputs/dae70b20-de1c-4dd0-a0ff-25054e941517.jpg{
"taskType": "imageInference",
"taskUUID": "afed6468-1eca-46ef-a677-06aae34e47a4",
"model": "bfl:flux@outpainting",
"outpaint": {
"left": 640,
"right": 640,
"top": 128,
"bottom": 128
},
"settings": {
"autoCrop": false
},
"inputs": {
"image": "https://assets.runware.ai/assets/inputs/dae70b20-de1c-4dd0-a0ff-25054e941517.jpg"
}
}{
"taskType": "imageInference",
"taskUUID": "afed6468-1eca-46ef-a677-06aae34e47a4",
"imageUUID": "137dc6cd-360e-478c-b437-2221099386ce",
"imageURL": "https://im.runware.ai/image/os/a01d21/ws/4/ii/137dc6cd-360e-478c-b437-2221099386ce.jpg",
"seed": 2079700044,
"cost": 0.3
}Editorial Woman Studio Expansion

import { createClient } from '@runware/sdk'
const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()
const [result] = await client.run({
model: 'bfl:flux@outpainting',
outpaint: {
right: 640
},
settings: {
autoCrop: false
},
inputs: {
image: 'https://assets.runware.ai/assets/inputs/3b038b5d-accf-447d-ad89-15f0f58c7d56.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": "bfl:flux@outpainting",
"outpaint": {
"right": 640
},
"settings": {
"autoCrop": False
},
"inputs": {
"image": "https://assets.runware.ai/assets/inputs/3b038b5d-accf-447d-ad89-15f0f58c7d56.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": "7b90e272-e178-4181-a891-74fc573803c1",
"model": "bfl:flux@outpainting",
"outpaint": {
"right": 640
},
"settings": {
"autoCrop": false
},
"inputs": {
"image": "https://assets.runware.ai/assets/inputs/3b038b5d-accf-447d-ad89-15f0f58c7d56.jpg"
}
}
]'runware run bfl:flux@outpainting \
outpaint.right=640 \
settings.autoCrop=false \
inputs.image=https://assets.runware.ai/assets/inputs/3b038b5d-accf-447d-ad89-15f0f58c7d56.jpg{
"taskType": "imageInference",
"taskUUID": "7b90e272-e178-4181-a891-74fc573803c1",
"model": "bfl:flux@outpainting",
"outpaint": {
"right": 640
},
"settings": {
"autoCrop": false
},
"inputs": {
"image": "https://assets.runware.ai/assets/inputs/3b038b5d-accf-447d-ad89-15f0f58c7d56.jpg"
}
}{
"taskType": "imageInference",
"taskUUID": "7b90e272-e178-4181-a891-74fc573803c1",
"imageUUID": "0355a07c-9359-4f2d-90c7-e34c01ac2501",
"imageURL": "https://im.runware.ai/image/os/a02d21/ws/3/ii/0355a07c-9359-4f2d-90c7-e34c01ac2501.jpg",
"seed": 2071684679,
"cost": 0.2
}