convert Gemini API nodes to V3 schema (#10476)

This commit is contained in:
Alexander Piskun
2025-10-26 00:35:30 +03:00
committed by GitHub
parent 426cde37f1
commit e86b79ab9e
4 changed files with 282 additions and 400 deletions

View File

@@ -18,6 +18,7 @@ from .conversions import (
tensor_to_bytesio,
tensor_to_pil,
trim_video,
video_to_base64_string,
)
from .download_helpers import (
download_url_as_bytesio,
@@ -73,6 +74,7 @@ __all__ = [
"tensor_to_bytesio",
"tensor_to_pil",
"trim_video",
"video_to_base64_string",
# Validation utilities
"get_number_of_images",
"validate_aspect_ratio_closeness",

View File

@@ -12,6 +12,7 @@ from PIL import Image
from comfy.utils import common_upscale
from comfy_api.latest import Input, InputImpl
from comfy_api.util import VideoContainer, VideoCodec
from ._helpers import mimetype_to_extension
@@ -173,6 +174,30 @@ def audio_to_base64_string(audio: Input.Audio, container_format: str = "mp4", co
return base64.b64encode(audio_bytes).decode("utf-8")
def video_to_base64_string(
video: Input.Video,
container_format: VideoContainer = None,
codec: VideoCodec = None
) -> str:
"""
Converts a video input to a base64 string.
Args:
video: The video input to convert
container_format: Optional container format to use (defaults to video.container if available)
codec: Optional codec to use (defaults to video.codec if available)
"""
video_bytes_io = BytesIO()
# Use provided format/codec if specified, otherwise use video's own if available
format_to_use = container_format if container_format is not None else getattr(video, 'container', VideoContainer.MP4)
codec_to_use = codec if codec is not None else getattr(video, 'codec', VideoCodec.H264)
video.save_to(video_bytes_io, format=format_to_use, codec=codec_to_use)
video_bytes_io.seek(0)
return base64.b64encode(video_bytes_io.getvalue()).decode("utf-8")
def audio_ndarray_to_bytesio(
audio_data_np: np.ndarray,
sample_rate: int,