From 77312c99143b8127eda3eef05163eb94f2691920 Mon Sep 17 00:00:00 2001 From: Sirshendu Ganguly Date: Tue, 10 Feb 2026 09:08:03 -0500 Subject: [PATCH] Add schedulers and CFGScale to videoInference --- clientlibs/utils.js | 19 ++++++++++++ modules/videoInference.py | 31 +++++++++++++++++++ modules/videoModelSearch.py | 10 ++++++ workflows/Runware_Image_Inference_GLM.json | 1 + .../Runware_Video_Inference_Kadinsky5.json | 1 + 5 files changed, 62 insertions(+) create mode 100644 workflows/Runware_Image_Inference_GLM.json create mode 100644 workflows/Runware_Video_Inference_Kadinsky5.json diff --git a/clientlibs/utils.js b/clientlibs/utils.js index b7b4b13..c0a3e40 100644 --- a/clientlibs/utils.js +++ b/clientlibs/utils.js @@ -760,6 +760,8 @@ function useParameterToggleHandler(node) { "useCustomDimensions": ["width", "height"], // Note: Also handled separately in videoInferenceDimensionsHandler "useDuration": ["duration"], "useFps": ["fps"], + "useSchedulers": ["scheduler"], + "useCFGScale": ["cfgScale"], // useSteps and useSeed are same as image inference, handled by fallback // Upscaler specific mappings (override for nodes that have CFGScale with capital C) @@ -2022,6 +2024,10 @@ function videoInferenceDimensionsHandler(videoInferenceNode) { const stepsWidget = videoInferenceNode.widgets.find(w => w.name === "steps"); const useBatchSizeWidget = videoInferenceNode.widgets.find(w => w.name === "useBatchSize"); const batchSizeWidget = videoInferenceNode.widgets.find(w => w.name === "batchSize"); + const useSchedulersWidget = videoInferenceNode.widgets.find(w => w.name === "useSchedulers"); + const schedulerWidget = videoInferenceNode.widgets.find(w => w.name === "scheduler"); + const useCFGScaleWidget = videoInferenceNode.widgets.find(w => w.name === "useCFGScale"); + const cfgScaleWidget = videoInferenceNode.widgets.find(w => w.name === "cfgScale"); // Helper function to toggle widget enabled state function toggleWidgetState(useWidget, paramWidget, paramName) { @@ -2089,6 +2095,14 @@ function videoInferenceDimensionsHandler(videoInferenceNode) { if (useBatchSizeWidget && batchSizeWidget) { toggleWidgetState(useBatchSizeWidget, batchSizeWidget, "batchSize"); } + + if (useSchedulersWidget && schedulerWidget) { + toggleWidgetState(useSchedulersWidget, schedulerWidget, "scheduler"); + } + + if (useCFGScaleWidget && cfgScaleWidget) { + toggleWidgetState(useCFGScaleWidget, cfgScaleWidget, "cfgScale"); + } } function videoModelSearchFilterHandler(videoModelSearchNode) { @@ -2182,6 +2196,9 @@ function videoModelSearchFilterHandler(videoModelSearchNode) { "Hunyuan": [ "runware:hunyuanvideo@1.5 (HunyuanVideo-1.5)", ], + "Kandinsky": [ + "runware:210@1 (Kandinsky 5.0 Lite)", + ], "xAI": [ "xai:grok-imagine@video (Grok Imagine Video)", ], @@ -2260,6 +2277,7 @@ function videoModelSearchFilterHandler(videoModelSearchNode) { "creatify:aurora@fast": {"width": 1280, "height": 720}, "creatify:aurora@0": {"width": 1280, "height": 720}, "runware:hunyuanvideo@1.5": {"width": 848, "height": 480}, + "runware:210@1": {"width": 512, "height": 512}, "xai:grok-imagine@video": {"width": 480, "height": 480}, "veed:fabric@1.0": {"width": 1280, "height": 720}, }; @@ -2334,6 +2352,7 @@ function videoModelSearchFilterHandler(videoModelSearchNode) { "creatify:aurora@fast": "720p", "creatify:aurora@0": "720p", "runware:hunyuanvideo@1.5": "480p", + "runware:210@1": null, // No resolution support (fixed 512x512) "xai:grok-imagine@video": "480p", "veed:fabric@1.0": "720p", }; diff --git a/modules/videoInference.py b/modules/videoInference.py index 40d1033..39b0db2 100644 --- a/modules/videoInference.py +++ b/modules/videoInference.py @@ -75,6 +75,25 @@ class txt2vid: "min": 1, "max": 4, }), + "useSchedulers": ("BOOLEAN", { + "tooltip": "Enable to include scheduler parameter in API request. Disable if your model doesn't support scheduler.", + "default": False, + }), + "scheduler": (["euler", "dpm", "adams", "unipc"], { + "default": "euler", + "tooltip": "High-level scheduler name for video generation. Only used when 'Use Schedulers' is enabled.", + }), + "useCFGScale": ("BOOLEAN", { + "tooltip": "Enable to include guidance_scale (CFG) parameter in API request. Disable for No-CFG models.", + "default": False, + }), + "cfgScale": ("FLOAT", { + "tooltip": "Classifier-free guidance strength. Set to 1 for No-CFG models. For Duration 5 use 1; for Duration 10, 1-7 is valid. Default 5.", + "default": 5.0, + "min": 1.0, + "max": 7.0, + "step": 0.1, + }), "acceleration": (["none", "low", "medium", "high"], { "tooltip": "Applies optimized acceleration presets that automatically configure multiple generation parameters for the best speed and quality balance. This parameter serves as an abstraction layer that intelligently adjusts acceleratorOptions, steps, scheduler, and other underlying settings.\n\nAvailable values:\n- none: No acceleration applied, uses default parameter values.\n- low: Minimal acceleration with optimized settings for lowest quality loss.\n- medium: Balanced acceleration preset with moderate speed improvements.\n- high: Maximum acceleration with caching and aggressive optimizations for fastest generation.", "default": "none", @@ -173,6 +192,10 @@ class txt2vid: useSteps = kwargs.get("useSteps", False) useBatchSize = kwargs.get("useBatchSize", False) batchSize = kwargs.get("batchSize", 1) + useSchedulers = kwargs.get("useSchedulers", False) + scheduler = kwargs.get("scheduler", "euler") + useCFGScale = kwargs.get("useCFGScale", False) + cfgScale = kwargs.get("cfgScale", 5.0) acceleration = kwargs.get("acceleration", "none") # Handle model input - could be dict or string @@ -235,6 +258,14 @@ class txt2vid: if useSteps: genConfig[0]["steps"] = steps + # Add scheduler parameter only if enabled + if useSchedulers: + genConfig[0]["scheduler"] = scheduler + + # Add CFGScale parameter only if enabled + if useCFGScale: + genConfig[0]["CFGScale"] = cfgScale + if (negativePrompt is not None and negativePrompt != ""): genConfig[0]["negativePrompt"] = negativePrompt if (promptWeighting != "Disabled"): diff --git a/modules/videoModelSearch.py b/modules/videoModelSearch.py index 47c6d67..5075113 100644 --- a/modules/videoModelSearch.py +++ b/modules/videoModelSearch.py @@ -104,6 +104,9 @@ class videoModelSearch: "Hunyuan": [ "runware:hunyuanvideo@1.5 (HunyuanVideo-1.5)", ], + "Kandinsky": [ + "runware:210@1 (Kandinsky 5.0 Lite)", + ], "xAI": [ "xai:grok-imagine@video (Grok Imagine Video)", ], @@ -215,6 +218,9 @@ class videoModelSearch: # Hunyuan Models "runware:hunyuanvideo@1.5": {"width": 848, "height": 480}, + # Kandinsky Models + "runware:210@1": {"width": 512, "height": 512}, + # xAI Models "xai:grok-imagine@video": {"width": 480, "height": 480}, @@ -325,6 +331,9 @@ class videoModelSearch: # Hunyuan Models "runware:hunyuanvideo@1.5": "480p", + # Kandinsky Models + "runware:210@1": None, # No resolution support (fixed 512x512) + # xAI Models "xai:grok-imagine@video": "480p", @@ -350,6 +359,7 @@ class videoModelSearch: "Bria", "Creatify", "Hunyuan", + "Kandinsky", "xAI", "VEED" ] diff --git a/workflows/Runware_Image_Inference_GLM.json b/workflows/Runware_Image_Inference_GLM.json new file mode 100644 index 0000000..e462c9c --- /dev/null +++ b/workflows/Runware_Image_Inference_GLM.json @@ -0,0 +1 @@ +{"id":"b347c6d5-46a3-4b2e-827d-b688de66ae01","revision":0,"last_node_id":3,"last_link_id":2,"nodes":[{"id":2,"type":"Runware Save Image","pos":[615.0345458984375,5.935697078704834],"size":[270,106],"flags":{},"order":2,"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":[],"properties":{"cnr_id":"ComfyUI-Runware","ver":"a60a75c18aa6628b7f9defa7583f62c5f460f3ec","Node name for S&R":"Runware Save Image"},"widgets_values":["","ComfyUI",true],"bgcolor":"#5345bf"},{"id":3,"type":"Runware Model Search","pos":[-232.04795837402344,-32.7614631652832],"size":[270,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":"a60a75c18aa6628b7f9defa7583f62c5f460f3ec","Node name for S&R":"Runware Model Search"},"widgets_values":["runware:glm-image@0","All","Base Model","runware:glm-image@0 (GLM Image 1.0)",true],"bgcolor":"#5345bf"},{"id":1,"type":"Runware Image Inference","pos":[95.17289733886719,-32.38003158569336],"size":[400,1038],"flags":{},"order":1,"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":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}],"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":"a60a75c18aa6628b7f9defa7583f62c5f460f3ec","Node name for S&R":"Runware Image Inference"},"widgets_values":["A vibrant retro 1970s music festival poster design with bold typography and psychedelic aesthetic, featuring the title \\\"SOUND WAVE FEST\\\" in large orange bubble letters with brown shadow effects at the top, centered composition with concentric rainbow wave patterns flowing horizontally across the entire background in warm sunset colors including orange, yellow, cream, teal, green, and purple gradients, large yellow circular sun or record shape in the upper center, bold black text displaying \\\"HEADLINER: THE ECHOES\\\" in uppercase sans-serif font, followed by \\\"GUEST: NEON SOUL\\\" and \\\"DJ LUNAR\\\" in smaller text, event date \\\"AUGUST 12-14, 2026\\\" in white text on purple background in bottom left corner, ticket information \\\"TICKETS AT WWW.SOUNDWAVE.COM\\\" in white text on purple background in bottom right corner, vintage groovy style reminiscent of 1960s-70s concert posters, flat design with distinct color blocking, nostalgic summer festival vibes, warm color palette dominated by oranges, yellows, and earth tones, smooth flowing wave lines creating hypnotic pattern, professional graphic design with clear hierarchy, retro typography with thick bold letterforms, sunshine and good vibes aesthetic, Woodstock-era inspired visual language, perfect symmetry and balance, clean vector-style illustration, music festival promotional artwork, coastal California sunset color scheme, peace and love era design sensibility, horizontal striped background pattern, rounded friendly typefaces, high contrast between text and background for readability, contemporary take on vintage poster art","",false,"Disabled","Square (512x512)",512,512,false,"1k",true,4,true,"Default",true,6.5,true,379064249,"randomize",true,0,0.8,false,32,"WEBP",1,"none"],"bgcolor":"#5345bf"}],"links":[[1,1,0,2,0,"STRING"],[2,3,0,1,0,"RUNWAREMODEL"]],"groups":[],"config":{},"extra":{"ds":{"scale":0.6528554800764321,"offset":[784.7356729563307,169.64507742998686]}},"version":0.4} \ No newline at end of file diff --git a/workflows/Runware_Video_Inference_Kadinsky5.json b/workflows/Runware_Video_Inference_Kadinsky5.json new file mode 100644 index 0000000..798abd6 --- /dev/null +++ b/workflows/Runware_Video_Inference_Kadinsky5.json @@ -0,0 +1 @@ +{"id":"40fc7947-97f5-490c-9914-71f0a48f01e5","revision":0,"last_node_id":4,"last_link_id":4,"nodes":[{"id":3,"type":"Runware Video Model Search","pos":[-281.31317138671875,120.95030975341797],"size":[287.380859375,250],"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":"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":[3]}],"properties":{"cnr_id":"ComfyUI-Runware","ver":"a60a75c18aa6628b7f9defa7583f62c5f460f3ec","Node name for S&R":"Runware Video Model Search"},"widgets_values":["","Kandinsky","runware:210@1 (Kandinsky 5.0 Lite)",false,"Model Default",512,512,false,"1080p"],"bgcolor":"#5345bf"},{"id":4,"type":"Runware Video Inference","pos":[112.32276153564453,99.25315856933594],"size":[400,856],"flags":{},"order":1,"mode":0,"inputs":[{"localized_name":"Model","name":"Model","type":"RUNWAREVIDEOMODEL","link":3},{"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":null},{"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":"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":[4]},{"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":"a60a75c18aa6628b7f9defa7583f62c5f460f3ec","Node name for S&R":"Runware Video Inference"},"widgets_values":[false,"Disabled",true,5,false,24,"mp4",true,2120629996,"randomize",false,20,false,1,true,"adams",true,1,"none","A red fox moves stealthily through autumn woods","","",""],"bgcolor":"#5345bf"},{"id":2,"type":"SaveVideo","pos":[674.897705078125,194.65748596191406],"size":[270,106],"flags":{},"order":2,"mode":0,"inputs":[{"localized_name":"video","name":"video","type":"VIDEO","link":4},{"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"]}],"links":[[3,3,0,4,0,"RUNWAREVIDEOMODEL"],[4,4,0,2,0,"VIDEO"]],"groups":[],"config":{},"extra":{"ds":{"scale":0.6528554800764321,"offset":[784.7356729563307,169.41322337940542]}},"version":0.4} \ No newline at end of file