From bf6dc1423d624559da53a6a5799a2e5c135a780c Mon Sep 17 00:00:00 2001 From: Sirshendu Ganguly Date: Mon, 9 Mar 2026 11:05:23 -0400 Subject: [PATCH 1/3] Added support for Inworld TTS 1.5 and added LTX 2.3 video models --- clientlibs/utils.js | 19 +++++++++++- modules/audioModelSearch.py | 5 +++ modules/audioSettings.py | 31 +++++++++++++++++++ modules/videoModelSearch.py | 4 +++ .../Runware_Audio_Inference_Inworld_TTS.json | 1 + workflows/Runware_VideoInference_LTX-2_3.json | 1 + 6 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 workflows/Runware_Audio_Inference_Inworld_TTS.json create mode 100644 workflows/Runware_VideoInference_LTX-2_3.json diff --git a/clientlibs/utils.js b/clientlibs/utils.js index 3504db9..d4dd1f0 100644 --- a/clientlibs/utils.js +++ b/clientlibs/utils.js @@ -1132,6 +1132,8 @@ function audioInferenceToggleHandler(audioInferenceNode) { function audioSettingsToggleHandler(settingsNode) { if (!settingsNode?.widgets) return; + const useTemperatureWidget = settingsNode.widgets.find(w => w && w.name === "useTemperature"); + const temperatureWidget = settingsNode.widgets.find(w => w && w.name === "temperature"); const useLyricsWidget = settingsNode.widgets.find(w => w && w.name === "useLyrics"); const lyricsWidget = settingsNode.widgets.find(w => w && w.name === "lyrics"); const useGuidanceTypeWidget = settingsNode.widgets.find(w => w && w.name === "useGuidanceType"); @@ -1140,6 +1142,8 @@ function audioSettingsToggleHandler(settingsNode) { const languageBoostWidget = settingsNode.widgets.find(w => w && w.name === "languageBoost"); const useTurboWidget = settingsNode.widgets.find(w => w && w.name === "useTurbo"); const turboWidget = settingsNode.widgets.find(w => w && w.name === "turbo"); + const useTextNormalizationWidget = settingsNode.widgets.find(w => w && w.name === "useTextNormalization"); + const textNormalizationWidget = settingsNode.widgets.find(w => w && w.name === "textNormalization"); function toggleWidgetState(useWidget, paramWidget, paramName) { if (!useWidget || !paramWidget) return; @@ -1157,10 +1161,12 @@ function audioSettingsToggleHandler(settingsNode) { appendWidgetCB(useWidget, () => setTimeout(applyState, 50)); } + if (useTemperatureWidget && temperatureWidget) toggleWidgetState(useTemperatureWidget, temperatureWidget, "temperature"); if (useLyricsWidget && lyricsWidget) toggleWidgetState(useLyricsWidget, lyricsWidget, "lyrics"); if (useGuidanceTypeWidget && guidanceTypeWidget) toggleWidgetState(useGuidanceTypeWidget, guidanceTypeWidget, "guidanceType"); if (useLanguageBoostWidget && languageBoostWidget) toggleWidgetState(useLanguageBoostWidget, languageBoostWidget, "languageBoost"); if (useTurboWidget && turboWidget) toggleWidgetState(useTurboWidget, turboWidget, "turbo"); + if (useTextNormalizationWidget && textNormalizationWidget) toggleWidgetState(useTextNormalizationWidget, textNormalizationWidget, "textNormalization"); } function videoSettingsToggleHandler(settingsNode) { @@ -2317,6 +2323,7 @@ function videoModelSearchFilterHandler(videoModelSearchNode) { "Lightricks": [ "lightricks:2@0 (LTX Fast)", "lightricks:2@1 (LTX Pro)", "lightricks:3@1 (LTX-2 Retake)", "lightricks:ltx@2 (LTX-2)", + "lightricks:ltx@2.3 (LTX 2.3)", "lightricks:ltx@2.3-fast (LTX 2.3 Fast)", ], "Ovi": [ "runware:190@1 (Ovi)", @@ -2420,6 +2427,9 @@ function videoModelSearchFilterHandler(videoModelSearchNode) { "lightricks:2@0": {"width": 1920, "height": 1080}, "lightricks:2@1": {"width": 1920, "height": 1080}, "lightricks:3@1": {"width": 0, "height": 0}, + "lightricks:ltx@2": {"width": 1024, "height": 1024}, + "lightricks:ltx@2.3": {"width": 1920, "height": 1080}, + "lightricks:ltx@2.3-fast": {"width": 1920, "height": 1080}, "runware:190@1": {"width": 0, "height": 0}, "runway:2@1": {"width": 1280, "height": 720}, "runway:1@1": {"width": 1280, "height": 720}, @@ -2500,6 +2510,9 @@ function videoModelSearchFilterHandler(videoModelSearchNode) { "lightricks:2@0": "1080p", "lightricks:2@1": "1080p", "lightricks:3@1": null, // No resolution support + "lightricks:ltx@2": null, // No resolution support (fixed 1024x1024) + "lightricks:ltx@2.3": "1080p", + "lightricks:ltx@2.3-fast": "1080p", "runware:190@1": null, // No resolution support "runway:2@1": "720p", "runway:1@1": "720p", @@ -2737,6 +2750,10 @@ function audioModelSearchFilterHandler(audioModelSearchNode) { "MiniMax": [ "minimax:speech@2.8 (MiniMax Speech 2.8)", ], + "Inworld": [ + "inworld:tts@1.5-mini (Inworld TTS-1.5 Mini)", + "inworld:tts@1.5-max (Inworld TTS-1.5 Max)", + ], }; function filterModelList() { @@ -4245,4 +4262,4 @@ function syncSegmentToggleHandler(syncSegmentNode) { if (useAudioEndTimeWidget && audioEndTimeWidget) { toggleWidgetState(useAudioEndTimeWidget, audioEndTimeWidget, "audioEndTime"); } -} \ No newline at end of file +} diff --git a/modules/audioModelSearch.py b/modules/audioModelSearch.py index da47ee7..1327d71 100644 --- a/modules/audioModelSearch.py +++ b/modules/audioModelSearch.py @@ -20,6 +20,10 @@ class RunwareAudioModelSearch: "MiniMax": [ "minimax:speech@2.8 (MiniMax Speech 2.8)", ], + "Inworld": [ + "inworld:tts@1.5-mini (Inworld TTS-1.5 Mini)", + "inworld:tts@1.5-max (Inworld TTS-1.5 Max)", + ], } MODEL_PROVIDERS = [ @@ -29,6 +33,7 @@ class RunwareAudioModelSearch: "Mirelo", "Ace", "MiniMax", + "Inworld", ] @classmethod diff --git a/modules/audioSettings.py b/modules/audioSettings.py index 28913b6..930ead4 100644 --- a/modules/audioSettings.py +++ b/modules/audioSettings.py @@ -14,6 +14,17 @@ class RunwareAudioSettings: return { "required": {}, "optional": { + "useTemperature": ("BOOLEAN", { + "tooltip": "Enable to include temperature in audio generation settings", + "default": False, + }), + "temperature": ("FLOAT", { + "tooltip": "Temperature value for audio generation. Higher values increase diversity, lower values make output more deterministic. Only used when 'Use Temperature' is enabled.", + "default": 1.0, + "min": 0.0, + "max": 2.0, + "step": 0.1, + }), "useLyrics": ("BOOLEAN", { "tooltip": "Enable to include lyrics in audio generation settings", "default": False, @@ -54,6 +65,16 @@ class RunwareAudioSettings: "label_on": "true", "label_off": "false", }), + "useTextNormalization": ("BOOLEAN", { + "tooltip": "Enable to include textNormalization (normalize text before synthesis) in audio generation settings", + "default": False, + }), + "textNormalization": ("BOOLEAN", { + "tooltip": "Normalize text (e.g. numbers, abbreviations) before synthesis to improve pronunciation. Only used when 'Use Text Normalization' is enabled.", + "default": True, + "label_on": "true", + "label_off": "false", + }), } } @@ -65,6 +86,8 @@ class RunwareAudioSettings: def createSettings(self, **kwargs) -> tuple[Dict[str, Any]]: """Create audio settings dict for API""" + use_temperature = kwargs.get("useTemperature", False) + temperature = kwargs.get("temperature", 1.0) use_lyrics = kwargs.get("useLyrics", False) lyrics = kwargs.get("lyrics", "") use_guidance_type = kwargs.get("useGuidanceType", False) @@ -73,9 +96,14 @@ class RunwareAudioSettings: language_boost = kwargs.get("languageBoost", "auto") use_turbo = kwargs.get("useTurbo", False) turbo = kwargs.get("turbo", False) + use_text_normalization = kwargs.get("useTextNormalization", False) + text_normalization = kwargs.get("textNormalization", True) settings: Dict[str, Any] = {} + if use_temperature: + settings["temperature"] = float(temperature) + if use_lyrics and lyrics and lyrics.strip(): settings["lyrics"] = lyrics.strip() @@ -88,6 +116,9 @@ class RunwareAudioSettings: if use_turbo: settings["turbo"] = bool(turbo) # API requires true/false + if use_text_normalization: + settings["textNormalization"] = bool(text_normalization) + return (settings,) diff --git a/modules/videoModelSearch.py b/modules/videoModelSearch.py index b286cdd..3671580 100644 --- a/modules/videoModelSearch.py +++ b/modules/videoModelSearch.py @@ -200,6 +200,8 @@ class videoModelSearch: "lightricks:2@1": {"width": 1920, "height": 1080}, "lightricks:3@1": {"width": 0, "height": 0}, "lightricks:ltx@2": {"width": 1024, "height": 1024}, + "lightricks:ltx@2.3": {"width": 1920, "height": 1080}, + "lightricks:ltx@2.3-fast": {"width": 1920, "height": 1080}, # Ovi Models "runware:190@1": {"width": 0, "height": 0}, @@ -320,6 +322,8 @@ class videoModelSearch: "lightricks:2@1": "1080p", "lightricks:3@1": None, # No resolution support "lightricks:ltx@2": None, # No resolution support (fixed 1024x1024) + "lightricks:ltx@2.3": "1080p", + "lightricks:ltx@2.3-fast": "1080p", # Ovi Models "runware:190@1": None, # No resolution support diff --git a/workflows/Runware_Audio_Inference_Inworld_TTS.json b/workflows/Runware_Audio_Inference_Inworld_TTS.json new file mode 100644 index 0000000..4b3ed9a --- /dev/null +++ b/workflows/Runware_Audio_Inference_Inworld_TTS.json @@ -0,0 +1 @@ +{"id":"1f983d7f-19d2-421b-a4f7-5da2ad519fb0","revision":0,"last_node_id":6,"last_link_id":5,"nodes":[{"id":2,"type":"SaveAudio","pos":[458.5147399902344,426.4854736328125],"size":[270,112],"flags":{},"order":4,"mode":0,"inputs":[{"localized_name":"audio","name":"audio","type":"AUDIO","link":3},{"localized_name":"filename_prefix","name":"filename_prefix","type":"STRING","widget":{"name":"filename_prefix"},"link":null},{"localized_name":"audioUI","name":"audioUI","type":"AUDIO_UI","widget":{"name":"audioUI"},"link":null}],"outputs":[],"properties":{"cnr_id":"comfy-core","ver":"0.3.46"},"widgets_values":["audio/ComfyUI"]},{"id":5,"type":"Runware Audio Inference Speech","pos":[475.8870544433594,735.7092895507812],"size":[400,382],"flags":{},"order":0,"mode":0,"inputs":[{"localized_name":"text","name":"text","type":"STRING","widget":{"name":"text"},"link":null},{"localized_name":"voice","name":"voice","type":"STRING","widget":{"name":"voice"},"link":null},{"localized_name":"useSpeed","name":"useSpeed","shape":7,"type":"BOOLEAN","widget":{"name":"useSpeed"},"link":null},{"localized_name":"speed","name":"speed","shape":7,"type":"FLOAT","widget":{"name":"speed"},"link":null},{"localized_name":"useVolume","name":"useVolume","shape":7,"type":"BOOLEAN","widget":{"name":"useVolume"},"link":null},{"localized_name":"volume","name":"volume","shape":7,"type":"FLOAT","widget":{"name":"volume"},"link":null},{"localized_name":"usePitch","name":"usePitch","shape":7,"type":"BOOLEAN","widget":{"name":"usePitch"},"link":null},{"localized_name":"pitch","name":"pitch","shape":7,"type":"FLOAT","widget":{"name":"pitch"},"link":null},{"localized_name":"useEmotion","name":"useEmotion","shape":7,"type":"BOOLEAN","widget":{"name":"useEmotion"},"link":null},{"localized_name":"emotion","name":"emotion","shape":7,"type":"COMBO","widget":{"name":"emotion"},"link":null},{"localized_name":"useTone","name":"useTone","shape":7,"type":"BOOLEAN","widget":{"name":"useTone"},"link":null},{"localized_name":"tone","name":"tone","shape":7,"type":"STRING","widget":{"name":"tone"},"link":null}],"outputs":[{"localized_name":"speech","name":"speech","type":"RUNWARESPEECH","links":[4]}],"properties":{"cnr_id":"ComfyUI-Runware","ver":"48991bc06b8fc9b7df2ead3353f195308441f2ba","Node name for S&R":"Runware Audio Inference Speech"},"widgets_values":["Hello, this is a test of the speech synthesis model.","Alex",true,1,false,1,false,0,false,"calm",false,""],"bgcolor":"#5345bf"},{"id":3,"type":"Runware Audio Model Search","pos":[-442.09161376953125,382.5326843261719],"size":[270,130],"flags":{},"order":1,"mode":0,"inputs":[{"localized_name":"Model Search","name":"Model Search","type":"STRING","widget":{"name":"Model Search"},"link":null},{"localized_name":"Model Provider","name":"Model Provider","type":"COMBO","widget":{"name":"Model Provider"},"link":null},{"localized_name":"AudioList","name":"AudioList","type":"COMBO","widget":{"name":"AudioList"},"link":null},{"localized_name":"Use Search Value","name":"Use Search Value","type":"BOOLEAN","widget":{"name":"Use Search Value"},"link":null}],"outputs":[{"localized_name":"model","name":"model","type":"RUNWAREAUDIOMODEL","links":[1]}],"properties":{"cnr_id":"ComfyUI-Runware","ver":"48991bc06b8fc9b7df2ead3353f195308441f2ba","Node name for S&R":"Runware Audio Model Search"},"widgets_values":["","Inworld","inworld:tts@1.5-mini (Inworld TTS-1.5 Mini)",false],"bgcolor":"#5345bf"},{"id":6,"type":"Runware Audio Inference Settings","pos":[-620.614013671875,646.6273193359375],"size":[400,352],"flags":{},"order":2,"mode":0,"inputs":[{"localized_name":"useTemperature","name":"useTemperature","shape":7,"type":"BOOLEAN","widget":{"name":"useTemperature"},"link":null},{"localized_name":"temperature","name":"temperature","shape":7,"type":"FLOAT","widget":{"name":"temperature"},"link":null},{"localized_name":"useLyrics","name":"useLyrics","shape":7,"type":"BOOLEAN","widget":{"name":"useLyrics"},"link":null},{"localized_name":"lyrics","name":"lyrics","shape":7,"type":"STRING","widget":{"name":"lyrics"},"link":null},{"localized_name":"useGuidanceType","name":"useGuidanceType","shape":7,"type":"BOOLEAN","widget":{"name":"useGuidanceType"},"link":null},{"localized_name":"guidanceType","name":"guidanceType","shape":7,"type":"COMBO","widget":{"name":"guidanceType"},"link":null},{"localized_name":"useLanguageBoost","name":"useLanguageBoost","shape":7,"type":"BOOLEAN","widget":{"name":"useLanguageBoost"},"link":null},{"localized_name":"languageBoost","name":"languageBoost","shape":7,"type":"COMBO","widget":{"name":"languageBoost"},"link":null},{"localized_name":"useTurbo","name":"useTurbo","shape":7,"type":"BOOLEAN","widget":{"name":"useTurbo"},"link":null},{"localized_name":"turbo","name":"turbo","shape":7,"type":"BOOLEAN","widget":{"name":"turbo"},"link":null},{"localized_name":"useTextNormalization","name":"useTextNormalization","shape":7,"type":"BOOLEAN","widget":{"name":"useTextNormalization"},"link":null},{"localized_name":"textNormalization","name":"textNormalization","shape":7,"type":"BOOLEAN","widget":{"name":"textNormalization"},"link":null}],"outputs":[{"localized_name":"settings","name":"settings","type":"RUNWAREAUDIOSETTINGS","links":[5]}],"properties":{"cnr_id":"ComfyUI-Runware","ver":"48991bc06b8fc9b7df2ead3353f195308441f2ba","Node name for S&R":"Runware Audio Inference Settings"},"widgets_values":[true,1,false,"",false,"apg",false,"auto",false,false,true,true],"bgcolor":"#5345bf"},{"id":1,"type":"Runware Audio Inference","pos":[-42.100257873535156,393.7787780761719],"size":[400,746],"flags":{},"order":3,"mode":0,"inputs":[{"localized_name":"model","name":"model","type":"RUNWAREAUDIOMODEL","link":1},{"localized_name":"inputs","name":"inputs","shape":7,"type":"RUNWAREAUDIOINFERENCEINPUTS","link":null},{"localized_name":"settings","name":"settings","shape":7,"type":"RUNWAREAUDIOSETTINGS","link":5},{"localized_name":"speech","name":"speech","shape":7,"type":"RUNWARESPEECH","link":4},{"localized_name":"voiceModify","name":"voiceModify","shape":7,"type":"RUNWAREVOICEMODIFY","link":null},{"localized_name":"providerSettings","name":"providerSettings","shape":7,"type":"RUNWAREPROVIDERSETTINGS","link":null},{"localized_name":"usePositivePrompt","name":"usePositivePrompt","type":"BOOLEAN","widget":{"name":"usePositivePrompt"},"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":"useDuration","name":"useDuration","type":"BOOLEAN","widget":{"name":"useDuration"},"link":null},{"localized_name":"duration","name":"duration","type":"INT","widget":{"name":"duration"},"link":null},{"localized_name":"useSampleRate","name":"useSampleRate","type":"BOOLEAN","widget":{"name":"useSampleRate"},"link":null},{"localized_name":"sampleRate","name":"sampleRate","type":"COMBO","widget":{"name":"sampleRate"},"link":null},{"localized_name":"useBitrate","name":"useBitrate","type":"BOOLEAN","widget":{"name":"useBitrate"},"link":null},{"localized_name":"bitrate","name":"bitrate","type":"COMBO","widget":{"name":"bitrate"},"link":null},{"localized_name":"useChannels","name":"useChannels","type":"BOOLEAN","widget":{"name":"useChannels"},"link":null},{"localized_name":"channels","name":"channels","type":"INT","widget":{"name":"channels"},"link":null},{"localized_name":"outputType","name":"outputType","type":"COMBO","widget":{"name":"outputType"},"link":null},{"localized_name":"outputFormat","name":"outputFormat","type":"COMBO","widget":{"name":"outputFormat"},"link":null},{"localized_name":"numberResults","name":"numberResults","type":"INT","widget":{"name":"numberResults"},"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":"useStrength","name":"useStrength","type":"BOOLEAN","widget":{"name":"useStrength"},"link":null},{"localized_name":"strength","name":"strength","type":"FLOAT","widget":{"name":"strength"},"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}],"outputs":[{"localized_name":"audio","name":"audio","type":"AUDIO","links":[3]},{"localized_name":"video","name":"video","type":"VIDEO","links":null}],"properties":{"cnr_id":"ComfyUI-Runware","ver":"48991bc06b8fc9b7df2ead3353f195308441f2ba","Node name for S&R":"Runware Audio Inference"},"widgets_values":[false,"","",false,10,true,32000,true,128,false,2,"URL","MP3",1,false,89303058,"randomize",false,20,false,0.8,false,12],"bgcolor":"#5345bf"}],"links":[[1,3,0,1,0,"RUNWAREAUDIOMODEL"],[3,1,0,2,0,"AUDIO"],[4,5,0,1,3,"RUNWARESPEECH"],[5,6,0,1,2,"RUNWAREAUDIOSETTINGS"]],"groups":[],"config":{},"extra":{"ds":{"scale":0.6210486460373088,"offset":[967.9536571252576,-257.96387436099343]}},"version":0.4} \ No newline at end of file diff --git a/workflows/Runware_VideoInference_LTX-2_3.json b/workflows/Runware_VideoInference_LTX-2_3.json new file mode 100644 index 0000000..5d8bdff --- /dev/null +++ b/workflows/Runware_VideoInference_LTX-2_3.json @@ -0,0 +1 @@ +{"id":"5e7d09c2-a9b7-40a4-931b-49bb8f36edef","revision":0,"last_node_id":9,"last_link_id":11,"nodes":[{"id":3,"type":"SaveVideo","pos":[556.7977905273438,701.8990478515625],"size":[270,249.875],"flags":{},"order":5,"mode":0,"inputs":[{"localized_name":"video","name":"video","type":"VIDEO","link":11},{"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.3.46","Node name for S&R":"SaveVideo"},"widgets_values":["video/ComfyUI","auto","auto"]},{"id":6,"type":"LoadImage","pos":[-684.562744140625,689.0344848632812],"size":[274.080078125,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":[5]},{"localized_name":"MASK","name":"MASK","type":"MASK","links":null}],"properties":{"cnr_id":"comfy-core","ver":"0.3.46","Node name for S&R":"LoadImage"},"widgets_values":["car (1).jpg","image"]},{"id":8,"type":"Runware Video Inputs Frame Images","pos":[-682.3416748046875,1129.2425537109375],"size":[331.5357360839844,190],"flags":{},"order":2,"mode":0,"inputs":[{"localized_name":"image1","name":"image1","shape":7,"type":"IMAGE","link":5},{"localized_name":"image2","name":"image2","shape":7,"type":"IMAGE","link":null},{"localized_name":"image3","name":"image3","shape":7,"type":"IMAGE","link":null},{"localized_name":"image4","name":"image4","shape":7,"type":"IMAGE","link":null},{"localized_name":"frame1 position","name":"frame1 position","shape":7,"type":"STRING","widget":{"name":"frame1 position"},"link":null},{"localized_name":"frame2 position","name":"frame2 position","shape":7,"type":"STRING","widget":{"name":"frame2 position"},"link":null},{"localized_name":"frame3 position","name":"frame3 position","shape":7,"type":"STRING","widget":{"name":"frame3 position"},"link":null},{"localized_name":"frame4 position","name":"frame4 position","shape":7,"type":"STRING","widget":{"name":"frame4 position"},"link":null}],"outputs":[{"localized_name":"Video Inputs Frame Images","name":"Video Inputs Frame Images","type":"RUNWAREVIDEOINPUTSFRAMEIMAGES","links":[7]}],"properties":{"cnr_id":"ComfyUI-Runware","ver":"25eae10eda9c6a85e1887e62138bebbe245420d6","Node name for S&R":"Runware Video Inputs Frame Images"},"widgets_values":["","","",""],"bgcolor":"#5345bf"},{"id":4,"type":"Runware Video Inference Inputs","pos":[-309.3227844238281,1102.653564453125],"size":[320.0390625,290],"flags":{},"order":3,"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":7},{"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":"References","name":"References","shape":7,"type":"RUNWAREVIDEOINPUTSREFERENCEIMAGES","link":null},{"localized_name":"Reference Videos","name":"Reference Videos","shape":7,"type":"RUNWAREREFERENCEVIDEOS","link":null},{"localized_name":"Reference Voices","name":"Reference Voices","shape":7,"type":"RUNWAREREFERENCEVOICES","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":[9]}],"properties":{"cnr_id":"ComfyUI-Runware","ver":"25eae10eda9c6a85e1887e62138bebbe245420d6","Node name for S&R":"Runware Video Inference Inputs"},"widgets_values":["","","",""],"bgcolor":"#5345bf"},{"id":1,"type":"Runware Video Model Search","pos":[-337.95172119140625,691.8677368164062],"size":[287.380859375,290],"flags":{},"order":1,"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":[10]},{"localized_name":"Width","name":"Width","type":"INT","links":null},{"localized_name":"Height","name":"Height","type":"INT","links":null}],"properties":{"cnr_id":"ComfyUI-Runware","ver":"25eae10eda9c6a85e1887e62138bebbe245420d6","Node name for S&R":"Runware Video Model Search"},"widgets_values":["","Lightricks","lightricks:ltx@2.3-fast (LTX 2.3 Fast)",false,"Model Default",1920,1080,false,"1080p"],"bgcolor":"#5345bf"},{"id":9,"type":"Runware Video Inference","pos":[74.17791748046875,673.1202392578125],"size":[400,876],"flags":{},"order":4,"mode":0,"inputs":[{"localized_name":"Model","name":"Model","type":"RUNWAREVIDEOMODEL","link":10},{"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":"inputs","name":"inputs","shape":7,"type":"RUNWAREVIDEOINFERENCEINPUTS","link":9},{"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},{"localized_name":"speechVoice","name":"speechVoice","shape":7,"type":"STRING","widget":{"name":"speechVoice"},"link":null},{"localized_name":"speechText","name":"speechText","shape":7,"type":"STRING","widget":{"name":"speechText"},"link":null}],"outputs":[{"localized_name":"VIDEO","name":"VIDEO","type":"VIDEO","links":[11]},{"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":"48991bc06b8fc9b7df2ead3353f195308441f2ba","Node name for S&R":"Runware Video Inference"},"widgets_values":[false,"Disabled",true,6,false,24,"mp4",false,513158872,"randomize",false,20,false,1,false,"euler",false,5,"none","Cat running behind the car","","",""],"bgcolor":"#5345bf"}],"links":[[5,6,0,8,0,"IMAGE"],[7,8,0,4,1,"RUNWAREVIDEOINPUTSFRAMEIMAGES"],[9,4,0,9,6,"RUNWAREVIDEOINFERENCEINPUTS"],[10,1,0,9,0,"RUNWAREVIDEOMODEL"],[11,9,0,3,0,"VIDEO"]],"groups":[],"config":{},"extra":{"ds":{"scale":0.6055161331424408,"offset":[949.1858550894896,-589.1852330986303]}},"version":0.4} \ No newline at end of file From 92033b38e3eb96e43c6c2625a560436c2d9ed540 Mon Sep 17 00:00:00 2001 From: Sirshendu Ganguly Date: Wed, 11 Mar 2026 20:07:47 -0400 Subject: [PATCH 2/3] Updated comments, added video models for lighttricks in UI --- modules/audioInference.py | 2 +- modules/audioSettings.py | 7 ++++--- modules/videoModelSearch.py | 2 ++ 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/modules/audioInference.py b/modules/audioInference.py index c05c024..09dd6a4 100644 --- a/modules/audioInference.py +++ b/modules/audioInference.py @@ -136,7 +136,7 @@ class RunwareAudioInference: "tooltip": "Custom inputs for audio generation (e.g., video URL for audio extraction)" }), "settings": ("RUNWAREAUDIOSETTINGS", { - "tooltip": "Connect Runware Audio Inference Settings for lyrics, guidanceType, etc." + "tooltip": "Connect Runware Audio Inference Settings for lyrics, guidanceType, languageBoost, turbo, temperature, textNormalization." }), "speech": ("RUNWARESPEECH", { "tooltip": "Connect Runware Audio Inference Speech for speech synthesis (e.g. Minimax)" diff --git a/modules/audioSettings.py b/modules/audioSettings.py index 930ead4..4f4810c 100644 --- a/modules/audioSettings.py +++ b/modules/audioSettings.py @@ -1,13 +1,14 @@ """ Runware Audio Inference Settings Node -Provides lyrics and guidanceType settings for Runware Audio Inference +Provides lyrics, guidanceType, languageBoost, turbo, temperature, and textNormalization +settings for Runware Audio Inference. """ from typing import Dict, Any class RunwareAudioSettings: - """Runware Audio Inference Settings Node""" + """Runware Audio Inference Settings Node (lyrics, guidanceType, languageBoost, turbo, temperature, textNormalization).""" @classmethod def INPUT_TYPES(cls): @@ -82,7 +83,7 @@ class RunwareAudioSettings: RETURN_NAMES = ("settings",) FUNCTION = "createSettings" CATEGORY = "Runware/Audio" - DESCRIPTION = "Configure audio generation settings (lyrics, guidanceType, languageBoost, turbo) for Runware Audio Inference. Connect to Runware Audio Inference node." + DESCRIPTION = "Configure audio generation settings (lyrics, guidanceType, languageBoost, turbo, temperature, textNormalization) for Runware Audio Inference. Connect to Runware Audio Inference node." def createSettings(self, **kwargs) -> tuple[Dict[str, Any]]: """Create audio settings dict for API""" diff --git a/modules/videoModelSearch.py b/modules/videoModelSearch.py index 3671580..85b8478 100644 --- a/modules/videoModelSearch.py +++ b/modules/videoModelSearch.py @@ -79,6 +79,8 @@ class videoModelSearch: "lightricks:2@1 (LTX Pro)", "lightricks:3@1 (LTX-2 Retake)", "lightricks:ltx@2 (LTX-2)", + "lightricks:ltx@2.3 (LTX 2.3)", + "lightricks:ltx@2.3-fast (LTX 2.3 Fast)", ], "Ovi": [ "runware:190@1 (Ovi)", From 6838d7de3e0fac8053608d1379e9bf648a4dd9b9 Mon Sep 17 00:00:00 2001 From: Sirshendu Ganguly Date: Wed, 11 Mar 2026 20:36:56 -0400 Subject: [PATCH 3/3] Fixed model names --- clientlibs/utils.js | 2 ++ modules/videoModelSearch.py | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/clientlibs/utils.js b/clientlibs/utils.js index d4dd1f0..de4d09a 100644 --- a/clientlibs/utils.js +++ b/clientlibs/utils.js @@ -2407,6 +2407,7 @@ function videoModelSearchFilterHandler(videoModelSearchNode) { "pixverse:1@1": {"width": 640, "height": 360}, "pixverse:1@2": {"width": 640, "height": 360}, "pixverse:1@3": {"width": 640, "height": 360}, + "pixverse:1@5-fast": {"width": 640, "height": 360}, "pixverse:1@6": {"width": 640, "height": 360}, "pixverse:1@7": {"width": 640, "height": 360}, "pixverse:lipsync@1": {"width": 640, "height": 360}, @@ -2490,6 +2491,7 @@ function videoModelSearchFilterHandler(videoModelSearchNode) { "pixverse:1@1": "360p", "pixverse:1@2": "360p", "pixverse:1@3": "360p", + "pixverse:1@5-fast": "360p", "pixverse:1@6": "360p", "pixverse:1@7": "360p", "pixverse:lipsync@1": "360p", diff --git a/modules/videoModelSearch.py b/modules/videoModelSearch.py index 85b8478..ab0962d 100644 --- a/modules/videoModelSearch.py +++ b/modules/videoModelSearch.py @@ -22,6 +22,8 @@ class videoModelSearch: "klingai:kling-video@3-standard (Kling VIDEO 3.0 Standard)", "klingai:kling-video@o3-pro (Kling VIDEO O3 Pro)", "klingai:kling-video@o3-standard (Kling VIDEO O3 Standard)", + "klingai:avatar@2.0-standard (KlingAI Avatar 2.0 Standard)", + "klingai:avatar@2.0-pro (KlingAI Avatar 2.0 Pro)", ], "Veo": [ "google:2@0 (Veo 2.0)", @@ -145,6 +147,8 @@ class videoModelSearch: "klingai:kling-video@3-standard": {"width": 1920, "height": 1080}, "klingai:kling-video@o3-pro": {"width": 1920, "height": 1080}, "klingai:kling-video@o3-standard": {"width": 1920, "height": 1080}, + "klingai:avatar@2.0-standard": {"width": 0, "height": 0}, + "klingai:avatar@2.0-pro": {"width": 0, "height": 0}, # Veo Models "google:2@0": {"width": 1280, "height": 720}, @@ -267,6 +271,8 @@ class videoModelSearch: "klingai:kling-video@3-standard": "1080p", "klingai:kling-video@o3-pro": "1080p", "klingai:kling-video@o3-standard": "1080p", + "klingai:avatar@2.0-standard": None, # No resolution support + "klingai:avatar@2.0-pro": None, # No resolution support # Veo Models "google:2@0": "720p",