GPT Image 2.5 is LIVE — Flare & Sunburst | Try in Image Generator →

bria/

Bria Ad Delayer splits flat advertisement images into editable image, text, and vector layers, returning a complete structured layer document as JSON for ad editing, localization, redesign, marketing creatives, and production workflows. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.

image-to-text
Input
Enable Safety Checker

Idle

bria/ad-delayer preview unavailable

$0.3per run·~33 / $10

Next:

ExamplesView all

Related Models

README

Bria Ad Delayer

Bria Ad Delayer converts a flat advertisement image into editable layer data. It separates the source ad into components such as background, product cutouts, logo cutouts, text, and vector shapes, then returns the complete layer document as JSON.

Why Choose This?

  • Ad layer decomposition
    Convert a flat advertisement into structured editable layers.

  • Text and vector extraction
    Extract text and vector-style elements as structured layer data.

  • Product and logo cutouts
    Separate key visual assets such as products and logos from the original ad.

  • Editable text modes
    Use svg to preserve traced letterforms or font for editable text with the nearest matching font.

  • JSON workflow output
    Receive the upstream layer document for custom editors, rendering pipelines, and design workflows.

Parameters

ParameterRequiredDescription
imageYesPublic URL of the source advertisement image, supplied directly or through the image uploader.
text_modeNoText layer mode: svg or font. Default: svg. svg preserves traced letterforms, while font uses editable text with the nearest matching font.

Use a flat advertisement image rather than an ordinary photograph.

How to Use

  1. Upload an advertisement image — Provide a flat ad image through the uploader or a public URL.
  2. Choose text mode optional — Use svg for traced letterforms or font for editable text.
  3. Submit — Generate the layer document.
  4. Use the JSON output — Read the layer data from json.

Pricing

Pricing is fixed at $0.30 per successful request.

OutputCost
One layer document$0.30

Both svg and font modes use the same fixed price. The number of returned layers does not add separate charges.

Best Use Cases

  • Ad creative editing — Break flat ad images into editable components.
  • Design reconstruction — Recover layout elements from existing ad creatives.
  • Text and logo workflows — Extract text, logos, and vector-like elements for editing.
  • Custom rendering pipelines — Use JSON layer data to rebuild ads in your own editor.
  • Marketing asset reuse — Separate products, backgrounds, and text for downstream creative work.

Pro Tips

  • Use flat advertisement images for better layer separation.
  • Use svg when preserving original letter shapes matters.
  • Use font when editable text is more important than exact traced appearance.
  • Check whether each layer has asset_path before treating it as a downloadable asset.
  • Download the layer document and required linked assets promptly.
Note:This website uses AI models provided by third parties. Documentation prices are for reference and may be outdated. The Generate button shows an estimate; the final task charge prevails.

Ad Delayer API — Quick start

Grab a WaveSpeedAI API key, then call POST https://api.wavespeed.ai/api/v3/bria/ad-delayer with your input as JSON. The endpoint returns a prediction id. Start polling the result endpoint around every 2 seconds, increase the interval for long-running tasks, and stop on any terminal status. On completed, read output values from data.outputs. Examples for Ad Delayer below.

HTTP example
set -euo pipefail

: "${WAVESPEED_API_KEY:?Set WAVESPEED_API_KEY}"

REQUEST_BODY=$(cat <<'JSON'
{
    "image": "https://interactive-examples.mdn.mozilla.net/media/cc0-images/painted-hand-298-332.jpg",
    "text_mode": "svg"
}
JSON
)

# 1. Submit the prediction.
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
  -X POST "https://api.wavespeed.ai/api/v3/bria/ad-delayer" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $WAVESPEED_API_KEY" \
  -d "$REQUEST_BODY")

TASK=$(printf '%s' "$SUBMIT_RESPONSE" | jq 'if has("data") then .data else . end')
PREDICTION_ID=$(printf '%s' "$TASK" | jq -r '.id')
if [ -z "$PREDICTION_ID" ] || [ "$PREDICTION_ID" = "null" ]; then
  printf 'Submission response did not contain a prediction id
' >&2
  exit 1
fi
RESULT_URL="https://api.wavespeed.ai/api/v3/predictions/$PREDICTION_ID/result"

# 2. Poll until the prediction finishes.
while true; do
  RESPONSE=$(curl --silent --show-error --fail-with-body "$RESULT_URL" \
    -H "Authorization: Bearer $WAVESPEED_API_KEY")
  RESULT=$(printf '%s' "$RESPONSE" | jq 'if has("data") then .data else . end')
  STATUS=$(printf '%s' "$RESULT" | jq -r '.status')
  case "$STATUS" in
    completed) printf '%s\n' "$RESULT" | jq '.outputs'; break ;;
    failed|cancelled|timeout|deleted) printf '%s\n' "$RESULT" | jq . >&2; exit 1 ;;
    *) sleep 2 ;;
  esac
