From ee2debe867f40d9d5f2b693543926ec36f211b08 Mon Sep 17 00:00:00 2001 From: "jason.mei" Date: Mon, 29 Dec 2025 18:32:21 +0800 Subject: [PATCH] refactor(vidu,wan_ai): remove duplicate VideoFromFile fallback implementation - Remove redundant VideoFromFile class implementations from vidu_extend.py, vidu_i2v.py, vidu_ref2v.py, vidu_startend2v.py, and vidu_t2v.py - Remove duplicate VideoFromFile fallback from wan_ai_i2v.py and wan_ai_t2v.py - Simplify import logic by relying on comfy library's VideoFromFile implementation - Reduce code duplication across multiple video generation modules - Improve maintainability by centralizing video handling logic --- py/vidu_extend.py | 25 ------------------------- py/vidu_i2v.py | 24 ------------------------ py/vidu_ref2v.py | 25 ------------------------- py/vidu_startend2v.py | 25 ------------------------- py/vidu_t2v.py | 25 ------------------------- py/wan_ai_i2v.py | 24 ------------------------ py/wan_ai_t2v.py | 25 ------------------------- 7 files changed, 173 deletions(-) diff --git a/py/vidu_extend.py b/py/vidu_extend.py index 1a8e67f..dca950c 100644 --- a/py/vidu_extend.py +++ b/py/vidu_extend.py @@ -8,36 +8,11 @@ import io from .modelverse_api.client import ModelverseClient from .modelverse_api.utils import image_to_base64 from comfy.comfy_types.node_typing import IO - try: from comfy_extras.nodes_video import VideoFromFile except ImportError: try: from comfy.model_management import VideoFromFile - except ImportError: - import av - - class VideoFromFile: - def __init__(self, video_io): - self.video_io = video_io - self.video_data = video_io.getvalue() if hasattr(video_io, 'getvalue') else video_io - self._width = None - self._height = None - - def get_dimensions(self): - if self._width is None: - self.video_io.seek(0) - try: - container = av.open(self.video_io) - stream = container.streams.video[0] - self._width = stream.width - self._height = stream.height - container.close() - except: - self._width, self._height = 1280, 720 - self.video_io.seek(0) - return (self._width, self._height) - MODELS = ["viduq2-pro", "viduq2-turbo"] RESOLUTIONS = ["540p", "720p", "1080p"] diff --git a/py/vidu_i2v.py b/py/vidu_i2v.py index ad56ec3..aa84380 100644 --- a/py/vidu_i2v.py +++ b/py/vidu_i2v.py @@ -8,35 +8,11 @@ import io from .modelverse_api.client import ModelverseClient from .modelverse_api.utils import image_to_base64 from comfy.comfy_types.node_typing import IO - try: from comfy_extras.nodes_video import VideoFromFile except ImportError: try: from comfy.model_management import VideoFromFile - except ImportError: - import av - - class VideoFromFile: - def __init__(self, video_io): - self.video_io = video_io - self.video_data = video_io.getvalue() if hasattr(video_io, 'getvalue') else video_io - self._width = None - self._height = None - - def get_dimensions(self): - if self._width is None: - self.video_io.seek(0) - try: - container = av.open(self.video_io) - stream = container.streams.video[0] - self._width = stream.width - self._height = stream.height - container.close() - except: - self._width, self._height = 1280, 720 - self.video_io.seek(0) - return (self._width, self._height) MODELS = ["viduq2-pro", "viduq2-turbo"] diff --git a/py/vidu_ref2v.py b/py/vidu_ref2v.py index fffd9af..5dd56ec 100644 --- a/py/vidu_ref2v.py +++ b/py/vidu_ref2v.py @@ -9,36 +9,11 @@ import io from .modelverse_api.client import ModelverseClient from .modelverse_api.utils import image_to_base64 from comfy.comfy_types.node_typing import IO - try: from comfy_extras.nodes_video import VideoFromFile except ImportError: try: from comfy.model_management import VideoFromFile - except ImportError: - import av - - class VideoFromFile: - def __init__(self, video_io): - self.video_io = video_io - self.video_data = video_io.getvalue() if hasattr(video_io, 'getvalue') else video_io - self._width = None - self._height = None - - def get_dimensions(self): - if self._width is None: - self.video_io.seek(0) - try: - container = av.open(self.video_io) - stream = container.streams.video[0] - self._width = stream.width - self._height = stream.height - container.close() - except: - self._width, self._height = 1280, 720 - self.video_io.seek(0) - return (self._width, self._height) - ASPECT_RATIOS = ["16:9", "9:16", "3:4", "4:3", "1:1"] RESOLUTIONS = ["540p", "720p", "1080p"] diff --git a/py/vidu_startend2v.py b/py/vidu_startend2v.py index 38c7a50..7447b1a 100644 --- a/py/vidu_startend2v.py +++ b/py/vidu_startend2v.py @@ -8,36 +8,11 @@ import io from .modelverse_api.client import ModelverseClient from .modelverse_api.utils import image_to_base64 from comfy.comfy_types.node_typing import IO - try: from comfy_extras.nodes_video import VideoFromFile except ImportError: try: from comfy.model_management import VideoFromFile - except ImportError: - import av - - class VideoFromFile: - def __init__(self, video_io): - self.video_io = video_io - self.video_data = video_io.getvalue() if hasattr(video_io, 'getvalue') else video_io - self._width = None - self._height = None - - def get_dimensions(self): - if self._width is None: - self.video_io.seek(0) - try: - container = av.open(self.video_io) - stream = container.streams.video[0] - self._width = stream.width - self._height = stream.height - container.close() - except: - self._width, self._height = 1280, 720 - self.video_io.seek(0) - return (self._width, self._height) - MODELS = ["viduq2-pro", "viduq2-turbo"] RESOLUTIONS = ["540p", "720p", "1080p"] diff --git a/py/vidu_t2v.py b/py/vidu_t2v.py index db302cc..fae67c3 100644 --- a/py/vidu_t2v.py +++ b/py/vidu_t2v.py @@ -7,36 +7,11 @@ import requests import io from .modelverse_api.client import ModelverseClient from comfy.comfy_types.node_typing import IO - try: from comfy_extras.nodes_video import VideoFromFile except ImportError: try: from comfy.model_management import VideoFromFile - except ImportError: - import av - - class VideoFromFile: - def __init__(self, video_io): - self.video_io = video_io - self.video_data = video_io.getvalue() if hasattr(video_io, 'getvalue') else video_io - self._width = None - self._height = None - - def get_dimensions(self): - if self._width is None: - self.video_io.seek(0) - try: - container = av.open(self.video_io) - stream = container.streams.video[0] - self._width = stream.width - self._height = stream.height - container.close() - except: - self._width, self._height = 1280, 720 - self.video_io.seek(0) - return (self._width, self._height) - ASPECT_RATIOS = ["16:9", "9:16", "3:4", "4:3", "1:1"] RESOLUTIONS = ["540p", "720p", "1080p"] diff --git a/py/wan_ai_i2v.py b/py/wan_ai_i2v.py index 489801a..1526296 100644 --- a/py/wan_ai_i2v.py +++ b/py/wan_ai_i2v.py @@ -4,36 +4,12 @@ import io from .modelverse_api.client import ModelverseClient from .modelverse_api.utils import image_to_base64 from comfy.comfy_types.node_typing import IO - try: from comfy_extras.nodes_video import VideoFromFile except ImportError: try: from comfy.model_management import VideoFromFile - except ImportError: - import av - class VideoFromFile: - def __init__(self, video_io): - self.video_io = video_io - self.video_data = video_io.getvalue() if hasattr(video_io, 'getvalue') else video_io - self._width = None - self._height = None - - def get_dimensions(self): - if self._width is None: - self.video_io.seek(0) - try: - container = av.open(self.video_io) - stream = container.streams.video[0] - self._width = stream.width - self._height = stream.height - container.close() - except: - self._width, self._height = 1280, 720 - self.video_io.seek(0) - return (self._width, self._height) - class Modelverse_WanAII2V: def __init__(self): pass diff --git a/py/wan_ai_t2v.py b/py/wan_ai_t2v.py index 27c94db..1dc35b1 100644 --- a/py/wan_ai_t2v.py +++ b/py/wan_ai_t2v.py @@ -3,36 +3,11 @@ import requests import io from .modelverse_api.client import ModelverseClient from comfy.comfy_types.node_typing import IO - -# Import VideoFromFile class for ComfyUI video handling try: from comfy_extras.nodes_video import VideoFromFile except ImportError: try: from comfy.model_management import VideoFromFile - except ImportError: - import av - - class VideoFromFile: - def __init__(self, video_io): - self.video_io = video_io - self.video_data = video_io.getvalue() if hasattr(video_io, 'getvalue') else video_io - self._width = None - self._height = None - - def get_dimensions(self): - if self._width is None: - self.video_io.seek(0) - try: - container = av.open(self.video_io) - stream = container.streams.video[0] - self._width = stream.width - self._height = stream.height - container.close() - except: - self._width, self._height = 1280, 720 - self.video_io.seek(0) - return (self._width, self._height) class Modelverse_WanAIT2V: def __init__(self):