Test-time Baking for Efficient Rendering of Decoder-only View Synthesis Models
TL;DR
Test-time Baking (TTB) turns cross-view attention layers into fixed-size MLP layers at test time, each fit like a light field in latent space. Rendering then needs no 3D representation and costs the same at any number of input views, at the quality of the KV-cache model it starts from.
Abstract
Decoder-only Large View Synthesis Models (LVSMs) with KV-cache have recently achieved state-of-the-art quality by regressing novel views from neural networks without reconstructing 3D geometry, while Test-Time Training (TTT) layers save computation but sacrifice quality. We propose Test-Time Baking (TTB), a strategy that learns to bake global scene information from cross-view attention into a lightweight MLP, enabling fast and high-fidelity novel-view decoding. The first key is to repurpose the fast-weight MLP of TTT to learn the cross-view attention mapping explicitly from its input-output pairs, rather than replacing attention entirely, achieving the same rendering efficiency as TTT while delivering substantially higher quality. The second key addresses a modality misalignment between context prefilling and novel-view rendering: we disentangle context tokens into camera-only context rendering tokens to serve as TTB input, and context ground-truth tokens with image content to serve as the TTB mapping target, ensuring the baked MLPs are relieved of the modality generalization challenge between context and novel-view processing. Our method achieves up to 23× rendering speedup with quality on par with the state of the art across several benchmarks.
Live viewer recordings and one fly-through · 64 input views
Novel view synthesis without a 3D model
TTB takes 16 to 64 posed photos of a scene and renders it from new viewpoints at 960p. No 3D model is built in between: every frame comes from the baked MLP layers alone. Switch between 16, 32 and 64 views to see detail sharpen while the frame rate stays at 23 fps.
Live demo
The Hugging Face Space runs the whole pipeline on one GPU: upload 16–128 photos or a short video, π³ estimates the poses, TTB bakes the scene, and the viewer streams freshly rendered frames as you move. The network renders each frame on the GPU.
Motivation
Large view synthesis models, which render novel views without an explicit 3D representation, have caught up with per-scene optimization. Given 64 photos of a DL3DV scene and one minute, a KV-cache model (DVSM) reaches 31.1 dB. 3D Gaussian Splatting reaches 27.3 dB from the same 64 photos, and 30.5 dB when optimized on about 300.
| Method | Input views | Time ↓ | PSNR ↑ | SSIM ↑ | LPIPS ↓ | FPS ↑ |
|---|---|---|---|---|---|---|
| Per-scene optimization (explicit 3D Gaussians) | ||||||
| 3DGS | 64 | >600 s | 27.25 | 0.877 | 0.193 | >50 |
| 3DGS | ~300 | >600 s | 30.54 | 0.929 | 0.147 | >50 |
| Large view synthesis model (no explicit 3D representation) | ||||||
| KV-cache DVSM | 64 | 60 s | 31.11 | 0.920 | 0.104 | 1 |
Why the KV-cache slows down
A large view synthesis model reconstructs a scene once, then renders many novel views from that state. The state is not a 3D model: a KV-cache model stores the scene as the keys and values of every input token, and every frame attends to all of it, so each added photo makes every frame slower. TTB instead bakes the scene into fast weights: one small MLP per block, written at test time. Their size is fixed, so more photos change what the weights hold, not how many there are.
Render speed and scene state size at 960p as the number of input views grows
Speed measured on one A100 GPU.
Real-time comparison
Both panels fly the same camera path in real time, and each shows the newest frame its model has finished. At 64 views the KV-cache finishes about one frame per second and TTB 23; at 16 views the KV-cache reaches 4 and TTB stays at 23. The images are nearly the same (under 1 dB apart on DL3DV), because TTB starts from the KV-cache model and keeps its cross-view attention for reconstruction.
Method
Baking attention into fast weights
TTB builds on Test-Time Training (TTT) layers, which replace attention with a small MLP and train it on the input views at test time. TTT asks the MLP to map each token's key to its own value. TTB keeps cross-view attention running during reconstruction and asks the MLP to reproduce the attention output instead. Once the MLP is trained the KV-cache is dropped, so rendering costs exactly what TTT costs, while the weights hold what attention gathered from all views.
The target is a linear projection of the input tokens.
The target is the cross-view attention output, which already aggregates all context views.
Context pairing
One mismatch remains. During reconstruction the MLP sees tokens that carry image and pose; at render time it is queried with pose only. TTB therefore gives every context view two tokens: a pose-only rendering token that goes into the MLP, and a ground-truth token with the image that feeds the attention target. The MLP is trained on the same kind of input it is later asked about.
The plots under each variant compare reconstruction and rendering tokens at blocks 1, 4 and 7. Only full TTB mixes the two from the first block; the other two keep them apart until late in the network.
Each TTB layer bakes the map and shares the baked MLP with the novel-view tokens, so both stages see the same modality. Reconstruction handles twice the tokens; rendering cost is unchanged.
Benchmarks
We evaluate on the 140 held-out DL3DV scenes at 960p with 16, 32 and 64 input views. TTB renders every setting at 23 fps, up to 23× faster than the KV-cache model it starts from (DVSM in the table) and 2.3× faster than LaCT, within 1 dB of the KV-cache's quality. With local-duplicate inference, which keeps one copy of the fast weights per 16 views, it passes the KV-cache at 64 views (31.33 vs 31.11 dB). The cost is paid once, at reconstruction: 65 s for 64 views, against 60 s for the KV-cache and 7.3 s for LaCT.
Quality versus rendering speed on DL3DV, 960p
Larger markers: more input views (16, 32, 64). Hollow: TTB with local-duplicate inference.
| Method | PSNR ↑ | SSIM ↑ | LPIPS ↓ | Recon ↓ | FPS ↑ |
|---|---|---|---|---|---|
| 3DGS ToG'23 | 26.43 | 0.854 | 0.167 | >600 s | >50 |
| LongLRM ICCV'25 | 24.77 | 0.804 | 0.239 | 3 s | >50 |
| LongLRM++ arXiv'25 | 27.30 | 0.869 | 0.161 | 16 s | 14 |
| tttLRM CVPR'26 | 25.95 | 0.844 | 0.195 | 15 s | – |
| LVSM ICLR'25 | 21.96 | 0.678 | 0.364 | 59 s | 20 |
| LaCT ICLR'26 | 28.30 | 0.857 | 0.169 | 7.3 s | 10 |
| DVSM arXiv'26 | 31.11 | 0.920 | 0.104 | 60 s | 1 |
| TTB-- | 29.29 | 0.882 | 0.144 | 7.5 s | 23 |
| TTB | 30.20 | 0.897 | 0.131 | 65 s | 23 |
| TTB (duplicate) | 31.33 | 0.919 | 0.108 | 65 s | 23 |
140 held-out DL3DV scenes. Recon: per-scene reconstruction time.
TTB-- uses a linear-projection target instead of attention, so reconstruction stays linear in the number of views; it matches LaCT's quality with fewer parameters and faster rendering.
Zero-shot generalization
TTB was trained on DL3DV only. Given 64 photos of scenes from Mip-NeRF 360, Free and Hike, it renders at the same 23 fps and stays close to the KV-cache model in quality. Hover a scene to play it.
| Method | Mip-NeRF 360 PSNR ↑ | SSIM ↑ | LPIPS ↓ | Free PSNR ↑ | SSIM ↑ | LPIPS ↓ | Hike PSNR ↑ | SSIM ↑ | LPIPS ↓ | Recon ↓ | FPS ↑ |
|---|---|---|---|---|---|---|---|---|---|---|---|
| LVSM | 20.07 | 0.459 | 0.559 | 20.27 | 0.517 | 0.444 | 18.60 | 0.433 | 0.502 | 59 s | 20 |
| LaCT | 23.01 | 0.557 | 0.435 | 24.61 | 0.680 | 0.265 | 22.39 | 0.648 | 0.305 | 7.3 s | 10 |
| DVSM | 24.76 | 0.660 | 0.337 | 25.57 | 0.756 | 0.205 | 23.10 | 0.697 | 0.262 | 60 s | 1 |
| TTB-- | 23.93 | 0.597 | 0.397 | 25.28 | 0.708 | 0.253 | 22.53 | 0.660 | 0.300 | 7.5 s | 23 |
| TTB | 24.49 | 0.624 | 0.375 | 26.05 | 0.744 | 0.225 | 23.77 | 0.707 | 0.259 | 65 s | 23 |
| TTB (duplicate) | 25.05 | 0.667 | 0.341 | 26.82 | 0.800 | 0.187 | 25.37 | 0.782 | 0.195 | 65 s | 23 |
64 input views at 960p.
Ablation
Three additive changes turn a TTT replacement into TTB: context pairing, an MSE inner loop with three steps, and the cross-view attention target. Together they close the gap to the KV-cache model at TTT's rendering speed.
PSNR on DL3DV, 32 input views, small training setup
Inner-loop and layer-design ablations
| Framework | T | Loss | PSNR ↑ | SSIM ↑ | LPIPS ↓ |
|---|---|---|---|---|---|
| TTT | 1 | dot-prod | 23.12 | 0.704 | 0.286 |
| TTT | 3 | MSE | 23.39 | 0.715 | 0.277 |
| TTB-- | 1 | dot-prod | 23.78 | 0.728 | 0.264 |
| TTB-- | 2 | MSE | 24.16 | 0.744 | 0.251 |
| TTB-- | 3 | MSE | 24.22 | 0.747 | 0.248 |
| TTB-- | 5 | MSE | 24.29 | 0.751 | 0.246 |
MSE beats the dot-product loss for both TTT and TTB--; more inner-loop steps give diminishing gains, and is the sweet spot.
| Feedback | Residual | PSNR ↑ | SSIM ↑ | LPIPS ↓ |
|---|---|---|---|---|
| ✗ | ✗ | 24.32 | 0.748 | 0.243 |
| ✗ | ✓ | 24.75 | 0.764 | 0.233 |
| ✓ | ✗ | 24.76 | 0.764 | 0.231 |
| ✓ | ✓ | 24.84 | 0.768 | 0.230 |
Residual learning and feedback each add about +0.4 dB; together +0.5 dB.
Citation
@article{lin2026ttb, title = {TTB: Test-time Baking for Efficient Rendering of Decoder-only View Synthesis Models}, author = {Lin, Chin-Yang and Hachiuma, Ryo and Choe, Jaesung and Chen, Min-Hung and Wang, Yu-Chiang Frank and Lin, Yen-Yu and Chiu, Wei-Chen and Liu, Yu-Lun and Sun, Cheng}, journal = {arXiv preprint arXiv:2611.17331}, year = {2026}}References
- Test-Time Training Done Right (LaCT). ICLR 2026. arXiv:2505.23884
- DVSM: Decoder-only View Synthesis Model Done Right. arXiv 2026. arXiv:2605.29891