From df55f01d1df2f7bf5cc772294bc2e6d8bab22d66 Mon Sep 17 00:00:00 2001 From: Austin Mroz Date: Fri, 4 Apr 2025 14:26:58 -0500 Subject: [PATCH] Float rounding fixes Backend preview code will now accept floats and convert or truncate as needed. Fix updateParameter callbacks using out of date, unbounded values --- pyproject.toml | 2 +- videohelpersuite/server.py | 8 ++++---- web/js/VHS.core.js | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 9fe6f53..f316b89 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [project] name = "comfyui-videohelpersuite" description = "Nodes related to video workflows" -version = "1.5.17" +version = "1.5.18" license = { file = "LICENSE" } dependencies = ["opencv-python", "imageio-ffmpeg"] diff --git a/videohelpersuite/server.py b/videohelpersuite/server.py index 8623362..ef57da3 100755 --- a/videohelpersuite/server.py +++ b/videohelpersuite/server.py @@ -71,7 +71,7 @@ async def view_video(request): start_time = 0 if 'start_time' in query: start_time = float(query['start_time']) - elif int(query.get('skip_first_frames', 0)) > 0: + elif float(query.get('skip_first_frames', 0)) > 0: start_time = float(query.get('skip_first_frames'))/target_rate if start_time > 1/modified_rate: start_time += 1/modified_rate @@ -87,7 +87,7 @@ async def view_video(request): post_seek = [] args = [ffmpeg_path, "-v", "error"] + pre_seek + in_args + post_seek - if int(query.get('force_rate',0)) != 0: + if target_rate != 0: args += ['-r', str(modified_rate)] if query.get('force_size','Disabled') != "Disabled": size = query['force_size'].split('x') @@ -103,8 +103,8 @@ async def view_video(request): vfilters.append(f"scale={size}") if len(vfilters) > 0: args += ["-vf", ",".join(vfilters)] - if int(query.get('frame_load_cap', 0)) > 0: - args += ["-frames:v", query['frame_load_cap']] + if float(query.get('frame_load_cap', 0)) > 0: + args += ["-frames:v", query['frame_load_cap'].split('.')[0]] #TODO:reconsider adding high frame cap/setting default frame cap on node if query.get('deadline', 'realtime') == 'good': deadline = 'good' diff --git a/web/js/VHS.core.js b/web/js/VHS.core.js index c5eae7b..2316801 100755 --- a/web/js/VHS.core.js +++ b/web/js/VHS.core.js @@ -1185,9 +1185,9 @@ function addLoadCommon(nodeType, nodeData) { //widget.callback adds unused arguements which need culling const node = this function update(key) { - return (value) => { + return function(value) { let params = {} - params[key] = value + params[key] = this.value node?.updateParameters(params) } }