fix(video): double preview on the upload loader
ComfyUI core (frontend 1.42.x) natively renders a node's `ui.gifs` output as a media preview, so our own JS preview widget produced a second one. Return the preview under a custom `universr_videos` key that core ignores; our web extension is now the only thing that renders it — single preview. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+6
-4
@@ -136,8 +136,10 @@ def _load_video_audio(video_path: str, start_time: float, duration: float) -> di
|
||||
|
||||
temp_name = _temp_preview_symlink(video_path)
|
||||
ext = (os.path.splitext(video_path)[1] or ".mp4").lstrip(".")
|
||||
return {"ui": {"gifs": [{"filename": temp_name, "subfolder": "", "type": "temp",
|
||||
"format": f"video/{ext}"}]},
|
||||
# Custom key (not "gifs") so ComfyUI core doesn't ALSO render it — our web
|
||||
# extension is the only thing that previews it, avoiding a double preview.
|
||||
return {"ui": {"universr_videos": [{"filename": temp_name, "subfolder": "", "type": "temp",
|
||||
"format": f"video/{ext}"}]},
|
||||
"result": (info, audio)}
|
||||
|
||||
|
||||
@@ -318,8 +320,8 @@ class UniverSRVideoCombiner:
|
||||
subfolder = os.path.relpath(full_folder, out_dir)
|
||||
if subfolder == ".":
|
||||
subfolder = ""
|
||||
ui = {"gifs": [{"filename": out_name, "subfolder": subfolder, "type": out_type,
|
||||
"format": f"video/{src_ext.lstrip('.')}"}]}
|
||||
ui = {"universr_videos": [{"filename": out_name, "subfolder": subfolder, "type": out_type,
|
||||
"format": f"video/{src_ext.lstrip('.')}"}]}
|
||||
return {"ui": ui, "result": (str(out_path),)}
|
||||
|
||||
|
||||
|
||||
@@ -63,8 +63,9 @@ function addVideoPreview(nodeType) {
|
||||
const onExecuted = node.onExecuted;
|
||||
node.onExecuted = function (output) {
|
||||
onExecuted?.apply(this, arguments);
|
||||
if (output?.gifs?.[0]) {
|
||||
const g = output.gifs[0];
|
||||
// custom key (see nodes_video.py) — core ignores it, so we render it once
|
||||
const g = output?.universr_videos?.[0];
|
||||
if (g) {
|
||||
const params = new URLSearchParams({
|
||||
filename: g.filename,
|
||||
type: g.type || "temp",
|
||||
|
||||
Reference in New Issue
Block a user