mirror of
https://git.datalinker.icu/comfyanonymous/ComfyUI
synced 2026-07-13 05:56:59 +08:00
chore(api-nodes): add validate_video_frame_count function from LTX PR
This commit is contained in:
parent
81e2cb7fdb
commit
70467023e9
@ -47,6 +47,7 @@ from .validation_utils import (
|
|||||||
validate_string,
|
validate_string,
|
||||||
validate_video_dimensions,
|
validate_video_dimensions,
|
||||||
validate_video_duration,
|
validate_video_duration,
|
||||||
|
validate_video_frame_count,
|
||||||
)
|
)
|
||||||
|
|
||||||
__all__ = [
|
__all__ = [
|
||||||
@ -94,6 +95,7 @@ __all__ = [
|
|||||||
"validate_string",
|
"validate_string",
|
||||||
"validate_video_dimensions",
|
"validate_video_dimensions",
|
||||||
"validate_video_duration",
|
"validate_video_duration",
|
||||||
|
"validate_video_frame_count",
|
||||||
# Misc functions
|
# Misc functions
|
||||||
"get_fs_object_size",
|
"get_fs_object_size",
|
||||||
]
|
]
|
||||||
|
|||||||
@ -2,7 +2,6 @@ import logging
|
|||||||
|
|
||||||
import torch
|
import torch
|
||||||
|
|
||||||
from comfy_api.input.video_types import VideoInput
|
|
||||||
from comfy_api.latest import Input
|
from comfy_api.latest import Input
|
||||||
|
|
||||||
|
|
||||||
@ -135,6 +134,23 @@ def validate_video_duration(
|
|||||||
raise ValueError(f"Video duration must be at most {max_duration}s, got {duration}s")
|
raise ValueError(f"Video duration must be at most {max_duration}s, got {duration}s")
|
||||||
|
|
||||||
|
|
||||||
|
def validate_video_frame_count(
|
||||||
|
video: Input.Video,
|
||||||
|
min_frame_count: int | None = None,
|
||||||
|
max_frame_count: int | None = None,
|
||||||
|
):
|
||||||
|
try:
|
||||||
|
frame_count = video.get_frame_count()
|
||||||
|
except Exception as e:
|
||||||
|
logging.error("Error getting frame count of video: %s", e)
|
||||||
|
return
|
||||||
|
|
||||||
|
if min_frame_count is not None and min_frame_count > frame_count:
|
||||||
|
raise ValueError(f"Video frame count must be at least {min_frame_count}, got {frame_count}")
|
||||||
|
if max_frame_count is not None and frame_count > max_frame_count:
|
||||||
|
raise ValueError(f"Video frame count must be at most {max_frame_count}, got {frame_count}")
|
||||||
|
|
||||||
|
|
||||||
def get_number_of_images(images):
|
def get_number_of_images(images):
|
||||||
if isinstance(images, torch.Tensor):
|
if isinstance(images, torch.Tensor):
|
||||||
return images.shape[0] if images.ndim >= 4 else 1
|
return images.shape[0] if images.ndim >= 4 else 1
|
||||||
@ -176,7 +192,7 @@ def validate_string(
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def validate_container_format_is_mp4(video: VideoInput) -> None:
|
def validate_container_format_is_mp4(video: Input.Video) -> None:
|
||||||
"""Validates video container format is MP4."""
|
"""Validates video container format is MP4."""
|
||||||
container_format = video.get_container_format()
|
container_format = video.get_container_format()
|
||||||
if container_format not in ["mp4", "mov,mp4,m4a,3gp,3g2,mj2"]:
|
if container_format not in ["mp4", "mov,mp4,m4a,3gp,3g2,mj2"]:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user