From 301c978dd2b2f7bed90345d9d5c45eb159f3f317 Mon Sep 17 00:00:00 2001 From: digital-garbage <133010426+digital-garbage@users.noreply.github.com> Date: Sat, 13 Jun 2026 02:05:10 +0300 Subject: [PATCH] Revert preview segment cache and live preview UI changes. Roll back segment cache busting, player refresh-on-render, and gen overlay behavior while keeping timeline snapshot verification before generate. --- movie_editor/frontend/api.js | 1 - movie_editor/frontend/player.js | 65 +++++++++---------------------- movie_editor/frontend/store.js | 35 ++++++++--------- movie_editor/frontend/styles.css | 4 +- movie_editor/server.py | 43 ++++---------------- movie_editor/tests/test_server.py | 25 +----------- 6 files changed, 44 insertions(+), 129 deletions(-) diff --git a/movie_editor/frontend/api.js b/movie_editor/frontend/api.js index 06f687c4..60929d74 100644 --- a/movie_editor/frontend/api.js +++ b/movie_editor/frontend/api.js @@ -161,7 +161,6 @@ type: m.type || "output", render_in: String(spec.renderIn != null ? spec.renderIn : 0), }); - if (spec.cacheBust != null) q.set("v", String(spec.cacheBust)); u += "?" + q.toString(); } return u; diff --git a/movie_editor/frontend/player.js b/movie_editor/frontend/player.js index d89eb72e..659a9b40 100644 --- a/movie_editor/frontend/player.js +++ b/movie_editor/frontend/player.js @@ -158,8 +158,7 @@ const sc = S.scene(c.sceneId); const sourceIn = sc?.source_in || 0; const renderIn = Math.max(0, (c.inSec || 0) - sourceIn); - const cacheBust = (st && st._previewGenToken) || Date.now(); - c.streamUrl = API.previewSegmentUrl(pid, c.sceneId, { media: c.media, renderIn, cacheBust }); + c.streamUrl = API.previewSegmentUrl(pid, c.sceneId, { media: c.media, renderIn }); } } } @@ -878,36 +877,7 @@ let _tcEl = null; // timecode span (updated live, not rebuilt) let _playBtnEl = null; // play/pause button (glyph updated live, not rebuilt) let _genMsgEl = null, _genBarEl = null, _genFillEl = null; // gen readout, updated live - let _livePreviewEl = null, _livePreviewBadgeEl = null, _livePreviewLayerEl = null; - - function _livePreviewConfigured(st) { - const m = st?.models || {}; - const lp = m.live_preview || {}; - if (lp.enabled || lp.slot_id) return true; - if ((m.core_overrides?.sampler?.preview_vae || "").startsWith("out:")) return true; - const port = "port:FunPackLTXAVSceneChainSampler.preview_vae"; - return (m.slots || []).some((s) => - Object.values(s.wires || {}).some((raw) => { - const arr = Array.isArray(raw) ? raw : raw ? [raw] : []; - return arr.includes(port); - })); - } - - function _ensureLivePreviewDom() { - if (_livePreviewLayerEl && _livePreviewEl) return; - const canvas = document.querySelector(".pm-canvas"); - if (!canvas) return; - const lpLayer = el("div", "pm-live-preview"); - _livePreviewEl = el("img", "pm-live-preview-img"); - _livePreviewEl.alt = "Live preview"; - _livePreviewEl.draggable = false; - _livePreviewEl.style.display = "none"; - _livePreviewBadgeEl = el("div", "pm-live-preview-badge"); - _livePreviewBadgeEl.style.display = "none"; - lpLayer.append(_livePreviewEl, _livePreviewBadgeEl); - canvas.append(lpLayer); - _livePreviewLayerEl = lpLayer; - } + let _livePreviewEl = null, _livePreviewBadgeEl = null; // Update the generation readout in place on progress ticks (no store re-render, so the // editor stays interactive — frames can be saved, effects added — while a job runs). @@ -920,13 +890,9 @@ _genFillEl.style.width = Math.min(100, Math.round((g.step / g.maxStep) * 100)) + "%"; } } - if (g.livePreviewUrl) { - _ensureLivePreviewDom(); - const canvas = document.querySelector(".pm-canvas"); - if (canvas && !canvas.classList.contains("gen-live-preview")) canvas.classList.add("gen-live-preview"); - if (_livePreviewLayerEl) _livePreviewLayerEl.style.display = ""; - if (_livePreviewEl && _livePreviewEl.src !== g.livePreviewUrl) _livePreviewEl.src = g.livePreviewUrl; - if (_livePreviewEl) _livePreviewEl.style.display = ""; + if (_livePreviewEl && g.livePreviewUrl) { + if (_livePreviewEl.src !== g.livePreviewUrl) _livePreviewEl.src = g.livePreviewUrl; + _livePreviewEl.style.display = ""; } if (_livePreviewBadgeEl && g.liveScene >= 0 && g.liveSceneCount > 0) { _livePreviewBadgeEl.textContent = `Scene ${g.liveScene + 1}/${g.liveSceneCount}`; @@ -1098,9 +1064,6 @@ // Rebuilding the monitor DOM during playback detaches