Built for: performance marketers, creative ops teams and agencies who need a repeatable pipeline for AI-generated UGC ads — not a one-off video.

Five concepts in, three scored and rendered ads out — the same way, every time. Most "AI UGC" setups are a chain of manual steps: prompt an idea, prompt a script, generate a clip, hope it looks like the same person twice, cut it together by hand. That doesn't scale past one video, and it produces nothing you can learn from. The AI UGC Factory is an n8n workflow that turns one campaign brief into multiple scored, rendered, organised ads — with every concept scored before it's produced, every script quality-checked before anything renders, one locked creator identity per concept so nothing drifts mid-shoot, and every finished ad logged to a searchable Ad Library from the moment it's born, before a single impression exists.

<aside> 💡

The idea this system is built on.

Most of the cost in UGC ad production isn't the render — it's finding out after rendering that the concept was weak, the script didn't land, or the creator's face changed between shots. This workflow moves every judgment call earlier: concepts are scored and rejected before a script is written, scripts are scored and rejected before anything renders, and creator identity is locked once and reused rather than regenerated per scene. Nothing expensive happens until the cheap thing before it has already passed.

</aside>

When to use this

Use it when you need UGC-style ad variations at a volume manual production can't sustain — testing hooks, angles or creators for iGaming, DTC, mobile apps or games. It assumes n8n (self-hosted or Cloud), API access to a text/vision LLM, a TTS provider, a video assembly provider, and Google Drive/Sheets. Higgsfield Soul and the lip-sync step are marked as placeholders because their exact API contract wasn't available at build time — swap in the real endpoint once you have API access; every other node is a real, working n8n node type.


1. Overall Architecture

16 production stages plus a global config node and a separate error-handling workflow. Stages 3 through 15 run inside two nested loops — one per concept, one per approved script — so a single failed concept or platform variant never blocks the rest of the batch.

flowchart TD
    S0["Stage 0\nTriggers + Config"] --> S1["Stage 1\nIntake & Validation"]
    S1 --> S2["Stage 2\nCustomer Intelligence"]
    S2 --> S3["Stage 3\nGenerate 5 Concepts"]
    S3 --> S4{"Stage 4\nScore & Reject"}
    S4 -->|approved| S5["Stage 5\nScript Generation"]
    S4 -->|shortfall, bounded retries| S3
    S5 --> S6{"Stage 6\nScript QC"}
    S6 -->|fails, bounded rewrites| S5
    S6 -->|passes| S7["Stage 7\nCreator Generation\n(locked identity)"]
    S7 --> S8["Stage 8\nTwo-Pass Voice"]
    S8 --> S9{"Stage 9\nLip-Sync +\nConsistency Check"}
    S9 -->|fails, bounded retries,\nsame identity| S9
    S9 -->|passes| S10["Stage 10\nB-roll"]
    S10 --> S11["Stage 11\nVideo Assembly\n(per platform)"]
    S11 --> S12["Stage 12\nCaptions"]
    S12 --> S13{"Stage 13\nFinal QA"}
    S13 -->|rejected| Repair["Repair Branch\n(targeted, not full restart)"]
    Repair --> S5
    S13 -->|manual review| MR["Manual Review Queue"]
    S13 -->|approved| S14["Stage 14\nDrive Delivery"]
    S14 --> S15["Stage 15\nAd Library Log"]
    S16["Stage 16\nWeekly Performance Review\n(separate schedule)"] -.new variations feed back into.-> S3

This is deliberately not a single straight line: the concept loop, script loop and platform-variant loop each carry only the items still worth pursuing, and rejections exit into logging rather than silently vanishing.


2. Node-by-Node Build Table

92 working nodes across the 16 stages, config and error handling (plus 18 sticky-note dividers marking each stage inside the canvas — not counted as production nodes). Every node performs exactly one validation, generation, routing, logging or error-handling job; nothing is there to pad the count.

Stage Node Count What Happens
0. Triggers & Config 4 Form/webhook intake, payload normalisation, the single global-settings node everything else reads from
1. Intake & Validation 13 Campaign ID, field validation, input cleaning, website analysis, conflict/compliance pre-check, Drive folder tree, Ad Library record
2. Customer Intelligence 2 Deep customer analysis that every later stage draws from
3. Generate 5 Concepts 3 Diverse concept generation, split into an independent per-concept loop
4. Concept Scoring & Rejection 10 12-criteria scoring, weighted total, duplicate check, approve/reject gate, logging, bounded regeneration
5. Script Generation 5 Full script + scene breakdown, duration check, rewrite loop
6. Final Script QC 5 Independent second scoring pass, pass/fail gate, bounded rewrite loop
7. Creator Generation 3 Locked AI creator identity (Higgsfield Soul placeholder), stored record, reference image saved
8. Two-Pass Voice 4 Performance voiceover, timing/alignment pass, files saved
9. Lip-Sync Without Drift 8 Lip-synced render against the locked identity, duration validation, vision consistency check, bounded retry, manual-review flag
10. B-roll Production 4 Opportunity identification, sourcing, fabrication check, storage
11. Video Assembly 7 Per-platform render jobs, assembly, status polling, draft storage
12. Captions 3 Transcript/SRT from real timing data, burned-in + clean versions
13. Final QA 5 Technical checklist, vision compliance check, three-way verdict, targeted repair routing
14. Drive Delivery 3 Consistent naming, upload, shareable link
15. Ad Library Log 1 Final record update — loops back for the next concept
16. Performance Feedback Loop 5 Weekly schedule, performance read, winning-pattern analysis, mechanism-preserving variation generation
Error Handling 6 Error trigger, classification, backoff retry, logging, alerting, single-concept resume

Full list with every individual node name, type and purpose:

<aside> 📎

node-by-node-table.csv

</aside>

<aside> 📅

92 nodes is a lot to wire by hand.

If you would rather have this running against your stack than rebuild it node by node, we can deploy it with you.

Talk to UGC Ninja

</aside>


3. Branching & Loop Logic