CompoSET: A Controlled Single-Edit Benchmark for Vision-Language Compositionality
Organizations: California Institute of Technology
Abstract
Vision-language compositionality is the ability to identify which properties, relations, quantities, and states bind to which entities in both an image and a caption, and to match those bindings across modalities. Existing benchmarks evaluate this ability through image-text matching: a model ranks candidate image-caption match similarities and succeeds when the correct match comes on top. In such datasets, paired images differ by more than a single binding: scene, layout, and content all differ, with 97% of pixels changing on average. Such pairs do not isolate compositionality: results are confounded by global image differences. We introduce Compositional Single-EdiT (CompoSET), a benchmark dataset in which each base image-caption pair has an edited counterpart, or foil, that preserves the scene but differs by a single controlled edit, such as color, count, spatial relation, or object state. Base and foil images preserve naturalistic scene complexity yet are visually near-identical: only 8% of pixels change on average. Our dataset has many foils per base scene (~22) in order to separate scene difficulty from edit difficulty, a distinction one-foil-per-base benchmarks cannot make. CompoSET contains 1,776 instances across 80 naturalistic scenes, spanning 16 edit types in 4 semantic categories, with captions at 3 verbosity levels. We test 22 dual-encoder VLMs and find that all models perform at or below chance level on CompoSET, despite scoring well on prior benchmarks. This suggests that apparent progress under prior image-text matching protocols may be an artifact arising from confounds in benchmark design, and that compositional understanding in dual-encoder VLMs is far from solved. CompoSET addresses the confounds and offers a better controlled benchmark to measure future progress.
Figures & tables
| Category | Edit types ( ) |
| Identity & Appearance ( what ) | modify_color (206), modify_pattern (101), modify_material (161), modify_shape (103), modify_transparency (100), modify_object (101), swap_color (104), swap_material (101) |
| Quantity ( how many ) | modify_count (100), modify_presence (104) |
| Spatial Relations ( where ) | modify_spatial (99), swap_spatial (100) |
| Activity & State ( how ) | modify_action (101), modify_pose (104), modify_state (146), swap_role (45) |
| Model | Compo SET | Wino ground | BiVLC | What’s 1 1 1 What’s Up scores reflect a fixed preposition bias in dual-encoder models. For example, CLIP-B/32 correctly identifies ‘on’ as the correct caption 92.2% of the time, but only picks ‘under’ correctly 22.3% of the time. Strict bidirectional Group exposes this by requiring both image-to-text and text-to-image directions to be correct on the same pair; see App. 6 . Up | Color Swap | MMVP | Natural Bench | Color Bench | Sugar Crepe | Sugar Crepe ++ |
| Chance | 16.7 | 16.7 | 16.7 | 16.7 | 16.7 | 16.7 | 50.0 | 50.0 | 50.0 | 50.0 |
| Contrastive baselines | ||||||||||
| CLIP B/32 | 4.4 | 7.5 | 47.2 | 2.2 | 8.7 | 8.1 | 68.1 | 46.7 | 78.6 | 65.5 |
| CLIP B/16 LAION-2B | 7.8 | 8.2 | 53.3 | 1.1 | 19.3 | 12.6 | 70.7 | 50.6 | 81.3 | 70.1 |
| CLIP H/14 LAION-2B | 8.4 | 10.5 | 56.9 | 0.5 | 32.0 | 18.5 | 73.5 | 55.4 | 82.5 | 70.9 |
| SigLIP B/16 | 10.2 | 10.2 | 59.6 | 1.6 | 30.7 | 23.0 | 74.7 | 55.4 | 81.3 | 70.3 |
Appendix figures & tables16 assets
Supplementary material from the paper’s appendix.
Appendix
| Model | Source | License | Citation |
| Dual-encoder, contrastive baselines | |||
| CLIP B/32 | openai/clip-vit-base-patch32 | MIT | [ 34 ] |
| CLIP B/16 (OpenAI) | openai/clip-vit-base-patch16 | MIT | [ 34 ] |
| CLIP L/14 (OpenAI) | openai/clip-vit-large-patch14 | MIT | [ 34 ] |
| CLIP B/16 LAION-400M | OpenCLIP laion400m_e32 | MIT | [ 8 ] |
| CLIP B/16 LAION-2B | OpenCLIP laion2b_s34b_b88k | MIT | [ 8 ] |
| Benchmark | Source | License | Citation |
| Winoground | facebook/winoground | Research use (HF gated) | [ 43 ] |
| BiVLC | imirandam/BiVLC | MIT | [ 31 ] |
| ColorSwap | stanfordnlp/colorswap | Apache-2.0 | [ 5 ] |
| NaturalBench | BaiqiL/NaturalBench | CC-BY-4.0 | [ 21 ] |
| MMVP | MMVP/MMVP | MIT | [ 44 ] |
| ColorBench | Liang-Yike/colorbench-robust | MIT | [ 23 ] |
| Per direction | Bidirectional | |||||
| Pair | Preposition | I2T | T2I | I2T | T2I | Group |
| on / under | on | 92.2 | 74.8 | 14.6 | 13.6 | 3.9 |
| under | 22.3 | 36.9 | ||||
| left of / right of | left of | 90.7 | 49.8 | 4.9 | 2.9 | 0.0 |
| right of | 11.2 | 51.7 | ||||
| in front of / behind | in front of | 80.4 | 38.2 | 3.9 | 2.9 | 1.0 |
| Benchmark | mean | median | std | p25 | p75 | max |
| Excluding people (primary) | ||||||
| CompoSET | 20.7 | 16.0 | 13.5 | 11.2 | 26.8 | 66 |
| Winoground | 5.1 | 3.0 | 8.5 | 1.0 | 6.0 | 76 |
| BiVLC | 6.1 | 4.0 | 7.2 | 2.0 | 7.0 | 63 |
| SugarCrepe | 6.3 | 4.0 | 6.4 | 2.0 | 8.0 | 46 |
| Including people | ||||||
| Model | Compo SET | Wino ground | BiVLC | What’s Up | Color Swap | MMVP | Natural Bench | Color Bench | Sugar Crepe | Sugar Crepe ++ |
| Chance | 16.7 | 16.7 | 16.7 | 16.7 | 16.7 | 16.7 | 50.0 | 50.0 | 50.0 | 50.0 |
| Contrastive baselines | ||||||||||
| CLIP B/32 | 4.4 [3.9,5.0] | 7.5 [5.3,10.5] | 47.2 [45.4,49.0] | 2.2 [1.5,3.2] | 8.7 [6.0,12.4] | 8.1 [4.6,14.0] | 68.1 [66.4,69.8] | 46.7 [45.0,48.3] | 78.6 [77.4,79.7] | 65.5 [64.1,66.8] |
| CLIP B/16 (OpenAI) | 4.8 [4.2,5.4] | 6.8 [4.7,9.6] | 47.8 [46.0,49.6] | 3.0 [2.2,4.1] | 7.7 [5.2,11.2] | 10.4 [6.3,16.7] | 69.1 [67.4,70.8] | 48.8 [47.1,50.4] | 78.5 [77.4,79.7] | 65.1 [63.7,66.4] |
| CLIP B/16 (LAION-400M) | 8.4 [7.6,9.1] | 7.8 [5.5,10.8] | 54.2 [52.4,56.0] | 1.2 [0.7,2.0] | 15.3 [11.7,19.8] | 12.6 [8.0,19.2] | 70.4 [68.8,72.1] | 56.2 [54.6,57.9] | 78.5 [77.3,79.6] | 66.6 [65.2,67.9] |
| CLIP B/16 (LAION-2B) | 7.8 [7.1,8.5] | 8.2 [5.9,11.4] | 53.3 [51.4,55.1] | 1.1 [0.6,1.8] | 19.3 [15.3,24.2] | 12.6 [8.0,19.2] | 70.7 [69.0,72.3] | 50.6 [49.0,52.2] | 81.3 [80.2,82.4] | 70.1 [68.7,71.4] |
| Edit type | CLIP B/32 | CLIP B/16 LAION-2B | CLIP H/14 LAION-2B | SigLIP B/16 | SigLIP SO400M | SigLIP-2 B/16 | SigLIP-2 L/16 | SigLIP-2 SO400M | NegCLIP B/32 | CLoVe B/32 | DreamLIP B/16 | DFN H/14 | EVA-02 L/14 | MetaCLIP-2 H/14 | |
| Identity | |||||||||||||||
| modify_color | 618 | 20.4 [17.2,23.6] | 29.9 [26.3,33.5] | 28.8 [25.2,32.4] | 37.2 [33.4,41.0] | 39.5 [35.6,43.3] | 39.2 [35.3,43.0] | 38.5 [34.7,42.3] | 36.2 [32.5,40.0] | 30.6 [26.9,34.2] | 27.7 [24.1,31.2] | 52.4 [48.5,56.4] | 35.1 [31.3,38.9] | 26.5 [23.1,30.0] | 27.2 [23.7,30.7] |
| modify_pattern | 303 | 6.3 [3.5,9.0] | 14.5 [10.6,18.5] | 9.6 [6.3,12.9] | 20.1 [15.6,24.6] | 21.5 [16.8,26.1] | 17.8 [13.5,22.1] | 16.8 [12.6,21.0] | 23.8 [19.0,28.6] | 8.6 [5.4,11.7] | 8.9 [5.7,12.1] | 29.4 [24.2,34.5] | 9.9 [6.5,13.3] | 14.2 [10.3,18.1] | 11.9 [8.2,15.5] |
| modify_material | 483 | 1.7 [0.5,2.8] | 6.8 [4.6,9.1] | 8.3 [5.8,10.7] | 11.2 [8.4,14.0] | 16.4 [13.1,19.7] | 10.8 [8.0,13.5] | 14.7 [11.5,17.9] | 13.7 [10.6,16.7] | 4.3 [2.5,6.2] | 3.3 [1.7,4.9] | 12.2 [9.3,15.1] | 12.6 [9.7,15.6] | 8.9 [6.4,11.4] | 8.1 [5.6,10.5] |
| modify_shape | 309 | 2.6 [0.8,4.4] | 8.7 [5.6,11.9] | 10.7 [7.2,14.1] | 10.0 [6.7,13.4] | 12.3 [8.6,16.0] | 11.0 [7.5,14.5] | 14.6 [10.6,18.5] | 12.6 [8.9,16.3] | 6.8 [4.0,9.6] | 4.5 [2.2,6.8] | 14.6 [10.6,18.5] | 9.4 [6.1,12.6] | 7.4 [4.5,10.4] | 12.0 [8.4,15.6] |
| modify_transparency | 300 | 0.7 [0.0,1.6] | 1.7 [0.2,3.1] | 0.7 [0.0,1.6] | 1.3 [0.0,2.6] | 1.7 [0.2,3.1] | 2.3 [0.6,4.0] | 2.3 [0.6,4.0] | 1.0 [0.0,2.1] | 1.0 [0.0,2.1] | 0.7 [0.0,1.6] | 1.7 [0.2,3.1] | 1.3 [0.0,2.6] | 0.3 [0.0,1.0] | 2.3 [0.6,4.0] |
| Edit type | /tier | Short | Medium | Long |
| Identity | ||||
| modify_color | 206 | 35.3 | 34.7 | 30.5 |
| modify_pattern | 101 | 16.1 | 15.2 | 14.4 |
| modify_material | 161 | 10.2 | 10.0 | 8.3 |
| modify_shape | 103 | 11.5 | 10.6 | 7.3 |
| modify_transparency | 100 | 1.6 | 1.3 | 1.1 |
| Model | I2T | T2I | Group |
| Open-weight (caption log-likelihood) | |||
| BLIP-2 (OPT-2.7B) | 5.0 | 11.0 | 2.5 |
| LLaVA-1.6 (Mistral-7B) | 30.5 | 3.0 | 1.5 |
| Qwen2-VL (7B Instruct) | 36.5 | 0.5 | 0.5 |
| Frontier API (prompted pairwise, counterbalanced) | |||
| Gemini 2.5 Flash | 64.5 | 16.0 | 12.0 |
| Model | Short | Medium | Long |
| Gemini 2.5 Flash | 15.9 | 19.7 | 13.6 |
| Claude Haiku 4.5 | 11.1 | 19.7 | 7.6 |
| Claude Sonnet 4.6 | 44.4 | 46.5 | 36.4 |