JUICE: Unified Multimodal Modeling in Pretrained Representation Spaces
Organizations: New York University · Harvard University · University of Illinois Urbana-Champaign · Princeton University ·
Abstract
Most unified multimodal models treat images and text asymmetrically: a pretrained language model generates text, an attached diffusion head generates images, and outputs that contain both are produced in a fixed order, so the first output cannot adapt to the second. We ask whether both modalities can instead be generated by one process that is trained on them jointly from scratch. Pretrained encoder spaces hold both modalities in one continuous form and carry knowledge learned at scale, and recent work finds them effective as generative targets for vision and language. We therefore model the joint distribution directly in these spaces. We introduce JUICE (Joint Unified multimodal modeling In Continuous Encoder spaces), a single flow matching Transformer over frozen image and text representations, in which each modality has its own noise level. Which modalities are clean and which are generated then decides the task: image generation, captioning, visual question answering, or joint generation. Controlled pretraining runs test each design choice. At equal guidance, generating text as continuous states leaves image generation intact (48.41 GenEval, against 47.86 for a model trained only for text-to-image generation), while captions lose some exact wording. Training on joint and conditional denoising together beats either alone, and semantic encoder spaces beat VAE latents and raw pixels as targets. At 2.1B parameters, with no language model initialization and at 224x224, JUICE reaches up to 0.88 on GenEval and 73.1 on VQAv2. By sampling both modalities from the joint distribution (coupled sampling), it can also draw a route on a map while writing out the matching moves. On mazes with several valid solutions, joint success rises from 54.6% with independent sampling to 93.7%, and no modality has to go first. On visual spatial planning, JUICE solves 99.8% of maps at its training sizes.
Figures & tables
| Model | Text representation | Text process | Image representation | Image process |
|---|---|---|---|---|
| Chameleon [ 16 ] | Discrete tokens | AR | Discrete codes | AR |
| Transfusion [ 17 ] | Discrete tokens | AR | VAE latents | Diffusion |
| Show-o2 [ 1 ] | Discrete tokens | AR | VAE latents | FM |
| Tuna-2 [ 2 ] | Discrete tokens | AR | Pixels | FM |
| MMaDA [ 3 ] | Discrete tokens | Masked diffusion | Discrete codes | Masked diffusion |
| Muddit [ 4 ] | Discrete tokens | Masked diffusion | Discrete codes | Masked diffusion |
| Generation | Image generation | Captioning | |||||
| Configuration | Text | Image | Text condition | GE (%) | DPG (%) | CIDEr | CLIP |
| JUICE | FM | FM | frozen T5 states | 48.41 | 78.85 | 88.80 | 80.20 |
| Transfusion-style [ 17 ] | AR | FM | token embeddings | 44.23 | 76.84 | 160.52 | 80.37 |
| D-DiT-style [ 18 ] | MD | FM | token embeddings | 34.50 | 74.35 | 115.22 | 79.82 |
| MMaDA-style [ 3 ] | MD | MD (VQ) | token embeddings | 41.61 | 66.50 | 89.53 | 71.61 |
| Transfusion-style | AR | FM | frozen T5 states | 46.07 | 78.24 | 158.63 | 80.36 |
| Task ratio (%) | Image generation | Captioning | |||||
| Recipe | I2T | T2I | Joint | GE (%) | DPG (%) | CIDEr | CLIP |
| T2I only | 0 | 100 | 0 | 47.86 | 77.50 | 2.83 | 25.15 |
| I2T only | 100 | 0 | 0 | 0.21 | 9.95 | 107.22 | 77.81 |
| Multi-task | 50 | 50 | 0 | 36.30 | 77.71 | 79.41 | 75.07 |
| Joint only | 0 | 0 | 100 | 31.33 | 56.98 | 75.66 | 73.70 |
| Mixing (default) | 22.2 | 22.2 | 55.6 | 48.41 | 78.85 | 88.80 | 80.20 |
| (a) GenEval | ||||||||
|---|---|---|---|---|---|---|---|---|
| Model | Size | Single | Two | Count | Color | Position | Attribute | Overall |
| Muddit [ 4 ] | 1B | 0.98 | 0.72 | 0.54 | 0.82 | 0.19 | 0.41 | 0.61 |
| Show-o [ 20 ] | 1.3B | 0.98 | 0.80 | 0.66 | 0.84 | 0.31 | 0.50 | 0.68 |
| UniDisc [ 49 ] | 1.4B | 0.92 | 0.47 | 0.15 | 0.67 | 0.13 | 0.19 | 0.42 |
| FUDOKI [ 50 ] | 1.5B | 0.96 | 0.85 | 0.56 | 0.88 | 0.68 | 0.67 | 0.77 |
| Janus-Pro-1B [ 51 ] | 1.5B | 0.98 | 0.82 | 0.51 | 0.89 | 0.65 | 0.56 | 0.73 |
| Model | Size | Cult. | Time | Space | Bio. | Phys. | Chem. | Overall |
|---|---|---|---|---|---|---|---|---|
| Unified models of 1B to 3B parameters | ||||||||
| OneFlow [ 23 ] | 1B | 0.63 | – | – | – | – | – | – |
| JanusFlow [ 53 ] | 1.3B | 0.13 | 0.26 | 0.28 | 0.20 | 0.19 | 0.11 | 0.18 |
| Show-o ( ) [ 20 ] | 1.3B | 0.28 | 0.40 | 0.48 | 0.30 | 0.46 | 0.30 | 0.35 |
| Janus-Pro-1B [ 51 ] | 1.5B | 0.20 | 0.28 | 0.45 | 0.24 | 0.32 | 0.16 | 0.26 |
| Show-o2 [ 1 ] | 1.5B | 0.30 | 0.38 | 0.47 | 0.32 | 0.42 | 0.28 | 0.35 |
| Model | Size | Init. | Res. | VQAv2 | GQA | POPE | MME-P | MMB | AI2D | MMMU | RWQA |
| Muddit [ 4 ] | 1B | T2I | 68.2 | 57.5 | – | 1107.4 † | – | – | 27.6 | – | |
| OneFlow [ 23 ] | 1B | LLM | 67.7 | 57.8 | 85.7 | 1497.1 † | 69.0 | 58.5 | 29.8 | 50.6 | |
| Show-o [ 20 ] | 1.3B | LLM | 64.7 | 54.2 | 76.2 | 1014.9 † | – | – | 25.0 | – | |
| Show-o [ 20 ] | 1.3B | LLM | 69.4 | 58.0 | 80.0 | 1097.2 † | – | – | 26.7 | – | |
| JanusFlow [ 53 ] | 1.3B | LLM | 79.8 | 60.3 | 88.0 | 1333.1 | 74.9 | – | 29.3 | – | |
| Harmon [ 52 ] | 1.5B | LLM | – | 58.9 | 87.6 | 1155.0 | 65.5 | – | 38.9 | – |
| Sampler | Order | SigLIP2 | DINO |
|---|---|---|---|
| Coupled | none | 93.7 | 81.7 |
| Image first | image text | 95.2 | 82.7 |
| Text first | text image | 85.3 | 59.9 |
| Independent | none | 54.6 | 42.7 |
| Validity of one modality alone | |||
| Image FT only | – | 95.1 | 83.3 |
| Model | Size | Task FT | Lv3 | Lv4 | Lv5 | Lv6 | Avg. | Lv7 | Lv8 |
|---|---|---|---|---|---|---|---|---|---|
| InternVL3.5 [ 56 ] | 38B | ✗ | – | – | – | – | 0.20 | – | – |
| ThinkMorph [ 57 ] | 7B | ✓ | – | – | – | – | 0.76 | – | – |
| LatentUM, coarse [ 55 ] | 4B | ✓ | 1.00 | 0.85 | 0.83 | 0.71 | 0.85 | – | – |
| LatentUM, fine [ 55 ] | 4B | ✓ | 1.00 | 1.00 | 1.00 | 0.97 | 0.99 | – | – |
| JUICE (SigLIP2) | 2.1B | ✓ | 1.00 | 1.00 | 1.00 | 0.99 | 0.998 | 0.94 | 0.69 |
Appendix figures & tables48 assets
Supplementary material from the paper’s appendix.
Appendix
| Input | Frozen source and extraction | Tokens channels |
|---|---|---|
| SigLIP2 | SigLIP2-SO400M/14 , , final patch states | |
| DINO | WebSSL-DINO300M-full2b , , final patch states | |
| VAE | FLUX.1-schnell VAE , , packed latent mode | |
| Pixel | None; RGB in , patches |
| Frozen encoder | Layer | Positions | Channels |
|---|---|---|---|
| Flan-T5-Small [ 36 ] | Final (8) | 128 | 512 |
| Qwen3-Embedding-0.6B [ 47 ] | 14 | 128 | 1,024 |
| Qwen3-VL-Embedding-2B [ 48 ] | 14 | 128 | 2,048 |
| SigLIP2-SO400M/14 text [ 11 ] | 13 | 64 | 1,152 |
| Representation | Transformation |
|---|---|
| SigLIP2 / DINO image | Per token LayerNorm, without affine parameters |
| FLUX VAE image | using predefined factors |
| Pixel image | RGB values scaled to , then patchified |
| Flan-T5 text | , a fixed scalar for all channels |
| Qwen3-E / Qwen3-VL-E text | using fixed corpus statistics |
| SigLIP2 text | using fixed corpus statistics |
| Configuration | Parameters | Width | Heads | Head dim. | Joint blocks | Total blocks |
|---|---|---|---|---|---|---|
| d12 | 178.6M | 768 | 12 | 64 | 10 | 12 |
| d15 | 335.0M | 960 | 15 | 64 | 13 | 15 |
| d19 | 668.3M | 1,216 | 19 | 64 | 17 | 19 |
| d24 | 1.33B | 1,536 | 24 | 64 | 22 | 24 |
| d28 | 2.12B | 1,792 | 28 | 64 | 26 | 28 |
| Representation | Length | Parameters | Token accuracy | ||
|---|---|---|---|---|---|
| Qwen3-E | 1,024 | 151,680 | 128 | 253M | 0.9797 |
| Qwen3-VL-E | 2,048 | 151,936 | 128 | 409M | 0.9748 |
| SigLIP2 text | 1,152 | 256,000 | 64 | 446M | 0.9870 |
| Decoder | Token accuracy | String match | EOS error | |
|---|---|---|---|---|
| Parallel (final) | 1.0 | 0.9997 | 0.984 | 0.00 |
| Autoregressive | 1.0 | 0.9759 | 0.966 | 0.45 |
| Parallel, first stage only | 1.0 | – | 0.941 | – |
| Linear head | 1.0 | 0.9872 | 0.508 | 10.5 |
| Parallel (final) | 0.9 | 0.9997 | 0.983 | 0.00 |
| Autoregressive | 0.9 | 0.9689 | 0.953 | 0.45 |
| SigLIP2 | DINO | |||
|---|---|---|---|---|
| Benchmark | Parallel | Autoregressive | Parallel | Autoregressive |
| VQAv2 (val, 1,000) | 71.21 | 71.71 | 66.32 | 66.68 |
| OK-VQA | 33.87 | 35.32 | 28.65 | 29.69 |
| POPE | 83.97 | 83.97 | 82.29 | 82.29 |
| GQA | 58.58 | 58.42 | 55.68 | 55.76 |
| MME-P | 1115.7 | 1133.1 | 960.2 | 983.6 |
| Text representation | Input | Vocabulary | Parameters (M) |
|---|---|---|---|
| Flan-T5-Small | 512 | 32,128 | 16.48 |
| Qwen3-Embedding-0.6B | 1,024 | 151,680 | 155.47 |
| Qwen3-VL-Embedding-2B | 2,048 | 151,936 | 311.32 |
| SigLIP2 text | 1,152 | 256,000 | 295.17 |
| Component | Parameters | Used in |
|---|---|---|
| Principal image/text pipeline components | ||
| SigLIP2-SO400M image encoder | 427.7M | I2T and VQA (SigLIP2 arm) |
| WebSSL-DINO300M image encoder | 303.7M | I2T and VQA (DINO arm) |
| Flan-T5-Small encoder | 35.3M | T2I, I2T, and VQA |
| SigLIP2 Scale-RAE image decoder | 415.6M | T2I (SigLIP2 arm) |
| DINO Scale-RAE image decoder | 415.4M | T2I (DINO arm) |
| Image arm | Scale | Trainable | T2I forward | I2T/VQA forward | All loaded |
|---|---|---|---|---|---|
| SigLIP2 | d12 | 178.6M | 629.5M | 677.0M | 1.09B |
| d15 | 335.0M | 785.9M | 833.4M | 1.25B | |
| d19 | 668.3M | 1.12B | 1.17B | 1.58B | |
| d24 | 1.33B | 1.78B | 1.83B | 2.24B | |
| d28 | 2.12B | 2.57B | 2.62B | 3.03B | |
| DINO | d12 | 178.6M | 629.3M | 553.0M | 968.4M |
| Image representation | Noise scale | Time shift | |
|---|---|---|---|
| SigLIP2 [ 6 ] | 1 | 8.485 | |
| DINO [ 6 ] | 1 | 8 | |
| FLUX VAE [ 10 ] | 1 | 2 | |
| Pixel [ 34 ] | 2 | 1 |
| Recipe | Text reference | |||||
|---|---|---|---|---|---|---|
| T2I only | generic caption | 36.12 | 47.26 | 51.23 | 51.03 | 47.86 |
| time swap | 36.12 | 43.38 | 42.90 | 38.67 | 31.34 | |
| Multi-task | generic caption | 32.36 | 43.44 | 44.29 | 40.85 | 36.30 |
| time swap | 32.36 | 24.67 | 5.75 † | 2.16 † | 0.92 † | |
| Joint only | generic caption | 10.09 | 21.54 | 27.43 | 31.06 | 31.33 |
| time swap | 10.09 | 3.30 † | 0.78 † | 0.31 † | 0.25 † |
| Model | Cult. | Time | Space | Bio. | Phys. | Chem. | Overall |
|---|---|---|---|---|---|---|---|
| JUICE (SigLIP2) | 0.466 | 0.533 | 0.642 | 0.396 | 0.531 | 0.346 | 0.488 [0.468, 0.508] |
| JUICE (DINO) | 0.379 | 0.481 | 0.607 | 0.344 | 0.456 | 0.313 | 0.424 [0.405, 0.443] |
| Setting | Value |
|---|---|
| Updates / global batch | 50,000 / 4,096 |
| Optimizer | AdamW, , weight decay 0.01 |
| Learning rate | ; warmup over 5,000 steps, then constant |
| Gradient norm cap / precision | 1.0 / bfloat16 |
| EMA decay (slow / fast) | 0.99995 / 0.9996 |
| Image / text loss coefficient | 1.0 / 0.25 |
| Stage | Starts from | Updates | Global batch | GPUs | Evaluated weights |
|---|---|---|---|---|---|
| 1. Pretraining | random initialization | 60,000 | 4,096 | 8 | fast EMA |
| 2. SFT | stage 1, step 60,000 | 15,000 | 1,024 | 8 | fast EMA |
| 3a. Maze adaptation | stage 2, step 15,000 | 5,000 | 1,024 | 8 | raw |
| 3b. VSP adaptation | stage 2, step 15,000 | 5,000 | 1,024 | 4 | raw |
| Block | Sources (rows) | Task | Rows | Share | |
|---|---|---|---|---|---|
| Text-to-image | BLIP3o-60k [ 39 ] (3,776,625), DALL-E 3 synthetic pairs (989,248), ShareGPT-4o-Image [ 62 ] (2,377,284) | caption image | – | 7,143,157 | 34.7% |
| Short QA | VQAv2 train [ 63 ] (3,010,000); LLaVA-1.5 mix [ 64 ] , twice: GQA [ 65 ] (1,887,666), COCO [ 66 ] (1,269,778), Visual Genome [ 67 ] (672,448), OCR-VQA [ 68 ] (635,350), VizWiz [ 69 ] (40,256) | image + question short answer | 12 | 7,515,498 | 36.5% |
| Multiple choice | Cambrian [ 40 ] multiple choice questions (433,570), ScienceQA train [ 70 ] (53,130) | image + question + options letter | 12 | 486,700 | 2.4% |
| Concise captions | COCO train2014 captions, twice (827,606), BLIP3-o short captions (1,250,000) | image + prompt (11 templates) 1 to 40 tokens | 48 | 2,077,606 | 10.1% |
| Detailed captions | BLIP3-o long captions (1,500,000), BLIP3o-60k and DALL-E 3 captions, four times (116,516) | image + prompt (16 templates) 30 to 100 tokens | 101 | 1,616,516 | 7.9% |
| Long answers | ALLaVA [ 71 ] via Cambrian (671,552), ShareGPT4V [ 72 ] (1,042,950), LLaVA (3,719) | image + question 9 to 100 tokens | 101 | 1,718,221 | 8.3% |
| Initialization | Raw weights of the 2.1B pretraining run at step 60,000 |
|---|---|
| Updates / global batch | 15,000 / 1,024 (8 rows 16 accumulation steps 8 GPUs); 15.36M samples, about 0.75 epoch |
| Optimizer / learning rate | AdamW, ; after 250 linear warmup updates, then constant |
| Weight decay / gradient cap | 0.01 / 1.0 |
| Precision / seed | bfloat16 / 4242 |
| EMA decay (slow / fast) | 0.99995 / 0.9996; we evaluate the fast EMA |
| Task assignment | text-to-image rows: text-to-image only; question, caption prompt, and long answer rows: image-to-text only |
| Configuration | Image space / process | Text space / process | Image / text decoder |
|---|---|---|---|
| JUICE | SigLIP2 features / FM | T5 features / FM | RAE / parallel decoder of T5 states |
| Transfusion-style | SigLIP2 features / FM | Discrete tokens / AR | RAE / token vocabulary head |
| D-DiT-style | SigLIP2 features / FM | Discrete tokens / MD | RAE / token vocabulary head |
| MMaDA-style | aMUSEd VQ codes [ 73 ] / MD | Discrete tokens / MD | VQ decoder / token vocabulary head |
| Recipe | Updates (k) | Targets (M/mod.) | Work proxy | GE | DPG | CIDEr | CLIP |
|---|---|---|---|---|---|---|---|
| Mixing | 50 | 159.33 | 1.000 | 48.41 | 78.85 | 88.80 | 80.20 |
| DC (matched targets) | 50 | 159.33 | 1.556 | 45.90 | 78.05 | 87.72 | 79.63 |
| DC (matched work) | 32.1 | 102.40 | 1.000 | 43.18 | 75.24 | 71.55 | 76.81 |
| Blocked joint | 50 | 159.33 | 1.000 | 45.49 | 78.14 | 86.58 | 78.66 |
| Multi-task / 50k | 50 | 102.40 | 1.000 | 36.30 | 77.71 | 79.41 | 75.07 |
| Multi-task / 77.8k | 77.8 | 159.33 | 1.556 | 43.16 | 78.51 | 89.31 | 79.14 |
| Image representation | Text representation | GE | DPG | CIDEr | CLIP |
|---|---|---|---|---|---|
| SigLIP2 | T5 | 48.41 | 78.85 | 88.80 | 80.20 |
| DINO | T5 | 49.07 | 77.85 | 68.80 | 71.66 |
| FLUX VAE | T5 | 35.42 | 74.05 | 49.95 | 64.91 |
| Pixels | T5 | 24.48 | 71.64 | 49.57 | 65.51 |
| SigLIP2 | Qwen3-E | 43.07 | 78.04 | 88.50 | 76.54 |
| SigLIP2 | Qwen3-VL-E | 39.28 | 78.70 | 84.24 | 75.94 |
| Readout | Flan-T5 | Qwen3-E | Qwen3-VL-E | SigLIP2 text |
|---|---|---|---|---|
| Linear head | .9849 | .9686 | .9652 | .9813 |
| Parallel decoder | .9922 | .9797 | .9748 | .9870 |
| Image representation / decoder | rFID ImageNet | rFID YFCC | rFID RenderedText |
|---|---|---|---|
| FLUX VAE | .288 | .410 | .638 |
| WebSSL-DINO / matched Scale-RAE decoder | .388 | .558 | 1.372 |
| SigLIP2 / matched Scale-RAE decoder | .435 | .702 | 1.621 |
| SDXL VAE (reconstruction reference) | .930 | 1.168 | 2.057 |
| Pixels (identity reference) | .000 | .000 | .000 |
| (a) GenEval | ||||||||
|---|---|---|---|---|---|---|---|---|
| Model | Size | Single | Two | Count | Color | Position | Attr. | Overall |
| BLIP3-o [ 39 ] | 8B | – | – | – | – | – | – | 0.84 |
| Janus-Pro-7B [ 51 ] | 7B | 0.99 | 0.89 | 0.59 | 0.90 | 0.79 | 0.66 | 0.80 |
| Show-o2 [ 1 ] | 7B | 1.00 | 0.87 | 0.58 | 0.92 | 0.52 | 0.62 | 0.76 |
| TUNA [ 21 ] | 7B | 1.00 | 0.97 | 0.81 | 0.91 | 0.88 | 0.83 | 0.90 |
| TUNA-R [ 2 ] | 7B | 1.00 | 0.95 | 0.82 | 0.89 | 0.86 | 0.79 | 0.88 |
| Model | Steps | Single | Two | Count | Color | Position | Attr. | Overall |
|---|---|---|---|---|---|---|---|---|
| JUICE (SigLIP2) | 25 | 99.4 | 93.4 | 77.8 | 91.0 | 85.0 | 73.0 | 86.60 |
| 50 | 98.8 | 92.7 | 77.8 | 92.3 | 84.5 | 74.8 | 86.80 | |
| 100 | 98.8 | 93.2 | 78.1 | 91.8 | 84.3 | 74.5 | 86.76 | |
| JUICE (DINO) | 25 | 99.4 | 94.7 | 80.6 | 93.1 | 84.8 | 77.5 | 88.34 |
| 50 | 99.7 | 94.2 | 81.3 | 92.6 | 84.8 | 78.8 | 88.53 | |
| 100 | 99.7 | 94.2 | 81.9 | 92.8 | 84.3 | 79.0 | 88.64 |
| Model | Size | Input | VQAv2 | GQA | MME-P | POPE |
|---|---|---|---|---|---|---|
| Models for understanding only | ||||||
| LLaVA-1.5 [ 64 ] | 7B | 78.50 | 62.00 | 1510.7 | 85.90 | |
| Qwen-VL-Chat [ 74 ] | 7B | 78.20 | 57.50 | – | – | |
| Composite unified models | ||||||
| BLIP3-o [ 39 ] | 8B | Dyn. | 83.10 | – | 1682.6 | – |
| Native unified models | ||||||
| Benchmark | Split | Metric | SigLIP2 | DINO |
|---|---|---|---|---|
| VQAv2 [ 63 ] | test-dev | VQA accuracy | 73.10 | 68.75 |
| yes/no | 90.66 | 88.18 | ||
| number | 58.73 | 53.30 | ||
| other | 61.29 | 55.57 | ||
| VQAv2 | val2014, fixed 1,000 | VQA accuracy | 71.21 | 66.32 |
| OK-VQA [ 75 ] | val2014 | VQA accuracy | 33.87 | 28.65 |
| Model | Size | OK-VQA | SQA-IMG |
|---|---|---|---|
| D-DiT ( ) [ 18 ] | 2.1B | 28.5 | – |
| D-DiT ( ) [ 18 ] | 2.1B | 25.3 | – |
| LLaVA-1.5 [ 64 ] | 7B | – | 66.8 |
| Qwen-VL-Chat [ 74 ] | 7B | 56.6 | 68.2 |
| JUICE (SigLIP2) | 2.1B | 33.9 | 80.6 |
| JUICE (DINO) | 2.1B | 28.7 | 73.7 |
| SigLIP2 | DINO | |||
|---|---|---|---|---|
| Sampler | Seed 1 | Seed 2 | Seed 1 | Seed 2 |
| Coupled | 95.2 | 92.2 | 82.2 | 81.2 |
| Image first | 95.8 | 94.6 | 83.4 | 82.0 |
| Text first | 84.8 | 85.8 | 59.4 | 60.4 |
| Independent (8 steps per stream) | 56.0 | 53.2 | 42.6 | 42.8 |
| J at 8 calls | ||||
|---|---|---|---|---|
| Sampler | Steps at 16 calls | Steps at 8 calls | SigLIP2 | DINO |
| Coupled | 16 shared | 8 shared | 93.7 | 81.4 |
| Image first | 8 + 8 | 4 + 4 | 94.9 | 83.0 |
| Text first | 8 + 8 | 4 + 4 | 84.9 | 61.6 |
| Independent | 8 per stream | 4 per stream | 55.9 | 45.7 |
Unified Multimodal Models
Unified multimodal models combine multiple data types in shared systems for cross-modal understanding, generation, reasoning, and interaction.
See all 287 papers