AV Curation Pipeline — end-to-end run on 9NcjRFu6C4I

LangGraph agentic pipeline (av_langgraph_pipeline), Slurm job 386863 on an H100, 2026-07-22, total 656 s — final status passed. Each card below shows one graph node with its input and output. Badges: real model ran in this job, cached real output reused from the previous job, stand-in offline substitute, mock not yet implemented.

captionsounding-objectSAM3 segmentation → gate → EffectErase inpaintvisual check → gate → SAM-Audio best-of-10 + ImageBind selectaudio check → gate → paired output
INPUT

Source AV clip

8 s, 24 fps train-simulator clip with audio — plus the preprocessed mono wav that feeds SAM-Audio.

input.mp4 (with audio)

extracted source audio

STEP 1

AV caption generation

cached real — Qwen3-Omni 30B

In: input video+audio  ·  Out: caption text

“A blue and yellow CSX locomotive travels along a track in a flat, grassy landscape. As it approaches a junction, the train derails and begins to flip over, lifting its front end high into the air while the rear remains on the ground. The train continues to tilt and rotate, eventually becoming almost vertical. The sound of a train horn is heard, followed by the clatter of wheels on the tracks.”

Generated by Qwen3-Omni in the first job of this session and reused here (identical node, cached to avoid ~10 min of recompute).

STEP 2

Sounding-object extraction

offline stand-in

In: caption  ·  Out: target object = train engine

Normally GPT (gpt-4o-mini) via the OpenAI API; the provided key had no quota (429 insufficient_quota), so an offline rule returned “train engine” — the same prompt used by all earlier experiments on this clip, and the phrase SAM3 responds to far better than the bare “train” (first-frame ratio 0.095 vs 0.002).

STEP 3

Target-object segmentation (SAM3)

real

In: input video + prompt “train engine”  ·  Out: whole-video mask (+ overlay / masked previews)

overlay (mask on video)

binary mask

masked (object zeroed)

first-frame / mask-area ratio: 0.0951

SAM3 tracks this synthetic (game-rendered) train in only ~9 of 202 frames — the mask goes empty after the opening frames. That weakness drives everything downstream on this clip and is why the demo gates below were lowered.

STEP 4

Object-removal inpainting (EffectErase)

real

In: input video + SAM3 mask  ·  Out: inpainted video (object visually removed)

before (input)

after (inpainted)

With only ~9 masked frames, EffectErase's temporal context (train visible in every unmasked frame) largely repaints the train — an honest failure case for this clip, quantified by the next step.

STEP 5

Visual removal check

real

In: inpainted video + original mask  ·  Out: removal score (SAM3 re-segmentation ratio)

visual_removal_score: 0.4352 — passed the demo gate (0.40); the production gate is 0.80.

STEP 6

SAM-Audio best-of-10 + ImageBind selection

real

In: source audio + SAM3 mask video + prompt “train engine”  ·  Out: 10 candidates (visual & text prompts × 5 seeds), winner picked by max ib_ta (ImageBind text↔target), tiebreak min ib_ta_res (text↔residual, lower = cleaner removal).

rankpromptseedib_ta ↑ib_ta_res ↓target (train engine)residual (removed)
1 ★visual14536350840.23350.0835
2visual2408682050.18890.0220
3text13355220780.17810.1930
4visual13355220780.17270.1741
5text2408682050.13970.0393
6text14536350840.09150.1489
7visual11328915770.07310.2736
8text11328915770.05880.2716
9text17789861340.04530.2587
10visual17789861340.02420.2637

Generation: SAM-Audio large, one model load, seeded per candidate (samaudio311 env). Scoring: same calc_imagebind_score as the ranking_test eval (JavisDiT repo, javisdit env).

STEP 7

Audio removal check

mock

In: winner residual  ·  Out: audio_removal_score = 0.9 (placeholder checker, passes the 0.80 gate)

STEP 8

Paired AV output

Out: inpainted video paired with the winning object-removed audio.

final: inpainted video + best residual audio (unmute!)

best residual (train engine removed)

best target (isolated train engine)

CONFIG

Demo gate overrides

gateproductionthis demo runobserved value
SAM3 first-frame ratio0.10 (dev; 0.80 target)0.050.0951
whole-video mask area0.150.050.0951
visual removal score0.800.400.4352

Lowered (via env vars, defaults unchanged in code) solely so this hard clip traverses every stage for visualization; at production thresholds the pipeline correctly discards it at the mask gate.