Auto HDR
Merge 1-5 exposure brackets of one scene into a single, naturally balanced image — bright windows pulled back, dark interiors lifted. HDR merge is automatic: send more than one input on any order and the brackets are aligned and merged before everything else.

Ordering
Submit an order with POST /v1/orders — or one call of SDK. The snippets below are complete: upload, order, live progress, download.
/v1/ordersimport { BkbnClient } from '@bkbnlab/api'
const bkbn = new BkbnClient() // reads BKBNLAB_API_KEY
const photos = await Promise.all(
['bracket-1.jpg', 'bracket-2.jpg', 'bracket-3.jpg'].map((f) => bkbn.upload(f)),
)
const order = await bkbn.order({
inputs: photos,
perspective: true,
tonecraft: true,
})
const result = await order.wait({
onProgress: (p) => console.log(p.stage, p.percent),
})
await result.save('result.jpg')Options
Options ride the order body next to inputs. Everything is optional — an order with no options runs the base develop.
| Option | Type | Description |
|---|---|---|
align | boolean | Align brackets before the merge (handheld shots). Default: true. |
format | enum | Delivery format. Options: jpeg, png, webp. Default: jpeg. |
Inputs and outputs
inputs takes 1-5 asset ids — the exposure brackets of one scene (most orders send a single image). The completed order carries one outputAssetId; download it with GET /v1/assets/:id.
Before / After
Drag the slider to compare input and output. Switch between examples below.


Versioning
This page documents recipe develop@1.0.0. The live catalog — every feature, its version and parameters — is public at GET /v1/features. Minor bumps improve quality without changing the interface.