From 53a60ffb80f1d451887793ed46090020cd8f8144 Mon Sep 17 00:00:00 2001 From: Sirshendu Ganguly Date: Tue, 26 May 2026 13:42:26 +0530 Subject: [PATCH 01/15] Added support for creativity in Runware Image Inference Settings --- clientlibs/utils.js | 5 +++++ modules/settings.py | 19 +++++++++++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/clientlibs/utils.js b/clientlibs/utils.js index 97cfc8e..8b75b27 100644 --- a/clientlibs/utils.js +++ b/clientlibs/utils.js @@ -5168,6 +5168,8 @@ function settingsToggleHandler(settingsNode) { const autoCropWidget = settingsNode.widgets.find(w => w.name === "autoCrop"); const useDilatePixelsWidget = settingsNode.widgets.find(w => w.name === "useDilatePixels"); const dilatePixelsWidget = settingsNode.widgets.find(w => w.name === "dilatePixels"); + const useCreativityWidget = settingsNode.widgets.find(w => w.name === "useCreativity"); + const creativityWidget = settingsNode.widgets.find(w => w.name === "creativity"); // Helper function to toggle widget enabled state function toggleWidgetState(useWidget, paramWidget, paramName) { @@ -5266,6 +5268,9 @@ function settingsToggleHandler(settingsNode) { if (useDilatePixelsWidget && dilatePixelsWidget) { toggleWidgetState(useDilatePixelsWidget, dilatePixelsWidget, "dilatePixels"); } + if (useCreativityWidget && creativityWidget) { + toggleWidgetState(useCreativityWidget, creativityWidget, "creativity"); + } } function outpaintSettingsToggleHandler(settingsNode) { diff --git a/modules/settings.py b/modules/settings.py index dc96459..157d344 100644 --- a/modules/settings.py +++ b/modules/settings.py @@ -3,7 +3,7 @@ Runware Image Inference Settings (registered as Runware Settings for workflow co Provides settings for image generation including temperature, systemPrompt, topP, layers, quality, background, style, search, promptExtend, editRegions, thinking (boolean), thinkingLevel (high/medium/low), sequential, renderingSpeed (TURBO/DEFAULT/QUALITY), -magicPrompt (AUTO/ON/OFF), autoCrop, dilatePixels, and colorPalette +magicPrompt (AUTO/ON/OFF), autoCrop, dilatePixels, creativity (raw/low/medium/high), and colorPalette (from Runware Image Inference Settings Color Palette). """ @@ -193,6 +193,14 @@ class RunwareSettings: "max": 100, "step": 1, }), + "useCreativity": ("BOOLEAN", { + "tooltip": "Enable to include creativity in settings.", + "default": False, + }), + "creativity": (["raw", "low", "medium", "high"], { + "default": "medium", + "tooltip": "Creativity level. Only used when 'Use Creativity' is enabled.", + }), } } @@ -203,7 +211,7 @@ class RunwareSettings: DESCRIPTION = ( "Configure general settings for image generation: temperature, system prompt, top-p, layers, quality, background, style, search, " "promptExtend, editRegions (JSON), thinking (boolean), thinkingLevel (high/medium/low), sequential, " - "renderingSpeed (TURBO/DEFAULT/QUALITY), magicPrompt (AUTO/ON/OFF), autoCrop, dilatePixels, and optional colorPalette from the Color Palette node." + "renderingSpeed (TURBO/DEFAULT/QUALITY), magicPrompt (AUTO/ON/OFF), autoCrop, dilatePixels, creativity (raw/low/medium/high), and optional colorPalette from the Color Palette node." ) def createSettings(self, **kwargs) -> tuple[Dict[str, Any]]: @@ -229,6 +237,7 @@ class RunwareSettings: useMagicPrompt = kwargs.get("useMagicPrompt", False) useAutoCrop = kwargs.get("useAutoCrop", False) useDilatePixels = kwargs.get("useDilatePixels", False) + useCreativity = kwargs.get("useCreativity", False) # Get value parameters temperature = kwargs.get("temperature", 1.0) @@ -241,6 +250,7 @@ class RunwareSettings: style = kwargs.get("style", "auto") renderingSpeed = kwargs.get("renderingSpeed", "DEFAULT") magicPrompt = kwargs.get("magicPrompt", "AUTO") + creativity = kwargs.get("creativity", "medium") # Build settings dictionary - only include what is enabled settings: Dict[str, Any] = {} @@ -299,6 +309,11 @@ class RunwareSettings: settings["autoCrop"] = bool(kwargs.get("autoCrop", False)) if useDilatePixels: settings["dilatePixels"] = int(kwargs.get("dilatePixels", 10)) + if useCreativity: + creativity = str(creativity) + if creativity not in ("raw", "low", "medium", "high"): + raise ValueError("creativity must be raw, low, medium, or high when useCreativity is enabled.") + settings["creativity"] = creativity # Clean up None values settings = {k: v for k, v in settings.items() if v is not None} From 00a100783912148a200ca0352733642a35d587dc Mon Sep 17 00:00:00 2001 From: Sirshendu Ganguly Date: Tue, 26 May 2026 18:49:18 +0530 Subject: [PATCH 02/15] Added support for inpaintSize in Ultraytics --- clientlibs/utils.js | 1 + modules/ultralyticsInputs.py | 13 +++++++++++++ ...are_Image_Inference_Ultralytics_InpaintSize.json | 1 + 3 files changed, 15 insertions(+) create mode 100644 workflows/Runware_Image_Inference_Ultralytics_InpaintSize.json diff --git a/clientlibs/utils.js b/clientlibs/utils.js index 97cfc8e..28b2ad2 100644 --- a/clientlibs/utils.js +++ b/clientlibs/utils.js @@ -1865,6 +1865,7 @@ function ultralyticsProviderSettingsToggleHandler(ultralyticsNode) { ["useSteps", "steps"], ["useCFGScale", "CFGScale"], ["useStrength", "strength"], + ["useInpaintSize", "inpaintSize"], ]; function toggleWidgetState(useWidget, paramWidget, paramName) { diff --git a/modules/ultralyticsInputs.py b/modules/ultralyticsInputs.py index bd7b03f..624652a 100644 --- a/modules/ultralyticsInputs.py +++ b/modules/ultralyticsInputs.py @@ -96,6 +96,17 @@ class RunwareUltralyticsInputs: "step": 0.01, "tooltip": "Denoising strength (0.0001-1).", }), + "useInpaintSize": ("BOOLEAN", { + "tooltip": "Enable to include inpaintSize parameter.", + "default": False, + }), + "inpaintSize": ("INT", { + "default": 1024, + "min": 128, + "max": 2048, + "step": 1, + "tooltip": "Image size to use for each inpainting region. Only used when 'Use Inpaint Size' is enabled.", + }), } } @@ -130,6 +141,8 @@ class RunwareUltralyticsInputs: settings["CFGScale"] = kwargs.get("CFGScale", 8.0) if kwargs.get("useStrength", False): settings["strength"] = kwargs.get("strength", 0.3) + if kwargs.get("useInpaintSize", False): + settings["inpaintSize"] = int(kwargs.get("inpaintSize", 1024)) return (settings,) diff --git a/workflows/Runware_Image_Inference_Ultralytics_InpaintSize.json b/workflows/Runware_Image_Inference_Ultralytics_InpaintSize.json new file mode 100644 index 0000000..15f2b0c --- /dev/null +++ b/workflows/Runware_Image_Inference_Ultralytics_InpaintSize.json @@ -0,0 +1 @@ +{"id":"34e6faa3-852f-406f-85a4-4cf2cb132c58","revision":0,"last_node_id":4,"last_link_id":3,"nodes":[{"id":1,"type":"Runware Image Inference","pos":[-229.75232780688893,446.16430079394405],"size":[400,1130],"flags":{},"order":2,"mode":0,"inputs":[{"localized_name":"Model","name":"Model","type":"RUNWAREMODEL","link":2},{"localized_name":"Accelerator","name":"Accelerator","shape":7,"type":"RUNWAREACCELERATOR","link":null},{"localized_name":"Lora","name":"Lora","shape":7,"type":"RUNWARELORA","link":null},{"localized_name":"Outpainting","name":"Outpainting","shape":7,"type":"RUNWAREOUTPAINT","link":null},{"localized_name":"IPAdapters","name":"IPAdapters","shape":7,"type":"RUNWAREIPAdapter","link":null},{"localized_name":"ControlNet","name":"ControlNet","shape":7,"type":"RUNWARECONTROLNET","link":null},{"localized_name":"Refiner","name":"Refiner","shape":7,"type":"RUNWAREREFINER","link":null},{"localized_name":"seedImage","name":"seedImage","shape":7,"type":"IMAGE","link":null},{"localized_name":"maskImage","name":"maskImage","shape":7,"type":"MASK","link":null},{"localized_name":"Embeddings","name":"Embeddings","shape":7,"type":"RUNWAREEMBEDDING","link":null},{"localized_name":"VAE","name":"VAE","shape":7,"type":"RUNWAREVAE","link":null},{"localized_name":"referenceImages","name":"referenceImages","shape":7,"type":"RUNWAREREFERENCEIMAGES","link":null},{"localized_name":"inputs","name":"inputs","shape":7,"type":"RUNWAREIMAGEINFERENCEINPUTS","link":null},{"localized_name":"providerSettings","name":"providerSettings","shape":7,"type":"RUNWAREPROVIDERSETTINGS","link":null},{"localized_name":"safetyInputs","name":"safetyInputs","shape":7,"type":"RUNWARESAFETYINPUTS","link":null},{"localized_name":"settings","name":"settings","shape":7,"type":"RUNWARESETTINGS","link":null},{"localized_name":"ultralytics","name":"ultralytics","shape":7,"type":"RUNWAREULTRALYTICSINPUTS","link":3},{"localized_name":"advancedFeatures","name":"advancedFeatures","shape":7,"type":"RUNWAREIMAGEINFERENCEADVANCEDFEATURES","link":null},{"localized_name":"positivePrompt","name":"positivePrompt","type":"STRING","widget":{"name":"positivePrompt"},"link":null},{"localized_name":"negativePrompt","name":"negativePrompt","type":"STRING","widget":{"name":"negativePrompt"},"link":null},{"localized_name":"Multi Inference Mode","name":"Multi Inference Mode","type":"BOOLEAN","widget":{"name":"Multi Inference Mode"},"link":null},{"localized_name":"Prompt Weighting","name":"Prompt Weighting","type":"COMBO","widget":{"name":"Prompt Weighting"},"link":null},{"localized_name":"dimensions","name":"dimensions","type":"COMBO","widget":{"name":"dimensions"},"link":null},{"localized_name":"width","name":"width","type":"INT","widget":{"name":"width"},"link":null},{"localized_name":"height","name":"height","type":"INT","widget":{"name":"height"},"link":null},{"localized_name":"useResolution","name":"useResolution","type":"BOOLEAN","widget":{"name":"useResolution"},"link":null},{"localized_name":"resolution","name":"resolution","type":"COMBO","widget":{"name":"resolution"},"link":null},{"localized_name":"useSteps","name":"useSteps","type":"BOOLEAN","widget":{"name":"useSteps"},"link":null},{"localized_name":"steps","name":"steps","type":"INT","widget":{"name":"steps"},"link":null},{"localized_name":"useScheduler","name":"useScheduler","type":"BOOLEAN","widget":{"name":"useScheduler"},"link":null},{"localized_name":"scheduler","name":"scheduler","type":"COMBO","widget":{"name":"scheduler"},"link":null},{"localized_name":"useCFGScale","name":"useCFGScale","type":"BOOLEAN","widget":{"name":"useCFGScale"},"link":null},{"localized_name":"cfgScale","name":"cfgScale","type":"FLOAT","widget":{"name":"cfgScale"},"link":null},{"localized_name":"useSeed","name":"useSeed","type":"BOOLEAN","widget":{"name":"useSeed"},"link":null},{"localized_name":"seed","name":"seed","type":"INT","widget":{"name":"seed"},"link":null},{"localized_name":"useClipSkip","name":"useClipSkip","type":"BOOLEAN","widget":{"name":"useClipSkip"},"link":null},{"localized_name":"clipSkip","name":"clipSkip","type":"INT","widget":{"name":"clipSkip"},"link":null},{"localized_name":"strength","name":"strength","type":"FLOAT","widget":{"name":"strength"},"link":null},{"localized_name":"Mask Margin","name":"Mask Margin","type":"BOOLEAN","widget":{"name":"Mask Margin"},"link":null},{"localized_name":"maskMargin","name":"maskMargin","type":"INT","widget":{"name":"maskMargin"},"link":null},{"localized_name":"outputFormat","name":"outputFormat","type":"COMBO","widget":{"name":"outputFormat"},"link":null},{"localized_name":"batchSize","name":"batchSize","type":"INT","widget":{"name":"batchSize"},"link":null},{"localized_name":"acceleration","name":"acceleration","type":"COMBO","widget":{"name":"acceleration"},"link":null},{"localized_name":"outputQuality","name":"outputQuality","type":"INT","widget":{"name":"outputQuality"},"link":null},{"localized_name":"useUpscaleFactor","name":"useUpscaleFactor","type":"BOOLEAN","widget":{"name":"useUpscaleFactor"},"link":null},{"localized_name":"upscaleFactor","name":"upscaleFactor","type":"COMBO","widget":{"name":"upscaleFactor"},"link":null}],"outputs":[{"localized_name":"IMAGE","name":"IMAGE","type":"STRING","links":[1]},{"localized_name":"RW-Task","name":"RW-Task","type":"RUNWARETASK","links":null}],"properties":{"cnr_id":"ComfyUI-Runware","ver":"ccf055ac4ec3b67296db7484951d01343c591289","Node name for S&R":"Runware Image Inference"},"widgets_values":["beautiful lady, (freckles), big smile, brown hazel eyes, Ponytail, dark makeup, hyperdetailed photography, soft light, head and shoulders portrait, cover","",false,"Disabled","Square HD (1024x1024)",1024,1024,false,"1k",true,4,true,"Default",true,6.5,true,1767014812,"randomize",true,0,0.8,false,32,"WEBP",1,"none",95,false,2],"bgcolor":"#5345bf"},{"id":3,"type":"Runware Save Image","pos":[273.48895974406287,491.70908573109085],"size":[270,318.00000000000006],"flags":{},"order":3,"mode":0,"inputs":[{"localized_name":"Images","name":"Images","type":"STRING","widget":{"name":"Images"},"link":1},{"localized_name":"filenamePrefix","name":"filenamePrefix","type":"STRING","widget":{"name":"filenamePrefix"},"link":null},{"localized_name":"saveImage","name":"saveImage","type":"BOOLEAN","widget":{"name":"saveImage"},"link":null}],"outputs":[{"localized_name":"IMAGE","name":"IMAGE","type":"IMAGE","links":null}],"properties":{"cnr_id":"ComfyUI-Runware","ver":"ccf055ac4ec3b67296db7484951d01343c591289","Node name for S&R":"Runware Save Image"},"widgets_values":["","ComfyUI",true],"bgcolor":"#5345bf"},{"id":2,"type":"Runware Model Search","pos":[-628.849466896362,582.7986556053845],"size":[272.111328125,154],"flags":{},"order":0,"mode":0,"inputs":[{"localized_name":"Model Search","name":"Model Search","type":"STRING","widget":{"name":"Model Search"},"link":null},{"localized_name":"Model Architecture","name":"Model Architecture","type":"COMBO","widget":{"name":"Model Architecture"},"link":null},{"localized_name":"ModelType","name":"ModelType","type":"COMBO","widget":{"name":"ModelType"},"link":null},{"localized_name":"ModelList","name":"ModelList","type":"COMBO","widget":{"name":"ModelList"},"link":null},{"localized_name":"Use Search Value","name":"Use Search Value","type":"BOOLEAN","widget":{"name":"Use Search Value"},"link":null}],"outputs":[{"localized_name":"Runware Model","name":"Runware Model","type":"RUNWAREMODEL","links":[2]}],"properties":{"cnr_id":"ComfyUI-Runware","ver":"ccf055ac4ec3b67296db7484951d01343c591289","Node name for S&R":"Runware Model Search"},"widgets_values":["civitai:133005@782002","All","Base Model","runware:100@1 (Flux Schnell)",true],"bgcolor":"#5345bf"},{"id":4,"type":"Runware Image Inference Ultralytics","pos":[-695.551264664073,854.9898339899989],"size":[400,526],"flags":{},"order":1,"mode":0,"inputs":[{"localized_name":"useMaskBlur","name":"useMaskBlur","shape":7,"type":"BOOLEAN","widget":{"name":"useMaskBlur"},"link":null},{"localized_name":"maskBlur","name":"maskBlur","shape":7,"type":"INT","widget":{"name":"maskBlur"},"link":null},{"localized_name":"useMaskPadding","name":"useMaskPadding","shape":7,"type":"BOOLEAN","widget":{"name":"useMaskPadding"},"link":null},{"localized_name":"maskPadding","name":"maskPadding","shape":7,"type":"INT","widget":{"name":"maskPadding"},"link":null},{"localized_name":"useConfidence","name":"useConfidence","shape":7,"type":"BOOLEAN","widget":{"name":"useConfidence"},"link":null},{"localized_name":"confidence","name":"confidence","shape":7,"type":"FLOAT","widget":{"name":"confidence"},"link":null},{"localized_name":"usePositivePrompt","name":"usePositivePrompt","shape":7,"type":"BOOLEAN","widget":{"name":"usePositivePrompt"},"link":null},{"localized_name":"positivePrompt","name":"positivePrompt","shape":7,"type":"STRING","widget":{"name":"positivePrompt"},"link":null},{"localized_name":"useNegativePrompt","name":"useNegativePrompt","shape":7,"type":"BOOLEAN","widget":{"name":"useNegativePrompt"},"link":null},{"localized_name":"negativePrompt","name":"negativePrompt","shape":7,"type":"STRING","widget":{"name":"negativePrompt"},"link":null},{"localized_name":"useSteps","name":"useSteps","shape":7,"type":"BOOLEAN","widget":{"name":"useSteps"},"link":null},{"localized_name":"steps","name":"steps","shape":7,"type":"INT","widget":{"name":"steps"},"link":null},{"localized_name":"useCFGScale","name":"useCFGScale","shape":7,"type":"BOOLEAN","widget":{"name":"useCFGScale"},"link":null},{"localized_name":"CFGScale","name":"CFGScale","shape":7,"type":"FLOAT","widget":{"name":"CFGScale"},"link":null},{"localized_name":"useStrength","name":"useStrength","shape":7,"type":"BOOLEAN","widget":{"name":"useStrength"},"link":null},{"localized_name":"strength","name":"strength","shape":7,"type":"FLOAT","widget":{"name":"strength"},"link":null},{"localized_name":"useInpaintSize","name":"useInpaintSize","shape":7,"type":"BOOLEAN","widget":{"name":"useInpaintSize"},"link":null},{"localized_name":"inpaintSize","name":"inpaintSize","shape":7,"type":"INT","widget":{"name":"inpaintSize"},"link":null}],"outputs":[{"localized_name":"Ultralytics","name":"Ultralytics","type":"RUNWAREULTRALYTICSINPUTS","links":[3]}],"properties":{"cnr_id":"ComfyUI-Runware","ver":"ccf055ac4ec3b67296db7484951d01343c591289","Node name for S&R":"Runware Image Inference Ultralytics"},"widgets_values":[true,5,false,5,true,0.5,true,"detailed eyes, beautiful, high quality, same style, sharp features",true,"blurry, deformed, bad anatomy, disfigured, ugly, low quality",true,30,true,8,false,0.3,true,1024],"bgcolor":"#5345bf"}],"links":[[1,1,0,3,0,"STRING"],[2,2,0,1,0,"RUNWAREMODEL"],[3,4,0,1,16,"RUNWAREULTRALYTICSINPUTS"]],"groups":[],"config":{},"extra":{"ds":{"scale":0.4603984853356424,"offset":[1497.774099223599,-153.61355042567564]}},"version":0.4} \ No newline at end of file From 51f8c938753644f0edf02d6954423d997a93f85d Mon Sep 17 00:00:00 2001 From: Sirshendu Ganguly Date: Wed, 27 May 2026 09:43:57 +0530 Subject: [PATCH 03/15] Fixed tooltip --- modules/ultralyticsInputs.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ultralyticsInputs.py b/modules/ultralyticsInputs.py index 624652a..c7a26b3 100644 --- a/modules/ultralyticsInputs.py +++ b/modules/ultralyticsInputs.py @@ -105,7 +105,7 @@ class RunwareUltralyticsInputs: "min": 128, "max": 2048, "step": 1, - "tooltip": "Image size to use for each inpainting region. Only used when 'Use Inpaint Size' is enabled.", + "tooltip": "Image size to use for each inpainting region. Only used when useInpaintSize is enabled.", }), } } From edd0cb45604435bb2edceca5062afe8193160ffb Mon Sep 17 00:00:00 2001 From: Sirshendu Ganguly Date: Wed, 27 May 2026 19:39:15 +0530 Subject: [PATCH 04/15] Added support for Moodboards --- __init__.py | 2 + clientlibs/main.js | 4 +- clientlibs/types.js | 5 + clientlibs/utils.js | 20 ++++ modules/imageInferenceSettingsMoodboards.py | 112 ++++++++++++++++++++ modules/settings.py | 12 ++- modules/utils/runwareUtils.py | 2 +- 7 files changed, 153 insertions(+), 4 deletions(-) create mode 100644 modules/imageInferenceSettingsMoodboards.py diff --git a/__init__.py b/__init__.py index e3cdd81..368c579 100644 --- a/__init__.py +++ b/__init__.py @@ -108,6 +108,7 @@ from .modules.videoInputsFrame import RunwareVideoInputsFrameImages from .modules.safetyInputs import safetyInputs from .modules.settings import RunwareSettings from .modules.imageInferenceSettingsColorPalette import RunwareImageInferenceSettingsColorPalette +from .modules.imageInferenceSettingsMoodboards import RunwareImageInferenceSettingsMoodboards from .modules.videoAdvancedFeatureInputs import videoAdvancedFeatureInputs from .modules.advancedFeatureSettings.wanAnimateAdvancedFeatureSettings import RunwareWanAnimateAdvancedFeatureSettings from .modules.saveImage import RunwareSaveImage @@ -245,6 +246,7 @@ NODE_CLASS_MAPPINGS = { "Runware Safety Inputs": safetyInputs, "Runware Settings": RunwareSettings, "Runware Image Inference Settings Color Palette": RunwareImageInferenceSettingsColorPalette, + "Runware Image Inference Settings Moodboards": RunwareImageInferenceSettingsMoodboards, "Runware Video Advanced Feature Inputs": videoAdvancedFeatureInputs, "Runware Wan Animate Advanced Feature Settings": RunwareWanAnimateAdvancedFeatureSettings, "Runware Save Image": RunwareSaveImage, diff --git a/clientlibs/main.js b/clientlibs/main.js index ed97d78..7cb4f4c 100644 --- a/clientlibs/main.js +++ b/clientlibs/main.js @@ -1,6 +1,6 @@ import { app } from "../../scripts/app.js"; import { api } from "../../scripts/api.js"; -import { promptEnhanceHandler, syncDimensionsNodeHandler, searchNodeHandler, APIKeyHandler, captionNodeHandler, saveTextHandler, mediaUUIDHandler, save3DFilepathHandler, videoTranscriptionHandler, videoOutputsHandler, handleCustomErrors, videoInferenceDimensionsHandler, videoModelSearchFilterHandler, audioModelSearchFilterHandler, textModelSearchFilterHandler, vectorizeModelSearchFilterHandler, vectorizeToggleHandler, useParameterToggleHandler, imageInferenceToggleHandler, imageInferenceAdvancedFeaturesToggleHandler, watermarkAdvancedFeatureToggleHandler, videoInferenceSpeechInputToggleHandler, regionalPromptingRegionsToggleHandler, upscalerToggleHandler, imageUpscalerSettingsToggleHandler, videoUpscalerToggleHandler, audioInferenceToggleHandler, audioInferenceSpeechToggleHandler, audioSettingsToggleHandler, textInferenceSettingsToggleHandler, videoSettingsToggleHandler, videoInferenceSettingsTtsToggleHandler, videoInferenceSettingsActiveSpeakerDetectionToggleHandler, videoInferenceSettingsActiveSpeakerBoundingBoxesToggleHandler, videoInferenceSettingsSegmentsToggleHandler, acceleratorOptionsToggleHandler, bytedanceProviderSettingsToggleHandler, xaiProviderSettingsToggleHandler, viduProviderSettingsToggleHandler, sourcefulProviderSettingsToggleHandler, sourcefulProviderSettingsFontsToggleHandler, threeDInferenceToggleHandler, threeDInferenceSettingsToggleHandler, threeDInferenceSettingsLatToggleHandler, ultralyticsProviderSettingsToggleHandler, openaiProviderSettingsToggleHandler, lightricksProviderSettingsToggleHandler, klingProviderSettingsToggleHandler, lumaProviderSettingsToggleHandler, briaProviderSettingsToggleHandler, pixverseProviderSettingsToggleHandler, alibabaProviderSettingsToggleHandler, mireloProviderSettingsToggleHandler, googleProviderSettingsToggleHandler, syncProviderSettingsToggleHandler, syncSegmentToggleHandler, settingsToggleHandler, outpaintSettingsToggleHandler, safetyInputsToggleHandler, imageInferenceSettingsColorPaletteToggleHandler, audioInputToggleHandler, speechInputToggleHandler, briaProviderMaskToggleHandler, wanAnimateAdvancedFeatureSettingsToggleHandler, videoAdvancedFeatureInputsToggleHandler, audioInferenceInputsToggleHandler, audioInferenceSpeechVoicesToggleHandler, referenceVideosToggleHandler } from "./utils.js"; +import { promptEnhanceHandler, syncDimensionsNodeHandler, searchNodeHandler, APIKeyHandler, captionNodeHandler, saveTextHandler, mediaUUIDHandler, save3DFilepathHandler, videoTranscriptionHandler, videoOutputsHandler, handleCustomErrors, videoInferenceDimensionsHandler, videoModelSearchFilterHandler, audioModelSearchFilterHandler, textModelSearchFilterHandler, vectorizeModelSearchFilterHandler, vectorizeToggleHandler, useParameterToggleHandler, imageInferenceToggleHandler, imageInferenceAdvancedFeaturesToggleHandler, watermarkAdvancedFeatureToggleHandler, videoInferenceSpeechInputToggleHandler, regionalPromptingRegionsToggleHandler, upscalerToggleHandler, imageUpscalerSettingsToggleHandler, videoUpscalerToggleHandler, audioInferenceToggleHandler, audioInferenceSpeechToggleHandler, audioSettingsToggleHandler, textInferenceSettingsToggleHandler, videoSettingsToggleHandler, videoInferenceSettingsTtsToggleHandler, videoInferenceSettingsActiveSpeakerDetectionToggleHandler, videoInferenceSettingsActiveSpeakerBoundingBoxesToggleHandler, videoInferenceSettingsSegmentsToggleHandler, acceleratorOptionsToggleHandler, bytedanceProviderSettingsToggleHandler, xaiProviderSettingsToggleHandler, viduProviderSettingsToggleHandler, sourcefulProviderSettingsToggleHandler, sourcefulProviderSettingsFontsToggleHandler, threeDInferenceToggleHandler, threeDInferenceSettingsToggleHandler, threeDInferenceSettingsLatToggleHandler, ultralyticsProviderSettingsToggleHandler, openaiProviderSettingsToggleHandler, lightricksProviderSettingsToggleHandler, klingProviderSettingsToggleHandler, lumaProviderSettingsToggleHandler, briaProviderSettingsToggleHandler, pixverseProviderSettingsToggleHandler, alibabaProviderSettingsToggleHandler, mireloProviderSettingsToggleHandler, googleProviderSettingsToggleHandler, syncProviderSettingsToggleHandler, syncSegmentToggleHandler, settingsToggleHandler, outpaintSettingsToggleHandler, safetyInputsToggleHandler, imageInferenceSettingsColorPaletteToggleHandler, imageInferenceSettingsMoodboardsToggleHandler, audioInputToggleHandler, speechInputToggleHandler, briaProviderMaskToggleHandler, wanAnimateAdvancedFeatureSettingsToggleHandler, videoAdvancedFeatureInputsToggleHandler, audioInferenceInputsToggleHandler, audioInferenceSpeechVoicesToggleHandler, referenceVideosToggleHandler } from "./utils.js"; import { RUNWARE_NODE_TYPES, RUNWARE_NODE_PROPS, SEARCH_TERMS } from "./types.js"; const nodeInitList = []; @@ -151,6 +151,8 @@ app.registerExtension({ safetyInputsToggleHandler(node); } else if(nodeClass === RUNWARE_NODE_TYPES.IMAGEINFERENCESETTINGSCOLORPALETTE) { imageInferenceSettingsColorPaletteToggleHandler(node); + } else if(nodeClass === RUNWARE_NODE_TYPES.IMAGEINFERENCESETTINGSMOODBOARDS) { + imageInferenceSettingsMoodboardsToggleHandler(node); } else if(nodeClass === RUNWARE_NODE_TYPES.AUDIOINPUT) { audioInputToggleHandler(node); } else if(nodeClass === RUNWARE_NODE_TYPES.SPEECHINPUT) { diff --git a/clientlibs/types.js b/clientlibs/types.js index 12443e7..e1cc897 100644 --- a/clientlibs/types.js +++ b/clientlibs/types.js @@ -157,6 +157,7 @@ const RUNWARE_NODE_TYPES = { SAFETYINPUTS: "Runware Safety Inputs", SETTINGS: "Runware Settings", IMAGEINFERENCESETTINGSCOLORPALETTE: "Runware Image Inference Settings Color Palette", + IMAGEINFERENCESETTINGSMOODBOARDS: "Runware Image Inference Settings Moodboards", VIDEOADVANCEDFEATUREINPUTS: "Runware Video Advanced Feature Inputs", WANANIMATEADVANCEDFEATURESETTINGS: "Runware Wan Animate Advanced Feature Settings", SAVEIMAGE: "Runware Save Image", @@ -621,6 +622,10 @@ const RUNWARE_NODE_PROPS = { bgColor: DEFAULT_BGCOLOR, colorModeOnly: true, }, + [RUNWARE_NODE_TYPES.IMAGEINFERENCESETTINGSMOODBOARDS]: { + bgColor: DEFAULT_BGCOLOR, + colorModeOnly: true, + }, [RUNWARE_NODE_TYPES.VIDEOADVANCEDFEATUREINPUTS]: { bgColor: DEFAULT_BGCOLOR, colorModeOnly: true, diff --git a/clientlibs/utils.js b/clientlibs/utils.js index 8b75b27..f615388 100644 --- a/clientlibs/utils.js +++ b/clientlibs/utils.js @@ -5052,6 +5052,7 @@ export { outpaintSettingsToggleHandler, safetyInputsToggleHandler, imageInferenceSettingsColorPaletteToggleHandler, + imageInferenceSettingsMoodboardsToggleHandler, audioInputToggleHandler, speechInputToggleHandler, briaProviderMaskToggleHandler, @@ -5450,6 +5451,25 @@ function imageInferenceSettingsColorPaletteToggleHandler(paletteNode) { } } +function imageInferenceSettingsMoodboardsToggleHandler(moodboardsNode) { + if (!moodboardsNode?.widgets) return; + + const useStrengthWidget = moodboardsNode.widgets.find((w) => w && w.name === "useStrength"); + const strengthWidget = moodboardsNode.widgets.find((w) => w && w.name === "strength"); + if (!useStrengthWidget || !strengthWidget) return; + + function toggleStrengthState() { + const enabled = useStrengthWidget.value === true; + toggleWidgetEnabled(strengthWidget, enabled, moodboardsNode); + moodboardsNode.setDirtyCanvas(true); + } + + appendWidgetCB(useStrengthWidget, () => { + setTimeout(toggleStrengthState, 50); + }); + setTimeout(toggleStrengthState, 100); +} + function syncProviderSettingsToggleHandler(syncNode) { // Find all "use" parameter widgets for Sync Provider Settings const useEditRegionWidget = syncNode.widgets.find(w => w.name === "useEditRegion"); diff --git a/modules/imageInferenceSettingsMoodboards.py b/modules/imageInferenceSettingsMoodboards.py new file mode 100644 index 0000000..8d1631b --- /dev/null +++ b/modules/imageInferenceSettingsMoodboards.py @@ -0,0 +1,112 @@ +""" +Runware Image Inference Settings Moodboards +Builds settings.moodboards: list of { "id": "", "strength": }. +""" + +from typing import Any, Dict, List, Tuple + + +class RunwareImageInferenceSettingsMoodboards: + """Build moodboards list for image inference settings.""" + + @classmethod + def INPUT_TYPES(cls): + return { + "required": { + "id": ("STRING", { + "default": "", + "tooltip": "Moodboard UUID (settings.moodboards[].id).", + }), + }, + "optional": { + "useStrength": ("BOOLEAN", { + "default": False, + "label_on": "Enabled", + "label_off": "Disabled", + "tooltip": "Include strength in moodboards entry.", + }), + "strength": ("FLOAT", { + "default": 0.35, + "min": -0.5, + "max": 1.5, + "step": 0.01, + "tooltip": "Moodboard strength (-0.5 to 1.5). Only used when useStrength is enabled.", + }), + }, + } + + RETURN_TYPES = ("RUNWAREIMAGEINFERENCEMOODBOARDS",) + RETURN_NAMES = ("moodboards",) + FUNCTION = "build_moodboards" + CATEGORY = "Runware" + DESCRIPTION = ( + "Build settings.moodboards for image inference settings. " + "Outputs one-element array with required id and optional strength." + ) + + def build_moodboards(self, **kwargs) -> Tuple[List[Dict[str, Any]]]: + moodboard_id = str(kwargs.get("id") or "").strip() + if not moodboard_id: + return ([],) + + entry: Dict[str, Any] = {"id": moodboard_id} + if kwargs.get("useStrength", False): + entry["strength"] = float(kwargs.get("strength", 0.35)) + + return ([entry],) +""" +Runware Image Inference Settings Moodboards +Builds settings.moodboards: list of { "id": "", "strength": }. +""" + +from typing import Any, Dict, List, Tuple + + +class RunwareImageInferenceSettingsMoodboards: + """Build moodboards list for image inference settings.""" + + @classmethod + def INPUT_TYPES(cls): + return { + "required": { + "id": ("STRING", { + "default": "", + "tooltip": "Moodboard UUID (settings.moodboards[].id).", + }), + }, + "optional": { + "useStrength": ("BOOLEAN", { + "default": False, + "label_on": "Enabled", + "label_off": "Disabled", + "tooltip": "Include strength in moodboards entry.", + }), + "strength": ("FLOAT", { + "default": 0.35, + "min": -0.5, + "max": 1.5, + "step": 0.01, + "tooltip": "Moodboard strength (-0.5 to 1.5). Only used when 'Use Strength' is enabled.", + }), + }, + } + + RETURN_TYPES = ("RUNWAREIMAGEINFERENCEMOODBOARDS",) + RETURN_NAMES = ("moodboards",) + FUNCTION = "build_moodboards" + CATEGORY = "Runware" + DESCRIPTION = ( + "Build settings.moodboards for image inference settings. " + "Outputs one-element array with required id and optional strength." + ) + + def build_moodboards(self, **kwargs) -> Tuple[List[Dict[str, Any]]]: + moodboard_id = str(kwargs.get("id") or "").strip() + if not moodboard_id: + return ([],) + + entry: Dict[str, Any] = {"id": moodboard_id} + if kwargs.get("useStrength", False): + entry["strength"] = float(kwargs.get("strength", 0.35)) + + return ([entry],) diff --git a/modules/settings.py b/modules/settings.py index 157d344..8361ae0 100644 --- a/modules/settings.py +++ b/modules/settings.py @@ -3,7 +3,8 @@ Runware Image Inference Settings (registered as Runware Settings for workflow co Provides settings for image generation including temperature, systemPrompt, topP, layers, quality, background, style, search, promptExtend, editRegions, thinking (boolean), thinkingLevel (high/medium/low), sequential, renderingSpeed (TURBO/DEFAULT/QUALITY), -magicPrompt (AUTO/ON/OFF), autoCrop, dilatePixels, creativity (raw/low/medium/high), and colorPalette +magicPrompt (AUTO/ON/OFF), autoCrop, dilatePixels, creativity (raw/low/medium/high), colorPalette, +and moodboards (from Runware Image Inference Settings Color Palette). """ @@ -121,6 +122,9 @@ class RunwareSettings: "colorPalette": ("RUNWAREIMAGEINFERENCECOLORPALETTE", { "tooltip": "Connect Runware Image Inference Color Palette. When the palette node outputs at least one swatch, it is merged into settings.colorPalette.", }), + "moodboards": ("RUNWAREIMAGEINFERENCEMOODBOARDS", { + "tooltip": "Connect Runware Image Inference Settings Moodboards. When connected with at least one entry, it is merged into settings.moodboards.", + }), "useThinkingLevel": ("BOOLEAN", { "tooltip": "Enable to include thinkingLevel (string) in settings.", "default": False, @@ -211,7 +215,8 @@ class RunwareSettings: DESCRIPTION = ( "Configure general settings for image generation: temperature, system prompt, top-p, layers, quality, background, style, search, " "promptExtend, editRegions (JSON), thinking (boolean), thinkingLevel (high/medium/low), sequential, " - "renderingSpeed (TURBO/DEFAULT/QUALITY), magicPrompt (AUTO/ON/OFF), autoCrop, dilatePixels, creativity (raw/low/medium/high), and optional colorPalette from the Color Palette node." + "renderingSpeed (TURBO/DEFAULT/QUALITY), magicPrompt (AUTO/ON/OFF), autoCrop, dilatePixels, " + "creativity (raw/low/medium/high), and optional colorPalette and moodboards from dedicated settings nodes." ) def createSettings(self, **kwargs) -> tuple[Dict[str, Any]]: @@ -300,6 +305,9 @@ class RunwareSettings: palette: Optional[List[Dict[str, Any]]] = kwargs.get("colorPalette") if palette is not None and isinstance(palette, list) and len(palette) > 0: settings["colorPalette"] = palette + moodboards: Optional[List[Dict[str, Any]]] = kwargs.get("moodboards") + if moodboards is not None and isinstance(moodboards, list) and len(moodboards) > 0: + settings["moodboards"] = moodboards if useRenderingSpeed: settings["renderingSpeed"] = str(renderingSpeed) diff --git a/modules/utils/runwareUtils.py b/modules/utils/runwareUtils.py index 0c97b0f..75ba920 100644 --- a/modules/utils/runwareUtils.py +++ b/modules/utils/runwareUtils.py @@ -158,7 +158,7 @@ def getCustomEndpoint(): custom_endpoint = os.getenv("RUNWARE_CUSTOM_ENDPOINT") if custom_endpoint and isinstance(custom_endpoint, str): return custom_endpoint - return "https://api.runware.ai/v1" + return "https://api.runware.dev/v1" SESSION_TIMEOUT = getTimeout() RUNWARE_API_KEY = getAPIKey() From 9f5121be7646b014641c060a12946c8955fddbd3 Mon Sep 17 00:00:00 2001 From: Sirshendu Ganguly Date: Wed, 27 May 2026 19:39:50 +0530 Subject: [PATCH 05/15] Fixed base URL --- modules/utils/runwareUtils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/utils/runwareUtils.py b/modules/utils/runwareUtils.py index 75ba920..0c97b0f 100644 --- a/modules/utils/runwareUtils.py +++ b/modules/utils/runwareUtils.py @@ -158,7 +158,7 @@ def getCustomEndpoint(): custom_endpoint = os.getenv("RUNWARE_CUSTOM_ENDPOINT") if custom_endpoint and isinstance(custom_endpoint, str): return custom_endpoint - return "https://api.runware.dev/v1" + return "https://api.runware.ai/v1" SESSION_TIMEOUT = getTimeout() RUNWARE_API_KEY = getAPIKey() From 130e178fb20da35cf02aa075f89781b0288d33be Mon Sep 17 00:00:00 2001 From: Sirshendu Ganguly Date: Wed, 27 May 2026 20:03:05 +0530 Subject: [PATCH 06/15] Fixed comments --- modules/settings.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/settings.py b/modules/settings.py index 8361ae0..cca04b0 100644 --- a/modules/settings.py +++ b/modules/settings.py @@ -122,9 +122,6 @@ class RunwareSettings: "colorPalette": ("RUNWAREIMAGEINFERENCECOLORPALETTE", { "tooltip": "Connect Runware Image Inference Color Palette. When the palette node outputs at least one swatch, it is merged into settings.colorPalette.", }), - "moodboards": ("RUNWAREIMAGEINFERENCEMOODBOARDS", { - "tooltip": "Connect Runware Image Inference Settings Moodboards. When connected with at least one entry, it is merged into settings.moodboards.", - }), "useThinkingLevel": ("BOOLEAN", { "tooltip": "Enable to include thinkingLevel (string) in settings.", "default": False, @@ -205,6 +202,9 @@ class RunwareSettings: "default": "medium", "tooltip": "Creativity level. Only used when 'Use Creativity' is enabled.", }), + "moodboards": ("RUNWAREIMAGEINFERENCEMOODBOARDS", { + "tooltip": "Connect Runware Image Inference Settings Moodboards. When connected with at least one entry, it is merged into settings.moodboards.", + }), } } From ac10015336a237085505e7a859f28ec703eef257 Mon Sep 17 00:00:00 2001 From: Sirshendu Ganguly Date: Thu, 28 May 2026 12:52:03 +0530 Subject: [PATCH 07/15] Fixed redundant definition --- modules/imageInferenceSettingsMoodboards.py | 56 --------------------- 1 file changed, 56 deletions(-) diff --git a/modules/imageInferenceSettingsMoodboards.py b/modules/imageInferenceSettingsMoodboards.py index 8d1631b..3995198 100644 --- a/modules/imageInferenceSettingsMoodboards.py +++ b/modules/imageInferenceSettingsMoodboards.py @@ -44,62 +44,6 @@ class RunwareImageInferenceSettingsMoodboards: "Outputs one-element array with required id and optional strength." ) - def build_moodboards(self, **kwargs) -> Tuple[List[Dict[str, Any]]]: - moodboard_id = str(kwargs.get("id") or "").strip() - if not moodboard_id: - return ([],) - - entry: Dict[str, Any] = {"id": moodboard_id} - if kwargs.get("useStrength", False): - entry["strength"] = float(kwargs.get("strength", 0.35)) - - return ([entry],) -""" -Runware Image Inference Settings Moodboards -Builds settings.moodboards: list of { "id": "", "strength": }. -""" - -from typing import Any, Dict, List, Tuple - - -class RunwareImageInferenceSettingsMoodboards: - """Build moodboards list for image inference settings.""" - - @classmethod - def INPUT_TYPES(cls): - return { - "required": { - "id": ("STRING", { - "default": "", - "tooltip": "Moodboard UUID (settings.moodboards[].id).", - }), - }, - "optional": { - "useStrength": ("BOOLEAN", { - "default": False, - "label_on": "Enabled", - "label_off": "Disabled", - "tooltip": "Include strength in moodboards entry.", - }), - "strength": ("FLOAT", { - "default": 0.35, - "min": -0.5, - "max": 1.5, - "step": 0.01, - "tooltip": "Moodboard strength (-0.5 to 1.5). Only used when 'Use Strength' is enabled.", - }), - }, - } - - RETURN_TYPES = ("RUNWAREIMAGEINFERENCEMOODBOARDS",) - RETURN_NAMES = ("moodboards",) - FUNCTION = "build_moodboards" - CATEGORY = "Runware" - DESCRIPTION = ( - "Build settings.moodboards for image inference settings. " - "Outputs one-element array with required id and optional strength." - ) - def build_moodboards(self, **kwargs) -> Tuple[List[Dict[str, Any]]]: moodboard_id = str(kwargs.get("id") or "").strip() if not moodboard_id: From 3e16c1f1a5d3dbd5e1742a592233ba22fd8f85b3 Mon Sep 17 00:00:00 2001 From: Sirshendu Ganguly Date: Thu, 28 May 2026 13:15:00 +0530 Subject: [PATCH 08/15] Added support for Pruna Avatar --- clientlibs/utils.js | 6 ++++++ modules/videoModelSearch.py | 3 +++ modules/videoSettings.py | 14 ++++++++++++++ 3 files changed, 23 insertions(+) diff --git a/clientlibs/utils.js b/clientlibs/utils.js index 5aa5563..6de9389 100644 --- a/clientlibs/utils.js +++ b/clientlibs/utils.js @@ -1396,6 +1396,8 @@ function videoSettingsToggleHandler(settingsNode) { const draftWidget = settingsNode.widgets.find(w => w && w.name === "draft"); const useAudioWidget = settingsNode.widgets.find(w => w && w.name === "useAudio"); const audioWidget = settingsNode.widgets.find(w => w && w.name === "audio"); + const usePreserveAudioWidget = settingsNode.widgets.find(w => w && w.name === "usePreserveAudio"); + const preserveAudioWidget = settingsNode.widgets.find(w => w && w.name === "preserveAudio"); const useVoicePromptWidget = settingsNode.widgets.find(w => w && w.name === "useVoicePrompt"); const voicePromptWidget = settingsNode.widgets.find(w => w && w.name === "voicePrompt"); const useSafetyFilterWidget = settingsNode.widgets.find(w => w && w.name === "useSafetyFilter"); @@ -1455,6 +1457,7 @@ function videoSettingsToggleHandler(settingsNode) { if (useDraftWidget && draftWidget) toggleWidgetState(useDraftWidget, draftWidget, "draft"); if (useAudioWidget && audioWidget) toggleWidgetState(useAudioWidget, audioWidget, "audio"); + if (usePreserveAudioWidget && preserveAudioWidget) toggleWidgetState(usePreserveAudioWidget, preserveAudioWidget, "preserveAudio"); if (useVoicePromptWidget && voicePromptWidget) toggleWidgetState(useVoicePromptWidget, voicePromptWidget, "voicePrompt"); if (useSafetyFilterWidget && safetyFilterWidget) toggleWidgetState(useSafetyFilterWidget, safetyFilterWidget, "safetyFilter"); if (usePromptUpsamplingWidget && promptUpsamplingWidget) toggleWidgetState(usePromptUpsamplingWidget, promptUpsamplingWidget, "promptUpsampling"); @@ -2879,6 +2882,7 @@ function videoModelSearchFilterHandler(videoModelSearchNode) { "Pruna": [ "prunaai:p-video@0 (P-Video)", "prunaai:p-video@avatar (P-Video Avatar)", + "prunaai:p-video@animate (P-Video Animate)", ], "SkyReels": [ "skywork:skyreels@v4 (SkyReels V4)", @@ -2978,6 +2982,7 @@ function videoModelSearchFilterHandler(videoModelSearchNode) { "veed:fabric@1.0": {"width": 1280, "height": 720}, "prunaai:p-video@0": {"width": 1280, "height": 720}, "prunaai:p-video@avatar": {"width": 1280, "height": 720}, + "prunaai:p-video@animate": {"width": 1280, "height": 720}, "heygen:avatar@4": {"width": 1280, "height": 720}, "heygen:video-agent@0": {"width": 1280, "height": 720}, "heygen:avatar@5": {"width": 1280, "height": 720}, @@ -3077,6 +3082,7 @@ function videoModelSearchFilterHandler(videoModelSearchNode) { "veed:fabric@1.0": "720p", "prunaai:p-video@0": "720p", "prunaai:p-video@avatar": "720p", + "prunaai:p-video@animate": "720p", "heygen:avatar@4": "720p", "heygen:video-agent@0": "720p", "heygen:avatar@5": "720p", diff --git a/modules/videoModelSearch.py b/modules/videoModelSearch.py index 5606bc5..d401c10 100644 --- a/modules/videoModelSearch.py +++ b/modules/videoModelSearch.py @@ -139,6 +139,7 @@ class videoModelSearch: "Pruna": [ "prunaai:p-video@0 (P-Video)", "prunaai:p-video@avatar (P-Video Avatar)", + "prunaai:p-video@animate (P-Video Animate)", ], "SkyReels": [ "skywork:skyreels@v4 (SkyReels V4)", @@ -278,6 +279,7 @@ class videoModelSearch: # Pruna Models (720p) "prunaai:p-video@0": {"width": 1280, "height": 720}, "prunaai:p-video@avatar": {"width": 1280, "height": 720}, + "prunaai:p-video@animate": {"width": 1280, "height": 720}, # HeyGen Models (Model ID: heygen-avatar-iv, heygen-avatar-v) "heygen:avatar@4": {"width": 1280, "height": 720}, @@ -421,6 +423,7 @@ class videoModelSearch: # Pruna Models "prunaai:p-video@0": "720p", "prunaai:p-video@avatar": "720p", + "prunaai:p-video@animate": "720p", # HeyGen Models "heygen:avatar@4": "720p", diff --git a/modules/videoSettings.py b/modules/videoSettings.py index 7308768..e22dd14 100644 --- a/modules/videoSettings.py +++ b/modules/videoSettings.py @@ -225,6 +225,16 @@ class RunwareVideoSettings: "label_on": "true", "label_off": "false", }), + "usePreserveAudio": ("BOOLEAN", { + "tooltip": "Enable to include preserveAudio in video inference settings.", + "default": False, + }), + "preserveAudio": ("BOOLEAN", { + "tooltip": "Preserve source audio in output video. Only used when 'Use Preserve Audio' is enabled.", + "default": True, + "label_on": "Enabled", + "label_off": "Disabled", + }), } } @@ -243,6 +253,8 @@ class RunwareVideoSettings: draft = kwargs.get("draft", False) use_audio = kwargs.get("useAudio", False) audio = kwargs.get("audio", False) + use_preserve_audio = kwargs.get("usePreserveAudio", False) + preserve_audio = kwargs.get("preserveAudio", True) use_voice_prompt = kwargs.get("useVoicePrompt", False) voice_prompt = (kwargs.get("voicePrompt") or "").strip() use_safety_filter = kwargs.get("useSafetyFilter", False) @@ -293,6 +305,8 @@ class RunwareVideoSettings: settings["draft"] = bool(draft) if use_audio: settings["audio"] = bool(audio) + if use_preserve_audio: + settings["preserveAudio"] = bool(preserve_audio) if use_voice_prompt and voice_prompt: settings["voicePrompt"] = voice_prompt if use_safety_filter: From 81a2572c081cddb61a631e9841beb952b8ed9b10 Mon Sep 17 00:00:00 2001 From: Sirshendu Ganguly Date: Thu, 28 May 2026 13:17:55 +0530 Subject: [PATCH 09/15] Added workflow --- workflows/Runware_Video_Inference_Pruna_Animate.json | 1 + 1 file changed, 1 insertion(+) create mode 100644 workflows/Runware_Video_Inference_Pruna_Animate.json diff --git a/workflows/Runware_Video_Inference_Pruna_Animate.json b/workflows/Runware_Video_Inference_Pruna_Animate.json new file mode 100644 index 0000000..07e7d59 --- /dev/null +++ b/workflows/Runware_Video_Inference_Pruna_Animate.json @@ -0,0 +1 @@ +{"id":"e17fcca5-b6f7-4c02-8bb2-9bef654fd9be","revision":0,"last_node_id":9,"last_link_id":8,"nodes":[{"id":2,"type":"SaveVideo","pos":[425.1748138994858,549.5648771778874],"size":[270,260],"flags":{},"order":8,"mode":0,"inputs":[{"localized_name":"video","name":"video","type":"VIDEO","link":1},{"localized_name":"filename_prefix","name":"filename_prefix","type":"STRING","widget":{"name":"filename_prefix"},"link":null},{"localized_name":"format","name":"format","type":"COMBO","widget":{"name":"format"},"link":null},{"localized_name":"codec","name":"codec","type":"COMBO","widget":{"name":"codec"},"link":null}],"outputs":[],"properties":{"cnr_id":"comfy-core","ver":"0.22.0"},"widgets_values":["video/ComfyUI","auto","auto"]},{"id":8,"type":"Runware Media Upload","pos":[1067.1204124705494,630.201545591197],"size":[270,58],"flags":{},"order":4,"mode":0,"inputs":[{"localized_name":"media","name":"media","shape":7,"type":"VIDEO,AUDIO","link":5},{"localized_name":"mediaUUID","name":"mediaUUID","shape":7,"type":"STRING","widget":{"name":"mediaUUID"},"link":null}],"outputs":[{"localized_name":"mediaUUID","name":"mediaUUID","type":"STRING","links":[6]}],"properties":{"cnr_id":"ComfyUI-Runware","ver":"401e9f12a7121a6cc9891073e23ed5b2a24e9513","Node name for S&R":"Runware Media Upload"},"widgets_values":["4da09062-ed00-40ed-9e62-4b7b688a66a7"],"bgcolor":"#5345bf"},{"id":6,"type":"LoadImage","pos":[-1055.8133729845958,1194.6751934802394],"size":[282.798828125,314],"flags":{},"order":0,"mode":0,"inputs":[{"localized_name":"image","name":"image","type":"COMBO","widget":{"name":"image"},"link":null},{"localized_name":"choose file to upload","name":"upload","type":"IMAGEUPLOAD","widget":{"name":"upload"},"link":null}],"outputs":[{"localized_name":"IMAGE","name":"IMAGE","type":"IMAGE","links":[7]},{"localized_name":"MASK","name":"MASK","type":"MASK","links":null}],"properties":{"cnr_id":"comfy-core","ver":"0.22.0","Node name for S&R":"LoadImage"},"widgets_values":[".webp","image"]},{"id":5,"type":"Runware Video Inference Inputs Reference Images","pos":[-1112.07671264292,502.10259570650186],"size":[434.710546875,582],"flags":{},"order":3,"mode":0,"inputs":[{"localized_name":"Image1","name":"Image1","shape":7,"type":"IMAGE","link":7},{"localized_name":"Images1","name":"Images1","shape":7,"type":"RUNWAREVIDEOINPUTSREFERENCEMULTIIMAGES","link":null},{"localized_name":"Image2","name":"Image2","shape":7,"type":"IMAGE","link":null},{"localized_name":"Images2","name":"Images2","shape":7,"type":"RUNWAREVIDEOINPUTSREFERENCEMULTIIMAGES","link":null},{"localized_name":"Image3","name":"Image3","shape":7,"type":"IMAGE","link":null},{"localized_name":"Images3","name":"Images3","shape":7,"type":"RUNWAREVIDEOINPUTSREFERENCEMULTIIMAGES","link":null},{"localized_name":"Image4","name":"Image4","shape":7,"type":"IMAGE","link":null},{"localized_name":"Images4","name":"Images4","shape":7,"type":"RUNWAREVIDEOINPUTSREFERENCEMULTIIMAGES","link":null},{"localized_name":"Image5","name":"Image5","shape":7,"type":"IMAGE","link":null},{"localized_name":"Image6","name":"Image6","shape":7,"type":"IMAGE","link":null},{"localized_name":"Image7","name":"Image7","shape":7,"type":"IMAGE","link":null},{"localized_name":"Image8","name":"Image8","shape":7,"type":"IMAGE","link":null},{"localized_name":"Image9","name":"Image9","shape":7,"type":"IMAGE","link":null},{"localized_name":"Image10","name":"Image10","shape":7,"type":"IMAGE","link":null},{"localized_name":"Tag1","name":"Tag1","shape":7,"type":"STRING","widget":{"name":"Tag1"},"link":null},{"localized_name":"Type1","name":"Type1","shape":7,"type":"STRING","widget":{"name":"Type1"},"link":null},{"localized_name":"Audio1","name":"Audio1","shape":7,"type":"STRING","widget":{"name":"Audio1"},"link":null},{"localized_name":"Tag2","name":"Tag2","shape":7,"type":"STRING","widget":{"name":"Tag2"},"link":null},{"localized_name":"Type2","name":"Type2","shape":7,"type":"STRING","widget":{"name":"Type2"},"link":null},{"localized_name":"Audio2","name":"Audio2","shape":7,"type":"STRING","widget":{"name":"Audio2"},"link":null},{"localized_name":"Tag3","name":"Tag3","shape":7,"type":"STRING","widget":{"name":"Tag3"},"link":null},{"localized_name":"Type3","name":"Type3","shape":7,"type":"STRING","widget":{"name":"Type3"},"link":null},{"localized_name":"Audio3","name":"Audio3","shape":7,"type":"STRING","widget":{"name":"Audio3"},"link":null},{"localized_name":"Tag4","name":"Tag4","shape":7,"type":"STRING","widget":{"name":"Tag4"},"link":null},{"localized_name":"Type4","name":"Type4","shape":7,"type":"STRING","widget":{"name":"Type4"},"link":null},{"localized_name":"Audio4","name":"Audio4","shape":7,"type":"STRING","widget":{"name":"Audio4"},"link":null}],"outputs":[{"localized_name":"Video Inputs Reference Images","name":"Video Inputs Reference Images","type":"RUNWAREVIDEOINPUTSREFERENCEIMAGES","links":[8]}],"properties":{"cnr_id":"ComfyUI-Runware","ver":"401e9f12a7121a6cc9891073e23ed5b2a24e9513","Node name for S&R":"Runware Video Inference Inputs Reference Images"},"widgets_values":["","","","","","","","","","","",""],"bgcolor":"#5345bf"},{"id":4,"type":"Runware Video Inference Inputs","pos":[-552.8439233198184,844.3502735743538],"size":[341.783203125,374],"flags":{},"order":6,"mode":0,"inputs":[{"localized_name":"Image","name":"Image","shape":7,"type":"IMAGE","link":null},{"localized_name":"Frame Images","name":"Frame Images","shape":7,"type":"RUNWAREVIDEOINPUTSFRAMEIMAGES","link":null},{"localized_name":"Audio Inputs","name":"Audio Inputs","shape":7,"type":"RUNWAREAUDIOINPUT","link":null},{"localized_name":"Speech Inputs","name":"Speech Inputs","shape":7,"type":"RUNWARESPEECHINPUT","link":null},{"localized_name":"Mask","name":"Mask","shape":7,"type":"IMAGE","link":null},{"localized_name":"Frame","name":"Frame","shape":7,"type":"IMAGE","link":null},{"localized_name":"Background","name":"Background","shape":7,"type":"IMAGE","link":null},{"localized_name":"References Images","name":"References Images","shape":7,"type":"RUNWAREVIDEOINPUTSREFERENCEIMAGES","link":8},{"localized_name":"Reference Videos","name":"Reference Videos","shape":7,"type":"RUNWAREREFERENCEVIDEOS","link":4},{"localized_name":"Reference Voices","name":"Reference Voices","shape":7,"type":"RUNWAREREFERENCEVOICES","link":null},{"localized_name":"Elements","name":"Elements","shape":7,"type":"RUNWAREVIDEOINFERENCEELEMENTS","link":null},{"localized_name":"Reference Audios","name":"Reference Audios","shape":7,"type":"RUNWAREINPUTAUDIOS","link":null},{"localized_name":"Avatar","name":"Avatar","shape":7,"type":"STRING","widget":{"name":"Avatar"},"link":null},{"localized_name":"Audio","name":"Audio","shape":7,"type":"STRING","widget":{"name":"Audio"},"link":null},{"localized_name":"Video","name":"Video","shape":7,"type":"STRING","widget":{"name":"Video"},"link":null},{"localized_name":"draftId","name":"draftId","shape":7,"type":"STRING","widget":{"name":"draftId"},"link":null},{"localized_name":"videoId","name":"videoId","shape":7,"type":"STRING","widget":{"name":"videoId"},"link":null}],"outputs":[{"localized_name":"Video Inference Inputs","name":"Video Inference Inputs","type":"RUNWAREVIDEOINFERENCEINPUTS","links":[3]}],"properties":{"cnr_id":"ComfyUI-Runware","ver":"401e9f12a7121a6cc9891073e23ed5b2a24e9513","Node name for S&R":"Runware Video Inference Inputs"},"widgets_values":["","","","",""],"bgcolor":"#5345bf"},{"id":7,"type":"Runware Video Inference Inputs Reference Videos","pos":[429.4091250086296,939.6311854305687],"size":[432.2564453125,418],"flags":{},"order":5,"mode":0,"inputs":[{"localized_name":"useVideo1","name":"useVideo1","shape":7,"type":"BOOLEAN","widget":{"name":"useVideo1"},"link":null},{"localized_name":"Video1","name":"Video1","shape":7,"type":"STRING","widget":{"name":"Video1"},"link":6},{"localized_name":"Tag1","name":"Tag1","shape":7,"type":"STRING","widget":{"name":"Tag1"},"link":null},{"localized_name":"Type1","name":"Type1","shape":7,"type":"STRING","widget":{"name":"Type1"},"link":null},{"localized_name":"useVideo2","name":"useVideo2","shape":7,"type":"BOOLEAN","widget":{"name":"useVideo2"},"link":null},{"localized_name":"Video2","name":"Video2","shape":7,"type":"STRING","widget":{"name":"Video2"},"link":null},{"localized_name":"Tag2","name":"Tag2","shape":7,"type":"STRING","widget":{"name":"Tag2"},"link":null},{"localized_name":"Type2","name":"Type2","shape":7,"type":"STRING","widget":{"name":"Type2"},"link":null},{"localized_name":"useVideo3","name":"useVideo3","shape":7,"type":"BOOLEAN","widget":{"name":"useVideo3"},"link":null},{"localized_name":"Video3","name":"Video3","shape":7,"type":"STRING","widget":{"name":"Video3"},"link":null},{"localized_name":"Tag3","name":"Tag3","shape":7,"type":"STRING","widget":{"name":"Tag3"},"link":null},{"localized_name":"Type3","name":"Type3","shape":7,"type":"STRING","widget":{"name":"Type3"},"link":null},{"localized_name":"useVideo4","name":"useVideo4","shape":7,"type":"BOOLEAN","widget":{"name":"useVideo4"},"link":null},{"localized_name":"Video4","name":"Video4","shape":7,"type":"STRING","widget":{"name":"Video4"},"link":null},{"localized_name":"Tag4","name":"Tag4","shape":7,"type":"STRING","widget":{"name":"Tag4"},"link":null},{"localized_name":"Type4","name":"Type4","shape":7,"type":"STRING","widget":{"name":"Type4"},"link":null}],"outputs":[{"localized_name":"Reference Videos","name":"Reference Videos","type":"RUNWAREREFERENCEVIDEOS","links":[4]}],"properties":{"cnr_id":"ComfyUI-Runware","ver":"401e9f12a7121a6cc9891073e23ed5b2a24e9513","Node name for S&R":"Runware Video Inference Inputs Reference Videos"},"widgets_values":[true,"","","reference",false,"","","reference",false,"","","reference",false,"","","reference"],"bgcolor":"#5345bf"},{"id":9,"type":"LoadVideo","pos":[994.813418417036,962.166011956847],"size":[282.798828125,356.7988281250001],"flags":{},"order":1,"mode":0,"inputs":[{"localized_name":"file","name":"file","type":"COMBO","widget":{"name":"file"},"link":null},{"localized_name":"choose file to upload","name":"upload","type":"IMAGEUPLOAD","widget":{"name":"upload"},"link":null}],"outputs":[{"localized_name":"VIDEO","name":"VIDEO","type":"VIDEO","links":[5]}],"properties":{"cnr_id":"comfy-core","ver":"0.22.0","Node name for S&R":"LoadVideo"},"widgets_values":["20_year_old_woman.mp4","image"]},{"id":1,"type":"Runware Video Inference","pos":[-106.58287122481762,487.4838057574137],"size":[400,818],"flags":{},"order":7,"mode":0,"inputs":[{"localized_name":"Model","name":"Model","type":"RUNWAREVIDEOMODEL","link":2},{"localized_name":"frameImages","name":"frameImages","shape":7,"type":"RUNWAREFRAMEIMAGES","link":null},{"localized_name":"referenceImages","name":"referenceImages","shape":7,"type":"RUNWAREREFERENCEIMAGES","link":null},{"localized_name":"providerSettings","name":"providerSettings","shape":7,"type":"RUNWAREPROVIDERSETTINGS","link":null},{"localized_name":"inputAudios","name":"inputAudios","shape":7,"type":"RUNWAREINPUTAUDIOS","link":null},{"localized_name":"referenceVideos","name":"referenceVideos","shape":7,"type":"RUNWAREREFERENCEVIDEOS","link":null},{"localized_name":"speech","name":"speech","shape":7,"type":"RUNWAREVIDEOINFERENCESPEECHINPUT","link":null},{"localized_name":"inputs","name":"inputs","shape":7,"type":"RUNWAREVIDEOINFERENCEINPUTS","link":3},{"localized_name":"safetyInputs","name":"safetyInputs","shape":7,"type":"RUNWARESAFETYINPUTS","link":null},{"localized_name":"videoAdvancedFeatureInputs","name":"videoAdvancedFeatureInputs","shape":7,"type":"RUNWAREVIDEOADVANCEDFEATUREINPUTS","link":null},{"localized_name":"Accelerator","name":"Accelerator","shape":7,"type":"RUNWAREACCELERATOR","link":null},{"localized_name":"settings","name":"settings","shape":7,"type":"RUNWAREVIDEOSETTINGS","link":null},{"localized_name":"Multi Inference Mode","name":"Multi Inference Mode","type":"BOOLEAN","widget":{"name":"Multi Inference Mode"},"link":null},{"localized_name":"Prompt Weighting","name":"Prompt Weighting","type":"COMBO","widget":{"name":"Prompt Weighting"},"link":null},{"localized_name":"useDuration","name":"useDuration","type":"BOOLEAN","widget":{"name":"useDuration"},"link":null},{"localized_name":"duration","name":"duration","type":"INT","widget":{"name":"duration"},"link":null},{"localized_name":"useFps","name":"useFps","type":"BOOLEAN","widget":{"name":"useFps"},"link":null},{"localized_name":"fps","name":"fps","type":"INT","widget":{"name":"fps"},"link":null},{"localized_name":"outputFormat","name":"outputFormat","type":"COMBO","widget":{"name":"outputFormat"},"link":null},{"localized_name":"useSeed","name":"useSeed","type":"BOOLEAN","widget":{"name":"useSeed"},"link":null},{"localized_name":"seed","name":"seed","type":"INT","widget":{"name":"seed"},"link":null},{"localized_name":"useSteps","name":"useSteps","type":"BOOLEAN","widget":{"name":"useSteps"},"link":null},{"localized_name":"steps","name":"steps","type":"INT","widget":{"name":"steps"},"link":null},{"localized_name":"useBatchSize","name":"useBatchSize","type":"BOOLEAN","widget":{"name":"useBatchSize"},"link":null},{"localized_name":"batchSize","name":"batchSize","type":"INT","widget":{"name":"batchSize"},"link":null},{"localized_name":"useSchedulers","name":"useSchedulers","type":"BOOLEAN","widget":{"name":"useSchedulers"},"link":null},{"localized_name":"scheduler","name":"scheduler","type":"COMBO","widget":{"name":"scheduler"},"link":null},{"localized_name":"useCFGScale","name":"useCFGScale","type":"BOOLEAN","widget":{"name":"useCFGScale"},"link":null},{"localized_name":"cfgScale","name":"cfgScale","type":"FLOAT","widget":{"name":"cfgScale"},"link":null},{"localized_name":"acceleration","name":"acceleration","type":"COMBO","widget":{"name":"acceleration"},"link":null},{"localized_name":"positivePrompt","name":"positivePrompt","shape":7,"type":"STRING","widget":{"name":"positivePrompt"},"link":null},{"localized_name":"negativePrompt","name":"negativePrompt","shape":7,"type":"STRING","widget":{"name":"negativePrompt"},"link":null}],"outputs":[{"localized_name":"VIDEO","name":"VIDEO","type":"VIDEO","links":[1]},{"localized_name":"RW-Task","name":"RW-Task","type":"RUNWARETASK","links":null},{"localized_name":"OUTPUT","name":"OUTPUT","type":"RUNWARETASK","links":null}],"properties":{"cnr_id":"ComfyUI-Runware","ver":"401e9f12a7121a6cc9891073e23ed5b2a24e9513","Node name for S&R":"Runware Video Inference"},"widgets_values":[false,"Disabled",false,5,false,24,"mp4",true,1586491931,"randomize",false,20,false,1,false,"euler",false,5,"none","Animate the reference subject using the motion from the source video, preserving facial expressions.",""],"bgcolor":"#5345bf"},{"id":3,"type":"Runware Video Model Search","pos":[-627.6731729224208,514.982063578072],"size":[294.16015625,250],"flags":{},"order":2,"mode":0,"inputs":[{"localized_name":"Model Search","name":"Model Search","type":"STRING","widget":{"name":"Model Search"},"link":null},{"localized_name":"Model Architecture","name":"Model Architecture","type":"COMBO","widget":{"name":"Model Architecture"},"link":null},{"localized_name":"VideoList","name":"VideoList","type":"COMBO","widget":{"name":"VideoList"},"link":null},{"localized_name":"Use Search Value","name":"Use Search Value","type":"BOOLEAN","widget":{"name":"Use Search Value"},"link":null},{"localized_name":"useCustomDimensions","name":"useCustomDimensions","type":"COMBO","widget":{"name":"useCustomDimensions"},"link":null},{"localized_name":"Width","name":"Width","type":"INT","widget":{"name":"Width"},"link":null},{"localized_name":"Height","name":"Height","type":"INT","widget":{"name":"Height"},"link":null},{"localized_name":"useResolution","name":"useResolution","type":"BOOLEAN","widget":{"name":"useResolution"},"link":null},{"localized_name":"resolution","name":"resolution","type":"COMBO","widget":{"name":"resolution"},"link":null}],"outputs":[{"localized_name":"Runware Video Model","name":"Runware Video Model","type":"RUNWAREVIDEOMODEL","links":[2]}],"properties":{"cnr_id":"ComfyUI-Runware","ver":"401e9f12a7121a6cc9891073e23ed5b2a24e9513","Node name for S&R":"Runware Video Model Search"},"widgets_values":["","Pruna","prunaai:p-video@animate (P-Video Animate)",false,"Disabled",0,0,false,"1080p"],"bgcolor":"#5345bf"}],"links":[[1,1,0,2,0,"VIDEO"],[2,3,0,1,0,"RUNWAREVIDEOMODEL"],[3,4,0,1,7,"RUNWAREVIDEOINFERENCEINPUTS"],[4,7,0,4,8,"RUNWAREREFERENCEVIDEOS"],[5,9,0,8,0,"VIDEO"],[6,8,0,7,1,"STRING"],[7,6,0,5,0,"IMAGE"],[8,5,0,4,7,"RUNWAREVIDEOINPUTSREFERENCEIMAGES"]],"groups":[],"config":{},"extra":{"ds":{"scale":0.4603984853356424,"offset":[1322.6879997521094,-157.32976052300617]}},"version":0.4} \ No newline at end of file From c84d195611e6a92ae44ab2c4898dad60fb093419 Mon Sep 17 00:00:00 2001 From: Sirshendu Ganguly Date: Thu, 28 May 2026 16:24:02 +0530 Subject: [PATCH 10/15] Added support for VTO --- modules/imageInferenceInputs.py | 15 ++++++++++++++- workflows/Runware_Image_Inference_VTO.json | 1 + 2 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 workflows/Runware_Image_Inference_VTO.json diff --git a/modules/imageInferenceInputs.py b/modules/imageInferenceInputs.py index 0a4ff6f..2ea4672 100644 --- a/modules/imageInferenceInputs.py +++ b/modules/imageInferenceInputs.py @@ -44,13 +44,20 @@ class imageInferenceInputs: optionalInputs[f"Super Resolution Reference Image {i}"] = ("IMAGE", { "tooltip": f"Specifies {ordinal.capitalize()} Super Resolution Reference Image for the inputs.", }) + + optionalInputs["person"] = ("IMAGE", { + "tooltip": "Person image for inputs.person." + }) + optionalInputs["garment"] = ("IMAGE", { + "tooltip": "Garment reference image for inputs.garment." + }) return { "required": {}, "optional": optionalInputs } - DESCRIPTION = "Configure custom inputs for Runware Image Inference, including reference images (with optional type e.g. 'sketch' for illustrative style models, and strength 0-1 for sketch) that can be passed to the inference node." + DESCRIPTION = "Configure custom inputs for Runware Image Inference, including image/mask, reference images (with optional type e.g. 'sketch' for illustrative style models, and strength 0-1 for sketch), super resolution references, and person/garment images." FUNCTION = "createInputs" RETURN_TYPES = ("RUNWAREIMAGEINFERENCEINPUTS",) RETURN_NAMES = ("Inference Inputs",) @@ -60,6 +67,8 @@ class imageInferenceInputs: """Create image inference inputs from provided parameters""" image = kwargs.get("image", None) mask = kwargs.get("mask", None) + person = kwargs.get("person", None) + garment = kwargs.get("garment", None) inputs = {} @@ -67,6 +76,10 @@ class imageInferenceInputs: inputs["image"] = rwUtils.convertTensor2IMG(image) if mask is not None: inputs["mask"] = rwUtils.convertTensor2IMG(mask) + if person is not None: + inputs["person"] = rwUtils.convertTensor2IMG(person) + if garment is not None: + inputs["garment"] = rwUtils.convertTensor2IMG(garment) references = self._collectReferences(kwargs) if len(references) > 0: diff --git a/workflows/Runware_Image_Inference_VTO.json b/workflows/Runware_Image_Inference_VTO.json new file mode 100644 index 0000000..316ff4b --- /dev/null +++ b/workflows/Runware_Image_Inference_VTO.json @@ -0,0 +1 @@ +{"id":"3655737e-74ea-4ca7-b104-c3cea32f6ee5","revision":0,"last_node_id":6,"last_link_id":5,"nodes":[{"id":6,"type":"Runware Save Image","pos":[726.4894147644764,72.35343419027436],"size":[270,318],"flags":{},"order":5,"mode":0,"inputs":[{"localized_name":"Images","name":"Images","type":"STRING","widget":{"name":"Images"},"link":2},{"localized_name":"filenamePrefix","name":"filenamePrefix","type":"STRING","widget":{"name":"filenamePrefix"},"link":null},{"localized_name":"saveImage","name":"saveImage","type":"BOOLEAN","widget":{"name":"saveImage"},"link":null}],"outputs":[{"localized_name":"IMAGE","name":"IMAGE","type":"IMAGE","links":null}],"properties":{"cnr_id":"ComfyUI-Runware","ver":"89495cfc137c18cd1f5fca7eb52d3870822d5a65","Node name for S&R":"Runware Save Image"},"widgets_values":["","ComfyUI",true],"bgcolor":"#5345bf"},{"id":2,"type":"Runware Image Inference Inputs","pos":[-365.2299339589291,-46.32029206152259],"size":[403.740234375,1482],"flags":{},"order":3,"mode":0,"inputs":[{"localized_name":"image","name":"image","shape":7,"type":"IMAGE","link":null},{"localized_name":"mask","name":"mask","shape":7,"type":"IMAGE","link":null},{"localized_name":"Reference Image 1","name":"Reference Image 1","shape":7,"type":"IMAGE","link":null},{"localized_name":"Reference Image 2","name":"Reference Image 2","shape":7,"type":"IMAGE","link":null},{"localized_name":"Reference Image 3","name":"Reference Image 3","shape":7,"type":"IMAGE","link":null},{"localized_name":"Reference Image 4","name":"Reference Image 4","shape":7,"type":"IMAGE","link":null},{"localized_name":"Reference Image 5","name":"Reference Image 5","shape":7,"type":"IMAGE","link":null},{"localized_name":"Reference Image 6","name":"Reference Image 6","shape":7,"type":"IMAGE","link":null},{"localized_name":"Reference Image 7","name":"Reference Image 7","shape":7,"type":"IMAGE","link":null},{"localized_name":"Reference Image 8","name":"Reference Image 8","shape":7,"type":"IMAGE","link":null},{"localized_name":"Reference Image 9","name":"Reference Image 9","shape":7,"type":"IMAGE","link":null},{"localized_name":"Reference Image 10","name":"Reference Image 10","shape":7,"type":"IMAGE","link":null},{"localized_name":"Reference Image 11","name":"Reference Image 11","shape":7,"type":"IMAGE","link":null},{"localized_name":"Reference Image 12","name":"Reference Image 12","shape":7,"type":"IMAGE","link":null},{"localized_name":"Reference Image 13","name":"Reference Image 13","shape":7,"type":"IMAGE","link":null},{"localized_name":"Reference Image 14","name":"Reference Image 14","shape":7,"type":"IMAGE","link":null},{"localized_name":"Super Resolution Reference Image 1","name":"Super Resolution Reference Image 1","shape":7,"type":"IMAGE","link":null},{"localized_name":"Super Resolution Reference Image 2","name":"Super Resolution Reference Image 2","shape":7,"type":"IMAGE","link":null},{"localized_name":"Super Resolution Reference Image 3","name":"Super Resolution Reference Image 3","shape":7,"type":"IMAGE","link":null},{"localized_name":"Super Resolution Reference Image 4","name":"Super Resolution Reference Image 4","shape":7,"type":"IMAGE","link":null},{"localized_name":"Super Resolution Reference Image 5","name":"Super Resolution Reference Image 5","shape":7,"type":"IMAGE","link":null},{"localized_name":"person","name":"person","shape":7,"type":"IMAGE","link":4},{"localized_name":"garment","name":"garment","shape":7,"type":"IMAGE","link":5},{"localized_name":"Reference Tag 1","name":"Reference Tag 1","shape":7,"type":"STRING","widget":{"name":"Reference Tag 1"},"link":null},{"localized_name":"Reference Type 1","name":"Reference Type 1","shape":7,"type":"STRING","widget":{"name":"Reference Type 1"},"link":null},{"localized_name":"Reference Strength 1","name":"Reference Strength 1","shape":7,"type":"FLOAT","widget":{"name":"Reference Strength 1"},"link":null},{"localized_name":"Reference Tag 2","name":"Reference Tag 2","shape":7,"type":"STRING","widget":{"name":"Reference Tag 2"},"link":null},{"localized_name":"Reference Type 2","name":"Reference Type 2","shape":7,"type":"STRING","widget":{"name":"Reference Type 2"},"link":null},{"localized_name":"Reference Strength 2","name":"Reference Strength 2","shape":7,"type":"FLOAT","widget":{"name":"Reference Strength 2"},"link":null},{"localized_name":"Reference Tag 3","name":"Reference Tag 3","shape":7,"type":"STRING","widget":{"name":"Reference Tag 3"},"link":null},{"localized_name":"Reference Type 3","name":"Reference Type 3","shape":7,"type":"STRING","widget":{"name":"Reference Type 3"},"link":null},{"localized_name":"Reference Strength 3","name":"Reference Strength 3","shape":7,"type":"FLOAT","widget":{"name":"Reference Strength 3"},"link":null},{"localized_name":"Reference Tag 4","name":"Reference Tag 4","shape":7,"type":"STRING","widget":{"name":"Reference Tag 4"},"link":null},{"localized_name":"Reference Type 4","name":"Reference Type 4","shape":7,"type":"STRING","widget":{"name":"Reference Type 4"},"link":null},{"localized_name":"Reference Strength 4","name":"Reference Strength 4","shape":7,"type":"FLOAT","widget":{"name":"Reference Strength 4"},"link":null},{"localized_name":"Reference Tag 5","name":"Reference Tag 5","shape":7,"type":"STRING","widget":{"name":"Reference Tag 5"},"link":null},{"localized_name":"Reference Type 5","name":"Reference Type 5","shape":7,"type":"STRING","widget":{"name":"Reference Type 5"},"link":null},{"localized_name":"Reference Strength 5","name":"Reference Strength 5","shape":7,"type":"FLOAT","widget":{"name":"Reference Strength 5"},"link":null},{"localized_name":"Reference Tag 6","name":"Reference Tag 6","shape":7,"type":"STRING","widget":{"name":"Reference Tag 6"},"link":null},{"localized_name":"Reference Type 6","name":"Reference Type 6","shape":7,"type":"STRING","widget":{"name":"Reference Type 6"},"link":null},{"localized_name":"Reference Strength 6","name":"Reference Strength 6","shape":7,"type":"FLOAT","widget":{"name":"Reference Strength 6"},"link":null},{"localized_name":"Reference Tag 7","name":"Reference Tag 7","shape":7,"type":"STRING","widget":{"name":"Reference Tag 7"},"link":null},{"localized_name":"Reference Type 7","name":"Reference Type 7","shape":7,"type":"STRING","widget":{"name":"Reference Type 7"},"link":null},{"localized_name":"Reference Strength 7","name":"Reference Strength 7","shape":7,"type":"FLOAT","widget":{"name":"Reference Strength 7"},"link":null},{"localized_name":"Reference Tag 8","name":"Reference Tag 8","shape":7,"type":"STRING","widget":{"name":"Reference Tag 8"},"link":null},{"localized_name":"Reference Type 8","name":"Reference Type 8","shape":7,"type":"STRING","widget":{"name":"Reference Type 8"},"link":null},{"localized_name":"Reference Strength 8","name":"Reference Strength 8","shape":7,"type":"FLOAT","widget":{"name":"Reference Strength 8"},"link":null},{"localized_name":"Reference Tag 9","name":"Reference Tag 9","shape":7,"type":"STRING","widget":{"name":"Reference Tag 9"},"link":null},{"localized_name":"Reference Type 9","name":"Reference Type 9","shape":7,"type":"STRING","widget":{"name":"Reference Type 9"},"link":null},{"localized_name":"Reference Strength 9","name":"Reference Strength 9","shape":7,"type":"FLOAT","widget":{"name":"Reference Strength 9"},"link":null},{"localized_name":"Reference Tag 10","name":"Reference Tag 10","shape":7,"type":"STRING","widget":{"name":"Reference Tag 10"},"link":null},{"localized_name":"Reference Type 10","name":"Reference Type 10","shape":7,"type":"STRING","widget":{"name":"Reference Type 10"},"link":null},{"localized_name":"Reference Strength 10","name":"Reference Strength 10","shape":7,"type":"FLOAT","widget":{"name":"Reference Strength 10"},"link":null},{"localized_name":"Reference Tag 11","name":"Reference Tag 11","shape":7,"type":"STRING","widget":{"name":"Reference Tag 11"},"link":null},{"localized_name":"Reference Type 11","name":"Reference Type 11","shape":7,"type":"STRING","widget":{"name":"Reference Type 11"},"link":null},{"localized_name":"Reference Strength 11","name":"Reference Strength 11","shape":7,"type":"FLOAT","widget":{"name":"Reference Strength 11"},"link":null},{"localized_name":"Reference Tag 12","name":"Reference Tag 12","shape":7,"type":"STRING","widget":{"name":"Reference Tag 12"},"link":null},{"localized_name":"Reference Type 12","name":"Reference Type 12","shape":7,"type":"STRING","widget":{"name":"Reference Type 12"},"link":null},{"localized_name":"Reference Strength 12","name":"Reference Strength 12","shape":7,"type":"FLOAT","widget":{"name":"Reference Strength 12"},"link":null},{"localized_name":"Reference Tag 13","name":"Reference Tag 13","shape":7,"type":"STRING","widget":{"name":"Reference Tag 13"},"link":null},{"localized_name":"Reference Type 13","name":"Reference Type 13","shape":7,"type":"STRING","widget":{"name":"Reference Type 13"},"link":null},{"localized_name":"Reference Strength 13","name":"Reference Strength 13","shape":7,"type":"FLOAT","widget":{"name":"Reference Strength 13"},"link":null},{"localized_name":"Reference Tag 14","name":"Reference Tag 14","shape":7,"type":"STRING","widget":{"name":"Reference Tag 14"},"link":null},{"localized_name":"Reference Type 14","name":"Reference Type 14","shape":7,"type":"STRING","widget":{"name":"Reference Type 14"},"link":null},{"localized_name":"Reference Strength 14","name":"Reference Strength 14","shape":7,"type":"FLOAT","widget":{"name":"Reference Strength 14"},"link":null}],"outputs":[{"localized_name":"Inference Inputs","name":"Inference Inputs","type":"RUNWAREIMAGEINFERENCEINPUTS","links":[3]}],"properties":{"cnr_id":"ComfyUI-Runware","ver":"89495cfc137c18cd1f5fca7eb52d3870822d5a65","Node name for S&R":"Runware Image Inference Inputs"},"widgets_values":["","",0,"","",0,"","",0,"","",0,"","",0,"","",0,"","",0,"","",0,"","",0,"","",0,"","",0,"","",0,"","",0,"","",0],"bgcolor":"#5345bf"},{"id":4,"type":"LoadImage","pos":[-991.1887304210379,304.8989870658721],"size":[282.798828125,314.00000000000006],"flags":{},"order":0,"mode":0,"inputs":[{"localized_name":"image","name":"image","type":"COMBO","widget":{"name":"image"},"link":null},{"localized_name":"choose file to upload","name":"upload","type":"IMAGEUPLOAD","widget":{"name":"upload"},"link":null}],"outputs":[{"localized_name":"IMAGE","name":"IMAGE","type":"IMAGE","links":[4]},{"localized_name":"MASK","name":"MASK","type":"MASK","links":null}],"properties":{"cnr_id":"comfy-core","ver":"0.22.0","Node name for S&R":"LoadImage"},"widgets_values":["1fe8b9d2-a586-49fd-bd74-94dad01f9141.jpg","image"]},{"id":5,"type":"LoadImage","pos":[-943.0316219425166,698.9850374938297],"size":[282.798828125,314.00000000000006],"flags":{},"order":1,"mode":0,"inputs":[{"localized_name":"image","name":"image","type":"COMBO","widget":{"name":"image"},"link":null},{"localized_name":"choose file to upload","name":"upload","type":"IMAGEUPLOAD","widget":{"name":"upload"},"link":null}],"outputs":[{"localized_name":"IMAGE","name":"IMAGE","type":"IMAGE","links":[5]},{"localized_name":"MASK","name":"MASK","type":"MASK","links":null}],"properties":{"cnr_id":"comfy-core","ver":"0.22.0","Node name for S&R":"LoadImage"},"widgets_values":["d2e78e0c-53b0-413b-939b-541375cfa1ec.jpg","image"]},{"id":3,"type":"Runware Model Search","pos":[-773.691111015741,8.450735327300883],"size":[272.111328125,154],"flags":{},"order":2,"mode":0,"inputs":[{"localized_name":"Model Search","name":"Model Search","type":"STRING","widget":{"name":"Model Search"},"link":null},{"localized_name":"Model Architecture","name":"Model Architecture","type":"COMBO","widget":{"name":"Model Architecture"},"link":null},{"localized_name":"ModelType","name":"ModelType","type":"COMBO","widget":{"name":"ModelType"},"link":null},{"localized_name":"ModelList","name":"ModelList","type":"COMBO","widget":{"name":"ModelList"},"link":null},{"localized_name":"Use Search Value","name":"Use Search Value","type":"BOOLEAN","widget":{"name":"Use Search Value"},"link":null}],"outputs":[{"localized_name":"Runware Model","name":"Runware Model","type":"RUNWAREMODEL","links":[1]}],"properties":{"cnr_id":"ComfyUI-Runware","ver":"89495cfc137c18cd1f5fca7eb52d3870822d5a65","Node name for S&R":"Runware Model Search"},"widgets_values":["bfl:flux@vto","All","Base Model","bfl:flux@vto (FLUX Virtual Try-On 1.0)",true],"bgcolor":"#5345bf"},{"id":1,"type":"Runware Image Inference","pos":[86.26102712585534,-54.459817683082285],"size":[400,1130],"flags":{},"order":4,"mode":0,"inputs":[{"localized_name":"Model","name":"Model","type":"RUNWAREMODEL","link":1},{"localized_name":"Accelerator","name":"Accelerator","shape":7,"type":"RUNWAREACCELERATOR","link":null},{"localized_name":"Lora","name":"Lora","shape":7,"type":"RUNWARELORA","link":null},{"localized_name":"Outpainting","name":"Outpainting","shape":7,"type":"RUNWAREOUTPAINT","link":null},{"localized_name":"IPAdapters","name":"IPAdapters","shape":7,"type":"RUNWAREIPAdapter","link":null},{"localized_name":"ControlNet","name":"ControlNet","shape":7,"type":"RUNWARECONTROLNET","link":null},{"localized_name":"Refiner","name":"Refiner","shape":7,"type":"RUNWAREREFINER","link":null},{"localized_name":"seedImage","name":"seedImage","shape":7,"type":"IMAGE","link":null},{"localized_name":"maskImage","name":"maskImage","shape":7,"type":"MASK","link":null},{"localized_name":"Embeddings","name":"Embeddings","shape":7,"type":"RUNWAREEMBEDDING","link":null},{"localized_name":"VAE","name":"VAE","shape":7,"type":"RUNWAREVAE","link":null},{"localized_name":"referenceImages","name":"referenceImages","shape":7,"type":"RUNWAREREFERENCEIMAGES","link":null},{"localized_name":"inputs","name":"inputs","shape":7,"type":"RUNWAREIMAGEINFERENCEINPUTS","link":3},{"localized_name":"providerSettings","name":"providerSettings","shape":7,"type":"RUNWAREPROVIDERSETTINGS","link":null},{"localized_name":"safetyInputs","name":"safetyInputs","shape":7,"type":"RUNWARESAFETYINPUTS","link":null},{"localized_name":"settings","name":"settings","shape":7,"type":"RUNWARESETTINGS","link":null},{"localized_name":"ultralytics","name":"ultralytics","shape":7,"type":"RUNWAREULTRALYTICSINPUTS","link":null},{"localized_name":"advancedFeatures","name":"advancedFeatures","shape":7,"type":"RUNWAREIMAGEINFERENCEADVANCEDFEATURES","link":null},{"localized_name":"positivePrompt","name":"positivePrompt","type":"STRING","widget":{"name":"positivePrompt"},"link":null},{"localized_name":"negativePrompt","name":"negativePrompt","type":"STRING","widget":{"name":"negativePrompt"},"link":null},{"localized_name":"Multi Inference Mode","name":"Multi Inference Mode","type":"BOOLEAN","widget":{"name":"Multi Inference Mode"},"link":null},{"localized_name":"Prompt Weighting","name":"Prompt Weighting","type":"COMBO","widget":{"name":"Prompt Weighting"},"link":null},{"localized_name":"dimensions","name":"dimensions","type":"COMBO","widget":{"name":"dimensions"},"link":null},{"localized_name":"width","name":"width","type":"INT","widget":{"name":"width"},"link":null},{"localized_name":"height","name":"height","type":"INT","widget":{"name":"height"},"link":null},{"localized_name":"useResolution","name":"useResolution","type":"BOOLEAN","widget":{"name":"useResolution"},"link":null},{"localized_name":"resolution","name":"resolution","type":"COMBO","widget":{"name":"resolution"},"link":null},{"localized_name":"useSteps","name":"useSteps","type":"BOOLEAN","widget":{"name":"useSteps"},"link":null},{"localized_name":"steps","name":"steps","type":"INT","widget":{"name":"steps"},"link":null},{"localized_name":"useScheduler","name":"useScheduler","type":"BOOLEAN","widget":{"name":"useScheduler"},"link":null},{"localized_name":"scheduler","name":"scheduler","type":"COMBO","widget":{"name":"scheduler"},"link":null},{"localized_name":"useCFGScale","name":"useCFGScale","type":"BOOLEAN","widget":{"name":"useCFGScale"},"link":null},{"localized_name":"cfgScale","name":"cfgScale","type":"FLOAT","widget":{"name":"cfgScale"},"link":null},{"localized_name":"useSeed","name":"useSeed","type":"BOOLEAN","widget":{"name":"useSeed"},"link":null},{"localized_name":"seed","name":"seed","type":"INT","widget":{"name":"seed"},"link":null},{"localized_name":"useClipSkip","name":"useClipSkip","type":"BOOLEAN","widget":{"name":"useClipSkip"},"link":null},{"localized_name":"clipSkip","name":"clipSkip","type":"INT","widget":{"name":"clipSkip"},"link":null},{"localized_name":"strength","name":"strength","type":"FLOAT","widget":{"name":"strength"},"link":null},{"localized_name":"Mask Margin","name":"Mask Margin","type":"BOOLEAN","widget":{"name":"Mask Margin"},"link":null},{"localized_name":"maskMargin","name":"maskMargin","type":"INT","widget":{"name":"maskMargin"},"link":null},{"localized_name":"outputFormat","name":"outputFormat","type":"COMBO","widget":{"name":"outputFormat"},"link":null},{"localized_name":"batchSize","name":"batchSize","type":"INT","widget":{"name":"batchSize"},"link":null},{"localized_name":"acceleration","name":"acceleration","type":"COMBO","widget":{"name":"acceleration"},"link":null},{"localized_name":"outputQuality","name":"outputQuality","type":"INT","widget":{"name":"outputQuality"},"link":null},{"localized_name":"useUpscaleFactor","name":"useUpscaleFactor","type":"BOOLEAN","widget":{"name":"useUpscaleFactor"},"link":null},{"localized_name":"upscaleFactor","name":"upscaleFactor","type":"COMBO","widget":{"name":"upscaleFactor"},"link":null}],"outputs":[{"localized_name":"IMAGE","name":"IMAGE","type":"STRING","links":[2]},{"localized_name":"RW-Task","name":"RW-Task","type":"RUNWARETASK","links":null}],"properties":{"cnr_id":"ComfyUI-Runware","ver":"89495cfc137c18cd1f5fca7eb52d3870822d5a65","Node name for S&R":"Runware Image Inference"},"widgets_values":["A handsome young man wearing the provided garment naturally and realistically, full upper body portrait, centered composition, photorealistic skin texture, realistic fabric draping and fit, modern fashion editorial style, soft studio lighting, clean background, natural pose, cinematic lighting, highly detailed, sharp focus, professional fashion photography, realistic proportions, high-quality composition","",false,"Disabled","None",512,512,false,"1k",false,4,false,"Default",false,6.5,false,1378814689,"randomize",false,0,0.8,false,32,"WEBP",1,"none",95,false,2],"bgcolor":"#5345bf"}],"links":[[1,3,0,1,0,"RUNWAREMODEL"],[2,1,0,6,0,"STRING"],[3,2,0,1,12,"RUNWAREIMAGEINFERENCEINPUTS"],[4,4,0,2,21,"IMAGE"],[5,5,0,2,22,"IMAGE"]],"groups":[],"config":{},"extra":{"ds":{"scale":0.505529313703492,"offset":[1286.8312326450907,220.27112610139724]}},"version":0.4} \ No newline at end of file From 58fd1a12d2451ae0fbeac0d7665d4bfd1858e869 Mon Sep 17 00:00:00 2001 From: Sirshendu Ganguly Date: Thu, 28 May 2026 19:59:46 +0530 Subject: [PATCH 11/15] Fixed to using roles --- modules/imageInferenceInputs.py | 38 ++++++++++------------ workflows/Runware_Image_Inference_VTO.json | 2 +- 2 files changed, 19 insertions(+), 21 deletions(-) diff --git a/modules/imageInferenceInputs.py b/modules/imageInferenceInputs.py index 2ea4672..2365e0d 100644 --- a/modules/imageInferenceInputs.py +++ b/modules/imageInferenceInputs.py @@ -27,6 +27,10 @@ class imageInferenceInputs: "tooltip": f"Optional tag describing {ordinal.capitalize()} Reference Image. Leave empty to omit.", "default": "", }) + optionalInputs[f"Reference Role {i}"] = ("STRING", { + "tooltip": f"Optional role for {ordinal} reference image (e.g. person, garment). Leave empty to omit.", + "default": "", + }) optionalInputs[f"Reference Type {i}"] = ("STRING", { "tooltip": f"Optional type for {ordinal} reference, e.g. 'sketch' for illustrative style models. Leave empty to omit.", "default": "", @@ -45,19 +49,12 @@ class imageInferenceInputs: "tooltip": f"Specifies {ordinal.capitalize()} Super Resolution Reference Image for the inputs.", }) - optionalInputs["person"] = ("IMAGE", { - "tooltip": "Person image for inputs.person." - }) - optionalInputs["garment"] = ("IMAGE", { - "tooltip": "Garment reference image for inputs.garment." - }) - return { "required": {}, "optional": optionalInputs } - DESCRIPTION = "Configure custom inputs for Runware Image Inference, including image/mask, reference images (with optional type e.g. 'sketch' for illustrative style models, and strength 0-1 for sketch), super resolution references, and person/garment images." + DESCRIPTION = "Configure custom inputs for Runware Image Inference, including image/mask, reference images (with optional tag, role, type e.g. 'sketch' for illustrative style models, and strength 0-1 for sketch), and super resolution references." FUNCTION = "createInputs" RETURN_TYPES = ("RUNWAREIMAGEINFERENCEINPUTS",) RETURN_NAMES = ("Inference Inputs",) @@ -67,8 +64,6 @@ class imageInferenceInputs: """Create image inference inputs from provided parameters""" image = kwargs.get("image", None) mask = kwargs.get("mask", None) - person = kwargs.get("person", None) - garment = kwargs.get("garment", None) inputs = {} @@ -76,10 +71,6 @@ class imageInferenceInputs: inputs["image"] = rwUtils.convertTensor2IMG(image) if mask is not None: inputs["mask"] = rwUtils.convertTensor2IMG(mask) - if person is not None: - inputs["person"] = rwUtils.convertTensor2IMG(person) - if garment is not None: - inputs["garment"] = rwUtils.convertTensor2IMG(garment) references = self._collectReferences(kwargs) if len(references) > 0: @@ -98,34 +89,41 @@ class imageInferenceInputs: 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}", "") + role = kwargs.get(f"Reference Role {i}", "") ref_type = kwargs.get(f"Reference Type {i}", "") strength = kwargs.get(f"Reference Strength {i}", 0.0) if image is not None: - reference_slots.append((image, tag, ref_type, strength)) + reference_slots.append((image, tag, role, ref_type, strength)) if not reference_slots: return [] has_tags = any( isinstance(tag, str) and tag.strip() != "" - for _, tag, _, _ in reference_slots + for _, tag, _, _, _ in reference_slots + ) + has_roles = any( + isinstance(role, str) and role.strip() != "" + for _, _, role, _, _ in reference_slots ) has_type = any( isinstance(rt, str) and rt.strip() != "" - for _, _, rt, _ in reference_slots + for _, _, _, rt, _ in reference_slots ) - if not has_tags and not has_type: + if not has_tags and not has_roles and not has_type: return [ rwUtils.convertTensor2IMG(image) - for image, _, _, _ in reference_slots + for image, _, _, _, _ in reference_slots ] references = [] - for image, tag, ref_type, strength in reference_slots: + for image, tag, role, ref_type, strength in reference_slots: entry = {"image": rwUtils.convertTensor2IMG(image)} if isinstance(tag, str) and tag.strip() != "": entry["tag"] = tag.strip() + if isinstance(role, str) and role.strip() != "": + entry["role"] = role.strip() if isinstance(ref_type, str) and ref_type.strip() != "": entry["type"] = ref_type.strip() if ref_type.strip().lower() == "sketch": diff --git a/workflows/Runware_Image_Inference_VTO.json b/workflows/Runware_Image_Inference_VTO.json index 316ff4b..ce2760a 100644 --- a/workflows/Runware_Image_Inference_VTO.json +++ b/workflows/Runware_Image_Inference_VTO.json @@ -1 +1 @@ -{"id":"3655737e-74ea-4ca7-b104-c3cea32f6ee5","revision":0,"last_node_id":6,"last_link_id":5,"nodes":[{"id":6,"type":"Runware Save Image","pos":[726.4894147644764,72.35343419027436],"size":[270,318],"flags":{},"order":5,"mode":0,"inputs":[{"localized_name":"Images","name":"Images","type":"STRING","widget":{"name":"Images"},"link":2},{"localized_name":"filenamePrefix","name":"filenamePrefix","type":"STRING","widget":{"name":"filenamePrefix"},"link":null},{"localized_name":"saveImage","name":"saveImage","type":"BOOLEAN","widget":{"name":"saveImage"},"link":null}],"outputs":[{"localized_name":"IMAGE","name":"IMAGE","type":"IMAGE","links":null}],"properties":{"cnr_id":"ComfyUI-Runware","ver":"89495cfc137c18cd1f5fca7eb52d3870822d5a65","Node name for S&R":"Runware Save Image"},"widgets_values":["","ComfyUI",true],"bgcolor":"#5345bf"},{"id":2,"type":"Runware Image Inference Inputs","pos":[-365.2299339589291,-46.32029206152259],"size":[403.740234375,1482],"flags":{},"order":3,"mode":0,"inputs":[{"localized_name":"image","name":"image","shape":7,"type":"IMAGE","link":null},{"localized_name":"mask","name":"mask","shape":7,"type":"IMAGE","link":null},{"localized_name":"Reference Image 1","name":"Reference Image 1","shape":7,"type":"IMAGE","link":null},{"localized_name":"Reference Image 2","name":"Reference Image 2","shape":7,"type":"IMAGE","link":null},{"localized_name":"Reference Image 3","name":"Reference Image 3","shape":7,"type":"IMAGE","link":null},{"localized_name":"Reference Image 4","name":"Reference Image 4","shape":7,"type":"IMAGE","link":null},{"localized_name":"Reference Image 5","name":"Reference Image 5","shape":7,"type":"IMAGE","link":null},{"localized_name":"Reference Image 6","name":"Reference Image 6","shape":7,"type":"IMAGE","link":null},{"localized_name":"Reference Image 7","name":"Reference Image 7","shape":7,"type":"IMAGE","link":null},{"localized_name":"Reference Image 8","name":"Reference Image 8","shape":7,"type":"IMAGE","link":null},{"localized_name":"Reference Image 9","name":"Reference Image 9","shape":7,"type":"IMAGE","link":null},{"localized_name":"Reference Image 10","name":"Reference Image 10","shape":7,"type":"IMAGE","link":null},{"localized_name":"Reference Image 11","name":"Reference Image 11","shape":7,"type":"IMAGE","link":null},{"localized_name":"Reference Image 12","name":"Reference Image 12","shape":7,"type":"IMAGE","link":null},{"localized_name":"Reference Image 13","name":"Reference Image 13","shape":7,"type":"IMAGE","link":null},{"localized_name":"Reference Image 14","name":"Reference Image 14","shape":7,"type":"IMAGE","link":null},{"localized_name":"Super Resolution Reference Image 1","name":"Super Resolution Reference Image 1","shape":7,"type":"IMAGE","link":null},{"localized_name":"Super Resolution Reference Image 2","name":"Super Resolution Reference Image 2","shape":7,"type":"IMAGE","link":null},{"localized_name":"Super Resolution Reference Image 3","name":"Super Resolution Reference Image 3","shape":7,"type":"IMAGE","link":null},{"localized_name":"Super Resolution Reference Image 4","name":"Super Resolution Reference Image 4","shape":7,"type":"IMAGE","link":null},{"localized_name":"Super Resolution Reference Image 5","name":"Super Resolution Reference Image 5","shape":7,"type":"IMAGE","link":null},{"localized_name":"person","name":"person","shape":7,"type":"IMAGE","link":4},{"localized_name":"garment","name":"garment","shape":7,"type":"IMAGE","link":5},{"localized_name":"Reference Tag 1","name":"Reference Tag 1","shape":7,"type":"STRING","widget":{"name":"Reference Tag 1"},"link":null},{"localized_name":"Reference Type 1","name":"Reference Type 1","shape":7,"type":"STRING","widget":{"name":"Reference Type 1"},"link":null},{"localized_name":"Reference Strength 1","name":"Reference Strength 1","shape":7,"type":"FLOAT","widget":{"name":"Reference Strength 1"},"link":null},{"localized_name":"Reference Tag 2","name":"Reference Tag 2","shape":7,"type":"STRING","widget":{"name":"Reference Tag 2"},"link":null},{"localized_name":"Reference Type 2","name":"Reference Type 2","shape":7,"type":"STRING","widget":{"name":"Reference Type 2"},"link":null},{"localized_name":"Reference Strength 2","name":"Reference Strength 2","shape":7,"type":"FLOAT","widget":{"name":"Reference Strength 2"},"link":null},{"localized_name":"Reference Tag 3","name":"Reference Tag 3","shape":7,"type":"STRING","widget":{"name":"Reference Tag 3"},"link":null},{"localized_name":"Reference Type 3","name":"Reference Type 3","shape":7,"type":"STRING","widget":{"name":"Reference Type 3"},"link":null},{"localized_name":"Reference Strength 3","name":"Reference Strength 3","shape":7,"type":"FLOAT","widget":{"name":"Reference Strength 3"},"link":null},{"localized_name":"Reference Tag 4","name":"Reference Tag 4","shape":7,"type":"STRING","widget":{"name":"Reference Tag 4"},"link":null},{"localized_name":"Reference Type 4","name":"Reference Type 4","shape":7,"type":"STRING","widget":{"name":"Reference Type 4"},"link":null},{"localized_name":"Reference Strength 4","name":"Reference Strength 4","shape":7,"type":"FLOAT","widget":{"name":"Reference Strength 4"},"link":null},{"localized_name":"Reference Tag 5","name":"Reference Tag 5","shape":7,"type":"STRING","widget":{"name":"Reference Tag 5"},"link":null},{"localized_name":"Reference Type 5","name":"Reference Type 5","shape":7,"type":"STRING","widget":{"name":"Reference Type 5"},"link":null},{"localized_name":"Reference Strength 5","name":"Reference Strength 5","shape":7,"type":"FLOAT","widget":{"name":"Reference Strength 5"},"link":null},{"localized_name":"Reference Tag 6","name":"Reference Tag 6","shape":7,"type":"STRING","widget":{"name":"Reference Tag 6"},"link":null},{"localized_name":"Reference Type 6","name":"Reference Type 6","shape":7,"type":"STRING","widget":{"name":"Reference Type 6"},"link":null},{"localized_name":"Reference Strength 6","name":"Reference Strength 6","shape":7,"type":"FLOAT","widget":{"name":"Reference Strength 6"},"link":null},{"localized_name":"Reference Tag 7","name":"Reference Tag 7","shape":7,"type":"STRING","widget":{"name":"Reference Tag 7"},"link":null},{"localized_name":"Reference Type 7","name":"Reference Type 7","shape":7,"type":"STRING","widget":{"name":"Reference Type 7"},"link":null},{"localized_name":"Reference Strength 7","name":"Reference Strength 7","shape":7,"type":"FLOAT","widget":{"name":"Reference Strength 7"},"link":null},{"localized_name":"Reference Tag 8","name":"Reference Tag 8","shape":7,"type":"STRING","widget":{"name":"Reference Tag 8"},"link":null},{"localized_name":"Reference Type 8","name":"Reference Type 8","shape":7,"type":"STRING","widget":{"name":"Reference Type 8"},"link":null},{"localized_name":"Reference Strength 8","name":"Reference Strength 8","shape":7,"type":"FLOAT","widget":{"name":"Reference Strength 8"},"link":null},{"localized_name":"Reference Tag 9","name":"Reference Tag 9","shape":7,"type":"STRING","widget":{"name":"Reference Tag 9"},"link":null},{"localized_name":"Reference Type 9","name":"Reference Type 9","shape":7,"type":"STRING","widget":{"name":"Reference Type 9"},"link":null},{"localized_name":"Reference Strength 9","name":"Reference Strength 9","shape":7,"type":"FLOAT","widget":{"name":"Reference Strength 9"},"link":null},{"localized_name":"Reference Tag 10","name":"Reference Tag 10","shape":7,"type":"STRING","widget":{"name":"Reference Tag 10"},"link":null},{"localized_name":"Reference Type 10","name":"Reference Type 10","shape":7,"type":"STRING","widget":{"name":"Reference Type 10"},"link":null},{"localized_name":"Reference Strength 10","name":"Reference Strength 10","shape":7,"type":"FLOAT","widget":{"name":"Reference Strength 10"},"link":null},{"localized_name":"Reference Tag 11","name":"Reference Tag 11","shape":7,"type":"STRING","widget":{"name":"Reference Tag 11"},"link":null},{"localized_name":"Reference Type 11","name":"Reference Type 11","shape":7,"type":"STRING","widget":{"name":"Reference Type 11"},"link":null},{"localized_name":"Reference Strength 11","name":"Reference Strength 11","shape":7,"type":"FLOAT","widget":{"name":"Reference Strength 11"},"link":null},{"localized_name":"Reference Tag 12","name":"Reference Tag 12","shape":7,"type":"STRING","widget":{"name":"Reference Tag 12"},"link":null},{"localized_name":"Reference Type 12","name":"Reference Type 12","shape":7,"type":"STRING","widget":{"name":"Reference Type 12"},"link":null},{"localized_name":"Reference Strength 12","name":"Reference Strength 12","shape":7,"type":"FLOAT","widget":{"name":"Reference Strength 12"},"link":null},{"localized_name":"Reference Tag 13","name":"Reference Tag 13","shape":7,"type":"STRING","widget":{"name":"Reference Tag 13"},"link":null},{"localized_name":"Reference Type 13","name":"Reference Type 13","shape":7,"type":"STRING","widget":{"name":"Reference Type 13"},"link":null},{"localized_name":"Reference Strength 13","name":"Reference Strength 13","shape":7,"type":"FLOAT","widget":{"name":"Reference Strength 13"},"link":null},{"localized_name":"Reference Tag 14","name":"Reference Tag 14","shape":7,"type":"STRING","widget":{"name":"Reference Tag 14"},"link":null},{"localized_name":"Reference Type 14","name":"Reference Type 14","shape":7,"type":"STRING","widget":{"name":"Reference Type 14"},"link":null},{"localized_name":"Reference Strength 14","name":"Reference Strength 14","shape":7,"type":"FLOAT","widget":{"name":"Reference Strength 14"},"link":null}],"outputs":[{"localized_name":"Inference Inputs","name":"Inference Inputs","type":"RUNWAREIMAGEINFERENCEINPUTS","links":[3]}],"properties":{"cnr_id":"ComfyUI-Runware","ver":"89495cfc137c18cd1f5fca7eb52d3870822d5a65","Node name for S&R":"Runware Image Inference Inputs"},"widgets_values":["","",0,"","",0,"","",0,"","",0,"","",0,"","",0,"","",0,"","",0,"","",0,"","",0,"","",0,"","",0,"","",0,"","",0],"bgcolor":"#5345bf"},{"id":4,"type":"LoadImage","pos":[-991.1887304210379,304.8989870658721],"size":[282.798828125,314.00000000000006],"flags":{},"order":0,"mode":0,"inputs":[{"localized_name":"image","name":"image","type":"COMBO","widget":{"name":"image"},"link":null},{"localized_name":"choose file to upload","name":"upload","type":"IMAGEUPLOAD","widget":{"name":"upload"},"link":null}],"outputs":[{"localized_name":"IMAGE","name":"IMAGE","type":"IMAGE","links":[4]},{"localized_name":"MASK","name":"MASK","type":"MASK","links":null}],"properties":{"cnr_id":"comfy-core","ver":"0.22.0","Node name for S&R":"LoadImage"},"widgets_values":["1fe8b9d2-a586-49fd-bd74-94dad01f9141.jpg","image"]},{"id":5,"type":"LoadImage","pos":[-943.0316219425166,698.9850374938297],"size":[282.798828125,314.00000000000006],"flags":{},"order":1,"mode":0,"inputs":[{"localized_name":"image","name":"image","type":"COMBO","widget":{"name":"image"},"link":null},{"localized_name":"choose file to upload","name":"upload","type":"IMAGEUPLOAD","widget":{"name":"upload"},"link":null}],"outputs":[{"localized_name":"IMAGE","name":"IMAGE","type":"IMAGE","links":[5]},{"localized_name":"MASK","name":"MASK","type":"MASK","links":null}],"properties":{"cnr_id":"comfy-core","ver":"0.22.0","Node name for S&R":"LoadImage"},"widgets_values":["d2e78e0c-53b0-413b-939b-541375cfa1ec.jpg","image"]},{"id":3,"type":"Runware Model Search","pos":[-773.691111015741,8.450735327300883],"size":[272.111328125,154],"flags":{},"order":2,"mode":0,"inputs":[{"localized_name":"Model Search","name":"Model Search","type":"STRING","widget":{"name":"Model Search"},"link":null},{"localized_name":"Model Architecture","name":"Model Architecture","type":"COMBO","widget":{"name":"Model Architecture"},"link":null},{"localized_name":"ModelType","name":"ModelType","type":"COMBO","widget":{"name":"ModelType"},"link":null},{"localized_name":"ModelList","name":"ModelList","type":"COMBO","widget":{"name":"ModelList"},"link":null},{"localized_name":"Use Search Value","name":"Use Search Value","type":"BOOLEAN","widget":{"name":"Use Search Value"},"link":null}],"outputs":[{"localized_name":"Runware Model","name":"Runware Model","type":"RUNWAREMODEL","links":[1]}],"properties":{"cnr_id":"ComfyUI-Runware","ver":"89495cfc137c18cd1f5fca7eb52d3870822d5a65","Node name for S&R":"Runware Model Search"},"widgets_values":["bfl:flux@vto","All","Base Model","bfl:flux@vto (FLUX Virtual Try-On 1.0)",true],"bgcolor":"#5345bf"},{"id":1,"type":"Runware Image Inference","pos":[86.26102712585534,-54.459817683082285],"size":[400,1130],"flags":{},"order":4,"mode":0,"inputs":[{"localized_name":"Model","name":"Model","type":"RUNWAREMODEL","link":1},{"localized_name":"Accelerator","name":"Accelerator","shape":7,"type":"RUNWAREACCELERATOR","link":null},{"localized_name":"Lora","name":"Lora","shape":7,"type":"RUNWARELORA","link":null},{"localized_name":"Outpainting","name":"Outpainting","shape":7,"type":"RUNWAREOUTPAINT","link":null},{"localized_name":"IPAdapters","name":"IPAdapters","shape":7,"type":"RUNWAREIPAdapter","link":null},{"localized_name":"ControlNet","name":"ControlNet","shape":7,"type":"RUNWARECONTROLNET","link":null},{"localized_name":"Refiner","name":"Refiner","shape":7,"type":"RUNWAREREFINER","link":null},{"localized_name":"seedImage","name":"seedImage","shape":7,"type":"IMAGE","link":null},{"localized_name":"maskImage","name":"maskImage","shape":7,"type":"MASK","link":null},{"localized_name":"Embeddings","name":"Embeddings","shape":7,"type":"RUNWAREEMBEDDING","link":null},{"localized_name":"VAE","name":"VAE","shape":7,"type":"RUNWAREVAE","link":null},{"localized_name":"referenceImages","name":"referenceImages","shape":7,"type":"RUNWAREREFERENCEIMAGES","link":null},{"localized_name":"inputs","name":"inputs","shape":7,"type":"RUNWAREIMAGEINFERENCEINPUTS","link":3},{"localized_name":"providerSettings","name":"providerSettings","shape":7,"type":"RUNWAREPROVIDERSETTINGS","link":null},{"localized_name":"safetyInputs","name":"safetyInputs","shape":7,"type":"RUNWARESAFETYINPUTS","link":null},{"localized_name":"settings","name":"settings","shape":7,"type":"RUNWARESETTINGS","link":null},{"localized_name":"ultralytics","name":"ultralytics","shape":7,"type":"RUNWAREULTRALYTICSINPUTS","link":null},{"localized_name":"advancedFeatures","name":"advancedFeatures","shape":7,"type":"RUNWAREIMAGEINFERENCEADVANCEDFEATURES","link":null},{"localized_name":"positivePrompt","name":"positivePrompt","type":"STRING","widget":{"name":"positivePrompt"},"link":null},{"localized_name":"negativePrompt","name":"negativePrompt","type":"STRING","widget":{"name":"negativePrompt"},"link":null},{"localized_name":"Multi Inference Mode","name":"Multi Inference Mode","type":"BOOLEAN","widget":{"name":"Multi Inference Mode"},"link":null},{"localized_name":"Prompt Weighting","name":"Prompt Weighting","type":"COMBO","widget":{"name":"Prompt Weighting"},"link":null},{"localized_name":"dimensions","name":"dimensions","type":"COMBO","widget":{"name":"dimensions"},"link":null},{"localized_name":"width","name":"width","type":"INT","widget":{"name":"width"},"link":null},{"localized_name":"height","name":"height","type":"INT","widget":{"name":"height"},"link":null},{"localized_name":"useResolution","name":"useResolution","type":"BOOLEAN","widget":{"name":"useResolution"},"link":null},{"localized_name":"resolution","name":"resolution","type":"COMBO","widget":{"name":"resolution"},"link":null},{"localized_name":"useSteps","name":"useSteps","type":"BOOLEAN","widget":{"name":"useSteps"},"link":null},{"localized_name":"steps","name":"steps","type":"INT","widget":{"name":"steps"},"link":null},{"localized_name":"useScheduler","name":"useScheduler","type":"BOOLEAN","widget":{"name":"useScheduler"},"link":null},{"localized_name":"scheduler","name":"scheduler","type":"COMBO","widget":{"name":"scheduler"},"link":null},{"localized_name":"useCFGScale","name":"useCFGScale","type":"BOOLEAN","widget":{"name":"useCFGScale"},"link":null},{"localized_name":"cfgScale","name":"cfgScale","type":"FLOAT","widget":{"name":"cfgScale"},"link":null},{"localized_name":"useSeed","name":"useSeed","type":"BOOLEAN","widget":{"name":"useSeed"},"link":null},{"localized_name":"seed","name":"seed","type":"INT","widget":{"name":"seed"},"link":null},{"localized_name":"useClipSkip","name":"useClipSkip","type":"BOOLEAN","widget":{"name":"useClipSkip"},"link":null},{"localized_name":"clipSkip","name":"clipSkip","type":"INT","widget":{"name":"clipSkip"},"link":null},{"localized_name":"strength","name":"strength","type":"FLOAT","widget":{"name":"strength"},"link":null},{"localized_name":"Mask Margin","name":"Mask Margin","type":"BOOLEAN","widget":{"name":"Mask Margin"},"link":null},{"localized_name":"maskMargin","name":"maskMargin","type":"INT","widget":{"name":"maskMargin"},"link":null},{"localized_name":"outputFormat","name":"outputFormat","type":"COMBO","widget":{"name":"outputFormat"},"link":null},{"localized_name":"batchSize","name":"batchSize","type":"INT","widget":{"name":"batchSize"},"link":null},{"localized_name":"acceleration","name":"acceleration","type":"COMBO","widget":{"name":"acceleration"},"link":null},{"localized_name":"outputQuality","name":"outputQuality","type":"INT","widget":{"name":"outputQuality"},"link":null},{"localized_name":"useUpscaleFactor","name":"useUpscaleFactor","type":"BOOLEAN","widget":{"name":"useUpscaleFactor"},"link":null},{"localized_name":"upscaleFactor","name":"upscaleFactor","type":"COMBO","widget":{"name":"upscaleFactor"},"link":null}],"outputs":[{"localized_name":"IMAGE","name":"IMAGE","type":"STRING","links":[2]},{"localized_name":"RW-Task","name":"RW-Task","type":"RUNWARETASK","links":null}],"properties":{"cnr_id":"ComfyUI-Runware","ver":"89495cfc137c18cd1f5fca7eb52d3870822d5a65","Node name for S&R":"Runware Image Inference"},"widgets_values":["A handsome young man wearing the provided garment naturally and realistically, full upper body portrait, centered composition, photorealistic skin texture, realistic fabric draping and fit, modern fashion editorial style, soft studio lighting, clean background, natural pose, cinematic lighting, highly detailed, sharp focus, professional fashion photography, realistic proportions, high-quality composition","",false,"Disabled","None",512,512,false,"1k",false,4,false,"Default",false,6.5,false,1378814689,"randomize",false,0,0.8,false,32,"WEBP",1,"none",95,false,2],"bgcolor":"#5345bf"}],"links":[[1,3,0,1,0,"RUNWAREMODEL"],[2,1,0,6,0,"STRING"],[3,2,0,1,12,"RUNWAREIMAGEINFERENCEINPUTS"],[4,4,0,2,21,"IMAGE"],[5,5,0,2,22,"IMAGE"]],"groups":[],"config":{},"extra":{"ds":{"scale":0.505529313703492,"offset":[1286.8312326450907,220.27112610139724]}},"version":0.4} \ No newline at end of file +{"id":"3655737e-74ea-4ca7-b104-c3cea32f6ee5","revision":0,"last_node_id":9,"last_link_id":12,"nodes":[{"id":6,"type":"Runware Save Image","pos":[726.4894147644764,72.35343419027436],"size":[270,318],"flags":{},"order":5,"mode":0,"inputs":[{"localized_name":"Images","name":"Images","type":"STRING","widget":{"name":"Images"},"link":2},{"localized_name":"filenamePrefix","name":"filenamePrefix","type":"STRING","widget":{"name":"filenamePrefix"},"link":null},{"localized_name":"saveImage","name":"saveImage","type":"BOOLEAN","widget":{"name":"saveImage"},"link":null}],"outputs":[{"localized_name":"IMAGE","name":"IMAGE","type":"IMAGE","links":null}],"properties":{"cnr_id":"ComfyUI-Runware","ver":"89495cfc137c18cd1f5fca7eb52d3870822d5a65","Node name for S&R":"Runware Save Image"},"widgets_values":["","ComfyUI",true],"bgcolor":"#5345bf"},{"id":3,"type":"Runware Model Search","pos":[-773.691111015741,8.450735327300883],"size":[272.111328125,154],"flags":{},"order":0,"mode":0,"inputs":[{"localized_name":"Model Search","name":"Model Search","type":"STRING","widget":{"name":"Model Search"},"link":null},{"localized_name":"Model Architecture","name":"Model Architecture","type":"COMBO","widget":{"name":"Model Architecture"},"link":null},{"localized_name":"ModelType","name":"ModelType","type":"COMBO","widget":{"name":"ModelType"},"link":null},{"localized_name":"ModelList","name":"ModelList","type":"COMBO","widget":{"name":"ModelList"},"link":null},{"localized_name":"Use Search Value","name":"Use Search Value","type":"BOOLEAN","widget":{"name":"Use Search Value"},"link":null}],"outputs":[{"localized_name":"Runware Model","name":"Runware Model","type":"RUNWAREMODEL","links":[1]}],"properties":{"cnr_id":"ComfyUI-Runware","ver":"89495cfc137c18cd1f5fca7eb52d3870822d5a65","Node name for S&R":"Runware Model Search"},"widgets_values":["bfl:flux@vto","All","Base Model","bfl:flux@vto (FLUX Virtual Try-On 1.0)",true],"bgcolor":"#5345bf"},{"id":1,"type":"Runware Image Inference","pos":[86.26102712585534,-54.459817683082285],"size":[400,1130],"flags":{},"order":4,"mode":0,"inputs":[{"localized_name":"Model","name":"Model","type":"RUNWAREMODEL","link":1},{"localized_name":"Accelerator","name":"Accelerator","shape":7,"type":"RUNWAREACCELERATOR","link":null},{"localized_name":"Lora","name":"Lora","shape":7,"type":"RUNWARELORA","link":null},{"localized_name":"Outpainting","name":"Outpainting","shape":7,"type":"RUNWAREOUTPAINT","link":null},{"localized_name":"IPAdapters","name":"IPAdapters","shape":7,"type":"RUNWAREIPAdapter","link":null},{"localized_name":"ControlNet","name":"ControlNet","shape":7,"type":"RUNWARECONTROLNET","link":null},{"localized_name":"Refiner","name":"Refiner","shape":7,"type":"RUNWAREREFINER","link":null},{"localized_name":"seedImage","name":"seedImage","shape":7,"type":"IMAGE","link":null},{"localized_name":"maskImage","name":"maskImage","shape":7,"type":"MASK","link":null},{"localized_name":"Embeddings","name":"Embeddings","shape":7,"type":"RUNWAREEMBEDDING","link":null},{"localized_name":"VAE","name":"VAE","shape":7,"type":"RUNWAREVAE","link":null},{"localized_name":"referenceImages","name":"referenceImages","shape":7,"type":"RUNWAREREFERENCEIMAGES","link":null},{"localized_name":"inputs","name":"inputs","shape":7,"type":"RUNWAREIMAGEINFERENCEINPUTS","link":10},{"localized_name":"providerSettings","name":"providerSettings","shape":7,"type":"RUNWAREPROVIDERSETTINGS","link":null},{"localized_name":"safetyInputs","name":"safetyInputs","shape":7,"type":"RUNWARESAFETYINPUTS","link":null},{"localized_name":"settings","name":"settings","shape":7,"type":"RUNWARESETTINGS","link":null},{"localized_name":"ultralytics","name":"ultralytics","shape":7,"type":"RUNWAREULTRALYTICSINPUTS","link":null},{"localized_name":"advancedFeatures","name":"advancedFeatures","shape":7,"type":"RUNWAREIMAGEINFERENCEADVANCEDFEATURES","link":null},{"localized_name":"positivePrompt","name":"positivePrompt","type":"STRING","widget":{"name":"positivePrompt"},"link":null},{"localized_name":"negativePrompt","name":"negativePrompt","type":"STRING","widget":{"name":"negativePrompt"},"link":null},{"localized_name":"Multi Inference Mode","name":"Multi Inference Mode","type":"BOOLEAN","widget":{"name":"Multi Inference Mode"},"link":null},{"localized_name":"Prompt Weighting","name":"Prompt Weighting","type":"COMBO","widget":{"name":"Prompt Weighting"},"link":null},{"localized_name":"dimensions","name":"dimensions","type":"COMBO","widget":{"name":"dimensions"},"link":null},{"localized_name":"width","name":"width","type":"INT","widget":{"name":"width"},"link":null},{"localized_name":"height","name":"height","type":"INT","widget":{"name":"height"},"link":null},{"localized_name":"useResolution","name":"useResolution","type":"BOOLEAN","widget":{"name":"useResolution"},"link":null},{"localized_name":"resolution","name":"resolution","type":"COMBO","widget":{"name":"resolution"},"link":null},{"localized_name":"useSteps","name":"useSteps","type":"BOOLEAN","widget":{"name":"useSteps"},"link":null},{"localized_name":"steps","name":"steps","type":"INT","widget":{"name":"steps"},"link":null},{"localized_name":"useScheduler","name":"useScheduler","type":"BOOLEAN","widget":{"name":"useScheduler"},"link":null},{"localized_name":"scheduler","name":"scheduler","type":"COMBO","widget":{"name":"scheduler"},"link":null},{"localized_name":"useCFGScale","name":"useCFGScale","type":"BOOLEAN","widget":{"name":"useCFGScale"},"link":null},{"localized_name":"cfgScale","name":"cfgScale","type":"FLOAT","widget":{"name":"cfgScale"},"link":null},{"localized_name":"useSeed","name":"useSeed","type":"BOOLEAN","widget":{"name":"useSeed"},"link":null},{"localized_name":"seed","name":"seed","type":"INT","widget":{"name":"seed"},"link":null},{"localized_name":"useClipSkip","name":"useClipSkip","type":"BOOLEAN","widget":{"name":"useClipSkip"},"link":null},{"localized_name":"clipSkip","name":"clipSkip","type":"INT","widget":{"name":"clipSkip"},"link":null},{"localized_name":"strength","name":"strength","type":"FLOAT","widget":{"name":"strength"},"link":null},{"localized_name":"Mask Margin","name":"Mask Margin","type":"BOOLEAN","widget":{"name":"Mask Margin"},"link":null},{"localized_name":"maskMargin","name":"maskMargin","type":"INT","widget":{"name":"maskMargin"},"link":null},{"localized_name":"outputFormat","name":"outputFormat","type":"COMBO","widget":{"name":"outputFormat"},"link":null},{"localized_name":"batchSize","name":"batchSize","type":"INT","widget":{"name":"batchSize"},"link":null},{"localized_name":"acceleration","name":"acceleration","type":"COMBO","widget":{"name":"acceleration"},"link":null},{"localized_name":"outputQuality","name":"outputQuality","type":"INT","widget":{"name":"outputQuality"},"link":null},{"localized_name":"useUpscaleFactor","name":"useUpscaleFactor","type":"BOOLEAN","widget":{"name":"useUpscaleFactor"},"link":null},{"localized_name":"upscaleFactor","name":"upscaleFactor","type":"COMBO","widget":{"name":"upscaleFactor"},"link":null}],"outputs":[{"localized_name":"IMAGE","name":"IMAGE","type":"STRING","links":[2]},{"localized_name":"RW-Task","name":"RW-Task","type":"RUNWARETASK","links":null}],"properties":{"cnr_id":"ComfyUI-Runware","ver":"89495cfc137c18cd1f5fca7eb52d3870822d5a65","Node name for S&R":"Runware Image Inference"},"widgets_values":["A handsome young man wearing the provided garment naturally and realistically, full upper body portrait, centered composition, photorealistic skin texture, realistic fabric draping and fit, modern fashion editorial style, soft studio lighting, clean background, natural pose, cinematic lighting, highly detailed, sharp focus, professional fashion photography, realistic proportions, high-quality composition","",false,"Disabled","None",512,512,false,"1k",false,4,false,"Default",false,6.5,false,1043606394,"randomize",false,0,0.8,false,32,"WEBP",1,"none",95,false,2],"bgcolor":"#5345bf"},{"id":4,"type":"LoadImage","pos":[-991.1887304210379,304.8989870658721],"size":[282.798828125,314.00000000000006],"flags":{},"order":1,"mode":0,"inputs":[{"localized_name":"image","name":"image","type":"COMBO","widget":{"name":"image"},"link":null},{"localized_name":"choose file to upload","name":"upload","type":"IMAGEUPLOAD","widget":{"name":"upload"},"link":null}],"outputs":[{"localized_name":"IMAGE","name":"IMAGE","type":"IMAGE","links":[11]},{"localized_name":"MASK","name":"MASK","type":"MASK","links":null}],"properties":{"cnr_id":"comfy-core","ver":"0.22.0","Node name for S&R":"LoadImage"},"widgets_values":["1fe8b9d2-a586-49fd-bd74-94dad01f9141.jpg","image"]},{"id":5,"type":"LoadImage","pos":[-943.0316219425166,698.9850374938297],"size":[282.798828125,314.00000000000006],"flags":{},"order":2,"mode":0,"inputs":[{"localized_name":"image","name":"image","type":"COMBO","widget":{"name":"image"},"link":null},{"localized_name":"choose file to upload","name":"upload","type":"IMAGEUPLOAD","widget":{"name":"upload"},"link":null}],"outputs":[{"localized_name":"IMAGE","name":"IMAGE","type":"IMAGE","links":[12]},{"localized_name":"MASK","name":"MASK","type":"MASK","links":null}],"properties":{"cnr_id":"comfy-core","ver":"0.22.0","Node name for S&R":"LoadImage"},"widgets_values":["d2e78e0c-53b0-413b-939b-541375cfa1ec.jpg","image"]},{"id":9,"type":"Runware Image Inference Inputs","pos":[-396.22791895667746,-11.697546085662132],"size":[403.740234375,1778],"flags":{},"order":3,"mode":0,"inputs":[{"localized_name":"image","name":"image","shape":7,"type":"IMAGE","link":null},{"localized_name":"mask","name":"mask","shape":7,"type":"IMAGE","link":null},{"localized_name":"Reference Image 1","name":"Reference Image 1","shape":7,"type":"IMAGE","link":11},{"localized_name":"Reference Image 2","name":"Reference Image 2","shape":7,"type":"IMAGE","link":12},{"localized_name":"Reference Image 3","name":"Reference Image 3","shape":7,"type":"IMAGE","link":null},{"localized_name":"Reference Image 4","name":"Reference Image 4","shape":7,"type":"IMAGE","link":null},{"localized_name":"Reference Image 5","name":"Reference Image 5","shape":7,"type":"IMAGE","link":null},{"localized_name":"Reference Image 6","name":"Reference Image 6","shape":7,"type":"IMAGE","link":null},{"localized_name":"Reference Image 7","name":"Reference Image 7","shape":7,"type":"IMAGE","link":null},{"localized_name":"Reference Image 8","name":"Reference Image 8","shape":7,"type":"IMAGE","link":null},{"localized_name":"Reference Image 9","name":"Reference Image 9","shape":7,"type":"IMAGE","link":null},{"localized_name":"Reference Image 10","name":"Reference Image 10","shape":7,"type":"IMAGE","link":null},{"localized_name":"Reference Image 11","name":"Reference Image 11","shape":7,"type":"IMAGE","link":null},{"localized_name":"Reference Image 12","name":"Reference Image 12","shape":7,"type":"IMAGE","link":null},{"localized_name":"Reference Image 13","name":"Reference Image 13","shape":7,"type":"IMAGE","link":null},{"localized_name":"Reference Image 14","name":"Reference Image 14","shape":7,"type":"IMAGE","link":null},{"localized_name":"Super Resolution Reference Image 1","name":"Super Resolution Reference Image 1","shape":7,"type":"IMAGE","link":null},{"localized_name":"Super Resolution Reference Image 2","name":"Super Resolution Reference Image 2","shape":7,"type":"IMAGE","link":null},{"localized_name":"Super Resolution Reference Image 3","name":"Super Resolution Reference Image 3","shape":7,"type":"IMAGE","link":null},{"localized_name":"Super Resolution Reference Image 4","name":"Super Resolution Reference Image 4","shape":7,"type":"IMAGE","link":null},{"localized_name":"Super Resolution Reference Image 5","name":"Super Resolution Reference Image 5","shape":7,"type":"IMAGE","link":null},{"localized_name":"Reference Tag 1","name":"Reference Tag 1","shape":7,"type":"STRING","widget":{"name":"Reference Tag 1"},"link":null},{"localized_name":"Reference Role 1","name":"Reference Role 1","shape":7,"type":"STRING","widget":{"name":"Reference Role 1"},"link":null},{"localized_name":"Reference Type 1","name":"Reference Type 1","shape":7,"type":"STRING","widget":{"name":"Reference Type 1"},"link":null},{"localized_name":"Reference Strength 1","name":"Reference Strength 1","shape":7,"type":"FLOAT","widget":{"name":"Reference Strength 1"},"link":null},{"localized_name":"Reference Tag 2","name":"Reference Tag 2","shape":7,"type":"STRING","widget":{"name":"Reference Tag 2"},"link":null},{"localized_name":"Reference Role 2","name":"Reference Role 2","shape":7,"type":"STRING","widget":{"name":"Reference Role 2"},"link":null},{"localized_name":"Reference Type 2","name":"Reference Type 2","shape":7,"type":"STRING","widget":{"name":"Reference Type 2"},"link":null},{"localized_name":"Reference Strength 2","name":"Reference Strength 2","shape":7,"type":"FLOAT","widget":{"name":"Reference Strength 2"},"link":null},{"localized_name":"Reference Tag 3","name":"Reference Tag 3","shape":7,"type":"STRING","widget":{"name":"Reference Tag 3"},"link":null},{"localized_name":"Reference Role 3","name":"Reference Role 3","shape":7,"type":"STRING","widget":{"name":"Reference Role 3"},"link":null},{"localized_name":"Reference Type 3","name":"Reference Type 3","shape":7,"type":"STRING","widget":{"name":"Reference Type 3"},"link":null},{"localized_name":"Reference Strength 3","name":"Reference Strength 3","shape":7,"type":"FLOAT","widget":{"name":"Reference Strength 3"},"link":null},{"localized_name":"Reference Tag 4","name":"Reference Tag 4","shape":7,"type":"STRING","widget":{"name":"Reference Tag 4"},"link":null},{"localized_name":"Reference Role 4","name":"Reference Role 4","shape":7,"type":"STRING","widget":{"name":"Reference Role 4"},"link":null},{"localized_name":"Reference Type 4","name":"Reference Type 4","shape":7,"type":"STRING","widget":{"name":"Reference Type 4"},"link":null},{"localized_name":"Reference Strength 4","name":"Reference Strength 4","shape":7,"type":"FLOAT","widget":{"name":"Reference Strength 4"},"link":null},{"localized_name":"Reference Tag 5","name":"Reference Tag 5","shape":7,"type":"STRING","widget":{"name":"Reference Tag 5"},"link":null},{"localized_name":"Reference Role 5","name":"Reference Role 5","shape":7,"type":"STRING","widget":{"name":"Reference Role 5"},"link":null},{"localized_name":"Reference Type 5","name":"Reference Type 5","shape":7,"type":"STRING","widget":{"name":"Reference Type 5"},"link":null},{"localized_name":"Reference Strength 5","name":"Reference Strength 5","shape":7,"type":"FLOAT","widget":{"name":"Reference Strength 5"},"link":null},{"localized_name":"Reference Tag 6","name":"Reference Tag 6","shape":7,"type":"STRING","widget":{"name":"Reference Tag 6"},"link":null},{"localized_name":"Reference Role 6","name":"Reference Role 6","shape":7,"type":"STRING","widget":{"name":"Reference Role 6"},"link":null},{"localized_name":"Reference Type 6","name":"Reference Type 6","shape":7,"type":"STRING","widget":{"name":"Reference Type 6"},"link":null},{"localized_name":"Reference Strength 6","name":"Reference Strength 6","shape":7,"type":"FLOAT","widget":{"name":"Reference Strength 6"},"link":null},{"localized_name":"Reference Tag 7","name":"Reference Tag 7","shape":7,"type":"STRING","widget":{"name":"Reference Tag 7"},"link":null},{"localized_name":"Reference Role 7","name":"Reference Role 7","shape":7,"type":"STRING","widget":{"name":"Reference Role 7"},"link":null},{"localized_name":"Reference Type 7","name":"Reference Type 7","shape":7,"type":"STRING","widget":{"name":"Reference Type 7"},"link":null},{"localized_name":"Reference Strength 7","name":"Reference Strength 7","shape":7,"type":"FLOAT","widget":{"name":"Reference Strength 7"},"link":null},{"localized_name":"Reference Tag 8","name":"Reference Tag 8","shape":7,"type":"STRING","widget":{"name":"Reference Tag 8"},"link":null},{"localized_name":"Reference Role 8","name":"Reference Role 8","shape":7,"type":"STRING","widget":{"name":"Reference Role 8"},"link":null},{"localized_name":"Reference Type 8","name":"Reference Type 8","shape":7,"type":"STRING","widget":{"name":"Reference Type 8"},"link":null},{"localized_name":"Reference Strength 8","name":"Reference Strength 8","shape":7,"type":"FLOAT","widget":{"name":"Reference Strength 8"},"link":null},{"localized_name":"Reference Tag 9","name":"Reference Tag 9","shape":7,"type":"STRING","widget":{"name":"Reference Tag 9"},"link":null},{"localized_name":"Reference Role 9","name":"Reference Role 9","shape":7,"type":"STRING","widget":{"name":"Reference Role 9"},"link":null},{"localized_name":"Reference Type 9","name":"Reference Type 9","shape":7,"type":"STRING","widget":{"name":"Reference Type 9"},"link":null},{"localized_name":"Reference Strength 9","name":"Reference Strength 9","shape":7,"type":"FLOAT","widget":{"name":"Reference Strength 9"},"link":null},{"localized_name":"Reference Tag 10","name":"Reference Tag 10","shape":7,"type":"STRING","widget":{"name":"Reference Tag 10"},"link":null},{"localized_name":"Reference Role 10","name":"Reference Role 10","shape":7,"type":"STRING","widget":{"name":"Reference Role 10"},"link":null},{"localized_name":"Reference Type 10","name":"Reference Type 10","shape":7,"type":"STRING","widget":{"name":"Reference Type 10"},"link":null},{"localized_name":"Reference Strength 10","name":"Reference Strength 10","shape":7,"type":"FLOAT","widget":{"name":"Reference Strength 10"},"link":null},{"localized_name":"Reference Tag 11","name":"Reference Tag 11","shape":7,"type":"STRING","widget":{"name":"Reference Tag 11"},"link":null},{"localized_name":"Reference Role 11","name":"Reference Role 11","shape":7,"type":"STRING","widget":{"name":"Reference Role 11"},"link":null},{"localized_name":"Reference Type 11","name":"Reference Type 11","shape":7,"type":"STRING","widget":{"name":"Reference Type 11"},"link":null},{"localized_name":"Reference Strength 11","name":"Reference Strength 11","shape":7,"type":"FLOAT","widget":{"name":"Reference Strength 11"},"link":null},{"localized_name":"Reference Tag 12","name":"Reference Tag 12","shape":7,"type":"STRING","widget":{"name":"Reference Tag 12"},"link":null},{"localized_name":"Reference Role 12","name":"Reference Role 12","shape":7,"type":"STRING","widget":{"name":"Reference Role 12"},"link":null},{"localized_name":"Reference Type 12","name":"Reference Type 12","shape":7,"type":"STRING","widget":{"name":"Reference Type 12"},"link":null},{"localized_name":"Reference Strength 12","name":"Reference Strength 12","shape":7,"type":"FLOAT","widget":{"name":"Reference Strength 12"},"link":null},{"localized_name":"Reference Tag 13","name":"Reference Tag 13","shape":7,"type":"STRING","widget":{"name":"Reference Tag 13"},"link":null},{"localized_name":"Reference Role 13","name":"Reference Role 13","shape":7,"type":"STRING","widget":{"name":"Reference Role 13"},"link":null},{"localized_name":"Reference Type 13","name":"Reference Type 13","shape":7,"type":"STRING","widget":{"name":"Reference Type 13"},"link":null},{"localized_name":"Reference Strength 13","name":"Reference Strength 13","shape":7,"type":"FLOAT","widget":{"name":"Reference Strength 13"},"link":null},{"localized_name":"Reference Tag 14","name":"Reference Tag 14","shape":7,"type":"STRING","widget":{"name":"Reference Tag 14"},"link":null},{"localized_name":"Reference Role 14","name":"Reference Role 14","shape":7,"type":"STRING","widget":{"name":"Reference Role 14"},"link":null},{"localized_name":"Reference Type 14","name":"Reference Type 14","shape":7,"type":"STRING","widget":{"name":"Reference Type 14"},"link":null},{"localized_name":"Reference Strength 14","name":"Reference Strength 14","shape":7,"type":"FLOAT","widget":{"name":"Reference Strength 14"},"link":null}],"outputs":[{"localized_name":"Inference Inputs","name":"Inference Inputs","type":"RUNWAREIMAGEINFERENCEINPUTS","links":[10]}],"properties":{"cnr_id":"ComfyUI-Runware","ver":"c84d195611e6a92ae44ab2c4898dad60fb093419","Node name for S&R":"Runware Image Inference Inputs"},"widgets_values":["","person","",0,"","garment","",0,"","","",0,"","","",0,"","","",0,"","","",0,"","","",0,"","","",0,"","","",0,"","","",0,"","","",0,"","","",0,"","","",0,"","","",0],"bgcolor":"#5345bf"}],"links":[[1,3,0,1,0,"RUNWAREMODEL"],[2,1,0,6,0,"STRING"],[10,9,0,1,12,"RUNWAREIMAGEINFERENCEINPUTS"],[11,4,0,9,2,"IMAGE"],[12,5,0,9,3,"IMAGE"]],"groups":[],"config":{},"extra":{"ds":{"scale":0.505529313703492,"offset":[1304.8584389869675,193.67075840662255]}},"version":0.4} \ No newline at end of file From dde85898864590cd10c92e86009fcbf7b74a2fe1 Mon Sep 17 00:00:00 2001 From: Sirshendu Ganguly Date: Fri, 29 May 2026 23:12:40 +0530 Subject: [PATCH 12/15] Add support for Trellis 2 --- __init__.py | 2 + clientlibs/main.js | 4 +- clientlibs/types.js | 5 ++ clientlibs/utils.js | 30 +++++++ modules/threeDInferenceSettings.py | 66 ++++++++++++-- modules/threeDInferenceSettingsMeshCluster.py | 90 +++++++++++++++++++ 6 files changed, 190 insertions(+), 7 deletions(-) create mode 100644 modules/threeDInferenceSettingsMeshCluster.py diff --git a/__init__.py b/__init__.py index 368c579..fbf4130 100644 --- a/__init__.py +++ b/__init__.py @@ -119,6 +119,7 @@ from .modules.threeDInferenceSettings import Runware3DInferenceSettings from .modules.threeDInferenceSettingsSparseStructure import Runware3DInferenceSettingsSparseStructure from .modules.threeDInferenceSettingsShapeSlat import Runware3DInferenceSettingsShapeSlat from .modules.threeDInferenceSettingsTexSlat import Runware3DInferenceSettingsTexSlat +from .modules.threeDInferenceSettingsMeshCluster import Runware3DInferenceSettingsMeshCluster from .modules.save3D import RunwareSave3D from .modules.saveText import RunwareSaveText from .modules.loadMesh import RunwareLoadMesh @@ -257,6 +258,7 @@ NODE_CLASS_MAPPINGS = { "Runware 3D Inference Settings Sparse Structure": Runware3DInferenceSettingsSparseStructure, "Runware 3D Inference Settings Shape Slat": Runware3DInferenceSettingsShapeSlat, "Runware 3D Inference Settings Tex Slat": Runware3DInferenceSettingsTexSlat, + "Runware 3D Inference Settings Mesh Cluster": Runware3DInferenceSettingsMeshCluster, "Runware Save 3D": RunwareSave3D, "Runware Save Text": RunwareSaveText, "Runware Load Mesh": RunwareLoadMesh, diff --git a/clientlibs/main.js b/clientlibs/main.js index 7cb4f4c..39293f0 100644 --- a/clientlibs/main.js +++ b/clientlibs/main.js @@ -1,6 +1,6 @@ import { app } from "../../scripts/app.js"; import { api } from "../../scripts/api.js"; -import { promptEnhanceHandler, syncDimensionsNodeHandler, searchNodeHandler, APIKeyHandler, captionNodeHandler, saveTextHandler, mediaUUIDHandler, save3DFilepathHandler, videoTranscriptionHandler, videoOutputsHandler, handleCustomErrors, videoInferenceDimensionsHandler, videoModelSearchFilterHandler, audioModelSearchFilterHandler, textModelSearchFilterHandler, vectorizeModelSearchFilterHandler, vectorizeToggleHandler, useParameterToggleHandler, imageInferenceToggleHandler, imageInferenceAdvancedFeaturesToggleHandler, watermarkAdvancedFeatureToggleHandler, videoInferenceSpeechInputToggleHandler, regionalPromptingRegionsToggleHandler, upscalerToggleHandler, imageUpscalerSettingsToggleHandler, videoUpscalerToggleHandler, audioInferenceToggleHandler, audioInferenceSpeechToggleHandler, audioSettingsToggleHandler, textInferenceSettingsToggleHandler, videoSettingsToggleHandler, videoInferenceSettingsTtsToggleHandler, videoInferenceSettingsActiveSpeakerDetectionToggleHandler, videoInferenceSettingsActiveSpeakerBoundingBoxesToggleHandler, videoInferenceSettingsSegmentsToggleHandler, acceleratorOptionsToggleHandler, bytedanceProviderSettingsToggleHandler, xaiProviderSettingsToggleHandler, viduProviderSettingsToggleHandler, sourcefulProviderSettingsToggleHandler, sourcefulProviderSettingsFontsToggleHandler, threeDInferenceToggleHandler, threeDInferenceSettingsToggleHandler, threeDInferenceSettingsLatToggleHandler, ultralyticsProviderSettingsToggleHandler, openaiProviderSettingsToggleHandler, lightricksProviderSettingsToggleHandler, klingProviderSettingsToggleHandler, lumaProviderSettingsToggleHandler, briaProviderSettingsToggleHandler, pixverseProviderSettingsToggleHandler, alibabaProviderSettingsToggleHandler, mireloProviderSettingsToggleHandler, googleProviderSettingsToggleHandler, syncProviderSettingsToggleHandler, syncSegmentToggleHandler, settingsToggleHandler, outpaintSettingsToggleHandler, safetyInputsToggleHandler, imageInferenceSettingsColorPaletteToggleHandler, imageInferenceSettingsMoodboardsToggleHandler, audioInputToggleHandler, speechInputToggleHandler, briaProviderMaskToggleHandler, wanAnimateAdvancedFeatureSettingsToggleHandler, videoAdvancedFeatureInputsToggleHandler, audioInferenceInputsToggleHandler, audioInferenceSpeechVoicesToggleHandler, referenceVideosToggleHandler } from "./utils.js"; +import { promptEnhanceHandler, syncDimensionsNodeHandler, searchNodeHandler, APIKeyHandler, captionNodeHandler, saveTextHandler, mediaUUIDHandler, save3DFilepathHandler, videoTranscriptionHandler, videoOutputsHandler, handleCustomErrors, videoInferenceDimensionsHandler, videoModelSearchFilterHandler, audioModelSearchFilterHandler, textModelSearchFilterHandler, vectorizeModelSearchFilterHandler, vectorizeToggleHandler, useParameterToggleHandler, imageInferenceToggleHandler, imageInferenceAdvancedFeaturesToggleHandler, watermarkAdvancedFeatureToggleHandler, videoInferenceSpeechInputToggleHandler, regionalPromptingRegionsToggleHandler, upscalerToggleHandler, imageUpscalerSettingsToggleHandler, videoUpscalerToggleHandler, audioInferenceToggleHandler, audioInferenceSpeechToggleHandler, audioSettingsToggleHandler, textInferenceSettingsToggleHandler, videoSettingsToggleHandler, videoInferenceSettingsTtsToggleHandler, videoInferenceSettingsActiveSpeakerDetectionToggleHandler, videoInferenceSettingsActiveSpeakerBoundingBoxesToggleHandler, videoInferenceSettingsSegmentsToggleHandler, acceleratorOptionsToggleHandler, bytedanceProviderSettingsToggleHandler, xaiProviderSettingsToggleHandler, viduProviderSettingsToggleHandler, sourcefulProviderSettingsToggleHandler, sourcefulProviderSettingsFontsToggleHandler, threeDInferenceToggleHandler, threeDInferenceSettingsToggleHandler, threeDInferenceSettingsLatToggleHandler, threeDInferenceSettingsMeshClusterToggleHandler, ultralyticsProviderSettingsToggleHandler, openaiProviderSettingsToggleHandler, lightricksProviderSettingsToggleHandler, klingProviderSettingsToggleHandler, lumaProviderSettingsToggleHandler, briaProviderSettingsToggleHandler, pixverseProviderSettingsToggleHandler, alibabaProviderSettingsToggleHandler, mireloProviderSettingsToggleHandler, googleProviderSettingsToggleHandler, syncProviderSettingsToggleHandler, syncSegmentToggleHandler, settingsToggleHandler, outpaintSettingsToggleHandler, safetyInputsToggleHandler, imageInferenceSettingsColorPaletteToggleHandler, imageInferenceSettingsMoodboardsToggleHandler, audioInputToggleHandler, speechInputToggleHandler, briaProviderMaskToggleHandler, wanAnimateAdvancedFeatureSettingsToggleHandler, videoAdvancedFeatureInputsToggleHandler, audioInferenceInputsToggleHandler, audioInferenceSpeechVoicesToggleHandler, referenceVideosToggleHandler } from "./utils.js"; import { RUNWARE_NODE_TYPES, RUNWARE_NODE_PROPS, SEARCH_TERMS } from "./types.js"; const nodeInitList = []; @@ -176,6 +176,8 @@ app.registerExtension({ nodeClass === RUNWARE_NODE_TYPES.THREEDINFERENCESETTINGSSHAPESLAT || nodeClass === RUNWARE_NODE_TYPES.THREEDINFERENCESETTINGSTEXSLAT) { threeDInferenceSettingsLatToggleHandler(node); + } else if(nodeClass === RUNWARE_NODE_TYPES.THREEDINFERENCESETTINGSMESHCLUSTER) { + threeDInferenceSettingsMeshClusterToggleHandler(node); } if(crNodeProps.colorModeOnly === true) return; diff --git a/clientlibs/types.js b/clientlibs/types.js index e1cc897..e6c329b 100644 --- a/clientlibs/types.js +++ b/clientlibs/types.js @@ -169,6 +169,7 @@ const RUNWARE_NODE_TYPES = { THREEDINFERENCESETTINGSSPARSESTRUCTURE: "Runware 3D Inference Settings Sparse Structure", THREEDINFERENCESETTINGSSHAPESLAT: "Runware 3D Inference Settings Shape Slat", THREEDINFERENCESETTINGSTEXSLAT: "Runware 3D Inference Settings Tex Slat", + THREEDINFERENCESETTINGSMESHCLUSTER: "Runware 3D Inference Settings Mesh Cluster", SAVE3D: "Runware Save 3D", LOADMESH: "Runware Load Mesh", WATERMARKADVANCEDFEATURE: "Runware Watermark Advanced Feature", @@ -670,6 +671,10 @@ const RUNWARE_NODE_PROPS = { bgColor: DEFAULT_BGCOLOR, colorModeOnly: true, }, + [RUNWARE_NODE_TYPES.THREEDINFERENCESETTINGSMESHCLUSTER]: { + bgColor: DEFAULT_BGCOLOR, + colorModeOnly: true, + }, [RUNWARE_NODE_TYPES.SAVE3D]: { bgColor: DEFAULT_BGCOLOR, colorModeOnly: true, diff --git a/clientlibs/utils.js b/clientlibs/utils.js index 6de9389..0f90b98 100644 --- a/clientlibs/utils.js +++ b/clientlibs/utils.js @@ -2224,6 +2224,14 @@ function threeDInferenceSettingsToggleHandler(node) { ["useModeration", "moderation"], ["useSavePreRemeshedModel", "savePreRemeshedModel"], ["useTexturePrompt", "texturePrompt"], + ["useFaceCount", "faceCount"], + ["useGenerateType", "generateType"], + ["usePolygonType", "polygonType"], + ["useGeometryOnly", "geometryOnly"], + ["useRemeshBand", "remeshBand"], + ["useRemeshProject", "remeshProject"], + ["useTextureFormat", "textureFormat"], + ["useAlphaMode", "alphaMode"], ]; pairs.forEach(([useName, paramName]) => { const useW = node.widgets.find(w => w.name === useName); @@ -2260,6 +2268,27 @@ function threeDInferenceSettingsLatToggleHandler(node) { }); } +function threeDInferenceSettingsMeshClusterToggleHandler(node) { + const pairs = [ + ["useThresholdConeHalfAngleRad", "thresholdConeHalfAngleRad"], + ["useRefineIterations", "refineIterations"], + ["useGlobalIterations", "globalIterations"], + ["useSmoothStrength", "smoothStrength"], + ]; + pairs.forEach(([useName, paramName]) => { + const useW = node.widgets.find(w => w.name === useName); + const paramW = node.widgets.find(w => w.name === paramName); + if (!useW || !paramW) return; + function toggleEnabled() { + const enabled = useW.value === true; + toggleWidgetEnabled(paramW, enabled, node); + node.setDirtyCanvas(true); + } + appendWidgetCB(useW, () => setTimeout(toggleEnabled, 50)); + setTimeout(toggleEnabled, 100); + }); +} + function openaiProviderSettingsToggleHandler(openaiNode) { // Find all "use" parameter widgets for OpenAI Provider Settings (these are COMBO widgets) const useBackgroundWidget = openaiNode.widgets.find(w => w.name === "useBackground"); @@ -5043,6 +5072,7 @@ export { threeDInferenceToggleHandler, threeDInferenceSettingsToggleHandler, threeDInferenceSettingsLatToggleHandler, + threeDInferenceSettingsMeshClusterToggleHandler, ultralyticsProviderSettingsToggleHandler, openaiProviderSettingsToggleHandler, lightricksProviderSettingsToggleHandler, diff --git a/modules/threeDInferenceSettings.py b/modules/threeDInferenceSettings.py index 52414d9..7266974 100644 --- a/modules/threeDInferenceSettings.py +++ b/modules/threeDInferenceSettings.py @@ -1,9 +1,9 @@ """ Runware 3D Inference Settings Node -Main settings for 3D inference: textureSize, decimationTarget, remesh, resolution, -imageAutoFix, faceLimit, texture, pbr, Tripo mesh/texture options, material/quality, +Main settings for 3D inference: textureSize, decimationTarget, remesh, remeshBand, remeshProject, +resolution, imageAutoFix, faceLimit, texture, pbr, textureFormat, alphaMode, Tripo mesh/texture options, material/quality, polyCount, taPose, boundingBox, meshMode, addons, hdTexture, and sub-configs -sparseStructure, shapeSlat, texSlat from connected nodes. +sparseStructure, shapeSlat, texSlat, meshCluster from connected nodes. """ from typing import Dict, Any @@ -425,6 +425,47 @@ class Runware3DInferenceSettings: "label_on": "true", "label_off": "false", }), + "meshCluster": ("RUNWARE3DINFERENCESETTINGSLAT", { + "tooltip": "Connect Runware 3D Inference Settings Mesh Cluster node.", + }), + "useRemeshBand": ("BOOLEAN", { + "tooltip": "Enable to include remeshBand in settings.", + "default": False, + }), + "remeshBand": ("FLOAT", { + "tooltip": "Narrow-band width (in voxels) for dual-contouring remeshing. Must be greater than 0 when remesh is true. Only used when enabled.", + "default": 1.0, + "min": 0.0, + "max": 16.0, + "step": 0.1, + }), + "useRemeshProject": ("BOOLEAN", { + "tooltip": "Enable to include remeshProject in settings.", + "default": False, + }), + "remeshProject": ("FLOAT", { + "tooltip": "Projection factor for snapping remeshed vertices back to the original surface. Must be greater than 0 when remesh is true. Only used when enabled.", + "default": 0.0, + "min": 0.0, + "max": 1.0, + "step": 0.01, + }), + "useTextureFormat": ("BOOLEAN", { + "tooltip": "Enable to include textureFormat in settings.", + "default": False, + }), + "textureFormat": (["WEBP", "PNG"], { + "tooltip": "Texture format stored in the GLB output: WEBP or PNG. Only used when 'Use Texture Format' is enabled.", + "default": "WEBP", + }), + "useAlphaMode": ("BOOLEAN", { + "tooltip": "Enable to include alphaMode in settings.", + "default": False, + }), + "alphaMode": (["OPAQUE", "BLEND", "MASK"], { + "tooltip": "Material alpha mode. Only used when 'Use Alpha Mode' is enabled.", + "default": "OPAQUE", + }), } } @@ -433,10 +474,11 @@ class Runware3DInferenceSettings: FUNCTION = "create" CATEGORY = "Runware" DESCRIPTION = ( - "Configure Runware 3D Inference settings: textureSize, decimationTarget, remesh, resolution, imageAutoFix, faceLimit, " - "texture, pbr, textureSeed, textureAlignment, textureQuality, autoSize, orientation, quad, compress, " + "Configure Runware 3D Inference settings: textureSize, decimationTarget, remesh, remeshBand, remeshProject, " + "resolution, imageAutoFix, faceLimit, texture, pbr, textureSeed, textureAlignment, textureQuality, " + "textureFormat, alphaMode, autoSize, orientation, quad, compress, " "smartLowPoly, generateParts, exportUv, geometryQuality, originalAlpha, material, quality, polyCount, " - "taPose, boundingBox, meshMode, addons, hdTexture, and lat configs." + "taPose, boundingBox, meshMode, addons, hdTexture, lat configs, and meshCluster." ) def create(self, **kwargs) -> tuple[Dict[str, Any]]: @@ -448,6 +490,10 @@ class Runware3DInferenceSettings: settings["decimationTarget"] = int(kwargs.get("decimationTarget", 500000)) if kwargs.get("useRemesh", False): settings["remesh"] = bool(kwargs.get("remesh", True)) + if kwargs.get("useRemeshBand", False): + settings["remeshBand"] = float(kwargs.get("remeshBand", 1.0)) + if kwargs.get("useRemeshProject", False): + settings["remeshProject"] = float(kwargs.get("remeshProject", 0.0)) if kwargs.get("useResolution", False): settings["resolution"] = int(kwargs.get("resolution", 1024)) @@ -473,6 +519,10 @@ class Runware3DInferenceSettings: settings["textureAlignment"] = kwargs.get("textureAlignment", "original_image") if kwargs.get("useTextureQuality", False): settings["textureQuality"] = kwargs.get("textureQuality", "standard") + if kwargs.get("useTextureFormat", False): + settings["textureFormat"] = kwargs.get("textureFormat", "WEBP") + if kwargs.get("useAlphaMode", False): + settings["alphaMode"] = kwargs.get("alphaMode", "OPAQUE") if kwargs.get("useAutoSize", False): settings["autoSize"] = bool(kwargs.get("autoSize", False)) if kwargs.get("useOrientation", False): @@ -556,6 +606,10 @@ class Runware3DInferenceSettings: if tex is not None and isinstance(tex, dict) and len(tex) > 0: settings["texSlat"] = tex + mesh_cluster = kwargs.get("meshCluster", None) + if mesh_cluster is not None and isinstance(mesh_cluster, dict) and len(mesh_cluster) > 0: + settings["meshCluster"] = mesh_cluster + return (settings,) diff --git a/modules/threeDInferenceSettingsMeshCluster.py b/modules/threeDInferenceSettingsMeshCluster.py new file mode 100644 index 0000000..9efac65 --- /dev/null +++ b/modules/threeDInferenceSettingsMeshCluster.py @@ -0,0 +1,90 @@ +""" +Runware 3D Inference Settings Mesh Cluster Node +Outputs meshCluster config: thresholdConeHalfAngleRad, refineIterations, +globalIterations, smoothStrength +""" + +import math +from typing import Dict, Any + + +class Runware3DInferenceSettingsMeshCluster: + """Runware 3D Inference Settings Mesh Cluster Node""" + + @classmethod + def INPUT_TYPES(cls): + return { + "required": {}, + "optional": { + "useThresholdConeHalfAngleRad": ("BOOLEAN", { + "tooltip": "Enable to include thresholdConeHalfAngleRad in meshCluster", + "default": False, + }), + "thresholdConeHalfAngleRad": ("FLOAT", { + "tooltip": "Cone half-angle threshold (radians) used during UV chart clustering. Only used when enabled.", + "default": math.pi / 2, + "min": 0.0, + "max": math.pi, + "step": 0.01, + }), + "useRefineIterations": ("BOOLEAN", { + "tooltip": "Enable to include refineIterations in meshCluster", + "default": False, + }), + "refineIterations": ("INT", { + "tooltip": "Local refinement iterations for chart clustering. Only used when enabled.", + "default": 0, + "min": 0, + "max": 64, + "step": 1, + }), + "useGlobalIterations": ("BOOLEAN", { + "tooltip": "Enable to include globalIterations in meshCluster", + "default": False, + }), + "globalIterations": ("INT", { + "tooltip": "Global iterations for chart clustering. Only used when enabled.", + "default": 1, + "min": 0, + "max": 64, + "step": 1, + }), + "useSmoothStrength": ("BOOLEAN", { + "tooltip": "Enable to include smoothStrength in meshCluster", + "default": False, + }), + "smoothStrength": ("INT", { + "tooltip": "Smoothing strength applied during chart clustering. Only used when enabled.", + "default": 1, + "min": 0, + "max": 10, + "step": 1, + }), + } + } + + RETURN_TYPES = ("RUNWARE3DINFERENCESETTINGSLAT",) + RETURN_NAMES = ("Mesh Cluster",) + FUNCTION = "create" + CATEGORY = "Runware" + DESCRIPTION = "Configure mesh cluster parameters for Runware 3D Inference settings." + + def create(self, **kwargs) -> tuple[Dict[str, Any]]: + out: Dict[str, Any] = {} + if kwargs.get("useThresholdConeHalfAngleRad", False): + out["thresholdConeHalfAngleRad"] = float(kwargs.get("thresholdConeHalfAngleRad", math.pi / 2)) + if kwargs.get("useRefineIterations", False): + out["refineIterations"] = int(kwargs.get("refineIterations", 0)) + if kwargs.get("useGlobalIterations", False): + out["globalIterations"] = int(kwargs.get("globalIterations", 1)) + if kwargs.get("useSmoothStrength", False): + out["smoothStrength"] = int(kwargs.get("smoothStrength", 1)) + return (out,) + + +NODE_CLASS_MAPPINGS = { + "Runware3DInferenceSettingsMeshCluster": Runware3DInferenceSettingsMeshCluster, +} +NODE_DISPLAY_NAME_MAPPINGS = { + "Runware3DInferenceSettingsMeshCluster": "Runware 3D Inference Settings Mesh Cluster", +} From 8c6a478cad2b0bd9b32c35aaa72eec906a8671fe Mon Sep 17 00:00:00 2001 From: Sirshendu Ganguly Date: Fri, 29 May 2026 23:20:33 +0530 Subject: [PATCH 13/15] Added workflow --- workflows/Runware_3d_Inference_Trellis_2_alphamode.json | 1 + 1 file changed, 1 insertion(+) create mode 100644 workflows/Runware_3d_Inference_Trellis_2_alphamode.json diff --git a/workflows/Runware_3d_Inference_Trellis_2_alphamode.json b/workflows/Runware_3d_Inference_Trellis_2_alphamode.json new file mode 100644 index 0000000..aa00af5 --- /dev/null +++ b/workflows/Runware_3d_Inference_Trellis_2_alphamode.json @@ -0,0 +1 @@ +{"id":"a5d87c24-fb34-4b94-8a9b-3dc4ab80df2a","revision":0,"last_node_id":5,"last_link_id":3,"nodes":[{"id":2,"type":"Runware Save 3D","pos":[787.0926635168705,-62.82743222548057],"size":[270,106],"flags":{},"order":4,"mode":0,"inputs":[{"localized_name":"3dObject","name":"3dObject","type":"STRING","widget":{"name":"3dObject"},"link":1},{"localized_name":"filenamePrefix","name":"filenamePrefix","type":"STRING","widget":{"name":"filenamePrefix"},"link":null},{"localized_name":"filepath","name":"filepath","shape":7,"type":"STRING","widget":{"name":"filepath"},"link":null}],"outputs":[{"localized_name":"filepath","name":"filepath","type":"STRING","links":null}],"properties":{"cnr_id":"ComfyUI-Runware","ver":"dde85898864590cd10c92e86009fcbf7b74a2fe1","Node name for S&R":"Runware Save 3D"},"widgets_values":["","ComfyUI","/Users/sirshenduganguly/Downloads/Runware-codebase/ComfyUI/output/3d_models/ComfyUI_20260529_231846.glb"],"bgcolor":"#5345bf"},{"id":1,"type":"Runware 3D Inference","pos":[-139.24153748139744,-282.38381499362237],"size":[400,330],"flags":{},"order":3,"mode":0,"inputs":[{"localized_name":"inputs","name":"inputs","shape":7,"type":"RUNWARE3DINFERENCEINPUTS","link":2},{"localized_name":"settings","name":"settings","shape":7,"type":"RUNWARE3DINFERENCESETTINGS","link":null},{"localized_name":"Model","name":"Model","type":"COMBO","widget":{"name":"Model"},"link":null},{"localized_name":"positivePrompt","name":"positivePrompt","type":"STRING","widget":{"name":"positivePrompt"},"link":null},{"localized_name":"negativePrompt","name":"negativePrompt","type":"STRING","widget":{"name":"negativePrompt"},"link":null},{"localized_name":"useSeed","name":"useSeed","type":"BOOLEAN","widget":{"name":"useSeed"},"link":null},{"localized_name":"seed","name":"seed","type":"INT","widget":{"name":"seed"},"link":null},{"localized_name":"outputFormat","name":"outputFormat","type":"COMBO","widget":{"name":"outputFormat"},"link":null},{"localized_name":"useOutputQuality","name":"useOutputQuality","shape":7,"type":"BOOLEAN","widget":{"name":"useOutputQuality"},"link":null},{"localized_name":"outputQuality","name":"outputQuality","shape":7,"type":"INT","widget":{"name":"outputQuality"},"link":null}],"outputs":[{"localized_name":"3dObject","name":"3dObject","type":"STRING","links":[1]}],"properties":{"cnr_id":"ComfyUI-Runware","ver":"dde85898864590cd10c92e86009fcbf7b74a2fe1","Node name for S&R":"Runware 3D Inference"},"widgets_values":["TRELLIS.2","","",true,502879673,"randomize","GLB",false,95],"bgcolor":"#5345bf"},{"id":3,"type":"Runware 3D Inference Inputs","pos":[-45.829691285943866,162.31560728727223],"size":[291.853125,238],"flags":{},"order":2,"mode":0,"inputs":[{"localized_name":"image","name":"image","shape":7,"type":"IMAGE","link":3},{"localized_name":"mask","name":"mask","shape":7,"type":"IMAGE","link":null},{"localized_name":"images_1","name":"images_1","shape":7,"type":"IMAGE","link":null},{"localized_name":"images_2","name":"images_2","shape":7,"type":"IMAGE","link":null},{"localized_name":"images_3","name":"images_3","shape":7,"type":"IMAGE","link":null},{"localized_name":"images_4","name":"images_4","shape":7,"type":"IMAGE","link":null},{"localized_name":"images_5","name":"images_5","shape":7,"type":"IMAGE","link":null},{"localized_name":"images_6","name":"images_6","shape":7,"type":"IMAGE","link":null},{"localized_name":"images_7","name":"images_7","shape":7,"type":"IMAGE","link":null},{"localized_name":"images_8","name":"images_8","shape":7,"type":"IMAGE","link":null},{"localized_name":"meshFile","name":"meshFile","shape":7,"type":"STRING","widget":{"name":"meshFile"},"link":null}],"outputs":[{"localized_name":"Inputs","name":"Inputs","type":"RUNWARE3DINFERENCEINPUTS","links":[2]}],"properties":{"cnr_id":"ComfyUI-Runware","ver":"dde85898864590cd10c92e86009fcbf7b74a2fe1","Node name for S&R":"Runware 3D Inference Inputs"},"widgets_values":[""],"bgcolor":"#5345bf"},{"id":4,"type":"LoadImage","pos":[-18.46138470588654,541.3814716307909],"size":[282.798828125,314.0000000000001],"flags":{},"order":0,"mode":0,"inputs":[{"localized_name":"image","name":"image","type":"COMBO","widget":{"name":"image"},"link":null},{"localized_name":"choose file to upload","name":"upload","type":"IMAGEUPLOAD","widget":{"name":"upload"},"link":null}],"outputs":[{"localized_name":"IMAGE","name":"IMAGE","type":"IMAGE","links":[3]},{"localized_name":"MASK","name":"MASK","type":"MASK","links":null}],"properties":{"cnr_id":"comfy-core","ver":"0.22.0","Node name for S&R":"LoadImage"},"widgets_values":[".webp","image"]},{"id":5,"type":"Runware 3D Inference Settings","pos":[324.86823299100723,-359.6118106146616],"size":[400,2380],"flags":{},"order":1,"mode":0,"inputs":[{"localized_name":"sparseStructure","name":"sparseStructure","shape":7,"type":"RUNWARE3DINFERENCESETTINGSLAT","link":null},{"localized_name":"shapeSlat","name":"shapeSlat","shape":7,"type":"RUNWARE3DINFERENCESETTINGSLAT","link":null},{"localized_name":"texSlat","name":"texSlat","shape":7,"type":"RUNWARE3DINFERENCESETTINGSLAT","link":null},{"localized_name":"meshCluster","name":"meshCluster","shape":7,"type":"RUNWARE3DINFERENCESETTINGSLAT","link":null},{"localized_name":"useTextureSize","name":"useTextureSize","shape":7,"type":"BOOLEAN","widget":{"name":"useTextureSize"},"link":null},{"localized_name":"textureSize","name":"textureSize","shape":7,"type":"INT","widget":{"name":"textureSize"},"link":null},{"localized_name":"useDecimationTarget","name":"useDecimationTarget","shape":7,"type":"BOOLEAN","widget":{"name":"useDecimationTarget"},"link":null},{"localized_name":"decimationTarget","name":"decimationTarget","shape":7,"type":"INT","widget":{"name":"decimationTarget"},"link":null},{"localized_name":"useRemesh","name":"useRemesh","shape":7,"type":"BOOLEAN","widget":{"name":"useRemesh"},"link":null},{"localized_name":"remesh","name":"remesh","shape":7,"type":"BOOLEAN","widget":{"name":"remesh"},"link":null},{"localized_name":"useResolution","name":"useResolution","shape":7,"type":"BOOLEAN","widget":{"name":"useResolution"},"link":null},{"localized_name":"resolution","name":"resolution","shape":7,"type":"COMBO","widget":{"name":"resolution"},"link":null},{"localized_name":"useImageAutoFix","name":"useImageAutoFix","shape":7,"type":"BOOLEAN","widget":{"name":"useImageAutoFix"},"link":null},{"localized_name":"imageAutoFix","name":"imageAutoFix","shape":7,"type":"BOOLEAN","widget":{"name":"imageAutoFix"},"link":null},{"localized_name":"useFaceLimit","name":"useFaceLimit","shape":7,"type":"BOOLEAN","widget":{"name":"useFaceLimit"},"link":null},{"localized_name":"faceLimit","name":"faceLimit","shape":7,"type":"INT","widget":{"name":"faceLimit"},"link":null},{"localized_name":"useTexture","name":"useTexture","shape":7,"type":"BOOLEAN","widget":{"name":"useTexture"},"link":null},{"localized_name":"texture","name":"texture","shape":7,"type":"BOOLEAN","widget":{"name":"texture"},"link":null},{"localized_name":"usePbr","name":"usePbr","shape":7,"type":"BOOLEAN","widget":{"name":"usePbr"},"link":null},{"localized_name":"pbr","name":"pbr","shape":7,"type":"BOOLEAN","widget":{"name":"pbr"},"link":null},{"localized_name":"useTextureSeed","name":"useTextureSeed","shape":7,"type":"BOOLEAN","widget":{"name":"useTextureSeed"},"link":null},{"localized_name":"textureSeed","name":"textureSeed","shape":7,"type":"INT","widget":{"name":"textureSeed"},"link":null},{"localized_name":"useTextureAlignment","name":"useTextureAlignment","shape":7,"type":"BOOLEAN","widget":{"name":"useTextureAlignment"},"link":null},{"localized_name":"textureAlignment","name":"textureAlignment","shape":7,"type":"COMBO","widget":{"name":"textureAlignment"},"link":null},{"localized_name":"useTextureQuality","name":"useTextureQuality","shape":7,"type":"BOOLEAN","widget":{"name":"useTextureQuality"},"link":null},{"localized_name":"textureQuality","name":"textureQuality","shape":7,"type":"COMBO","widget":{"name":"textureQuality"},"link":null},{"localized_name":"useAutoSize","name":"useAutoSize","shape":7,"type":"BOOLEAN","widget":{"name":"useAutoSize"},"link":null},{"localized_name":"autoSize","name":"autoSize","shape":7,"type":"BOOLEAN","widget":{"name":"autoSize"},"link":null},{"localized_name":"useOrientation","name":"useOrientation","shape":7,"type":"BOOLEAN","widget":{"name":"useOrientation"},"link":null},{"localized_name":"orientation","name":"orientation","shape":7,"type":"COMBO","widget":{"name":"orientation"},"link":null},{"localized_name":"useQuad","name":"useQuad","shape":7,"type":"BOOLEAN","widget":{"name":"useQuad"},"link":null},{"localized_name":"quad","name":"quad","shape":7,"type":"BOOLEAN","widget":{"name":"quad"},"link":null},{"localized_name":"useCompress","name":"useCompress","shape":7,"type":"BOOLEAN","widget":{"name":"useCompress"},"link":null},{"localized_name":"compress","name":"compress","shape":7,"type":"COMBO","widget":{"name":"compress"},"link":null},{"localized_name":"useSmartLowPoly","name":"useSmartLowPoly","shape":7,"type":"BOOLEAN","widget":{"name":"useSmartLowPoly"},"link":null},{"localized_name":"smartLowPoly","name":"smartLowPoly","shape":7,"type":"BOOLEAN","widget":{"name":"smartLowPoly"},"link":null},{"localized_name":"useGenerateParts","name":"useGenerateParts","shape":7,"type":"BOOLEAN","widget":{"name":"useGenerateParts"},"link":null},{"localized_name":"generateParts","name":"generateParts","shape":7,"type":"BOOLEAN","widget":{"name":"generateParts"},"link":null},{"localized_name":"useExportUv","name":"useExportUv","shape":7,"type":"BOOLEAN","widget":{"name":"useExportUv"},"link":null},{"localized_name":"exportUv","name":"exportUv","shape":7,"type":"BOOLEAN","widget":{"name":"exportUv"},"link":null},{"localized_name":"useGeometryQuality","name":"useGeometryQuality","shape":7,"type":"BOOLEAN","widget":{"name":"useGeometryQuality"},"link":null},{"localized_name":"geometryQuality","name":"geometryQuality","shape":7,"type":"COMBO","widget":{"name":"geometryQuality"},"link":null},{"localized_name":"useOriginalAlpha","name":"useOriginalAlpha","shape":7,"type":"BOOLEAN","widget":{"name":"useOriginalAlpha"},"link":null},{"localized_name":"originalAlpha","name":"originalAlpha","shape":7,"type":"BOOLEAN","widget":{"name":"originalAlpha"},"link":null},{"localized_name":"useMaterial","name":"useMaterial","shape":7,"type":"BOOLEAN","widget":{"name":"useMaterial"},"link":null},{"localized_name":"material","name":"material","shape":7,"type":"COMBO","widget":{"name":"material"},"link":null},{"localized_name":"useQuality","name":"useQuality","shape":7,"type":"BOOLEAN","widget":{"name":"useQuality"},"link":null},{"localized_name":"quality","name":"quality","shape":7,"type":"COMBO","widget":{"name":"quality"},"link":null},{"localized_name":"usePolyCount","name":"usePolyCount","shape":7,"type":"BOOLEAN","widget":{"name":"usePolyCount"},"link":null},{"localized_name":"polyCount","name":"polyCount","shape":7,"type":"FLOAT","widget":{"name":"polyCount"},"link":null},{"localized_name":"useTaPose","name":"useTaPose","shape":7,"type":"BOOLEAN","widget":{"name":"useTaPose"},"link":null},{"localized_name":"taPose","name":"taPose","shape":7,"type":"BOOLEAN","widget":{"name":"taPose"},"link":null},{"localized_name":"useBoundingBox","name":"useBoundingBox","shape":7,"type":"BOOLEAN","widget":{"name":"useBoundingBox"},"link":null},{"localized_name":"boundingBox","name":"boundingBox","shape":7,"type":"STRING","widget":{"name":"boundingBox"},"link":null},{"localized_name":"useMeshMode","name":"useMeshMode","shape":7,"type":"BOOLEAN","widget":{"name":"useMeshMode"},"link":null},{"localized_name":"meshMode","name":"meshMode","shape":7,"type":"COMBO","widget":{"name":"meshMode"},"link":null},{"localized_name":"useAddons","name":"useAddons","shape":7,"type":"BOOLEAN","widget":{"name":"useAddons"},"link":null},{"localized_name":"addons","name":"addons","shape":7,"type":"STRING","widget":{"name":"addons"},"link":null},{"localized_name":"useHdTexture","name":"useHdTexture","shape":7,"type":"BOOLEAN","widget":{"name":"useHdTexture"},"link":null},{"localized_name":"hdTexture","name":"hdTexture","shape":7,"type":"BOOLEAN","widget":{"name":"hdTexture"},"link":null},{"localized_name":"useMeshType","name":"useMeshType","shape":7,"type":"BOOLEAN","widget":{"name":"useMeshType"},"link":null},{"localized_name":"meshType","name":"meshType","shape":7,"type":"COMBO","widget":{"name":"meshType"},"link":null},{"localized_name":"useTopology","name":"useTopology","shape":7,"type":"BOOLEAN","widget":{"name":"useTopology"},"link":null},{"localized_name":"topology","name":"topology","shape":7,"type":"COMBO","widget":{"name":"topology"},"link":null},{"localized_name":"useDecimation","name":"useDecimation","shape":7,"type":"BOOLEAN","widget":{"name":"useDecimation"},"link":null},{"localized_name":"decimation","name":"decimation","shape":7,"type":"INT","widget":{"name":"decimation"},"link":null},{"localized_name":"useSymmetry","name":"useSymmetry","shape":7,"type":"BOOLEAN","widget":{"name":"useSymmetry"},"link":null},{"localized_name":"symmetry","name":"symmetry","shape":7,"type":"COMBO","widget":{"name":"symmetry"},"link":null},{"localized_name":"usePose","name":"usePose","shape":7,"type":"BOOLEAN","widget":{"name":"usePose"},"link":null},{"localized_name":"pose","name":"pose","shape":7,"type":"COMBO","widget":{"name":"pose"},"link":null},{"localized_name":"useImageEnhancement","name":"useImageEnhancement","shape":7,"type":"BOOLEAN","widget":{"name":"useImageEnhancement"},"link":null},{"localized_name":"imageEnhancement","name":"imageEnhancement","shape":7,"type":"BOOLEAN","widget":{"name":"imageEnhancement"},"link":null},{"localized_name":"useRemoveLighting","name":"useRemoveLighting","shape":7,"type":"BOOLEAN","widget":{"name":"useRemoveLighting"},"link":null},{"localized_name":"removeLighting","name":"removeLighting","shape":7,"type":"BOOLEAN","widget":{"name":"removeLighting"},"link":null},{"localized_name":"useOrigin","name":"useOrigin","shape":7,"type":"BOOLEAN","widget":{"name":"useOrigin"},"link":null},{"localized_name":"origin","name":"origin","shape":7,"type":"COMBO","widget":{"name":"origin"},"link":null},{"localized_name":"useModeration","name":"useModeration","shape":7,"type":"BOOLEAN","widget":{"name":"useModeration"},"link":null},{"localized_name":"moderation","name":"moderation","shape":7,"type":"BOOLEAN","widget":{"name":"moderation"},"link":null},{"localized_name":"useSavePreRemeshedModel","name":"useSavePreRemeshedModel","shape":7,"type":"BOOLEAN","widget":{"name":"useSavePreRemeshedModel"},"link":null},{"localized_name":"savePreRemeshedModel","name":"savePreRemeshedModel","shape":7,"type":"BOOLEAN","widget":{"name":"savePreRemeshedModel"},"link":null},{"localized_name":"useTexturePrompt","name":"useTexturePrompt","shape":7,"type":"BOOLEAN","widget":{"name":"useTexturePrompt"},"link":null},{"localized_name":"texturePrompt","name":"texturePrompt","shape":7,"type":"STRING","widget":{"name":"texturePrompt"},"link":null},{"localized_name":"useFaceCount","name":"useFaceCount","shape":7,"type":"BOOLEAN","widget":{"name":"useFaceCount"},"link":null},{"localized_name":"faceCount","name":"faceCount","shape":7,"type":"INT","widget":{"name":"faceCount"},"link":null},{"localized_name":"useGenerateType","name":"useGenerateType","shape":7,"type":"BOOLEAN","widget":{"name":"useGenerateType"},"link":null},{"localized_name":"generateType","name":"generateType","shape":7,"type":"COMBO","widget":{"name":"generateType"},"link":null},{"localized_name":"usePolygonType","name":"usePolygonType","shape":7,"type":"BOOLEAN","widget":{"name":"usePolygonType"},"link":null},{"localized_name":"polygonType","name":"polygonType","shape":7,"type":"COMBO","widget":{"name":"polygonType"},"link":null},{"localized_name":"useGeometryOnly","name":"useGeometryOnly","shape":7,"type":"BOOLEAN","widget":{"name":"useGeometryOnly"},"link":null},{"localized_name":"geometryOnly","name":"geometryOnly","shape":7,"type":"BOOLEAN","widget":{"name":"geometryOnly"},"link":null},{"localized_name":"useRemeshBand","name":"useRemeshBand","shape":7,"type":"BOOLEAN","widget":{"name":"useRemeshBand"},"link":null},{"localized_name":"remeshBand","name":"remeshBand","shape":7,"type":"FLOAT","widget":{"name":"remeshBand"},"link":null},{"localized_name":"useRemeshProject","name":"useRemeshProject","shape":7,"type":"BOOLEAN","widget":{"name":"useRemeshProject"},"link":null},{"localized_name":"remeshProject","name":"remeshProject","shape":7,"type":"FLOAT","widget":{"name":"remeshProject"},"link":null},{"localized_name":"useTextureFormat","name":"useTextureFormat","shape":7,"type":"BOOLEAN","widget":{"name":"useTextureFormat"},"link":null},{"localized_name":"textureFormat","name":"textureFormat","shape":7,"type":"COMBO","widget":{"name":"textureFormat"},"link":null},{"localized_name":"useAlphaMode","name":"useAlphaMode","shape":7,"type":"BOOLEAN","widget":{"name":"useAlphaMode"},"link":null},{"localized_name":"alphaMode","name":"alphaMode","shape":7,"type":"COMBO","widget":{"name":"alphaMode"},"link":null}],"outputs":[{"localized_name":"Settings","name":"Settings","type":"RUNWARE3DINFERENCESETTINGS","links":null}],"properties":{"cnr_id":"ComfyUI-Runware","ver":"dde85898864590cd10c92e86009fcbf7b74a2fe1","Node name for S&R":"Runware 3D Inference Settings"},"widgets_values":[false,2048,false,500000,false,true,false,1024,false,false,false,10000,false,true,false,true,false,1,false,"original_image",false,"standard",false,false,false,"default",false,false,false,"meshopt",false,false,false,false,false,true,false,"standard",false,false,false,"PBR",false,"medium",false,18000,false,false,false,"",false,"Quad",false,"",false,false,false,"standard",false,"triangle",false,2,false,"auto",false,"none",false,true,false,true,false,"bottom",false,false,false,false,false,"",false,500000,false,"Normal",false,"triangle",false,false,false,1,false,0,false,"WEBP",true,"OPAQUE"],"bgcolor":"#5345bf"}],"links":[[1,1,0,2,0,"STRING"],[2,3,0,1,0,"RUNWARE3DINFERENCEINPUTS"],[3,4,0,3,0,"IMAGE"]],"groups":[],"config":{},"extra":{"ds":{"scale":0.505529313703492,"offset":[982.2541248963807,496.19633452920067]}},"version":0.4} \ No newline at end of file From a61fe5d043b81d6606ed46ddd6469b91592406a3 Mon Sep 17 00:00:00 2001 From: Sirshendu Ganguly Date: Fri, 29 May 2026 23:30:46 +0530 Subject: [PATCH 14/15] Fixed defaults --- modules/threeDInferenceSettings.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/threeDInferenceSettings.py b/modules/threeDInferenceSettings.py index 7266974..88e23c0 100644 --- a/modules/threeDInferenceSettings.py +++ b/modules/threeDInferenceSettings.py @@ -435,7 +435,7 @@ class Runware3DInferenceSettings: "remeshBand": ("FLOAT", { "tooltip": "Narrow-band width (in voxels) for dual-contouring remeshing. Must be greater than 0 when remesh is true. Only used when enabled.", "default": 1.0, - "min": 0.0, + "min": 0.1, "max": 16.0, "step": 0.1, }), @@ -445,8 +445,8 @@ class Runware3DInferenceSettings: }), "remeshProject": ("FLOAT", { "tooltip": "Projection factor for snapping remeshed vertices back to the original surface. Must be greater than 0 when remesh is true. Only used when enabled.", - "default": 0.0, - "min": 0.0, + "default": 0.01, + "min": 0.01, "max": 1.0, "step": 0.01, }), @@ -493,7 +493,7 @@ class Runware3DInferenceSettings: if kwargs.get("useRemeshBand", False): settings["remeshBand"] = float(kwargs.get("remeshBand", 1.0)) if kwargs.get("useRemeshProject", False): - settings["remeshProject"] = float(kwargs.get("remeshProject", 0.0)) + settings["remeshProject"] = float(kwargs.get("remeshProject", 0.01)) if kwargs.get("useResolution", False): settings["resolution"] = int(kwargs.get("resolution", 1024)) From a97eb7c97f457f7b2deb34645b2b02e2d15bf30e Mon Sep 17 00:00:00 2001 From: Sirshendu Ganguly Date: Mon, 1 Jun 2026 11:32:53 +0530 Subject: [PATCH 15/15] Fixed safety Inputs to videoInference --- modules/videoInference.py | 8 +------- workflows/Runware_Video_Inference_Pruna_Animate.json | 2 +- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/modules/videoInference.py b/modules/videoInference.py index 94be994..bc340bb 100644 --- a/modules/videoInference.py +++ b/modules/videoInference.py @@ -422,14 +422,8 @@ class txt2vid: genConfig[0]["providerSettings"] = providerSettings # Add safety inputs if provided - # Note: Video inference API only supports 'mode' key for safety if safetyInputs is not None and isinstance(safetyInputs, dict) and len(safetyInputs) > 0: - # Filter to only include 'mode' (only allowed key for video inference) - filtered_safety = {} - if "mode" in safetyInputs: - filtered_safety["mode"] = safetyInputs["mode"] - if filtered_safety: - genConfig[0]["safety"] = filtered_safety + genConfig[0]["safety"] = safetyInputs # Add video advanced feature inputs if provided if videoAdvancedFeatureInputs is not None and isinstance(videoAdvancedFeatureInputs, dict) and len(videoAdvancedFeatureInputs) > 0: diff --git a/workflows/Runware_Video_Inference_Pruna_Animate.json b/workflows/Runware_Video_Inference_Pruna_Animate.json index 07e7d59..b634d10 100644 --- a/workflows/Runware_Video_Inference_Pruna_Animate.json +++ b/workflows/Runware_Video_Inference_Pruna_Animate.json @@ -1 +1 @@ -{"id":"e17fcca5-b6f7-4c02-8bb2-9bef654fd9be","revision":0,"last_node_id":9,"last_link_id":8,"nodes":[{"id":2,"type":"SaveVideo","pos":[425.1748138994858,549.5648771778874],"size":[270,260],"flags":{},"order":8,"mode":0,"inputs":[{"localized_name":"video","name":"video","type":"VIDEO","link":1},{"localized_name":"filename_prefix","name":"filename_prefix","type":"STRING","widget":{"name":"filename_prefix"},"link":null},{"localized_name":"format","name":"format","type":"COMBO","widget":{"name":"format"},"link":null},{"localized_name":"codec","name":"codec","type":"COMBO","widget":{"name":"codec"},"link":null}],"outputs":[],"properties":{"cnr_id":"comfy-core","ver":"0.22.0"},"widgets_values":["video/ComfyUI","auto","auto"]},{"id":8,"type":"Runware Media Upload","pos":[1067.1204124705494,630.201545591197],"size":[270,58],"flags":{},"order":4,"mode":0,"inputs":[{"localized_name":"media","name":"media","shape":7,"type":"VIDEO,AUDIO","link":5},{"localized_name":"mediaUUID","name":"mediaUUID","shape":7,"type":"STRING","widget":{"name":"mediaUUID"},"link":null}],"outputs":[{"localized_name":"mediaUUID","name":"mediaUUID","type":"STRING","links":[6]}],"properties":{"cnr_id":"ComfyUI-Runware","ver":"401e9f12a7121a6cc9891073e23ed5b2a24e9513","Node name for S&R":"Runware Media Upload"},"widgets_values":["4da09062-ed00-40ed-9e62-4b7b688a66a7"],"bgcolor":"#5345bf"},{"id":6,"type":"LoadImage","pos":[-1055.8133729845958,1194.6751934802394],"size":[282.798828125,314],"flags":{},"order":0,"mode":0,"inputs":[{"localized_name":"image","name":"image","type":"COMBO","widget":{"name":"image"},"link":null},{"localized_name":"choose file to upload","name":"upload","type":"IMAGEUPLOAD","widget":{"name":"upload"},"link":null}],"outputs":[{"localized_name":"IMAGE","name":"IMAGE","type":"IMAGE","links":[7]},{"localized_name":"MASK","name":"MASK","type":"MASK","links":null}],"properties":{"cnr_id":"comfy-core","ver":"0.22.0","Node name for S&R":"LoadImage"},"widgets_values":[".webp","image"]},{"id":5,"type":"Runware Video Inference Inputs Reference Images","pos":[-1112.07671264292,502.10259570650186],"size":[434.710546875,582],"flags":{},"order":3,"mode":0,"inputs":[{"localized_name":"Image1","name":"Image1","shape":7,"type":"IMAGE","link":7},{"localized_name":"Images1","name":"Images1","shape":7,"type":"RUNWAREVIDEOINPUTSREFERENCEMULTIIMAGES","link":null},{"localized_name":"Image2","name":"Image2","shape":7,"type":"IMAGE","link":null},{"localized_name":"Images2","name":"Images2","shape":7,"type":"RUNWAREVIDEOINPUTSREFERENCEMULTIIMAGES","link":null},{"localized_name":"Image3","name":"Image3","shape":7,"type":"IMAGE","link":null},{"localized_name":"Images3","name":"Images3","shape":7,"type":"RUNWAREVIDEOINPUTSREFERENCEMULTIIMAGES","link":null},{"localized_name":"Image4","name":"Image4","shape":7,"type":"IMAGE","link":null},{"localized_name":"Images4","name":"Images4","shape":7,"type":"RUNWAREVIDEOINPUTSREFERENCEMULTIIMAGES","link":null},{"localized_name":"Image5","name":"Image5","shape":7,"type":"IMAGE","link":null},{"localized_name":"Image6","name":"Image6","shape":7,"type":"IMAGE","link":null},{"localized_name":"Image7","name":"Image7","shape":7,"type":"IMAGE","link":null},{"localized_name":"Image8","name":"Image8","shape":7,"type":"IMAGE","link":null},{"localized_name":"Image9","name":"Image9","shape":7,"type":"IMAGE","link":null},{"localized_name":"Image10","name":"Image10","shape":7,"type":"IMAGE","link":null},{"localized_name":"Tag1","name":"Tag1","shape":7,"type":"STRING","widget":{"name":"Tag1"},"link":null},{"localized_name":"Type1","name":"Type1","shape":7,"type":"STRING","widget":{"name":"Type1"},"link":null},{"localized_name":"Audio1","name":"Audio1","shape":7,"type":"STRING","widget":{"name":"Audio1"},"link":null},{"localized_name":"Tag2","name":"Tag2","shape":7,"type":"STRING","widget":{"name":"Tag2"},"link":null},{"localized_name":"Type2","name":"Type2","shape":7,"type":"STRING","widget":{"name":"Type2"},"link":null},{"localized_name":"Audio2","name":"Audio2","shape":7,"type":"STRING","widget":{"name":"Audio2"},"link":null},{"localized_name":"Tag3","name":"Tag3","shape":7,"type":"STRING","widget":{"name":"Tag3"},"link":null},{"localized_name":"Type3","name":"Type3","shape":7,"type":"STRING","widget":{"name":"Type3"},"link":null},{"localized_name":"Audio3","name":"Audio3","shape":7,"type":"STRING","widget":{"name":"Audio3"},"link":null},{"localized_name":"Tag4","name":"Tag4","shape":7,"type":"STRING","widget":{"name":"Tag4"},"link":null},{"localized_name":"Type4","name":"Type4","shape":7,"type":"STRING","widget":{"name":"Type4"},"link":null},{"localized_name":"Audio4","name":"Audio4","shape":7,"type":"STRING","widget":{"name":"Audio4"},"link":null}],"outputs":[{"localized_name":"Video Inputs Reference Images","name":"Video Inputs Reference Images","type":"RUNWAREVIDEOINPUTSREFERENCEIMAGES","links":[8]}],"properties":{"cnr_id":"ComfyUI-Runware","ver":"401e9f12a7121a6cc9891073e23ed5b2a24e9513","Node name for S&R":"Runware Video Inference Inputs Reference Images"},"widgets_values":["","","","","","","","","","","",""],"bgcolor":"#5345bf"},{"id":4,"type":"Runware Video Inference Inputs","pos":[-552.8439233198184,844.3502735743538],"size":[341.783203125,374],"flags":{},"order":6,"mode":0,"inputs":[{"localized_name":"Image","name":"Image","shape":7,"type":"IMAGE","link":null},{"localized_name":"Frame Images","name":"Frame Images","shape":7,"type":"RUNWAREVIDEOINPUTSFRAMEIMAGES","link":null},{"localized_name":"Audio Inputs","name":"Audio Inputs","shape":7,"type":"RUNWAREAUDIOINPUT","link":null},{"localized_name":"Speech Inputs","name":"Speech Inputs","shape":7,"type":"RUNWARESPEECHINPUT","link":null},{"localized_name":"Mask","name":"Mask","shape":7,"type":"IMAGE","link":null},{"localized_name":"Frame","name":"Frame","shape":7,"type":"IMAGE","link":null},{"localized_name":"Background","name":"Background","shape":7,"type":"IMAGE","link":null},{"localized_name":"References Images","name":"References Images","shape":7,"type":"RUNWAREVIDEOINPUTSREFERENCEIMAGES","link":8},{"localized_name":"Reference Videos","name":"Reference Videos","shape":7,"type":"RUNWAREREFERENCEVIDEOS","link":4},{"localized_name":"Reference Voices","name":"Reference Voices","shape":7,"type":"RUNWAREREFERENCEVOICES","link":null},{"localized_name":"Elements","name":"Elements","shape":7,"type":"RUNWAREVIDEOINFERENCEELEMENTS","link":null},{"localized_name":"Reference Audios","name":"Reference Audios","shape":7,"type":"RUNWAREINPUTAUDIOS","link":null},{"localized_name":"Avatar","name":"Avatar","shape":7,"type":"STRING","widget":{"name":"Avatar"},"link":null},{"localized_name":"Audio","name":"Audio","shape":7,"type":"STRING","widget":{"name":"Audio"},"link":null},{"localized_name":"Video","name":"Video","shape":7,"type":"STRING","widget":{"name":"Video"},"link":null},{"localized_name":"draftId","name":"draftId","shape":7,"type":"STRING","widget":{"name":"draftId"},"link":null},{"localized_name":"videoId","name":"videoId","shape":7,"type":"STRING","widget":{"name":"videoId"},"link":null}],"outputs":[{"localized_name":"Video Inference Inputs","name":"Video Inference Inputs","type":"RUNWAREVIDEOINFERENCEINPUTS","links":[3]}],"properties":{"cnr_id":"ComfyUI-Runware","ver":"401e9f12a7121a6cc9891073e23ed5b2a24e9513","Node name for S&R":"Runware Video Inference Inputs"},"widgets_values":["","","","",""],"bgcolor":"#5345bf"},{"id":7,"type":"Runware Video Inference Inputs Reference Videos","pos":[429.4091250086296,939.6311854305687],"size":[432.2564453125,418],"flags":{},"order":5,"mode":0,"inputs":[{"localized_name":"useVideo1","name":"useVideo1","shape":7,"type":"BOOLEAN","widget":{"name":"useVideo1"},"link":null},{"localized_name":"Video1","name":"Video1","shape":7,"type":"STRING","widget":{"name":"Video1"},"link":6},{"localized_name":"Tag1","name":"Tag1","shape":7,"type":"STRING","widget":{"name":"Tag1"},"link":null},{"localized_name":"Type1","name":"Type1","shape":7,"type":"STRING","widget":{"name":"Type1"},"link":null},{"localized_name":"useVideo2","name":"useVideo2","shape":7,"type":"BOOLEAN","widget":{"name":"useVideo2"},"link":null},{"localized_name":"Video2","name":"Video2","shape":7,"type":"STRING","widget":{"name":"Video2"},"link":null},{"localized_name":"Tag2","name":"Tag2","shape":7,"type":"STRING","widget":{"name":"Tag2"},"link":null},{"localized_name":"Type2","name":"Type2","shape":7,"type":"STRING","widget":{"name":"Type2"},"link":null},{"localized_name":"useVideo3","name":"useVideo3","shape":7,"type":"BOOLEAN","widget":{"name":"useVideo3"},"link":null},{"localized_name":"Video3","name":"Video3","shape":7,"type":"STRING","widget":{"name":"Video3"},"link":null},{"localized_name":"Tag3","name":"Tag3","shape":7,"type":"STRING","widget":{"name":"Tag3"},"link":null},{"localized_name":"Type3","name":"Type3","shape":7,"type":"STRING","widget":{"name":"Type3"},"link":null},{"localized_name":"useVideo4","name":"useVideo4","shape":7,"type":"BOOLEAN","widget":{"name":"useVideo4"},"link":null},{"localized_name":"Video4","name":"Video4","shape":7,"type":"STRING","widget":{"name":"Video4"},"link":null},{"localized_name":"Tag4","name":"Tag4","shape":7,"type":"STRING","widget":{"name":"Tag4"},"link":null},{"localized_name":"Type4","name":"Type4","shape":7,"type":"STRING","widget":{"name":"Type4"},"link":null}],"outputs":[{"localized_name":"Reference Videos","name":"Reference Videos","type":"RUNWAREREFERENCEVIDEOS","links":[4]}],"properties":{"cnr_id":"ComfyUI-Runware","ver":"401e9f12a7121a6cc9891073e23ed5b2a24e9513","Node name for S&R":"Runware Video Inference Inputs Reference Videos"},"widgets_values":[true,"","","reference",false,"","","reference",false,"","","reference",false,"","","reference"],"bgcolor":"#5345bf"},{"id":9,"type":"LoadVideo","pos":[994.813418417036,962.166011956847],"size":[282.798828125,356.7988281250001],"flags":{},"order":1,"mode":0,"inputs":[{"localized_name":"file","name":"file","type":"COMBO","widget":{"name":"file"},"link":null},{"localized_name":"choose file to upload","name":"upload","type":"IMAGEUPLOAD","widget":{"name":"upload"},"link":null}],"outputs":[{"localized_name":"VIDEO","name":"VIDEO","type":"VIDEO","links":[5]}],"properties":{"cnr_id":"comfy-core","ver":"0.22.0","Node name for S&R":"LoadVideo"},"widgets_values":["20_year_old_woman.mp4","image"]},{"id":1,"type":"Runware Video Inference","pos":[-106.58287122481762,487.4838057574137],"size":[400,818],"flags":{},"order":7,"mode":0,"inputs":[{"localized_name":"Model","name":"Model","type":"RUNWAREVIDEOMODEL","link":2},{"localized_name":"frameImages","name":"frameImages","shape":7,"type":"RUNWAREFRAMEIMAGES","link":null},{"localized_name":"referenceImages","name":"referenceImages","shape":7,"type":"RUNWAREREFERENCEIMAGES","link":null},{"localized_name":"providerSettings","name":"providerSettings","shape":7,"type":"RUNWAREPROVIDERSETTINGS","link":null},{"localized_name":"inputAudios","name":"inputAudios","shape":7,"type":"RUNWAREINPUTAUDIOS","link":null},{"localized_name":"referenceVideos","name":"referenceVideos","shape":7,"type":"RUNWAREREFERENCEVIDEOS","link":null},{"localized_name":"speech","name":"speech","shape":7,"type":"RUNWAREVIDEOINFERENCESPEECHINPUT","link":null},{"localized_name":"inputs","name":"inputs","shape":7,"type":"RUNWAREVIDEOINFERENCEINPUTS","link":3},{"localized_name":"safetyInputs","name":"safetyInputs","shape":7,"type":"RUNWARESAFETYINPUTS","link":null},{"localized_name":"videoAdvancedFeatureInputs","name":"videoAdvancedFeatureInputs","shape":7,"type":"RUNWAREVIDEOADVANCEDFEATUREINPUTS","link":null},{"localized_name":"Accelerator","name":"Accelerator","shape":7,"type":"RUNWAREACCELERATOR","link":null},{"localized_name":"settings","name":"settings","shape":7,"type":"RUNWAREVIDEOSETTINGS","link":null},{"localized_name":"Multi Inference Mode","name":"Multi Inference Mode","type":"BOOLEAN","widget":{"name":"Multi Inference Mode"},"link":null},{"localized_name":"Prompt Weighting","name":"Prompt Weighting","type":"COMBO","widget":{"name":"Prompt Weighting"},"link":null},{"localized_name":"useDuration","name":"useDuration","type":"BOOLEAN","widget":{"name":"useDuration"},"link":null},{"localized_name":"duration","name":"duration","type":"INT","widget":{"name":"duration"},"link":null},{"localized_name":"useFps","name":"useFps","type":"BOOLEAN","widget":{"name":"useFps"},"link":null},{"localized_name":"fps","name":"fps","type":"INT","widget":{"name":"fps"},"link":null},{"localized_name":"outputFormat","name":"outputFormat","type":"COMBO","widget":{"name":"outputFormat"},"link":null},{"localized_name":"useSeed","name":"useSeed","type":"BOOLEAN","widget":{"name":"useSeed"},"link":null},{"localized_name":"seed","name":"seed","type":"INT","widget":{"name":"seed"},"link":null},{"localized_name":"useSteps","name":"useSteps","type":"BOOLEAN","widget":{"name":"useSteps"},"link":null},{"localized_name":"steps","name":"steps","type":"INT","widget":{"name":"steps"},"link":null},{"localized_name":"useBatchSize","name":"useBatchSize","type":"BOOLEAN","widget":{"name":"useBatchSize"},"link":null},{"localized_name":"batchSize","name":"batchSize","type":"INT","widget":{"name":"batchSize"},"link":null},{"localized_name":"useSchedulers","name":"useSchedulers","type":"BOOLEAN","widget":{"name":"useSchedulers"},"link":null},{"localized_name":"scheduler","name":"scheduler","type":"COMBO","widget":{"name":"scheduler"},"link":null},{"localized_name":"useCFGScale","name":"useCFGScale","type":"BOOLEAN","widget":{"name":"useCFGScale"},"link":null},{"localized_name":"cfgScale","name":"cfgScale","type":"FLOAT","widget":{"name":"cfgScale"},"link":null},{"localized_name":"acceleration","name":"acceleration","type":"COMBO","widget":{"name":"acceleration"},"link":null},{"localized_name":"positivePrompt","name":"positivePrompt","shape":7,"type":"STRING","widget":{"name":"positivePrompt"},"link":null},{"localized_name":"negativePrompt","name":"negativePrompt","shape":7,"type":"STRING","widget":{"name":"negativePrompt"},"link":null}],"outputs":[{"localized_name":"VIDEO","name":"VIDEO","type":"VIDEO","links":[1]},{"localized_name":"RW-Task","name":"RW-Task","type":"RUNWARETASK","links":null},{"localized_name":"OUTPUT","name":"OUTPUT","type":"RUNWARETASK","links":null}],"properties":{"cnr_id":"ComfyUI-Runware","ver":"401e9f12a7121a6cc9891073e23ed5b2a24e9513","Node name for S&R":"Runware Video Inference"},"widgets_values":[false,"Disabled",false,5,false,24,"mp4",true,1586491931,"randomize",false,20,false,1,false,"euler",false,5,"none","Animate the reference subject using the motion from the source video, preserving facial expressions.",""],"bgcolor":"#5345bf"},{"id":3,"type":"Runware Video Model Search","pos":[-627.6731729224208,514.982063578072],"size":[294.16015625,250],"flags":{},"order":2,"mode":0,"inputs":[{"localized_name":"Model Search","name":"Model Search","type":"STRING","widget":{"name":"Model Search"},"link":null},{"localized_name":"Model Architecture","name":"Model Architecture","type":"COMBO","widget":{"name":"Model Architecture"},"link":null},{"localized_name":"VideoList","name":"VideoList","type":"COMBO","widget":{"name":"VideoList"},"link":null},{"localized_name":"Use Search Value","name":"Use Search Value","type":"BOOLEAN","widget":{"name":"Use Search Value"},"link":null},{"localized_name":"useCustomDimensions","name":"useCustomDimensions","type":"COMBO","widget":{"name":"useCustomDimensions"},"link":null},{"localized_name":"Width","name":"Width","type":"INT","widget":{"name":"Width"},"link":null},{"localized_name":"Height","name":"Height","type":"INT","widget":{"name":"Height"},"link":null},{"localized_name":"useResolution","name":"useResolution","type":"BOOLEAN","widget":{"name":"useResolution"},"link":null},{"localized_name":"resolution","name":"resolution","type":"COMBO","widget":{"name":"resolution"},"link":null}],"outputs":[{"localized_name":"Runware Video Model","name":"Runware Video Model","type":"RUNWAREVIDEOMODEL","links":[2]}],"properties":{"cnr_id":"ComfyUI-Runware","ver":"401e9f12a7121a6cc9891073e23ed5b2a24e9513","Node name for S&R":"Runware Video Model Search"},"widgets_values":["","Pruna","prunaai:p-video@animate (P-Video Animate)",false,"Disabled",0,0,false,"1080p"],"bgcolor":"#5345bf"}],"links":[[1,1,0,2,0,"VIDEO"],[2,3,0,1,0,"RUNWAREVIDEOMODEL"],[3,4,0,1,7,"RUNWAREVIDEOINFERENCEINPUTS"],[4,7,0,4,8,"RUNWAREREFERENCEVIDEOS"],[5,9,0,8,0,"VIDEO"],[6,8,0,7,1,"STRING"],[7,6,0,5,0,"IMAGE"],[8,5,0,4,7,"RUNWAREVIDEOINPUTSREFERENCEIMAGES"]],"groups":[],"config":{},"extra":{"ds":{"scale":0.4603984853356424,"offset":[1322.6879997521094,-157.32976052300617]}},"version":0.4} \ No newline at end of file +{"id":"e17fcca5-b6f7-4c02-8bb2-9bef654fd9be","revision":0,"last_node_id":10,"last_link_id":9,"nodes":[{"id":2,"type":"SaveVideo","pos":[425.1748138994858,549.5648771778874],"size":[270,260],"flags":{},"order":9,"mode":0,"inputs":[{"localized_name":"video","name":"video","type":"VIDEO","link":1},{"localized_name":"filename_prefix","name":"filename_prefix","type":"STRING","widget":{"name":"filename_prefix"},"link":null},{"localized_name":"format","name":"format","type":"COMBO","widget":{"name":"format"},"link":null},{"localized_name":"codec","name":"codec","type":"COMBO","widget":{"name":"codec"},"link":null}],"outputs":[],"properties":{"cnr_id":"comfy-core","ver":"0.22.0"},"widgets_values":["video/ComfyUI","auto","auto"]},{"id":8,"type":"Runware Media Upload","pos":[1067.1204124705494,630.201545591197],"size":[270,58],"flags":{},"order":5,"mode":0,"inputs":[{"localized_name":"media","name":"media","shape":7,"type":"VIDEO,AUDIO","link":5},{"localized_name":"mediaUUID","name":"mediaUUID","shape":7,"type":"STRING","widget":{"name":"mediaUUID"},"link":null}],"outputs":[{"localized_name":"mediaUUID","name":"mediaUUID","type":"STRING","links":[6]}],"properties":{"cnr_id":"ComfyUI-Runware","ver":"401e9f12a7121a6cc9891073e23ed5b2a24e9513","Node name for S&R":"Runware Media Upload"},"widgets_values":["973ffd96-966b-48a5-abd9-3bd1d2ae6baa"],"bgcolor":"#5345bf"},{"id":6,"type":"LoadImage","pos":[-1055.8133729845958,1194.6751934802394],"size":[282.798828125,314],"flags":{},"order":0,"mode":0,"inputs":[{"localized_name":"image","name":"image","type":"COMBO","widget":{"name":"image"},"link":null},{"localized_name":"choose file to upload","name":"upload","type":"IMAGEUPLOAD","widget":{"name":"upload"},"link":null}],"outputs":[{"localized_name":"IMAGE","name":"IMAGE","type":"IMAGE","links":[7]},{"localized_name":"MASK","name":"MASK","type":"MASK","links":null}],"properties":{"cnr_id":"comfy-core","ver":"0.22.0","Node name for S&R":"LoadImage"},"widgets_values":[".webp","image"]},{"id":5,"type":"Runware Video Inference Inputs Reference Images","pos":[-1112.07671264292,502.10259570650186],"size":[434.710546875,582],"flags":{},"order":4,"mode":0,"inputs":[{"localized_name":"Image1","name":"Image1","shape":7,"type":"IMAGE","link":7},{"localized_name":"Images1","name":"Images1","shape":7,"type":"RUNWAREVIDEOINPUTSREFERENCEMULTIIMAGES","link":null},{"localized_name":"Image2","name":"Image2","shape":7,"type":"IMAGE","link":null},{"localized_name":"Images2","name":"Images2","shape":7,"type":"RUNWAREVIDEOINPUTSREFERENCEMULTIIMAGES","link":null},{"localized_name":"Image3","name":"Image3","shape":7,"type":"IMAGE","link":null},{"localized_name":"Images3","name":"Images3","shape":7,"type":"RUNWAREVIDEOINPUTSREFERENCEMULTIIMAGES","link":null},{"localized_name":"Image4","name":"Image4","shape":7,"type":"IMAGE","link":null},{"localized_name":"Images4","name":"Images4","shape":7,"type":"RUNWAREVIDEOINPUTSREFERENCEMULTIIMAGES","link":null},{"localized_name":"Image5","name":"Image5","shape":7,"type":"IMAGE","link":null},{"localized_name":"Image6","name":"Image6","shape":7,"type":"IMAGE","link":null},{"localized_name":"Image7","name":"Image7","shape":7,"type":"IMAGE","link":null},{"localized_name":"Image8","name":"Image8","shape":7,"type":"IMAGE","link":null},{"localized_name":"Image9","name":"Image9","shape":7,"type":"IMAGE","link":null},{"localized_name":"Image10","name":"Image10","shape":7,"type":"IMAGE","link":null},{"localized_name":"Tag1","name":"Tag1","shape":7,"type":"STRING","widget":{"name":"Tag1"},"link":null},{"localized_name":"Type1","name":"Type1","shape":7,"type":"STRING","widget":{"name":"Type1"},"link":null},{"localized_name":"Audio1","name":"Audio1","shape":7,"type":"STRING","widget":{"name":"Audio1"},"link":null},{"localized_name":"Tag2","name":"Tag2","shape":7,"type":"STRING","widget":{"name":"Tag2"},"link":null},{"localized_name":"Type2","name":"Type2","shape":7,"type":"STRING","widget":{"name":"Type2"},"link":null},{"localized_name":"Audio2","name":"Audio2","shape":7,"type":"STRING","widget":{"name":"Audio2"},"link":null},{"localized_name":"Tag3","name":"Tag3","shape":7,"type":"STRING","widget":{"name":"Tag3"},"link":null},{"localized_name":"Type3","name":"Type3","shape":7,"type":"STRING","widget":{"name":"Type3"},"link":null},{"localized_name":"Audio3","name":"Audio3","shape":7,"type":"STRING","widget":{"name":"Audio3"},"link":null},{"localized_name":"Tag4","name":"Tag4","shape":7,"type":"STRING","widget":{"name":"Tag4"},"link":null},{"localized_name":"Type4","name":"Type4","shape":7,"type":"STRING","widget":{"name":"Type4"},"link":null},{"localized_name":"Audio4","name":"Audio4","shape":7,"type":"STRING","widget":{"name":"Audio4"},"link":null}],"outputs":[{"localized_name":"Video Inputs Reference Images","name":"Video Inputs Reference Images","type":"RUNWAREVIDEOINPUTSREFERENCEIMAGES","links":[8]}],"properties":{"cnr_id":"ComfyUI-Runware","ver":"401e9f12a7121a6cc9891073e23ed5b2a24e9513","Node name for S&R":"Runware Video Inference Inputs Reference Images"},"widgets_values":["","","","","","","","","","","",""],"bgcolor":"#5345bf"},{"id":4,"type":"Runware Video Inference Inputs","pos":[-552.8439233198184,844.3502735743538],"size":[341.783203125,374],"flags":{},"order":7,"mode":0,"inputs":[{"localized_name":"Image","name":"Image","shape":7,"type":"IMAGE","link":null},{"localized_name":"Frame Images","name":"Frame Images","shape":7,"type":"RUNWAREVIDEOINPUTSFRAMEIMAGES","link":null},{"localized_name":"Audio Inputs","name":"Audio Inputs","shape":7,"type":"RUNWAREAUDIOINPUT","link":null},{"localized_name":"Speech Inputs","name":"Speech Inputs","shape":7,"type":"RUNWARESPEECHINPUT","link":null},{"localized_name":"Mask","name":"Mask","shape":7,"type":"IMAGE","link":null},{"localized_name":"Frame","name":"Frame","shape":7,"type":"IMAGE","link":null},{"localized_name":"Background","name":"Background","shape":7,"type":"IMAGE","link":null},{"localized_name":"References Images","name":"References Images","shape":7,"type":"RUNWAREVIDEOINPUTSREFERENCEIMAGES","link":8},{"localized_name":"Reference Videos","name":"Reference Videos","shape":7,"type":"RUNWAREREFERENCEVIDEOS","link":4},{"localized_name":"Reference Voices","name":"Reference Voices","shape":7,"type":"RUNWAREREFERENCEVOICES","link":null},{"localized_name":"Elements","name":"Elements","shape":7,"type":"RUNWAREVIDEOINFERENCEELEMENTS","link":null},{"localized_name":"Reference Audios","name":"Reference Audios","shape":7,"type":"RUNWAREINPUTAUDIOS","link":null},{"localized_name":"Avatar","name":"Avatar","shape":7,"type":"STRING","widget":{"name":"Avatar"},"link":null},{"localized_name":"Audio","name":"Audio","shape":7,"type":"STRING","widget":{"name":"Audio"},"link":null},{"localized_name":"Video","name":"Video","shape":7,"type":"STRING","widget":{"name":"Video"},"link":null},{"localized_name":"draftId","name":"draftId","shape":7,"type":"STRING","widget":{"name":"draftId"},"link":null},{"localized_name":"videoId","name":"videoId","shape":7,"type":"STRING","widget":{"name":"videoId"},"link":null}],"outputs":[{"localized_name":"Video Inference Inputs","name":"Video Inference Inputs","type":"RUNWAREVIDEOINFERENCEINPUTS","links":[3]}],"properties":{"cnr_id":"ComfyUI-Runware","ver":"401e9f12a7121a6cc9891073e23ed5b2a24e9513","Node name for S&R":"Runware Video Inference Inputs"},"widgets_values":["","","","",""],"bgcolor":"#5345bf"},{"id":7,"type":"Runware Video Inference Inputs Reference Videos","pos":[429.4091250086296,939.6311854305687],"size":[432.2564453125,418],"flags":{},"order":6,"mode":0,"inputs":[{"localized_name":"useVideo1","name":"useVideo1","shape":7,"type":"BOOLEAN","widget":{"name":"useVideo1"},"link":null},{"localized_name":"Video1","name":"Video1","shape":7,"type":"STRING","widget":{"name":"Video1"},"link":6},{"localized_name":"Tag1","name":"Tag1","shape":7,"type":"STRING","widget":{"name":"Tag1"},"link":null},{"localized_name":"Type1","name":"Type1","shape":7,"type":"STRING","widget":{"name":"Type1"},"link":null},{"localized_name":"useVideo2","name":"useVideo2","shape":7,"type":"BOOLEAN","widget":{"name":"useVideo2"},"link":null},{"localized_name":"Video2","name":"Video2","shape":7,"type":"STRING","widget":{"name":"Video2"},"link":null},{"localized_name":"Tag2","name":"Tag2","shape":7,"type":"STRING","widget":{"name":"Tag2"},"link":null},{"localized_name":"Type2","name":"Type2","shape":7,"type":"STRING","widget":{"name":"Type2"},"link":null},{"localized_name":"useVideo3","name":"useVideo3","shape":7,"type":"BOOLEAN","widget":{"name":"useVideo3"},"link":null},{"localized_name":"Video3","name":"Video3","shape":7,"type":"STRING","widget":{"name":"Video3"},"link":null},{"localized_name":"Tag3","name":"Tag3","shape":7,"type":"STRING","widget":{"name":"Tag3"},"link":null},{"localized_name":"Type3","name":"Type3","shape":7,"type":"STRING","widget":{"name":"Type3"},"link":null},{"localized_name":"useVideo4","name":"useVideo4","shape":7,"type":"BOOLEAN","widget":{"name":"useVideo4"},"link":null},{"localized_name":"Video4","name":"Video4","shape":7,"type":"STRING","widget":{"name":"Video4"},"link":null},{"localized_name":"Tag4","name":"Tag4","shape":7,"type":"STRING","widget":{"name":"Tag4"},"link":null},{"localized_name":"Type4","name":"Type4","shape":7,"type":"STRING","widget":{"name":"Type4"},"link":null}],"outputs":[{"localized_name":"Reference Videos","name":"Reference Videos","type":"RUNWAREREFERENCEVIDEOS","links":[4]}],"properties":{"cnr_id":"ComfyUI-Runware","ver":"401e9f12a7121a6cc9891073e23ed5b2a24e9513","Node name for S&R":"Runware Video Inference Inputs Reference Videos"},"widgets_values":[true,"","","reference",false,"","","reference",false,"","","reference",false,"","","reference"],"bgcolor":"#5345bf"},{"id":9,"type":"LoadVideo","pos":[994.813418417036,962.166011956847],"size":[282.798828125,356.7988281250001],"flags":{},"order":1,"mode":0,"inputs":[{"localized_name":"file","name":"file","type":"COMBO","widget":{"name":"file"},"link":null},{"localized_name":"choose file to upload","name":"upload","type":"IMAGEUPLOAD","widget":{"name":"upload"},"link":null}],"outputs":[{"localized_name":"VIDEO","name":"VIDEO","type":"VIDEO","links":[5]}],"properties":{"cnr_id":"comfy-core","ver":"0.22.0","Node name for S&R":"LoadVideo"},"widgets_values":["20_year_old_woman.mp4","image"]},{"id":1,"type":"Runware Video Inference","pos":[-106.58287122481762,487.4838057574137],"size":[400,818],"flags":{},"order":8,"mode":0,"inputs":[{"localized_name":"Model","name":"Model","type":"RUNWAREVIDEOMODEL","link":2},{"localized_name":"frameImages","name":"frameImages","shape":7,"type":"RUNWAREFRAMEIMAGES","link":null},{"localized_name":"referenceImages","name":"referenceImages","shape":7,"type":"RUNWAREREFERENCEIMAGES","link":null},{"localized_name":"providerSettings","name":"providerSettings","shape":7,"type":"RUNWAREPROVIDERSETTINGS","link":null},{"localized_name":"inputAudios","name":"inputAudios","shape":7,"type":"RUNWAREINPUTAUDIOS","link":null},{"localized_name":"referenceVideos","name":"referenceVideos","shape":7,"type":"RUNWAREREFERENCEVIDEOS","link":null},{"localized_name":"speech","name":"speech","shape":7,"type":"RUNWAREVIDEOINFERENCESPEECHINPUT","link":null},{"localized_name":"inputs","name":"inputs","shape":7,"type":"RUNWAREVIDEOINFERENCEINPUTS","link":3},{"localized_name":"safetyInputs","name":"safetyInputs","shape":7,"type":"RUNWARESAFETYINPUTS","link":9},{"localized_name":"videoAdvancedFeatureInputs","name":"videoAdvancedFeatureInputs","shape":7,"type":"RUNWAREVIDEOADVANCEDFEATUREINPUTS","link":null},{"localized_name":"Accelerator","name":"Accelerator","shape":7,"type":"RUNWAREACCELERATOR","link":null},{"localized_name":"settings","name":"settings","shape":7,"type":"RUNWAREVIDEOSETTINGS","link":null},{"localized_name":"Multi Inference Mode","name":"Multi Inference Mode","type":"BOOLEAN","widget":{"name":"Multi Inference Mode"},"link":null},{"localized_name":"Prompt Weighting","name":"Prompt Weighting","type":"COMBO","widget":{"name":"Prompt Weighting"},"link":null},{"localized_name":"useDuration","name":"useDuration","type":"BOOLEAN","widget":{"name":"useDuration"},"link":null},{"localized_name":"duration","name":"duration","type":"INT","widget":{"name":"duration"},"link":null},{"localized_name":"useFps","name":"useFps","type":"BOOLEAN","widget":{"name":"useFps"},"link":null},{"localized_name":"fps","name":"fps","type":"INT","widget":{"name":"fps"},"link":null},{"localized_name":"outputFormat","name":"outputFormat","type":"COMBO","widget":{"name":"outputFormat"},"link":null},{"localized_name":"useSeed","name":"useSeed","type":"BOOLEAN","widget":{"name":"useSeed"},"link":null},{"localized_name":"seed","name":"seed","type":"INT","widget":{"name":"seed"},"link":null},{"localized_name":"useSteps","name":"useSteps","type":"BOOLEAN","widget":{"name":"useSteps"},"link":null},{"localized_name":"steps","name":"steps","type":"INT","widget":{"name":"steps"},"link":null},{"localized_name":"useBatchSize","name":"useBatchSize","type":"BOOLEAN","widget":{"name":"useBatchSize"},"link":null},{"localized_name":"batchSize","name":"batchSize","type":"INT","widget":{"name":"batchSize"},"link":null},{"localized_name":"useSchedulers","name":"useSchedulers","type":"BOOLEAN","widget":{"name":"useSchedulers"},"link":null},{"localized_name":"scheduler","name":"scheduler","type":"COMBO","widget":{"name":"scheduler"},"link":null},{"localized_name":"useCFGScale","name":"useCFGScale","type":"BOOLEAN","widget":{"name":"useCFGScale"},"link":null},{"localized_name":"cfgScale","name":"cfgScale","type":"FLOAT","widget":{"name":"cfgScale"},"link":null},{"localized_name":"acceleration","name":"acceleration","type":"COMBO","widget":{"name":"acceleration"},"link":null},{"localized_name":"positivePrompt","name":"positivePrompt","shape":7,"type":"STRING","widget":{"name":"positivePrompt"},"link":null},{"localized_name":"negativePrompt","name":"negativePrompt","shape":7,"type":"STRING","widget":{"name":"negativePrompt"},"link":null}],"outputs":[{"localized_name":"VIDEO","name":"VIDEO","type":"VIDEO","links":[1]},{"localized_name":"RW-Task","name":"RW-Task","type":"RUNWARETASK","links":null},{"localized_name":"OUTPUT","name":"OUTPUT","type":"RUNWARETASK","links":null}],"properties":{"cnr_id":"ComfyUI-Runware","ver":"401e9f12a7121a6cc9891073e23ed5b2a24e9513","Node name for S&R":"Runware Video Inference"},"widgets_values":[false,"Disabled",false,5,false,24,"mp4",true,2106376308,"randomize",false,20,false,1,false,"euler",false,5,"none","Animate the reference subject using the motion from the source video, preserving facial expressions.",""],"bgcolor":"#5345bf"},{"id":3,"type":"Runware Video Model Search","pos":[-627.6731729224208,514.982063578072],"size":[294.16015625,250],"flags":{},"order":2,"mode":0,"inputs":[{"localized_name":"Model Search","name":"Model Search","type":"STRING","widget":{"name":"Model Search"},"link":null},{"localized_name":"Model Architecture","name":"Model Architecture","type":"COMBO","widget":{"name":"Model Architecture"},"link":null},{"localized_name":"VideoList","name":"VideoList","type":"COMBO","widget":{"name":"VideoList"},"link":null},{"localized_name":"Use Search Value","name":"Use Search Value","type":"BOOLEAN","widget":{"name":"Use Search Value"},"link":null},{"localized_name":"useCustomDimensions","name":"useCustomDimensions","type":"COMBO","widget":{"name":"useCustomDimensions"},"link":null},{"localized_name":"Width","name":"Width","type":"INT","widget":{"name":"Width"},"link":null},{"localized_name":"Height","name":"Height","type":"INT","widget":{"name":"Height"},"link":null},{"localized_name":"useResolution","name":"useResolution","type":"BOOLEAN","widget":{"name":"useResolution"},"link":null},{"localized_name":"resolution","name":"resolution","type":"COMBO","widget":{"name":"resolution"},"link":null}],"outputs":[{"localized_name":"Runware Video Model","name":"Runware Video Model","type":"RUNWAREVIDEOMODEL","links":[2]}],"properties":{"cnr_id":"ComfyUI-Runware","ver":"401e9f12a7121a6cc9891073e23ed5b2a24e9513","Node name for S&R":"Runware Video Model Search"},"widgets_values":["","Pruna","prunaai:p-video@animate (P-Video Animate)",false,"Disabled",0,0,false,"1080p"],"bgcolor":"#5345bf"},{"id":10,"type":"Runware Safety Inputs","pos":[-449.6447996063531,1314.3999438990322],"size":[270,226],"flags":{},"order":3,"mode":0,"inputs":[{"localized_name":"useMode","name":"useMode","shape":7,"type":"BOOLEAN","widget":{"name":"useMode"},"link":null},{"localized_name":"mode","name":"mode","shape":7,"type":"COMBO","widget":{"name":"mode"},"link":null},{"localized_name":"useTolerance","name":"useTolerance","shape":7,"type":"BOOLEAN","widget":{"name":"useTolerance"},"link":null},{"localized_name":"tolerance","name":"tolerance","shape":7,"type":"BOOLEAN","widget":{"name":"tolerance"},"link":null},{"localized_name":"useCheckInputs","name":"useCheckInputs","shape":7,"type":"BOOLEAN","widget":{"name":"useCheckInputs"},"link":null},{"localized_name":"checkInputs","name":"checkInputs","shape":7,"type":"BOOLEAN","widget":{"name":"checkInputs"},"link":null},{"localized_name":"useCheckContent","name":"useCheckContent","shape":7,"type":"BOOLEAN","widget":{"name":"useCheckContent"},"link":null},{"localized_name":"checkContent","name":"checkContent","shape":7,"type":"BOOLEAN","widget":{"name":"checkContent"},"link":null}],"outputs":[{"localized_name":"Safety Inputs","name":"Safety Inputs","type":"RUNWARESAFETYINPUTS","links":[9]}],"properties":{"cnr_id":"ComfyUI-Runware","ver":"03bb544f7d6254373dc1844a2591bbd0c1511249","Node name for S&R":"Runware Safety Inputs"},"widgets_values":[false,"none",false,false,false,false,true,true],"bgcolor":"#5345bf"}],"links":[[1,1,0,2,0,"VIDEO"],[2,3,0,1,0,"RUNWAREVIDEOMODEL"],[3,4,0,1,7,"RUNWAREVIDEOINFERENCEINPUTS"],[4,7,0,4,8,"RUNWAREREFERENCEVIDEOS"],[5,9,0,8,0,"VIDEO"],[6,8,0,7,1,"STRING"],[7,6,0,5,0,"IMAGE"],[8,5,0,4,7,"RUNWAREVIDEOINPUTSREFERENCEIMAGES"],[9,10,0,1,8,"RUNWARESAFETYINPUTS"]],"groups":[],"config":{},"extra":{"ds":{"scale":0.4603984853356424,"offset":[1322.6879997521094,-193.39736126216624]}},"version":0.4} \ No newline at end of file