all platform products

Real apps don’t call one model.

Production-grade outputs come from chains: enhance the prompt, generate, upscale, compose, narrate. Workflows let you build this as a typed graph, versioned, diffed, rolled back, and ship the whole thing through one API call.

  • WHATA typed graph that chains models, defined once, executed as one call.
  • WHYVersioned, branched in parallel, traced end to end. No glue code.
  • HOWDefine the graph; call each({ workflow }); pin a version when you're ready.
SHIPPED BYNOVALUMEHelixMakerForma
WORKFLOW · LIVE
queued
step · 01
INPUT
2 portraits · Person1.png · Person2.png
step · 02
enhance
gpt-4o · 0.4s · $0.001
step · 03
⋯ parallel3 branches
image
flux-2
-
video
veo-3.1
-
audio
eleven-v3
-
step · 04
merge
compose · 0.2s
step · 05
OUTPUT
the-last-hold.mp4 · 15s · 720p · 16:9
each("the-last-hold-video")5 steps · v3.2 · 1 trace
five models · one call · one trace · zero glue code
8K+
workflows in production
v1.0
versioned, rollback-safe
<3s
avg multi-model run
0
glue code required

A typed graph, shipped through one call.

Workflows are first-class infrastructure. Each node is a model call or a utility (enhance, moderate, compose). Edges are typed. Versions are pinned. Every run is traced end-to-end.

mechanism01
workflow.version("v3.1")

Versioned + diffed

v3.2 in prod, v3.3 in staging, v2.4 archived. Pin a version per call, diff two versions side by side, and roll back in one click, no rebuild, no redeploy.

mechanism02
graph: { image, video → merge }

Multi-model parallelism

Branches run concurrently. Image and video generated in parallel and merged at the next node, total latency = the slowest branch, not the sum of branches.

mechanism03
POST /v1/run

Single endpoint

Your client calls each({ workflow: "X" }). The graph executes server-side; you don't orchestrate steps from the client. One trace_id covers the whole run.

Turning a one-line prompt into a shippable product video.

A real workflow, four steps: enhance the prompt, generate the video, add the voiceover, compose the cut, all shipped through one API call.

8,242workflows / 24h
▸ live logs
$each({ workflow: "product-vibez" })
·[12:01:03] enter · enhance (gpt-4o)
[12:01:04] step ok · enhance · 1.2s · $0.001
·[12:01:04] enter · generate (kling-v3)
[12:01:09] step ok · generate · 4.8s · $0.180
[12:01:09] step retry · voice (eleven-v3) · transient 503
[12:01:10] step ok · voice · 0.8s · $0.012 · resumed from cache
[12:01:11] step ok · compose (mux) · 0.6s · $0.001
#workflow done · total 7.4s · $0.194 · v3.2
$
▸ what happens
workflow("product-vibez") · run
1enhance1.2s
2generate4.8s
voice↻ 0.8s
4compose0.6s
total: 7.4s · resumed from cache · no double-bill
region: us-east-1 · eu-west-1 · apac-1

A graph. An execution. A version.

Workflows aren’t scripts. They’re typed graphs with versioned execution. The runtime handles parallelism, retries, and traces; you describe what chains together.

01GRAPH

Typed nodes. Wired by reference.

Every node has typed inputs and outputs. Edges are references like 'enhance.out', typo-checked at define time.

graph: {
enhance:{kind:"util",in:"inputs.prompt"}
image:{kind:"model",in:"enhance.out"}
video:{kind:"model",in:"enhance.out"}
}
typed · diffable · 0 typos at runtime
02EXECUTION

Sequential + parallel. Traced as one.

Independent branches run concurrently. Dependents wait. Every step lands in one trace with cost and latency per node.

execution timelineparallel · 6.2s total
enhance
1.6s
image
3.4s
video
4.2s
audio
2.2s
merge
1s
Σ cost
$0.175
parallel
3
trace
1
03VERSIONING

Pin a version. Roll back in one string.

v3.2 in prod, v3.3 in staging, v2.4 archived. Promote, rollback, A/B, change one string, no redeploy.

$ workflow log · product-photo3 versions
v3.3staging
try eleven-v4 for audio
v3.2prod
parallel image+video+audio
v2.4archived
sequential video pipeline
each({ version: "v3.2" }) · no redeploy

Reach for workflows when…

01

A consumer feature needs 4 model calls

Image + voice + music + compose, orchestrate that from your client and you'll be debugging glue code on weekends. Workflows make it one server-side call, one trace, one rollback unit.

4 calls → 1 API call
02
+
+

QA wants the new version on 10% of traffic

Without versioning that's a redeploy with feature flags. With workflows, ship v3.3 to 10% sticky-by-user and watch the trace before promoting, or roll back in one click if quality drops.

version("v3.3") · 10% rollout
03

Step 3 of 4 just failed in production

Without resumable steps you re-run from scratch and double bill the user. Workflows cache step outputs, retry from the failure point, and bill the user once, no half finished outputs reaching customers.

retry from step 3 · cached 1-2
04

Marketing wants to A/B the whole pipeline

A/B isn't just for individual models, sometimes the whole pipeline (enhance + gen + voice) is what's changing. Workflows are A/B-able as a unit, with sticky cohorts and a single significance test.

experiment: pipeline-v3 vs v4

Other products you’ll use alongside this.

* FAQ

FAQ

01 / 07

What is an each::labs workflow?

An each::labs workflow is a multi-step AI pipeline that chains models, prompts, conditional steps, and post-processing into one definition. You build it once, then trigger it through the each::labs API: short runs return the finished output, longer runs return a job you receive by webhook, with retries and failover handled automatically.

Build the pipeline once. Ship it from anywhere.

Workflows are free on every plan. Versioning, rollback, and visual editor are unlimited.