Joint audio-visual highlighting: given an 8-second clip and an object name, brighten the object in the video and make its sound stand out in the audio. Every number on this page is read from the evaluation JSONs when the page is built.
1 · Data process
Source clips. 8-s clips from filtered VGGSound and AudioSet (unbalanced). The same clip is both the audio and the video input.
Video target (SAM3). SAM3 segments the object named in the prompt (up to 3 instances + union), and the masks are interpolated over time. The target brightens the object's box (×2.0, skipped if the box covers under 5% of the frame) and applies a Gaussian-falloff blur outside 2.5× the box. Output is 24 fps.
Audio target (SAM-Audio, best of several seeds). Separation is guided by the mask when one exists (5 seeds × up to 4 masks) and by the text prompt otherwise (5 seeds). ImageBind picks the winner by the highest text–audio score, with ties broken by the lowest residual score. Target audio = peaknorm(1.5·sonority_boost(target) + 0.1·residual), 44.1 kHz mono.
Mask / prompt consistency fix. 23% of train+val ids had their mask and their audio built from different object names. A canonical text_prompt was restored, then SAM3 and SAM-Audio were re-run for those ids.
Object count (GroundingDINO).grounding-dino-base runs on 8 frames (threshold 0.35); the median detections per frame gives 0 / 1 / 2 / ≥3.
Highlight visual check. The highlight region is compared with the GroundingDINO boxes, giving one of: match, global (the whole frame is highlighted), mismatch, nodet, invisible, noop.
Cleaning (clean3). Three filters, applied in order: drop empty audio targets (target stem RMS < 0.005), then clips with more than 2 objects, then bad highlights (noop / invisible).
split
start
− empty audio target
− object count > 2
− bad highlight (noop / invisible)
final
kept
train
46,359
7,282
3,986
3,621
31,470
67.9%
val
2,575
414
224
204
1,733
67.3%
test
1,512
186
185
172
969
64.1%
Model inputs: stable-audio VAE latents (64×345), CV-VAE video latents (16×48×32×32; 256², 192 frames), and per-frame Perception-Encoder features of the highlight video (192×1792). Two things are not filtered out: mismatch / global highlights, and weak or leaky audio separations (≈5%). The highlight data has no speech filter; voices are valid targets.
2 · Data distribution & statistics
34,172clips (train + val + test)
2,053distinct object prompts
16%of clips are “birds” or “water”
33test prompts never seen in train (1 clip each)
Target objects per clip
split
clips
0 (none / invisible)
1 (single)
2 (two)
train
31,470
2,117 (6.7%)
25,290 (80.4%)
4,063 (12.9%)
val
1,733
103 (5.9%)
1,420 (81.9%)
210 (12.1%)
test
969
61 (6.3%)
729 (75.2%)
179 (18.5%)
all
34,172
2,281 (6.7%)
27,439 (80.3%)
4,452 (13.0%)
Object type (regex group of the prompt)
object type
train
val
test
all
Musical instrument
11,414 (36.3%)
644 (37.2%)
367 (37.9%)
12,425 (36.4%)
Vehicle / engine
4,081 (13.0%)
203 (11.7%)
130 (13.4%)
4,414 (12.9%)
Bird
3,997 (12.7%)
209 (12.1%)
97 (10.0%)
4,303 (12.6%)
Human voice / people
3,378 (10.7%)
190 (11.0%)
85 (8.8%)
3,653 (10.7%)
Water / nature
3,194 (10.1%)
193 (11.1%)
159 (16.4%)
3,546 (10.4%)
Other animal
3,016 (9.6%)
169 (9.8%)
61 (6.3%)
3,246 (9.5%)
Machine / tool / household
2,152 (6.8%)
114 (6.6%)
63 (6.5%)
2,329 (6.8%)
Other / unmapped
238 (0.8%)
11 (0.6%)
7 (0.7%)
256 (0.7%)
Regex quirks, left unfixed so the numbers match the figure: “singing bowl” is counted as Bird, “fireworks” as Water / nature, and “hens” is unmapped.
Object type × count / highlight verdict (all splits)
object type
n
0 obj
1 obj
2 obj
match
global
mismatch
nodet
Musical instrument
12,425
9.2%
76.9%
13.8%
76.2%
7.0%
9.2%
7.7%
Vehicle / engine
4,414
5.1%
85.3%
9.6%
70.8%
17.3%
8.2%
3.7%
Bird
4,303
1.3%
73.2%
25.6%
81.6%
1.5%
16.1%
0.8%
Human voice / people
3,653
5.6%
82.0%
12.4%
74.2%
10.5%
10.7%
4.6%
Water / nature
3,546
4.0%
93.5%
2.4%
63.1%
29.0%
5.4%
2.5%
Other animal
3,246
5.5%
79.8%
14.7%
80.1%
6.0%
9.5%
4.5%
Machine / tool / household
2,329
12.6%
80.7%
6.7%
67.6%
14.8%
7.9%
9.7%
Other / unmapped
256
12.5%
72.7%
14.8%
65.6%
6.2%
18.8%
9.4%
all
34,172
6.7%
80.3%
13.0%
74.3%
10.7%
9.7%
5.3%
Every nodet clip has 0 detected objects. Water / nature causes most global highlights: diffuse sources have no single box. Birds are the most common two-object type, which drives up their mismatch rate.
Top-20 prompts
prompt
type
all
train
val
test
birds
Bird
3,184
2,958
155
71
water
Water / nature
2,295
2,063
128
104
piano
Musical instrument
1,064
973
63
28
train
Vehicle / engine
908
850
40
18
individual
Human voice / people
877
811
45
21
electric guitar
Musical instrument
778
717
44
17
trumpet
Musical instrument
678
619
33
26
violin
Musical instrument
674
616
34
24
engine
Vehicle / engine
625
576
26
23
harp
Musical instrument
539
496
27
16
guitar
Musical instrument
486
457
18
11
vehicle
Vehicle / engine
461
422
23
16
flute
Musical instrument
446
402
23
21
accordion
Musical instrument
440
411
26
3
crowd
Human voice / people
407
386
14
7
canine
Other animal
394
368
20
6
dog
Other animal
376
354
16
6
acoustic guitar
Musical instrument
374
344
24
6
animal
Other animal
367
335
22
10
brass instrument
Musical instrument
348
328
14
6
The prompt distribution is long-tailed: 1,162 of 2,053 prompts appear only once. Only 56 val and 33 test prompts are unseen in train, and they are one-off paraphrases (e.g. resonant piano, snack foods, operator, high-speed motorized machine, emergency sirens, fast-paced percussive instrument), so there is no held-out object class.
3 · Main model & ablations
All three runs share the same data (0902 clean3), architecture (DiT with a Schrödinger-bridge flow, PE-FiLM conditioning, cross-attention with time-aligned RoPE), video_loss_weight 0.5, and sampler (Euler from t = 0.02, 10 steps). They differ only in the settings below; highlighted cells differ from the main model. Values are read from each run's config.yaml.
arm / run
σ (bridge noise)
timestep
t range
cross-attn RoPE
checkpoint scored
Main: σ1 separate-t + RoPE time-align
…data0902clean3_sigma1_sept_ropealign
1.0
separate (ta, tv)
[0.02, 0.98]
time-aligned
last, ep175 / 10,912 steps
Shared-t + RoPE time-align
…data0902clean3_sharedt_ropealign
1.0
shared t
[0.02, 0.98]
time-aligned
last, ep108 / 6,758 steps
σ0.01 shared-t + RoPE time-align
…data0902clean3_ropealign
0.01
shared t
[0.0, 1.0]
time-aligned
last, ep108 / 6,758 steps
Eval set sub500: 500 random clips from the clean3 test split (seed 0). Audio: audioldm_eval against the highlight audio target; FAD from login-node VGGish with single-thread BLAS; LSD without the vocoder time offset. Video: metrics against the VAE-decoded highlight target (192 frames, 256²). Bold marks the best model in each column; the grey row is the unedited source.
Audio
model
FAD ↓
KL ↓
IS ↑
LSD ↓
Main: σ1 separate-t + RoPE time-align
5.446
0.00359
1.0118
14.32
Shared-t + RoPE time-align
6.301
0.00395
1.0113
15.09
σ0.01 shared-t + RoPE time-align
5.449
0.00397
1.0103
14.27
Pass-through (source audio)
1.493
0.00255
1.0113
13.97
Video
model
PSNR ↑
SSIM ↑
LPIPS ↓
FVD ↓
Main: σ1 separate-t + RoPE time-align
18.00
0.634
0.259
99.7
Shared-t + RoPE time-align
17.73
0.629
0.268
105.2
σ0.01 shared-t + RoPE time-align
17.97
0.636
0.259
118.1
Pass-through (source video)
16.47
0.609
0.295
154.1
Paired Wilcoxon over the same 500 clips (per-clip video PSNR / LPIPS vs target). Δ = Main − other (PSNR: + favours Main; LPIPS: − favours Main).
pair
metric
Δ mean
clips favouring Main
p
Main vs σ0.01 shared-t + RoPE
PSNR
+0.030
58%
1.5e-03
Main vs σ0.01 shared-t + RoPE
LPIPS
+0.000
51%
9.9e-01
Main vs Shared-t + RoPE
PSNR
+0.277
71%
8.0e-20
Main vs Shared-t + RoPE
LPIPS
-0.009
69%
1.0e-20
Checkpoint steps are not matched (≈6.8k vs ≈10.9k steps). FVD ranks close arms differently from the per-clip metrics, so trust the paired tests more than FVD.
4 · Main model vs baselines (sub500)
No existing baseline edits audio and video together, so each baseline appears only in the table for the modality it edits. Video baselines get the prompt highlight {object}. VisAH is guided by the video and takes no text.
Ditto: Wan2.1-VACE-14B with the Ditto LoRA (832×480, 73 frames, 50 steps, cfg 5). Video only.
LGVI: language-driven video inpainting. It was trained only on removal, so it removes the object instead of highlighting it. Video only.
Video vs raw highlight target (video-only baselines, n = 474)
model
PSNR ↑
SSIM ↑
LPIPS ↓
FVD ↓
Ditto
13.85
0.460
0.358
239.8
LGVI
12.06
0.377
0.573
1034.3
Pass-through (source video)
19.41
0.775
0.190
157.7
Baselines output raw video, so this second table compares them against the raw (not VAE-decoded) highlight target. Clips whose raw target is shorter than 8 s are excluded.
5 · 20 test samples: single vs multiple objects
Metrics by object count (sub500)
All sub500 clips with 1 object (n = 380) vs 2 objects (n = 89); 0-object clips excluded. FAD is computed separately inside each group (login-node VGGish, 1-thread BLAS; smaller n → higher FAD, so compare models within a column, not single vs multi). Video = mean per-clip PSNR / LPIPS against the VAE-decoded target.
model
FAD ↓ single
FAD ↓ multi
vPSNR ↑ single
vPSNR ↑ multi
LPIPS ↓ single
LPIPS ↓ multi
Main: σ1 separate-t + RoPE time-align
5.341
8.283
17.91
18.26
0.254
0.283
Shared-t + RoPE time-align
6.099
8.981
17.65
17.93
0.261
0.297
σ0.01 shared-t + RoPE time-align
5.389
7.306
17.90
18.15
0.254
0.284
Ditto (video only)
–
–
13.39
14.24
0.404
0.426
LGVI (video only)
–
–
11.84
13.17
0.603
0.560
VisAH (audio only)
4.065
5.773
–
–
–
–
Pass-through (source)
1.711
3.326
16.17
17.43
0.287
0.329
Samples
20 sub500 test clips whose highlight target passed the visual check (match): 10 with one object and 10 with two, drawn at random (seed 0) round-robin over object types. They are not cherry-picked. Each cell plays video with audio. Video-only baselines play with the source audio; VisAH plays with the source video. Captions give that clip's video PSNR / LPIPS against the target.
Single object (object_count = 1)
Single object (380 sub500 clips).
Video. The main model edits in the right direction: vPSNR 17.91 vs 16.17 for the unedited source (+1.7 dB) and LPIPS 0.254 vs 0.287. It brightens the named object and darkens its surroundings like the target, though the blur outside the object box is weaker than in the target. Shared-t is behind the main model (17.65 / 0.261); σ0.01 ties it (17.90 / 0.254).
Baselines. Ditto (13.39 dB) re-renders the whole scene: the object's pose, colours and details change (e.g. the rooster in S5), so it lands below even the unedited source. LGVI (11.84 dB) removes the object instead of highlighting it (the guitar in S1, the cat in S7).
Audio. Main FAD 5.34 ≈ σ0.01 5.39 < shared-t 6.10. VisAH, an audio-only method, is lower at 4.07, and the unedited source is lowest (1.71).
S8“stove or grill”· Other / unmapped · 9iGjureW7uE
Source
vPSNR 13.9 · LPIPS 0.218
Target (highlight)Main
vPSNR 14.2 · LPIPS 0.240
Shared-t + RoPE
vPSNR 14.3 · LPIPS 0.225
σ0.01 + RoPE
vPSNR 15.0 · LPIPS 0.224
Ditto video · src audio
vPSNR 11.1 · LPIPS 0.382
LGVI video · src audio
vPSNR 10.1 · LPIPS 0.718
VisAH audio · src video
S9“bass”· Musical instrument · ji-27X81tIs_000149
Source
vPSNR 16.9 · LPIPS 0.312
Target (highlight)Main
vPSNR 17.6 · LPIPS 0.292
Shared-t + RoPE
vPSNR 17.0 · LPIPS 0.322
σ0.01 + RoPE
vPSNR 16.8 · LPIPS 0.304
Ditto video · src audio
vPSNR 18.0 · LPIPS 0.353
LGVI video · src audio
vPSNR 13.8 · LPIPS 0.390
VisAH audio · src video
S10“water”· Water / nature · eW7_vMFcGRA_000379
Source
vPSNR 10.7 · LPIPS 0.478
Target (highlight)Main
vPSNR 10.1 · LPIPS 0.491
Shared-t + RoPE
vPSNR 11.0 · LPIPS 0.477
σ0.01 + RoPE
vPSNR 11.0 · LPIPS 0.471
Ditto video · src audio
vPSNR 8.7 · LPIPS 0.593
LGVI video · src audio
vPSNR 8.2 · LPIPS 0.733
VisAH audio · src video
Multiple objects (object_count = 2)
Two objects (89 sub500 clips).
Video. The main model still improves on the source, but by less: +0.8 dB vPSNR (18.26 vs 17.43) against +1.7 dB for single objects. The LPIPS gain holds (0.283 vs 0.329). With two instances the edit tends to be a milder, more global brightening rather than isolating each instance (the two faces in M2, the birds in M4). In M6 (watercraft) the unedited source scores higher than every model because the target blurs the background much more strongly than any model does. σ0.01 is on par with the main model (18.15 / 0.284); shared-t is again last (17.93 / 0.297).
Baselines. Same pattern as for single objects: Ditto (14.24 dB) re-renders the scene (e.g. the tractors in M10) and LGVI (13.17 dB) erases content.
Audio. FAD is higher for every method here, partly because of the smaller n, so compare methods within this column rather than against the single-object numbers. Among the models, σ0.01 is best (7.31), then main (8.28) and shared-t (8.98). VisAH is at 5.77 and the unedited source at 3.33. Separating one of two sounding instances is the hardest case for the audio branch.