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
This commit is contained in:
@@ -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"]
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user