import folder_paths import nodes import os from typing import Tuple class VideoFileUploader: """ Custom node for uploading video files to Gemini API """ @classmethod def INPUT_TYPES(cls): return { "required": { "video_path": ("STRING", {"default": "", "label": "Video File Path"}), "api_key": ("STRING", {"default": "", "label": "Gemini API Key"}), # 模拟API Key输入 } } RETURN_TYPES = ("STRING",) RETURN_NAMES = ("video_url",) FUNCTION = "upload_video" CATEGORY = "DeepSeek_Toolkit" def upload_video(self, video_path: str, api_key: str) -> Tuple[str]: """ Uploads a video file to the Gemini API using the File API. """ # 模拟文件上传 if not os.path.exists(video_path): raise FileNotFoundError(f"Video file not found: {video_path}") # 模拟上传过程 print(f"[INFO] 上传视频文件: {video_path}") # 模拟生成视频URL video_url = f"gemini://file/{os.path.basename(video_path)}" # 模拟视频URL print(f"[INFO] 视频上传完成,URL: {video_url}") return (video_url,) # 注册节点 NODE_CLASS_MAPPINGS = {"VideoFileUploader": VideoFileUploader} NODE_DISPLAY_NAME_MAPPINGS = {"VideoFileUploader": "Video File Uploader"}