How Goddo turns one prompt into a five-agent pipeline.
Prompt rewrite, style guide, render, refine, watermark. Each step is its own agent — a single failure doesn’t take down the whole render, and we can swap any stage without redeploying.
Goddo team
AI image / video

Goddo looks like one button. Behind that button is a five-agent pipeline. The prompt the user types isn’t the prompt the renderer sees. The asset the renderer produces isn’t the asset the user gets. Every stage is its own agent with its own model, its own cost profile, and its own retry behaviour.
The five stages
- Prompt rewrite — turn a short user prompt into a detailed, model-friendly description.
- Style guide — apply per-brand or per-app style constraints (ratio, mood, avoid-list).
- Render — call the chosen image / video model with the rewritten prompt.
- Refine — optionally re-roll specific regions (background, faces, type).
- Watermark — embed rights metadata and an optional visible mark for free-tier users.
Why five agents and not one
Because every stage breaks differently, and every stage’s cost is different. Prompt rewrite fails when the user asks for something disallowed; we want a clean refusal there, not a refusal mid-render. Render fails when the upstream model is overloaded; we want to retry on a different model, not redo the rewrite. Watermarking fails when the asset format is unusual; we want a warning, not a hard fail.
// Each stage is its own typed agent.
const rewritten = await prompt.rewrite(userPrompt, brand);
const guided = await style.apply(rewritten, brand);
const raw = await render.run(guided, ratio);
const refined = await refine.run(raw, regions);
const final = await watermark.embed(refined, rights);Per-brand style guides as agents
Studios that embed Goddo run different style guides for different brands. We model each brand as its own ‘style.apply’ agent. Same prompt, different agent, different output. The render stage is identical. This is what lets a creative team go from ‘brief → first draft’ in a fraction of the time without ever shipping off-brand work into review.
Refining without redoing
The refine stage is the secret sauce. Designers usually don’t want a different image — they want this image with that one thing fixed. Refine takes a region mask and a delta prompt, and re-renders just that region. It’s cheaper than a full render, and it preserves the rest of the composition.
Failure as a first-class state
Each agent emits its own structured outcome. ‘Prompt rejected’ at stage one is a clean error the UI can show. ‘Render timed out’ at stage three triggers a model swap, not a user-facing error. ‘Watermark unsupported format’ at stage five logs a warning and still ships the asset. We don’t collapse these into a single ‘something went wrong.’
“One prompt, five agents. The user sees one button — and that’s the point.”