Yunyi Chen

VITA Lab, EPFL

Vistral Vistral Vistral

Warp-guided streaming exo-to-ego video synthesis.

From a single third-person fisheye video, Vistral streams a long-horizon, drift-free egocentric rollout — treating the exocentric view as a persistent, non-drifting warped history rather than a static condition.

Sequences
33
Domains
2
Rollout
30 s
Camera
Fisheye-native

A free, non-drifting anchor for long-horizon exo→ego generation.

Exo-to-ego translation promises immersive first-person understanding from third-person footage, but the extreme viewpoint change and minimal overlap between the two views make long-horizon generation hard: errors accumulate, drift sets in, and quality collapses.

Vistral treats the exocentric view as persistent warped visual history instead of a static condition. We 3D-lift the exo video into a point cloud, rasterize it into the target ego trajectory at every step, and inject it through a frozen diffusion model's history pathway — turning the exo camera into a stable, non-drifting anchor for long-horizon, camera-controllable generation with only a lightweight LoRA.

On Ego-Exo4D, Vistral beats four baselines (Exo2Ego-V, TrajectoryCrafter, Wan Fun Control, EgoX) on per-frame fidelity in both Seen and Unseen scenarios, with substantially better long-horizon stability than concatenation-based conditioning.

One frozen backbone, warped history for control.

Vistral extends warp-as-history from same-scene camera control to the cross-view, long-horizon exo-to-ego setting. Each chunk: (i) build a cross-view exo warp by 3D-lifting the exo video, (ii) inject it as visibility-selected, target-aligned pseudo-history, (iii) generate autoregressively with prior ego frames as temporal history. Only a lightweight LoRA is trained; the VAE and Helios backbone stay frozen.

  1. 4.1Cross-view warp constructionPi3X predicts per-frame depth, intrinsics, and pose; we lift to a 3D point cloud and render it into each target ego camera with z-buffering.
  2. 4.2Warped pseudo-historyWarp tokens share the target latent's RoPE index (not history); tokens with valid support below τ=0.1 are dropped.
  3. 4.3Streaming rolloutTemporal history = a persistent sink chunk + recent frames, with its own history position embedding.
  4. 4.4TrainingRank-128 LoRA on attn1/attn2 projections, flow-matching loss on noisy ego tokens only; recent-history frames are augmented.
Temporal history Ht

Previously generated ego frames — a persistent sink chunk plus recent frames — give temporal continuity with what's already been generated.

Exo warp H̃exot (ours)

The exo point cloud, re-rasterized into the target view at every chunk, re-anchors generation to a static geometry instead of a shrinking window.

Prior methods like EgoX instead concatenate the exo latent with the noisy ego latent at a fixed position — effective for short clips, but unable to re-anchor frames generated far from that window under autoregressive roll-out. Routing the exo view through the history pathway re-places the anchor at every chunk instead, since it's re-rasterized from the fixed exo view each step.

Vistral pipeline: 3D-lift the exocentric video, rasterize along the target ego trajectory to get warped pseudo-history, then feed history tokens, visible warp tokens, and noisy video tokens into a frozen Helios AR video diffuser with LoRA.
Figure 1. Vistral 3D-lifts the exo video and rasterizes it along the target trajectory as warped pseudo-history. A frozen Helios model takes history, warp, and noisy-target tokens with shared position embeddings; only a LoRA is trained.

30 s streaming rollouts, evaluated against real GT.

Full 30 s clips on Ego-Exo4D Seen (training scenes) and Unseen (held-out scenes) splits. The first nine frames of each clip are discarded before scoring to avoid leakage from the GT conditioning anchor.

Method Image Criteria Video Criteria
PSNR ↑SSIM ↑LPIPS ↓CLIP-I ↑ FVD ↓Temp. Flicker ↑Motion Smooth ↑Dyn. Degree ↑
Seen Scenes
Exo2Ego-V14.530.3840.5690.774622.470.9600.9660.985
TrajectoryCrafter13.050.3750.6060.780546.090.9600.9800.947
Wan Fun Control12.250.4630.6170.810595.070.9680.9800.901
EgoX16.050.5560.4980.896184.470.9770.9900.974
Vistral (Ours)16.300.5400.4790.853547.120.9660.9850.917
Unseen Scenes
Exo2Ego-V12.700.4390.5970.6791283.500.9710.9760.978
TrajectoryCrafter12.240.2970.6190.778821.710.9660.9840.944
Wan Fun Control13.590.4390.6040.799968.780.9710.9850.944
EgoX14.380.4570.5520.877440.640.9810.9920.989
Vistral (Ours)14.900.4400.5060.852539.260.9680.9880.860

Table 1. Best per column in bold, second-best underlined. Vistral leads on per-frame fidelity (PSNR, LPIPS) in both scenarios; EgoX — a strong non-streaming, fixed-clip baseline — leads on FVD and Dynamic Degree.

Ablation grid: rows GT, Warp, Helios, Helios-1shot, No sink, Ours; columns t=0s to t=27s across a 30s bike-repair clip. Helios and Helios-1shot collapse into severe color drift and artifacts within seconds; No sink diverges later in the clip; Ours stays close to GT throughout.
Figure 2. Ablation over a 30 s clip: GT, the warp prior, the base backbone without fine-tuning (Helios), a one-shot variant (Helios-1shot), our model without sink / recent-history augmentation (No sink), and the full model (Ours). Without streaming components, generation drifts sharply within seconds; Ours stays close to GT throughout — confirming the sink + recent-history augmentation is what suppresses autoregressive drift.

Exo GTthird-person input

Warpcross-view pseudo-history

Ego GTground-truth first-person

GeneratedVistral output

Case study — indiana_bike_01_2 (cam04). The same 30 s window shown from all four sides: what Vistral generates, the real egocentric recording, the exocentric input it was generated from, and the sparse geometric warp that conditions generation. The warp is holey and low-fidelity by construction (Sec. 4.1) — the generative prior fills the rest, closely matching Ego GT.

Vistral vs. EgoX: keeping the fisheye.

Same Ego-Exo4D Aria data, opposite preprocessing. EgoX (Kang, Kim, Kim, Park, Hyung & Choo, CVPR 2026) rectifies the native fisheye feed into a synthetic pinhole camera; Vistral keeps the fisheye end-to-end, trading harder warp geometry for full FOV — mitigated since the LoRA trains directly on fisheye video.

Vistral (ours)
  • Native fisheye (Kannala–Brandt)
  • 448×448, full FOV (square)
  • Online cross-view warp, re-rasterized every chunk
  • Helios (distilled), streaming AR
↔ opposite choice
EgoX
  • Rectified pinhole (virtual camera)
  • 448×448, cropped FOV (rectified pinhole)
  • Pre-generated ego_Prior.mp4
  • Wan2.1-I2V-14B, fixed 49-frame window

Table 1 already scores both on the same splits — this panel is about why they differ. Rectifying to pinhole discards FOV at the edges of Aria's ~110°+ fisheye, exactly where hands and near-field content live.

BibTeX and acknowledgements.

Vistral builds on Helios, Warp-as-History, Pi3, and the Ego-Exo4D dataset.

@misc{chen2026vistral,
  title  = {Vistral: Warp-Guided Streaming Exo-to-Ego Video Synthesis},
  author = {Chen, Yunyi},
  year   = {2026},
  note   = {VITA Lab, EPFL},
  url    = {https://github.com/C-Yunyi/Vistral}
}