Files
Runware-ComfyUI-Runware/modules/videoInputsReferences.py
T

80 lines
2.7 KiB
Python

from .utils import runwareUtils as rwUtils
from typing import List, Dict, Any
class videoInputsReferences:
@classmethod
def INPUT_TYPES(cls):
return {
"required": {},
"optional": {
"Image1": ("IMAGE", {
"tooltip": "First reference image.",
}),
"Type1": ("STRING", {
"tooltip": "Type for the first reference (e.g., 'asset'). Leave empty to omit.",
"default": "",
}),
"Image2": ("IMAGE", {
"tooltip": "Second reference image.",
}),
"Type2": ("STRING", {
"tooltip": "Type for the second reference (e.g., 'asset'). Leave empty to omit.",
"default": "",
}),
"Image3": ("IMAGE", {
"tooltip": "Third reference image.",
}),
"Type3": ("STRING", {
"tooltip": "Type for the third reference (e.g., 'asset'). Leave empty to omit.",
"default": "",
}),
"Image4": ("IMAGE", {
"tooltip": "Fourth reference image.",
}),
"Type4": ("STRING", {
"tooltip": "Type for the fourth reference (e.g., 'asset'). Leave empty to omit.",
"default": "",
}),
}
}
DESCRIPTION = "Configure multiple reference images with optional types for video inference inputs."
FUNCTION = "createReferences"
RETURN_TYPES = ("RUNWAREVIDEOINPUTSREFERENCES",)
RETURN_NAMES = ("Video Inputs References",)
CATEGORY = "Runware"
def createReferences(self, **kwargs) -> tuple[List[Dict[str, Any]]]:
references = []
for i in range(1, 5):
image_key = f"Image{i}"
type_key = f"Type{i}"
image = kwargs.get(image_key)
ref_type = kwargs.get(type_key, "")
if image is not None:
# Convert image tensor to URL
image_url = rwUtils.convertTensor2IMG(image)
reference = {"image": image_url}
# Only add type if it's not empty
if ref_type and ref_type.strip() != "":
reference["type"] = ref_type.strip()
references.append(reference)
return (references,)
# Node class mappings
NODE_CLASS_MAPPINGS = {
"RunwareVideoInputsReferences": videoInputsReferences,
}
NODE_DISPLAY_NAME_MAPPINGS = {
"RunwareVideoInputsReferences": "Runware Video Inputs References",
}