More Memory, Better Videos? A Controlled Study of Visual Memory in Long-Video Generation
Organizations: University of Science and Technology of China · KlingAI Research · Tsinghua University · The Hong Kong University of Science and Technology ·
Abstract
Long-video generators increasingly retrieve past visual observations to prevent identity drift. The intuition is compelling: more access to history should make future video more consistent. But an image can be faithful to the past and wrong for the present. Does visual memory always improve the generated story? We investigate this question through VMem-Bench, a two-track diagnostic study. Track-A measures which references are selected from 92 real films (16,548 segments), before generation and without generator confounds. Track-B compares four retrieval policies with no-memory and gold-informed last-seen controls on 30 causally generated stories (2,824 segments) using a shared generator. Retrieval increases entity recall from 0.559 to 0.628-0.693 and improves similarity to past appearances, but decreases precision from 0.977 to 0.915-0.938 and forbidden-entity avoidance from 0.968 to 0.845-0.898. It can also reinforce obsolete appearances after the story changes them. Conversely, high long-gap recall can arise without memory when the prompt itself supplies the appearance; an appearance-stripping analysis exposes this confound. These results distinguish historical fidelity from current-story correctness and show why retrieval relevance or final-video consistency alone does not establish memory utility.
Figures & tables
| Family | Metric | Satisfied when |
|---|---|---|
| Long-gap reappearance | recall | A character or prop returns after at least 30 segments. |
| Look-alike | accuracy | The identity matches the intended member of a confusable pair. |
| State change | accuracy | A transformed entity appears in its new state. |
| Count / multi-instance | accuracy | The rendered count matches the authored count. |
| Avoidance | avoidance-OK | A removed, destroyed, or deceased entity is absent. |
| False friend | accuracy | A new look-alike is not collapsed into an existing identity. |
| Corpus | Hard-case segments | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Dataset | Movies | Segments | Entities | Char. | Prop. | Loc. | Dur. (h) | Re-app. | Multi-inst. | Scene-ret. | State-chg. |
| BlenderOpenMovies | |||||||||||
| LSMDC | |||||||||||
| Total | |||||||||||
| Presence, identity, and count | State correctness | Entity exclusion | All | |||||||
| System | Long-gap | Look-alike | False-fr. | Count | Temporal | State-chg | Persist | Avoid | Indirect | Overall |
| rec. | acc. | acc. | acc. | rec. | acc. | acc. | avoid. | avoid. | rec. | |
| Shared generator: no-memory baseline, four retrieval policies, Last-seen control | ||||||||||
| No memory ( ) | 0.890 | 0.952 | 0.980 | 0.779 | 0.867 | 0.991 | 0.689 | 0.964 | 0.852 | 0.559 |
| Text-frame ret. | 0.819 | 0.964 | 0.960 | 0.803 | 0.827 | 0.995 | 0.802 + | 0.889 | 0.694 | 0.628 + |
| Seg+uniform ret. | 0.871 | 0.959 | 0.900 | 0.794 | 0.860 | 0.991 | 0.783 + | 0.829 | 0.705 | 0.689 + |
| (a) Original prompts: observational groups | |||||
| Entity | Gap | No memory | DINO-key | Policies | |
| Character | 1–4 | 430 | 0.553 | +0.195 0.120 | 4/0/0 |
| 30 | 62 | 0.984 | -0.032 0.130 | 0/2/2 | |
| Prop | 1–4 | 271 | 0.635 | +0.041 0.110 | 0/0/4 |
| 30 | 148 | 0.851 | +0.034 0.190 | 0/0/4 | |
| Policy | All returns | Characters | Props | Changed |
|---|---|---|---|---|
| No memory | 0.35 | 0.27 | 0.41 | 0.19 |
| Text-frame | +0.15 | +0.13 | +0.16 | +0.18 |
| Seg+uniform | +0.21 | +0.20 | +0.21 | +0.20 |
| Seg+DINO-key | +0.20 | +0.19 | +0.21 | +0.20 |
| Seg+frame | +0.21 | +0.18 | +0.23 | +0.15 |
| Last-seen | +0.23 | +0.23 | +0.22 | +0.23 |
| Refs | Segments | |||
|---|---|---|---|---|
| 1 | 1,803 | +0.087 0.044 | -0.002 0.020 | -0.012 0.028 |
| 2 | 842 | +0.078 0.063 | -0.027 0.020 | -0.047 0.032 |
| 3 | 149 | +0.038 0.092 | -0.031 0.067 | -0.052 0.104 |
| System | BlenderOpenMovies | LSMDC | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Correctness / coverage | Efficiency / redundancy | Budget | Correctness / coverage | Efficiency / redundancy | Budget | |||||||||
| Prec | Rec | F1 | SelEff | Refs | Prec | Rec | F1 | SelEff | Refs | |||||
| Retrieval memories (testbed) | ||||||||||||||
| Text-frame ret. | 0.692 | 0.887 | 0.817 | 0.323 | 0.492 | 0.634 | 15.47 | 0.630 | 0.802 | 0.670 | 0.330 | 0.404 | 0.543 | 15.94 |
| Seg+uniform ret. | 0.662 | 0.883 | 0.796 | 0.297 | 0.515 | 0.650 | 15.47 | 0.566 | 0.769 | 0.622 | 0.264 | 0.454 | 0.605 | 15.92 |
| Seg+DINO-key ret. | 0.579 | 0.923 | 0.752 | 0.431 | 0.225 | 0.488 | 13.80 | 0.484 | 0.849 | 0.591 | 0.393 | 0.143 | 0.393 | 14.82 |
| Metric | No memory | Seg+DINO-key |
|---|---|---|
| Imaging | 0.645 0.015 | 0.652 0.023 |
| Aesthetic | 0.573 0.013 | 0.595 0.024 |
| Subject consistency | 0.935 0.004 | 0.929 0.004 |
| Background consistency | 0.941 0.002 | 0.931 0.003 |
| Per-clip entity recall | 0.554 0.068 | 0.740 0.045 |
| Judge / backend | |||
|---|---|---|---|
| Judge check: Wan2.2, 30 stories | |||
| Qwen3-VL | +0.133 0.044 | -0.057 0.018 | -0.114 0.034 |
| InternVL3.5 | +0.123 0.049 | -0.028 0.023 | -0.050 0.032 |
| Cross-judge support | |||
| Backend check: Qwen3-VL, 8 matched stories | |||
| Wan2.2 | +0.150 0.036 | -0.061 0.032 | -0.130 0.068 |
Appendix figures & tables24 assets
Supplementary material from the paper’s appendix.
Appendix
| Assessment | What to report or compare | Interpretation boundary |
|---|---|---|
| Information contribution | Include no memory with the same non-memory inputs; record what appearance information the prompt and any baseline context supply. Where possible, contrast matched prompts with and without that information (Table 4 ). | Long absence alone does not show memory was needed. Our stripping test does not establish a reliable retrieval benefit or validate a reading gate. |
| Temporal validity | Report description-matching presence and required state alongside previous-appearance similarity; retain detection/visibility conditions (Table 5 ). | Old resemblance can reward an obsolete look. More recent is not always more valid: flashbacks may require an earlier state. |
| Unwanted content | Report precision and forbidden-entity avoidance with recall, using the same story requirements (Table 3 ; Sec. 4.3 ). | A recall gain can coincide with extra entities. Whole-policy differences do not isolate a reference’s causal contribution. |
| Evidence versus use | Inspect selected-reference coverage/precision separately from generated outcomes; use matched instances if relating the two (Table 7 ). | Our Track-A and Track-B use different stories; do not infer a per-story correlation or downstream benefit from Track-A alone. |
| Perceptual quality | Retain clip-quality metrics and entity-level outcomes with explicit aggregation and denominators (Table 8 ). | Within-clip stability is not entity correctness. Weak measured correlation does not establish independence. |
| Uncertainty and controls | State rollout/seed counts, resampling units, judge agreement, budget, and whether the generator is shared (Table 9 ). | Story CIs condition on observed rollouts. Judge-sensitive strata, variable-budget Last-seen, and native-generator rows require separate interpretation. |
| Cohort property | Value |
|---|---|
| Stories / segments | 30 / 2,824 |
| Segments: mean / median | 94.1 / 87.5 |
| Segments: min–max | 68–131 |
| Scripted duration | 3.92 h |
| Character entities | 152 |
| Prop entities | 300 |
| Work | Historical visual context | Learned conditioning | Reported evaluation focus |
|---|---|---|---|
| OneStory [ 1 ] | Semantically selected frames from earlier shots; compact global memory. | Fine-tuned I2V model with frame selection and an adaptive patch conditioner. | Character/environment consistency, shot quality, and semantic alignment in text- and image-conditioned multi-shot generation. |
| StoryMem [ 25 ] | Generated-shot keyframes selected semantically and filtered by aesthetic preference; dynamic memory bank. | LoRA-trained memory-to-video model using latent concatenation and negative temporal RoPE shifts. | ST-Bench: cross-shot consistency, global/single-shot prompt following, aesthetic quality, and human preference. |
| SubjectAnchor [ 17 ] | Subject-related precomputed keyframes traced to historical appearances. | Trained Wan2.2-I2V with subject-aware RoPE and partitioned memory attention. | Subject/prompt alignment, identity relative to first/previous appearances, visual quality, and inclusion/exclusion control. |
| VMem-Bench (this study) | Real-film evidence replay (Track-A); references from each policy’s generated history (Track-B). | Shared FLUX.2/Wan2.2 pipeline across retrieval policies and controls; no newly trained memory architecture. | Reference coverage/precision before generation; required and forbidden appearances, current state, conditional appearance similarity, prompt stripping, and judge/backend sensitivity. |
| Memory family | Internal interface / native diagnostic | What internal-only evaluation cannot establish |
|---|---|---|
| Window / KV | frames, latents, or KV; recency / native attention; cache reach | Retention does not imply that intent-relevant evidence crosses the finite conditioning boundary; stale history may remain active. |
| Retrieval | indexed frames / clips; search rank; Recall@ / similarity | Larger can buy recall while increasing context spend or contamination; a good retrieval decision may still fail in synthesis. |
| Entity / state memory | persistent identity / state records; address, update, filter; record validity | Correct records do not guarantee that the right visual evidence is materialized under budget or realized correctly by the generator. |
| System | Stored as | Read by | Forgets by | Causal |
| Released / published memories | ||||
| FramePack [ 26 ] | Frame latents, compressed by importance rank | All history, ordered by recency or similarity | Geometric compression; tail deleted or pooled | Partly (endpoint plans) |
| MemFlow [ 7 ] | Local KV window KV bank | Prompt-to-frame attention, top- | Budget; keeps top- by prompt relevance | Yes |
| IAMFlow [ 8 ] | Entity-ID registry archived frame KV | Set cover of IDs named in prompt | None; archive grows, read capped | Yes |
| LongLive-RAG [ 4 ] | Evicted latent KV AE embedding | Cosine to latest latent, top- | None; every evicted frame kept | Yes |
| Context-as-Memory [ 23 ] | Raw generated frames | Camera FOV overlap with target view | None; read capped at | Yes |
| Movie | Segs. | Mean seg. | KV frames | Pred. GiB | Outcome |
|---|---|---|---|---|---|
| 0053_Rendezvous_mit_Joe_Black | 221 | 7.3 s | 2071 | 555 | completed |
| sita_sings_the_blues_part1 | 164 | 14.9 s | 3259 | 873 | OOM |
| 0013_Halloween | 128 | 14.9 s | 2442 | 654 | completed |
| 1005_Signs | 296 | 9.8 s | 3763 | 1008 | OOM |
| 0017_Pianist | 235 | 13.8 s | 4287 | 1148 | OOM |
| Metric | pos./neg. pairs | AUC | threshold | pos. median | neg. median |
|---|---|---|---|---|---|
| DINOv3 crop | 385/389 | 1.000 | 0.67 | 0.96 | 0.19 |
| ArcFace face | 201/157 | 0.997 | 0.35 | 0.84 | 0.11 |
| MegaLoc scene | 200/200 | 1.000 | 0.66 | 0.89 | 0.07 |
| DINOv3 scene | 200/200 | 1.000 | 0.84 | 0.98 | 0.17 |
| VLM pairwise judge | same when both visible: 0.98 (pos.), 0.78 (neg.); neg. not consistent: 0.93 | ||||
| Kind | Gap (segments) | No memory | Text | Uniform | DINO-key | Frame | Last-seen | |
|---|---|---|---|---|---|---|---|---|
| Character | just seen | 2173 | 0.493 | +0.106 0.07 | +0.198 0.06 | +0.201 0.06 | +0.191 0.08 | +0.143 0.07 |
| 1–4 | 430 | 0.553 | +0.144 0.13 | +0.186 0.12 | +0.195 0.12 | +0.170 0.12 | +0.040 0.12 | |
| 5–29 | 63 | 0.714 | -0.048 0.24 | +0.143 0.23 | +0.111 0.25 | +0.064 0.28 | -0.016 0.22 | |
| 30 (returns changed) | 62 | 0.984 | -0.177 0.21 | -0.129 0.18 | -0.032 0.13 | -0.081 0.16 | -0.032 0.08 | |
| Prop | just seen | 1087 | 0.399 | +0.070 0.06 | +0.118 0.09 | +0.111 0.08 | +0.085 0.09 | +0.049 0.06 |
| 1–4 | 271 | 0.635 | +0.015 0.09 | +0.044 0.11 | +0.041 0.11 | +0.044 0.09 | +0.096 0.11 |
| Stratum | Eligible | No memory | Text | Uniform | DINO-key | Frame | Last-seen |
|---|---|---|---|---|---|---|---|
| DINOv3 crop similarity (trackB-embed-1.0) | |||||||
| All returns | 1130 | 0.35 | +0.15 | +0.21 | +0.20 | +0.21 | +0.23 |
| Characters | 486 | 0.27 | +0.13 | +0.20 | +0.19 | +0.18 | +0.23 |
| Props | 644 | 0.41 | +0.16 | +0.21 | +0.21 | +0.23 | +0.22 |
| Gap 1–4 | 688 | 0.30 | +0.15 | +0.22 | +0.21 | +0.21 | +0.25 |
| Gap 5–29 | 293 | 0.36 | +0.16 | +0.19 | +0.19 | +0.19 | +0.17 |
| Condition | Imaging | Aesthetic | Subj. cons. | Bg. cons. | Dynamic | Motion sm. | Clip rec. |
|---|---|---|---|---|---|---|---|
| Text-frame | 0.634 0.024 | 0.584 0.022 | 0.926 0.004 | 0.930 0.004 | 0.521 0.058 | 0.9933 0.0005 | 0.672 0.049 |
| Seg+uniform | 0.660 0.022 | 0.596 0.024 | 0.929 0.005 | 0.931 0.003 | 0.485 0.071 | 0.9931 0.0006 | 0.735 0.042 |
| Seg+DINO-key | 0.652 0.023 | 0.595 0.024 | 0.929 0.004 | 0.931 0.003 | 0.493 0.073 | 0.9931 0.0005 | 0.740 0.045 |
| Seg+frame | 0.652 0.024 | 0.595 0.023 | 0.928 0.005 | 0.931 0.003 | 0.475 0.060 | 0.9933 0.0005 | 0.731 0.035 |
| No memory ( ) | 0.645 0.015 | 0.573 0.013 | 0.935 0.004 | 0.941 0.002 | 0.549 0.041 | 0.9932 0.0004 | 0.554 0.068 |
| (a) Minus no memory, segments with a parsable judge output in both arms | |||||||
|---|---|---|---|---|---|---|---|
| Condition | dropped | Recall | Precision | Avoid-OK | 1–4 | 5–29 | 30 |
| Text-frame | 129 | +0.075 0.05 | -0.041 0.02 | -0.073 0.03 | +0.105 0.09 | +0.015 0.10 | -0.067 0.13 |
| Seg+uniform | 138 | +0.139 0.05 | -0.064 0.03 | -0.128 0.04 | +0.154 0.10 | +0.052 0.09 | -0.014 0.14 |
| Seg+DINO-key | 143 | +0.149 0.05 | -0.057 0.02 | -0.118 0.04 | +0.152 0.10 | +0.050 0.10 | +0.029 0.11 |
| Seg+frame | 142 | +0.131 0.06 | -0.058 0.02 | -0.114 0.05 | +0.143 0.10 | +0.054 0.09 | -0.014 0.11 |
| Last-seen refs | 112 | +0.087 0.04 | -0.013 0.01 | -0.028 0.02 | +0.066 0.09 | -0.004 0.09 | +0.000 0.10 |
| Condition | Recall | Precision | Avoid-OK | All A/ | Present A/ |
|---|---|---|---|---|---|
| Qwen3-VL-32B (pinned judge) | |||||
| No memory | 0.559 | 0.977 | 0.968 | 0.908/0.64 | 0.754/0.52 |
| Text-frame | +0.068 0.04 | -0.039 0.02 | -0.070 0.02 | 0.882/0.64 | 0.723/0.46 |
| Seg+uniform | +0.130 0.05 | -0.062 0.02 | -0.123 0.05 | 0.882/0.67 | 0.727/0.45 |
| Seg+DINO-key | +0.133 0.04 | -0.057 0.02 | -0.114 0.03 | 0.880/0.66 | 0.713/0.43 |
| Seg+frame | +0.115 0.06 | -0.057 0.02 | -0.110 0.04 | 0.881/0.66 | 0.721/0.44 |
| Condition | Recall | Precision | Avoid-OK | Near-dup |
|---|---|---|---|---|
| FLUX.2 Wan2.2 (main pipeline) | ||||
| No memory (level) | 0.563 | 0.979 | 0.969 | 0/759 |
| Text-frame | +0.084 0.05 | -0.034 0.03 | -0.067 0.06 | 0/759 |
| Seg+uniform | +0.153 0.06 | -0.061 0.04 | -0.130 0.08 | 0/759 |
| Seg+DINO-key | +0.150 0.04 | -0.061 0.03 | -0.130 0.07 | 0/759 |
| Seg+frame | +0.115 0.11 | -0.067 0.03 | -0.136 0.05 | 0/759 |
| Required entity missing or wrong | Forbidden entity rendered | ||||||||
| Memory | Hist. | Select. | Synth. | Judge | Context | Gen. | Judge | ||
| Text-frame | 45 | 28 | 1 | 27 | 36 | 60 | 0 | 40 | 10 |
| Seg+uniform | 34 | 35 | 9 | 22 | 38 | 100 | 0 | 0 | 9 |
| Seg+DINO-key | 13 | 44 | 18 | 25 | 35 | 56 | 0 | 44 | 9 |
| Seg+frame | 25 | 38 | 2 | 34 | 38 | 67 | 0 | 33 | 9 |
| Pooled | 29 | 36 | 7 | 27 | 147 | 71 | 0 | 29 | 37 |
| Miss (required entity absent) | ||||||||
|---|---|---|---|---|---|---|---|---|
| Memory | gap 1–4 | 5–29 | 30 | time ref. | Wrong | Forbidden | Control | Units |
| Text-frame | 8 (140) | 8 (56) | 8 (20) | 4 (8) | 10 (109) | 10 (201) | 8 (596) | 56 |
| Seg+uniform | 8 (155) | 8 (63) | 8 (12) | 4 (6) | 10 (121) | 10 (265) | 8 (582) | 56 |
| Seg+DINO-key | 8 (116) | 10 (52) | 8 (18) | 2 (2) | 10 (117) | 10 (265) | 8 (639) | 56 |
| Seg+frame | 8 (109) | 8 (42) | 8 (20) | 4 (5) | 10 (111) | 10 (274) | 8 (632) | 56 |
| All | 32 (520) | 34 (213) | 32 (70) | 14 (21) | 40 (458) | 40 (1005) | 32 (2449) | 224 |
| Decision | Observed evidence | Hypothesis to test | Result counting against it |
|---|---|---|---|
| When to read | Prompt stripping changes no-memory presence substantially; the stripped retrieval gain is uncertain (Table 4 ). | Gate access when history adds information beyond the prompt and baseline context, compared with always reading. | Gating loses required appearances or valid-state fidelity without reducing interference; textual detail alone is an inadequate gate. |
| Which moment | Changed returns can become more similar to their obsolete look (Table 5 ). | Retrieve the instruction-valid entity state, allowing earlier states for flashbacks. | State-matched references do not improve requested-state correctness or damage identity continuity at the same budget. |
| How much | Last-seen costs increase across unmatched reference-count strata (Table 20 ). | Fewer references reduce interference without losing needed evidence; vary count using explicitly specified additions. | The apparent cost increase disappears under the matched comparison; additional references improve recall without an exclusion cost. |
| What to forget | Retrieval raises recall while reducing precision and avoidance (Sec. 4.3 ). | Suppress unrequested content in useful references while retaining required identity/state cues. | Suppression fails to improve avoidance or loses useful identity/state evidence; removing more content is not automatically better. |
| What to write | The earlier single-author audit assigns 29% of sampled flagged misses to stored wrong renderings (App. G ). | Reject or repair incorrect observations before write-back. | Rejecting history discards uniquely useful evidence and worsens later recall/state fidelity compared with retaining it. |
Memory-Augmented Video Generation
Memory-augmented video generation gives video models persistent context to preserve identities, scenes, and events across long sequences.
See all 110 papers