Model or dataset
pyang5166/gbro-collage-broll avatar
pyang5166/gbro-collage-broll

gbro-collage-broll: a three-gate agent skill for halftone paper-collage B-roll

半调纸拼贴 B-roll 生成 skill:三闸门审批,Gemini Omni Flash 首尾帧组装动画 | Editorial halftone paper-collage B-roll agent skill

1,284 stars110 forksPythonMIT

At a glance

What is it?
The skill turns a five-second voiceover line into a paper-collage assemble animation by forcing two human approvals before any video generation is billed. The gate protocol is the product; the prompt templates are secondary.
Who is it for?
Adopt gbro-collage-broll if you already work inside Codex or Claude with an agent skills directory, you can supply a GEMINI_API_KEY, and you accept that every clip costs at least two rounds of your attention. Do not adopt it if you need silent-batch throughput, if you have no image_gen tool in your agent environment, or if you want a general-purpose video editor.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 65 days ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 17, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

The problem: video generation is billed before you know if the idea is right

Most text-to-video workflows collapse two different decisions into one API call. You write a prompt that encodes both the metaphor and the rendering, submit it, pay, and then discover the metaphor was weak. gbro-collage-broll splits those decisions apart. The README states the point plainly: the core of the skill is not a prompt template but a mandatory three-stage approval, so attention goes to aesthetic judgement instead of generation spend.

The audience is narrow and specific. You need an agent environment that supports skills (the README names ~/.agents/skills/ and ~/.claude/skills/ as example locations), a Codex environment with a built-in image_gen tool for the still-frame gate, and a GEMINI_API_KEY created in Google AI Studio. If you produce short-form vertical video and you already write voiceover lines of roughly five seconds, the input format matches what you have. If you do not write voiceover scripts, there is nothing here for you to feed it.

Three gates, and why the first two are free

Gate 1 outputs only a visual metaphor plan: core meaning, key objects, background colour, assembly order. No image or video is generated at this stage. That is the cheapest possible place to be wrong, because correcting text costs nothing.

Gate 2 generates a colour collage still plus a contact sheet, and waits again. Only after that still is approved does Gate 3 run, and Gate 3 is where gemini-omni-flash-preview assembles the animation from first and last frames. The README's own FAQ gives the arithmetic: a wrong metaphor or still that goes straight into video generation wastes real API money, while redoing one image at Gate 2 is far cheaper than rerunning a video.

Gate 3 also ships QA rather than just an MP4. According to the README, the output includes per-second frame extraction, verification that the first frame is an empty stage, and a last-frame comparison. Batch mode supports partial approval, so only the items you confirmed advance to the next stage. That detail matters more than it looks: in a batch of ten lines, approving three does not force you to pay for the other seven.

Install and run one line end to end

The skill is installed by cloning the whole directory into your agent's skills folder. The README gives this exact command:

bash
git clone https://github.com/pyang5166/gbro-collage-broll.git ~/.agents/skills/gbro-collage-broll

On first trigger the skill runs its own check_setup.sh self-test and prints configuration guidance for whatever is missing. The generation scripts (generate_video.py and upload_file.py) ship inside the skill, so there is no second skill to install. Python 3.10 or newer is required, and the README says the skill will guide you through creating a shared virtual environment at ~/hyperframes-projects/.omni-venv/ holding google-genai 2.10.0 or later. ffmpeg and ffprobe must be present for first/last-frame handling, audio-track removal and contact sheets.

To use it, you address your agent with a trigger phrase followed by the line. The README's own example reads:

text
collage b-roll:很多人以为 AI 是来替你思考的,其实它更像一面镜子,会把你问题里的漏洞照出来。

Recognised triggers include collage b-roll, 纸拼贴 b-roll, 半调拼贴, 拼贴风格配画面 and gbro-collage-broll. After triggering, you confirm Gate 1, then Gate 2, then let Gate 3 run. The default delivery is 9:16, 5 seconds, 720x1280, 24fps, silent MP4, sized to sit under a voiceover track. You can pass several lines at once; each line gets its own metaphor and its own clip.

What the animation actually looks like, and where it breaks

The visual target is stated as strongly flat solid paper-colour fields, black-and-white halftone photo cutouts, and coloured card accents. Elements slide in one at a time from an empty stage, lock into position, and assemble, giving a stop-motion feel. The README is explicit that this is not a fade-in and not a slow zoom. If you want a dissolve or a Ken Burns push, this skill is aimed at the wrong effect and you will spend gates fighting it.

