Backbone LabDocs
Base pipelinev1.1.0

Enhancer

The standard develop for a listing photo: automatic HDR-quality development, perspective correction, and the Backbone signature tone. The base pipeline (normalization, resolution cap, delivery encode) runs on every order; perspective and tone are toggles you turn on.

Enhancer preview

Ordering

Submit an order with POST /v1/orders — or one call of SDK. The snippets below cover upload, order, live progress and download using SDK 1.1.0 or Bash with curl and jq. See the SDK installation notes.

POST/v1/orders
import { BkbnClient } from '@bkbnlab/api'

const bkbn = new BkbnClient()            // reads BKBNLAB_API_KEY

const photo = await bkbn.upload('living-room.jpg')

const order = await bkbn.order({
  inputs: [photo],
  perspective: true,
  tonecraft: { profile: 'signature', sharpen: true },
  quality: 92,
})

const result = await order.wait({
  onProgress: (p) => console.log(p.stage, p.percent),
})
await result.save('result.jpg')

Options

These are REST request fields, alongside inputs. Defaults apply when neither an explicit value nor a selected preset supplies that setting. Shared delivery options are documented under Enhancer.

OptionTypeDescription
perspectivebooleanEnable perspective correction. Default: false.
perspective_strengthnumberCorrection strength. Range: 01. Default: 1.
tonecraftbooleanEnable the selected Tonecraft look. Default: false.
tonecraft_profilestringPreset key returned by GET /v1/presets?feature=tonecraft. Enable tonecraft to apply this look. Default: signature.
tonecraft_levelsbooleanOverride the preset: auto-levels finishing on/off. When omitted, the selected preset decides.
tonecraft_sharpenbooleanOverride the preset: calibrated sharpness boost on/off. When omitted, the selected preset decides.
alignbooleanAlign brackets before the HDR merge. Default: true.
formatenumDelivery format. Options: jpeg, png, webp. Default: jpeg.
qualityintegerJPEG/WebP encoding quality. This controls delivery compression, not the generation tier. Range: 1100. Default: 92.

Presets and overrides

List the active public presets and presets available to your API key:

curl -fsS "https://api.bkbn.ai/v1/presets?feature=tonecraft" \
  -H "X-API-Key: $BKBNLAB_API_KEY" | jq '.data.presets'

Read data.presets and use a preset's key, rather than its display name or UUID. For a custom look, contact us.

With REST, set tonecraft: true and choose the look with tonecraft_profile. If the profile is omitted, the look is signature. Explicit tonecraft_levels and tonecraft_sharpen override the selected preset, including when set to false; omit them to use the preset's settings. JavaScript also accepts a preset key or an options object in tonecraft, as shown in the example.

In a batch, an omitted scene option inherits the batch value; an explicit scene value overrides it. Preset resolution then uses those merged options. See Batches.

SDK option names

These SDK options correspond to the REST fields below. Other options in the table above keep the same name. Dotted JavaScript names are properties of an options object.

RESTPythonJavaScriptKotlin
perspective_strengthperspective_strengthperspective.strengthperspectiveStrength
tonecraft_profiletonecraft_profiletonecraft.profiletonecraftProfile
tonecraft_levelstonecraft_levelstonecraft.levelstonecraftLevels
tonecraft_sharpentonecraft_sharpentonecraft.sharpentonecraftSharpen

Inputs and outputs

inputs takes 1-5 ready, uploaded asset ids owned by your key — the exposure brackets of one scene. Magic Eraser takes exactly one image plus a mask. The completed order carries one outputAssetId. Authenticated GET /v1/assets/:id returns data.url and data.expiresIn; fetch the signed URL without your API key to download the bytes. Output ids cannot currently be reused as order inputs.

Before / After

Drag the slider to compare input and output. Switch between examples below.

BEFORE
AFTER

Versioning

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

See also

  • Batches — run a whole shoot in one call, with per-scene overrides.
  • Streaming — WebSocket and SSE progress in detail.