VeditX workflow · ad-multiplier v0.1.0

Raw camera files in. Finished ads out.

A marketplace of video-editing workflows. Drop footage and a logo in a folder — the palette is read off the logo, shots are cut and scored, and every headline is measured against the real font before a single frame renders.

36
ads from 4 raw files
22.6s
wall clock
7/9
stages need no model
0
brand configs written

What the workflow adds

schematic · not client work

Input is an unedited camera file — one that probes as 3384×6016 portrait while carrying rotation=-90, so it is really landscape. Branding, headline and layout are applied by code. Every proportion below is drawn from the measured spec, so these are the real geometry rather than an illustration of it.

beforeselect cut and scored automatically
aftercard · lockup · two-line headline · 4×5

The card is fixed. The frame is not.

measured, not eyeballed

Every ratio carries a pixel-identical 1080×432 header card — verified at a mean channel difference of 0.02. The footage area absorbs the whole difference, so a taller canvas reveals more of the shot instead of squeezing it. Watch the white band stay the same while the field below it grows.

1×1card 432 · footage 648
4×5card 432 · footage 918
9×16card 432 · footage 1488
Headlines must break to exactly two lines, bottom-locked at y=392 with a 96px pitch. Every ad in the reference campaign does. Overflow is rejected, not shrunk — silently shrinking type would ship off-brand work at 600-file scale and nobody would notice.

One workflow, any brand

palette read from the logo

Nothing about the brand is written by hand. The card colour, headline colour and accents are extracted from the logo file — on one campaign the derived navy came back #013C69 against a true measured #003D6C. A monochrome wordmark correctly falls back to black. Each tile below is a different derived palette.

Derived palettes

same layout · different kits
navy · lake
black · road
clay · desert
dark card · amber
green · coast
crimson · dusk

Proven on two real campaigns: a reference set of 600 ads across three ratios, and a second brand taken from four raw 4K/6K camera files to 36 ads in 22.6 seconds with no brand config authored by hand.

Where the model is, and isn't

works with any LLM

The split is the architecture. Judgment is a JSON file, not an SDK — there is no provider import anywhere in the pipeline.

Deterministic

ffmpeg and Pillow. Reproducible, resumable, cheap. Never asks a model anything.

ingestselectcomposerenderpackagetenantdeliver

Judgment

Any model, or none. Paste the brief anywhere, call any OpenAI-compatible endpoint, or write the lines yourself.

tagcopy
The gate is in the code, after the model speaks. A weak model cannot ship off-brand output — it can only fail the check and be asked again, with the failure quantified.
# a rejected headline, measured against the real font
selects/freedom: 'Book now for the adventure of a lifetime'
                 is 680px too wide — shorten by roughly 30 characters
selects/pride:   uses banned phrase 'book now'

Gate it, or open source it

one field

The registry, storefront and plugin manifest all generate from each workflow's veditx.json, so a listing cannot drift from the package it describes — including its unfinished parts, which render on the card.

Ad Multiplier gated

AES-256-GCM, decrypted in the browser by a passcode. What lands in Downloads is an ordinary .zip.

Reframe Batch open source

MIT. Any footage, every social ratio. No branding, no copy, no model.

search_workflows("video")          → what exists
describe_workflow("ad-multiplier") → inputs, stages, and its known gaps
estimate_cost(selects=100, angles=6)  → 1,800 outputs · 2,650 credits
run_workflow(id, folder)          → execute
Discovery returns the gaps, not just the pitch. An agent choosing between workflows needs the failure modes — a registry that only advertises strengths produces agents that pick wrong.