Increase reference images limit to 14 and prompt limit to 10000 for image inference
This commit is contained in:
@@ -4,43 +4,29 @@ from .utils import runwareUtils as rwUtils
|
||||
class imageInferenceInputs:
|
||||
"""Image Inference Inputs node for configuring image generation inputs"""
|
||||
|
||||
MAX_REFERENCE_IMAGES = 14
|
||||
|
||||
@classmethod
|
||||
def INPUT_TYPES(cls):
|
||||
optionalInputs = {
|
||||
"image": ("IMAGE", {
|
||||
"tooltip": "Specifies an image input for the inference process."
|
||||
}),
|
||||
}
|
||||
|
||||
for i in range(1, cls.MAX_REFERENCE_IMAGES + 1):
|
||||
ordinal = rwUtils.getOrdinal(i)
|
||||
optionalInputs[f"Reference Image {i}"] = ("IMAGE", {
|
||||
"tooltip": f"Specifies {ordinal.capitalize()} Reference Image for the inputs. These reference images help guide the image generation process."
|
||||
})
|
||||
optionalInputs[f"Reference Tag {i}"] = ("STRING", {
|
||||
"tooltip": f"Optional tag describing {ordinal.capitalize()} Reference Image. Leave empty to omit.",
|
||||
"default": "",
|
||||
})
|
||||
|
||||
return {
|
||||
"required": {},
|
||||
"optional": {
|
||||
"image": ("IMAGE", {
|
||||
"tooltip": "Specifies an image input for the inference process."
|
||||
}),
|
||||
"Reference Image 1": ("IMAGE", {
|
||||
"tooltip": "Specifies Reference Image 1 for the inputs. These reference images help guide the image generation process."
|
||||
}),
|
||||
"Reference Tag 1": ("STRING", {
|
||||
"tooltip": "Optional tag describing Reference Image 1. Leave empty to omit.",
|
||||
"default": "",
|
||||
}),
|
||||
"Reference Image 2": ("IMAGE", {
|
||||
"tooltip": "Specifies Reference Image 2 for the inputs. These reference images help guide the image generation process."
|
||||
}),
|
||||
"Reference Tag 2": ("STRING", {
|
||||
"tooltip": "Optional tag describing Reference Image 2. Leave empty to omit.",
|
||||
"default": "",
|
||||
}),
|
||||
"Reference Image 3": ("IMAGE", {
|
||||
"tooltip": "Specifies Reference Image 3 for the inputs. These reference images help guide the image generation process."
|
||||
}),
|
||||
"Reference Tag 3": ("STRING", {
|
||||
"tooltip": "Optional tag describing Reference Image 3. Leave empty to omit.",
|
||||
"default": "",
|
||||
}),
|
||||
"Reference Image 4": ("IMAGE", {
|
||||
"tooltip": "Specifies Reference Image 4 for the inputs. These reference images help guide the image generation process."
|
||||
}),
|
||||
"Reference Tag 4": ("STRING", {
|
||||
"tooltip": "Optional tag describing Reference Image 4. Leave empty to omit.",
|
||||
"default": "",
|
||||
}),
|
||||
}
|
||||
"optional": optionalInputs
|
||||
}
|
||||
|
||||
DESCRIPTION = "Configure custom inputs for Runware Image Inference, including reference images that can be passed to the inference node."
|
||||
@@ -52,36 +38,32 @@ class imageInferenceInputs:
|
||||
def createInputs(self, **kwargs):
|
||||
"""Create image inference inputs from provided parameters"""
|
||||
image = kwargs.get("image", None)
|
||||
refImage1 = kwargs.get("Reference Image 1", None)
|
||||
refTag1 = kwargs.get("Reference Tag 1", "")
|
||||
refImage2 = kwargs.get("Reference Image 2", None)
|
||||
refTag2 = kwargs.get("Reference Tag 2", "")
|
||||
refImage3 = kwargs.get("Reference Image 3", None)
|
||||
refTag3 = kwargs.get("Reference Tag 3", "")
|
||||
refImage4 = kwargs.get("Reference Image 4", None)
|
||||
refTag4 = kwargs.get("Reference Tag 4", "")
|
||||
|
||||
inputs = {}
|
||||
|
||||
if image is not None:
|
||||
inputs["image"] = rwUtils.convertTensor2IMG(image)
|
||||
|
||||
references = self._collectReferences(
|
||||
refImage1, refTag1,
|
||||
refImage2, refTag2,
|
||||
refImage3, refTag3,
|
||||
refImage4, refTag4,
|
||||
)
|
||||
references = self._collectReferences(kwargs)
|
||||
if len(references) > 0:
|
||||
inputs["referenceImages"] = references
|
||||
|
||||
return (inputs,)
|
||||
|
||||
def _collectReferences(self, *referenceArgs):
|
||||
def _collectReferences(self, kwargs):
|
||||
"""Collect and convert reference images to list"""
|
||||
# Build list of (image, tag) pairs from the flat arguments
|
||||
referencePairs = list(zip(referenceArgs[0::2], referenceArgs[1::2]))
|
||||
|
||||
referencePairs = []
|
||||
|
||||
# Collect all reference image and tag pairs
|
||||
for i in range(1, self.MAX_REFERENCE_IMAGES + 1):
|
||||
image = kwargs.get(f"Reference Image {i}", None)
|
||||
tag = kwargs.get(f"Reference Tag {i}", "")
|
||||
if image is not None:
|
||||
referencePairs.append((image, tag))
|
||||
|
||||
if not referencePairs:
|
||||
return []
|
||||
|
||||
# Determine if any tag is provided
|
||||
hasTags = any(
|
||||
isinstance(tag, str) and tag.strip() != ""
|
||||
@@ -93,14 +75,10 @@ class imageInferenceInputs:
|
||||
return [
|
||||
rwUtils.convertTensor2IMG(image)
|
||||
for image, _ in referencePairs
|
||||
if image is not None
|
||||
]
|
||||
|
||||
references = []
|
||||
for image, tag in referencePairs:
|
||||
if image is None:
|
||||
continue
|
||||
|
||||
entry = {"image": rwUtils.convertTensor2IMG(image)}
|
||||
if isinstance(tag, str) and tag.strip() != "":
|
||||
entry["tag"] = tag.strip()
|
||||
|
||||
Reference in New Issue
Block a user