DiffusionGemma Advertisement Relay Gate
Loads a hash-verified Picture 4 so your ad's H3 lanes keep the same subject
- relay_reference
- relay_picture_tag
- status
- ready
In the governed advertisement workflow, a 30-second campaign doesn't render as one H3 clip - it renders as governed lanes, and the performer has to survive the seam between lane 1 and lane 2. The pack solves that with a persistent relay: lane 1's retained final frame becomes Picture 4 for lane 2, so the second half starts from where the first half actually left off instead of drifting back toward a generic face. DiffusionGemma Advertisement Relay Gate is the node that loads and verifies that relay artifact before it's allowed anywhere near H3.
Note the word "verify." This isn't a plain image passthrough. The relay artifact is a hash-addressed, hash-verified file, and this gate checks every layer of it before emitting a pixel: schema and version, campaign identity, plan hash, destination lane, that the lane actually permits relay, the artifact id's SHA-256 format, the hash-addressed filename, the file's bytes, and finally the decoded tensor's own pixel hash. Any mismatch raises. That level of paranoia exists because Picture 4 rides into the manifest alongside your real identity references, and a corrupted or wrong-image artifact would quietly poison continuity - or worse, look authoritative when it isn't.
What comes in
relay_artifact_json- the artifact manifest produced upstream (by the Advertisement Relay Artifact node, which wrote the file after lane N finished).advertisement_plan_json- the governed plan; the gate cross-checks campaign id and plan hash against the artifact.campaign_id- must match both the plan and the artifact, or the gate refuses.lane_index(default 2, range 2–4) - the later lane consuming the previous lane's tail.enabled(default True) - when false, the gate returns a disabled status and no image, rather than loading anything.
Outputs: relay_reference (the verified IMAGE), relay_picture_tag (<Picture 4> on success), status, and ready.
The role Picture 4 plays - and the line it never crosses
The ad workflow's reference contract is deliberately strict about authority: Pictures 1 and 2 are performer identity, Picture 3 is the product, and Picture 4 is continuity evidence only. It never becomes performer or product authority - the gate even refuses to treat relay as anything more than a tail reference. The README is blunt that Picture 4 is "continuity evidence only and never becomes performer or product authority." So if the relay makes the product label or the performer's face drift slightly across lanes, that's a generation problem to fix with better identity references, not something relay was ever meant to police. Relay just keeps scene state and wardrobe honest between passes.
Where it sits
It's the middle of the relay pipeline: the Relay Artifact node persists lane N's retained tail, this gate loads and verifies it for lane N+1, and the governed reference stack keeps the manifest ordered so the tail occupies Picture 4's slot. The general-purpose music-video sibling is DiffusionGemma H3 Relay Reference Gate, which does the same idea in-memory and off-by-default; the advertisement version is persistent and mandatory-by-contract because commercial output has to be reproducible and auditable.
Installing it
One of the pack's prompt/diffusiongemma/advertising nodes - install the whole pack once:
cd ComfyUI/custom_nodes
git clone https://github.com/exportAnything/ComfyUI-DiffusionGemmaPromptBuilder
or search DiffusionGemma Prompt Builder in ComfyUI Manager and restart. The heavier Advertisement workflow additionally needs ComfyUI ≥0.33.1 plus the MiniMax H3 and Music 3 model files listed in the README.
Common issues
- "Relay artifact campaign identity mismatch" / "plan SHA-256 mismatch." You're mixing artifacts and plans from different runs. Re-run the pipeline so the artifact, plan, and campaign_id come from the same queue.
- "The requested advertisement lane does not permit relay Picture 4." Not every lane takes a relay - the plan says which ones do. You pointed
lane_indexat a lane without a relay requirement. - Artifact file missing. The relay writes to a default local root; if you moved or cleaned it between queues, the hash-addressed file is gone and the gate correctly refuses rather than inventing a replacement.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| relay_artifact_json | STRING | — | |
| advertisement_plan_json | STRING | — | |
| campaign_id | STRING | — | |
| lane_index | INT | 22–4 | — |
| enabled | BOOLEAN | true | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| relay_reference | IMAGE | — |
| relay_picture_tag | STRING | — |
| status | STRING | — |
| ready | BOOLEAN | — |