Workflow
Declutter
Remove furniture, objects, and decorations from interior photos to create clean empty-room renders for real estate listings. All architectural details are preserved.

How it works
- Upload assets —
POST /v1/assets/uploadwith each image file. Returns asha256:...hash. - Run the workflow —
POST /v1/workflows/declutter/runwith asset hashes and parameters. Returns ajobId. - Get results — Poll
GET /v1/jobs/:jobIdor stream viaGET /v1/jobs/:jobId/events(SSE). - Download outputs —
GET /v1/assets/:hash/rawto download each output file.
Code examples
import { bkbnlab } from '@bkbnlab/api'
import { readFile } from 'node:fs/promises'
// export BKBNLAB_API_KEY=sk-...
const result = await bkbnlab.subscribe('declutter', {
input: {
image: await readFile('image.jpg'),
},
})
// Download output image
await bkbnlab.download(result.outputs.image, 'result.png')Endpoint
POST
/v1/workflows/declutter/run Requires X-API-Key header. See Authentication.
Inputs
| Field | Type | Required | Description |
|---|---|---|---|
image | asset:image | Furnished interior photo to declutter |
Outputs
Each output is a sha256:... asset hash. Download via GET /v1/assets/:hash/raw.
| Field | Type | Description |
|---|---|---|
image | asset:image | Decluttered empty room |
Before / After
Drag the slider to compare input and output. Switch between examples below.


BEFORE
AFTER
Request
{
"inputs": {
"image": "sha256:<hash_image>"
}
}Response — queued
{
"jobId": "job_abc123",
"status": "queued"
}Response — completed
{
"jobId": "job_abc123",
"status": "completed",
"outputs": {
"image": "sha256:..."
}
}Download an output
curl -o result.png \
-H "X-API-Key: $BKBNLAB_API_KEY" \
https://api.bkbnlab.ai/v1/assets/$IMAGE_HASH/raw