Workflow
Mess Cleaner
Tidy up messy rooms for real estate listings — remove clutter, make beds, arrange curtains, and clean surfaces while keeping all furniture in place. Output preserves original image dimensions.

How it works
- Upload assets —
POST /v1/assets/uploadwith each image file. Returns asha256:...hash. - Run the workflow —
POST /v1/workflows/mess-cleaner/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('mess-cleaner', {
input: {
image: await readFile('image.jpg'),
},
})
// Download output image
await bkbnlab.download(result.outputs.image, 'result.png')Endpoint
POST
/v1/workflows/mess-cleaner/run Requires X-API-Key header. See Authentication.
Inputs
| Field | Type | Required | Description |
|---|---|---|---|
image | asset:image | Interior photo to tidy up |
Outputs
Each output is a sha256:... asset hash. Download via GET /v1/assets/:hash/raw.
| Field | Type | Description |
|---|---|---|
image | asset:image | Tidied room photo |
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