Backblaze Generative Media Hackathon

Salvo

One ad is a guess. A salvo is a decision.

Live · OFFLINE demo, zero credentials Genblaze · Backblaze B2 Python · FastAPI
The hook

Six shots.
One decision.

A brief fans out into N ad variants, each scored on transparent signals — and the top three ship with the reason attached.

The problem

One-shot generation
is a gamble.

It's 11pm before a launch. Maya asks a model for an ad and gets one image. No batch to compare, no score, no reason why — so she ships a guess and hopes it converts.

// the usual output
prompt → 1 image
comparison → none
score → none
"why this one?" → vibes
audit trail →
The solution

Brief in.
Best three out.

  • Real fan-out — N variants through one Genblaze pipeline
  • Stored with provenance — every variant lands in Backblaze B2
  • Ranked, explained — deterministic scores + a plain-English reason
api.salvo.edycu.dev/console
Salvo console — scored variant grid with top 3 ringed
How it works — four real SDK moves

Genblaze fans out. B2 holds the truth.

01 · INPUT
brief
one line of intent
02 · GENBLAZE
Pipeline.astream
N-way parallel fan-out (mc=N)
03 · BACKBLAZE B2
ObjectStorageSink
campaigns/{date}/{run}/…
04 · VERIFY
read_manifest
verify=True · hash-checked
05 · DECIDE
rank → top 3
explainable scores

OFFLINE=1 runs the whole path on a local StorageBackend  ·  B2_KEY_ID flips storage to a real bucket — same code.

Live demo — one brief, six scored variants
api.salvo.edycu.dev/console
Salvo console populated with scored variants
1
brief + presets
2
manifest verified ✓
3
top 3 — magenta ring
4
score + reasons
Every score ships its receipt

Three transparent signals.

0.45
Brief coverage
keywords the headline actually uses
0.25
Headline length
closeness to the 22–42 char sweet spot
0.30
Engagement index
deterministic, seeded from the content hash

Honesty note: the engagement index is not real CTR data — it's a reproducible stand-in, and every reason string says so.

Why it works

Narrow flow,
devastatingly done.

  • SDK depth — real astream fan-out, sink, and manifest verify
  • Determinism — same brief, same board, every time
  • Provenance — every variant is stored and hash-verifiable
$ OFFLINE=1 pytest -q
19 passed in 3.1s
coverage  100%
manifest verified ✓
creds needed 0
Shipped, live, reproducible

What's already running.

19
pytest tests, green offline end-to-end
100%
line coverage · app + engine
2
live surfaces — landing + real API console
CI
7-stage pipeline, deploy on green

salvo.edycu.dev  ·  api.salvo.edycu.dev/console  ·  github.com/edycutjong/salvo

The ask

Fire one yourself.

Open the console, type any brief, and watch six scored variants land — no signup, no keys. Then tell us which three you'd ship.

scan → api.salvo.edycu.dev/console
Sponsored by Backblaze GMI Cloud
← → navigate · P notes · ESC grid
01 / 10
Speaker notes