done
Node.js example
const submitUrl = "https://api.wavespeed.ai/api/v3/bria/ad-delayer";
const apiKey = process.env.WAVESPEED_API_KEY;
if (!apiKey) throw new Error('Set WAVESPEED_API_KEY');

async function requestJson(url, options = {}) {
  const response = await fetch(url, options);
  if (!response.ok) throw new Error(await response.text());
  return response.json();
}

// 1. Submit the prediction.
const body = await requestJson(submitUrl, {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
        "image": "https://interactive-examples.mdn.mozilla.net/media/cc0-images/painted-hand-298-332.jpg",
        "text_mode": "svg"
}),
});
const task = body.data ?? body;
if (!task.id) throw new Error("Submission response did not contain a prediction id");
const resultUrl = `https://api.wavespeed.ai/api/v3/predictions/${task.id}/result`;

// 2. Poll until the prediction finishes.
while (true) {
  const resultBody = await requestJson(resultUrl, {
    headers: { "Authorization": `Bearer ${apiKey}` },
  });
  const result = resultBody.data ?? resultBody;
  if (result.status === "completed") {
    console.log(result.outputs);
    break;
  }
  if (["failed", "cancelled", "timeout", "deleted"].includes(result.status)) throw new Error(JSON.stringify(result));
  await new Promise(resolve => setTimeout(resolve, 2000));
}
Python example
import json
import os
import time
from urllib.request import Request, urlopen

api_key = os.environ["WAVESPEED_API_KEY"]
headers = {"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"}
payload = {
    "image": "https://interactive-examples.mdn.mozilla.net/media/cc0-images/painted-hand-298-332.jpg",
    "text_mode": "svg"
}

def request_json(url, data=None):
    request = Request(url, data=data, headers=headers, method="POST" if data else "GET")
    with urlopen(request) as response:
        return json.load(response)

# 1. Submit the prediction.
body = request_json("https://api.wavespeed.ai/api/v3/bria/ad-delayer", json.dumps(payload).encode())
task = body.get("data", body)
if not task.get("id"):
    raise RuntimeError("Submission response did not contain a prediction id")
result_url = f"https://api.wavespeed.ai/api/v3/predictions/{task['id']}/result"

# 2. Poll until the prediction finishes.
while True:
    result_body = request_json(result_url)
    result = result_body.get("data", result_body)
    status = result.get("status")
    if status == "completed":
        print(result.get("outputs", []))
        break
    if status in {"failed", "cancelled", "timeout", "deleted"}:
        raise RuntimeError(result)
    time.sleep(2)

Ad Delayer API — Frequently asked questions

What is the Ad Delayer API?

Ad Delayer is a Bria model for AI inference, exposed as a REST API on WaveSpeedAI. Bria Ad Delayer splits flat advertisement images into editable image, text, and vector layers, returning a complete structured layer document as JSON for ad editing, localization, redesign, marketing creatives, and production workflows. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing. You can call it programmatically or try it from the playground above.

How do I call the Ad Delayer API?

POST your input parameters to the model's REST endpoint (shown in the API tab of this playground) with your WaveSpeedAI API key in the Authorization header. Submission returns a prediction ID. Poll the result endpoint starting around every 2 seconds, increase the interval for long-running tasks, and stop on any terminal status. The playground generates production-oriented Python, JavaScript, and cURL examples with timeouts, transient-error handling, and safe GET retries. Full request/response shape is documented at https://wavespeed.ai/docs/docs-api/bria/bria-ad-delayer.

How much does Ad Delayer cost per run?

Ad Delayer starts at $0.30 per run. That figure is the base price — the final charge scales with the parameters you set in the form (output size, length, count, references, or whatever knobs this model exposes), so a higher-quality or larger output costs more than a minimal one. The exact cost for your current input is shown live next to the Generate button before you submit, and the actual per-call charge is recorded on the prediction afterwards.

What inputs does Ad Delayer accept?

Key inputs: `image`, `text_mode`. The full JSON schema (types, defaults, allowed values) is rendered above the Generate button and mirrored in the API reference at https://wavespeed.ai/docs/docs-api/bria/bria-ad-delayer.

How do I get started with the Ad Delayer API?

Sign up for a free WaveSpeedAI account to claim starter credits, copy your API key from /accesskey, then call the endpoint shown in the API tab of the playground. The playground also auto-generates a code sample in Python, JavaScript, or cURL for the parameters you've set.

Can I use Ad Delayer outputs commercially?

Commercial usage rights depend on the model's license, set by its provider (Bria). The license summary appears on the model card above; see WaveSpeedAI's Terms of Service for platform-level conditions.

Bria Ad Delayer Editable Ad Layers JSON API on WaveSpeedAI