| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta charset="utf-8"> |
| <meta name="viewport" content="width=device-width, initial-scale=1"> |
| <title>JavisDiT Edit — text_both_0721 @ step 13k</title> |
| <style> |
| :root { |
| --bg: #0f1117; --card: #181b24; --border: #2a2f3d; |
| --text: #e8eaf0; --muted: #9aa1b5; --accent: #7aa2ff; |
| } |
| * { box-sizing: border-box; margin: 0; padding: 0; } |
| body { |
| background: var(--bg); color: var(--text); |
| font: 15px/1.55 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; |
| padding: 2rem 1.25rem 4rem; |
| } |
| .wrap { max-width: 1100px; margin: 0 auto; } |
| h1 { font-size: 1.5rem; margin-bottom: .35rem; } |
| .sub { color: var(--muted); font-size: .92rem; margin-bottom: 2rem; } |
| .sub code { color: var(--accent); background: var(--card); padding: .1em .35em; border-radius: 4px; } |
| section { margin-bottom: 2.5rem; } |
| .sec-head { display: flex; align-items: baseline; gap: .75rem; flex-wrap: wrap; margin-bottom: .9rem; } |
| .sec-head h2 { font-size: 1.12rem; } |
| .badge { |
| font-size: .74rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; |
| padding: .18em .6em; border-radius: 99px; border: 1px solid var(--border); |
| } |
| .badge.test { color: #8fd3a7; border-color: #2e5d41; background: #16281d; } |
| .badge.train { color: #f0b86a; border-color: #6b5228; background: #2a2113; } |
| .prompt { color: var(--muted); font-size: .9rem; } |
| .prompt code { color: var(--text); } |
| .row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; } |
| @media (max-width: 760px) { .row { grid-template-columns: 1fr; } } |
| .cell { background: var(--card); border: 1px solid var(--border); border-radius: 10px; padding: .75rem; } |
| .cell.gen { border-color: #3d517e; } |
| .cell h3 { font-size: .85rem; font-weight: 600; color: var(--muted); margin-bottom: .55rem; } |
| .cell.gen h3 { color: var(--accent); } |
| video { width: 100%; border-radius: 6px; display: block; background: #000; } |
| .note { color: var(--muted); font-size: .85rem; margin-top: .55rem; } |
| footer { color: var(--muted); font-size: .82rem; margin-top: 3rem; border-top: 1px solid var(--border); padding-top: 1rem; } |
| </style> |
| </head> |
| <body> |
| <div class="wrap"> |
| <h1>JavisDiT Edit — audio-visual object addition & removal</h1> |
| <p class="sub"> |
| Checkpoint <code>text_both_0721 / epoch001-global_step13000</code> (EMA) · Wan2.1-T2AV 1.3B, FiLM text conditioning, |
| trained on both edit directions · 81 frames @ 16 fps, 256×256, 50 sampling steps, CFG 5.0 · |
| target's first frame prepended as anchor (stripped before decode). One test-set sample and one train-set sample (overfit check), each run in both directions. All clips include generated audio — unmute to listen. |
| </p> |
|
|
| <section> |
| <div class="sec-head"> |
| <h2>Addition — “birds”</h2><span class="badge test">test set</span> |
| <span class="prompt">prompt: <code>a video with birds</code> · epMUuqXcgeo_000030</span> |
| </div> |
| <div class="row"> |
| <div class="cell"><h3>Source (input, birds removed)</h3><video src="videos/test_add_source.mp4" controls loop muted playsinline></video></div> |
| <div class="cell gen"><h3>Generated (model output)</h3><video src="videos/test_add_generated.mp4" controls loop playsinline></video></div> |
| <div class="cell"><h3>Target (ground truth)</h3><video src="videos/test_add_target.mp4" controls loop muted playsinline></video></div> |
| </div> |
| </section> |
|
|
| <section> |
| <div class="sec-head"> |
| <h2>Removal — “birds”</h2><span class="badge test">test set</span> |
| <span class="prompt">prompt: <code>a video without birds</code> · epMUuqXcgeo_000030</span> |
| </div> |
| <div class="row"> |
| <div class="cell"><h3>Source (input, birds present)</h3><video src="videos/test_remove_source.mp4" controls loop muted playsinline></video></div> |
| <div class="cell gen"><h3>Generated (model output)</h3><video src="videos/test_remove_generated.mp4" controls loop playsinline></video></div> |
| <div class="cell"><h3>Target (ground truth)</h3><video src="videos/test_remove_target.mp4" controls loop muted playsinline></video></div> |
| </div> |
| </section> |
|
|
| <section> |
| <div class="sec-head"> |
| <h2>Addition — “trumpet”</h2><span class="badge train">train set (overfit check)</span> |
| <span class="prompt">prompt: <code>a video with trumpet</code> · GfeEN8LONh0_000253</span> |
| </div> |
| <div class="row"> |
| <div class="cell"><h3>Source (input, trumpet removed)</h3><video src="videos/train_add_source.mp4" controls loop muted playsinline></video></div> |
| <div class="cell gen"><h3>Generated (model output)</h3><video src="videos/train_add_generated.mp4" controls loop playsinline></video></div> |
| <div class="cell"><h3>Target (ground truth)</h3><video src="videos/train_add_target.mp4" controls loop muted playsinline></video></div> |
| </div> |
| </section> |
|
|
| <section> |
| <div class="sec-head"> |
| <h2>Removal — “trumpet”</h2><span class="badge train">train set (overfit check)</span> |
| <span class="prompt">prompt: <code>a video without trumpet</code> · GfeEN8LONh0_000253</span> |
| </div> |
| <div class="row"> |
| <div class="cell"><h3>Source (input, trumpet present)</h3><video src="videos/train_remove_source.mp4" controls loop muted playsinline></video></div> |
| <div class="cell gen"><h3>Generated (model output)</h3><video src="videos/train_remove_generated.mp4" controls loop playsinline></video></div> |
| <div class="cell"><h3>Target (ground truth)</h3><video src="videos/train_remove_target.mp4" controls loop muted playsinline></video></div> |
| </div> |
| </section> |
|
|
| <footer> |
| Source/target reference clips are the training latents decoded back to pixels (video VAE + AudioLDM2), so they show the same reconstruction quality ceiling the model trains against. Generated clips carry the model's generated audio track; reference clips are muted by default but also contain their decoded audio. |
| </footer> |
| </div> |
| </body> |
| </html> |
|
|