broll_imagen_generate
AI agent that generates still images with Google Imagen and adds subtle motion (zoom/pan), then places them as broll clips in timeline gaps.
Tip: The
mediaprocessor'simagenpreset generates the same kind of clips from a spec, and withsource: gapsfills empty spans. This processor remains the transcript-driven agent that writes its own prompts. Seemediaand Filling gaps and generating per segment.
When to use
An alternative to broll_veo_generate when you want still images with motion rather than fully generated video. Images are faster and cheaper to generate. See the Broll guide.
In the editor
Add it from the Library (B-Roll group), or with + add step and a search for broll_imagen_generate, after your transcript and your main cut.
Under Inputs, add transcript as a step input, and backbone as a step input pointing at the step that made the cut, so that changing the cut makes this step think again rather than reusing pictures made for a different edit. Use the step's Prompt to say what the images should be like; that instruction is what steers them. max_generate is your budget for the run, target_dur_sec how long each image is held, and motion_style with zoom_pct or pan_pct give the stills their slow drift. eval_prompt is the standard each generated image is judged against, and images that fail it are thrown away rather than used.
This step needs your own Google key. Add it in the workspace's Variables & Service API Keys, from the editor's Settings. A run that needs a key you have not set is stopped before it starts, so you are not charged for half a video.
The images appear as clips on the b-roll level in the run timeline, filling the gaps where you are not on screen, and the generated files are saved into your project so you can reuse them. Preview before shipping: generated images are convincing at a glance and odd on a second look.
YAML Example
- id: broll_img
processor: broll_imagen_generate
input:
- id: transcript
step: transcribe_main
- id: backbone
step: ai_cut
params:
backbone_step: ai_cut
max_generate: 8
target_dur_sec: 4.0
motion_style: zoom_in
zoom_pct: 8
output_dir: broll-imagen
eval_prompt: >
Accept: clear, focused image without distortion or artifacts.
Reject: blurry, faces, text artifacts, impossible geometry.
output:
timeline: broll
prompt: |
Generate images for unfilled gaps that illustrate what the speaker is saying.
Prefer clean, literal, on-topic visuals; avoid faces and text.
cache: true
Required secrets
GOOGLE_API_KEY: set in workspace or template secrets. A run whose pipeline includes this processor is refused before it starts if the key is missing; the web UI prompts for it.
Inputs
| ID | Source | Description |
|---|---|---|
transcript |
step | Word-level timestamps |
backbone |
step (optional) | Cache dep: re-run when cut changes |
Params
| Param | Type | Default | Description |
|---|---|---|---|
min_gap_sec |
duration (s) | 5 |
Minimum gap to fill |
max_gap_sec |
duration (s) | 0 |
Gaps longer than this need coverage (0 = AI decides) |
max_duration_sec |
duration (s) | 0 |
Max clip duration |
target_dur_sec |
duration (s) | 4 |
Target clip duration |
motion_style |
select: zoom_in, zoom_out, pan_left, pan_right, none |
"zoom_in" |
"zoom_in", "zoom_out", "pan_left", "pan_right", "none" |
zoom_pct |
number | 5 |
Zoom percentage for zoom motion styles |
pan_pct |
number | 10 |
Pan percentage for pan motion styles |
eval_prompt |
text | none | Accept/reject criteria for generated image analysis |
no_clip_reuse |
bool | false |
Prevent reusing the same image in multiple gaps |
model |
select: imagen-4.0-generate-001, imagen-3.0-generate-002 |
"imagen-4.0-generate-001" |
Imagen model name override |
max_generate |
number | 0 |
Imagen budget per run (0 = unlimited) |
backbone_step |
string | none | Step ID to read backbone timeline from |
output_dir |
string | "broll-imagen" |
Folder in your workspace where generated clips are kept. |
Output
EditDecisions on the broll level.
Notes
- Uses Puffin Ship's built-in AI for prompt generation; requires a
GOOGLE_API_KEY(set in your workspace's Service API Keys) for Imagen generation. - Generated images are saved into your workspace, in the folder named by
output_dir(e.g.broll-imagen/), and tracked in a manifest. - Motion is added as a slow zoom and pan across the still image.