The known failure mode is documented rather than hidden. The FAQ asks what happens when a sliver of paper shows at the edge of the first frame, and the answer is that slight bleed is acceptable. If you need a strictly empty opening frame, the README recommends patching the leading segment in an animation tool with an editable timeline. That is a real boundary: the skill does not guarantee a clean empty stage, and the prescribed fix lives outside the skill.

The second constraint is model lock-in. The FAQ states the default is fixed to gemini-omni-flash-preview and only switches when another model is explicitly named. The repository also carries scripts/generate_veo_first_last.py, described as a legacy Veo path kept for compatibility and not used by default. If you are standardised on a different video provider, you are adapting around the skill rather than using it.

How it differs from a general agent video pipeline

A general agent video pipeline, the kind you assemble from a chat model plus a video API plus your own glue, gives you one call and one result. The difference here is not the model. It is that the skill encodes a state machine with two blocking checkpoints and refuses to advance without them, and that the repository ships evals/evals.json containing four gate-behaviour evaluations. A hand-rolled pipeline has no gate evaluations because it has no gates.

The trade-off is throughput. Two mandatory human confirmations per clip means a ten-line batch needs at least twenty decisions before anything renders. The README's partial-approval mode softens this, since only confirmed items advance, but it does not remove the attention cost. If your goal is unattended generation overnight, this design is actively hostile to that goal, and that is deliberate rather than an oversight.

Maintenance, licence and what the last push date tells you

The repository is not archived. Its last push was on 2026-07-15, which is more than six months before today, so this is not a project I would describe as actively maintained. There are no retrieved releases, so there is no version history to reason about; the default branch is main and the install path is a plain clone of that branch. Pinning a commit is the only way to get a reproducible install.

The licence is MIT, which permits commercial use and modification provided the copyright notice and permission notice are retained. The README does not document rollback, and the repository layout exposes no migration or upgrade mechanism beyond pulling main again. That combination means upgrade cost is essentially re-cloning and re-reading SKILL.md for changes to the gate protocol. One cost sits outside the licence entirely: video generation is billed per use through your own GEMINI_API_KEY, and the README states that billing is usage-based. The MIT licence covers the skill code, not the API calls it makes.

Editorial conclusion

Adopt gbro-collage-broll if you already work inside Codex or Claude with an agent skills directory, you can supply a GEMINI_API_KEY, and you accept that every clip costs at least two rounds of your attention. Do not adopt it if you need silent-batch throughput, if you have no image_gen tool in your agent environment, or if you want a general-purpose video editor. Before your first paid run, execute scripts/check_setup.sh and confirm four things: that image_gen is available for Gate 2, that ffmpeg and ffprobe are on PATH, that Python is 3.10 or newer, and that the shared venv at ~/hyperframes-projects/.omni-venv/ resolves google-genai 2.10.0 or later. Then run one line end to end before you feed it a batch, because the per-item partial-approval behaviour in batch mode is the part that costs money when it is misunderstood.

Frequently asked questions

How do I create B-roll videos with gbro-collage-broll?

Clone the repository into your agent skills directory, then address your agent with a trigger phrase such as collage b-roll followed by a roughly five-second voiceover line. Confirm the metaphor at Gate 1 and the still frame at Gate 2, after which Gate 3 generates the clip with gemini-omni-flash-preview.

What does gbro-collage-broll need installed before it will run?

The README lists a Codex environment with the built-in image_gen tool for Gate 2, a GEMINI_API_KEY from Google AI Studio, Python 3.10 or newer, google-genai 2.10.0 or later in a shared venv at ~/hyperframes-projects/.omni-venv/, and ffmpeg plus ffprobe. On first trigger the skill runs scripts/check_setup.sh and reports what is missing.

Can I use a video model other than gemini-omni-flash-preview with gbro-collage-broll?

The README's FAQ states the default is fixed to gemini-omni-flash-preview and only switches when another model is explicitly specified. The repository also keeps scripts/generate_veo_first_last.py as a legacy Veo path for compatibility, which the README says is not used by default.

Official sources

  1. Issues
  2. License: MIT
  3. pyang5166/gbro-collage-broll on GitHub
  4. README
Community notes

Community notes