diff --git a/clientlibs/utils.js b/clientlibs/utils.js index cdbecfa..a0d9000 100644 --- a/clientlibs/utils.js +++ b/clientlibs/utils.js @@ -820,6 +820,7 @@ function useParameterToggleHandler(node) { "useFps": ["fps"], "useSchedulers": ["scheduler"], "useCFGScale": ["cfgScale"], + "useTtl": ["ttl"], // useSteps and useSeed are same as image inference, handled by fallback // Upscaler specific mappings (override for nodes that have CFGScale with capital C) @@ -2822,6 +2823,8 @@ function videoInferenceDimensionsHandler(videoInferenceNode) { 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"); + const useTtlWidget = videoInferenceNode.widgets.find(w => w.name === "useTtl"); + const ttlWidget = videoInferenceNode.widgets.find(w => w.name === "ttl"); // Helper function to toggle widget enabled state function toggleWidgetState(useWidget, paramWidget, paramName) { @@ -2897,6 +2900,10 @@ function videoInferenceDimensionsHandler(videoInferenceNode) { if (useCFGScaleWidget && cfgScaleWidget) { toggleWidgetState(useCFGScaleWidget, cfgScaleWidget, "cfgScale"); } + + if (useTtlWidget && ttlWidget) { + toggleWidgetState(useTtlWidget, ttlWidget, "ttl"); + } } function videoModelSearchFilterHandler(videoModelSearchNode) { @@ -3018,6 +3025,7 @@ function videoModelSearchFilterHandler(videoModelSearchNode) { "runware:210@1 (Kandinsky 5.0 Lite)", ], "xAI": [ + "xai:grok-imagine@video-1.5 (Grok Imagine Video 1.5)", "xai:grok-imagine@video-1.5-preview (Grok Imagine Video 1.5 Preview)", "xai:grok-imagine@video (Grok Imagine Video)", ], @@ -3130,6 +3138,7 @@ function videoModelSearchFilterHandler(videoModelSearchNode) { "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-1.5": {"width": 480, "height": 480}, "xai:grok-imagine@video-1.5-preview": {"width": 480, "height": 480}, "xai:grok-imagine@video": {"width": 480, "height": 480}, "veed:fabric@1.0": {"width": 1280, "height": 720}, @@ -3238,6 +3247,7 @@ function videoModelSearchFilterHandler(videoModelSearchNode) { "creatify:aurora@0": "720p", "runware:hunyuanvideo@1.5": "480p", "runware:210@1": null, // No resolution support (fixed 512x512) + "xai:grok-imagine@video-1.5": "480p", "xai:grok-imagine@video-1.5-preview": "480p", "xai:grok-imagine@video": "480p", "veed:fabric@1.0": "720p", diff --git a/modules/version.py b/modules/version.py index 0a0a43a..38cf6db 100644 --- a/modules/version.py +++ b/modules/version.py @@ -1 +1 @@ -__version__ = "1.9.0" +__version__ = "1.9.1" diff --git a/modules/videoInference.py b/modules/videoInference.py index a85dbbd..14901bc 100644 --- a/modules/videoInference.py +++ b/modules/videoInference.py @@ -228,6 +228,16 @@ class txt2vid: "lora": ("RUNWAREVIDEOINFERENCELORA", { "tooltip": "Connect a Runware Video Inference Lora node to apply LoRA models (e.g. for LTX video models).", }), + "useTtl": ("BOOLEAN", { + "tooltip": "Enable to include ttl parameter in API request. Sets output URL retention time in seconds.", + "default": False, + }), + "ttl": ("INT", { + "tooltip": "Time-to-live in seconds for generated video URLs. Only used when 'Use TTL' is enabled. Minimum 60.", + "default": 604800, + "min": 60, + "max": 2592000, + }), } } @@ -282,6 +292,8 @@ class txt2vid: useCFGScale = kwargs.get("useCFGScale", False) cfgScale = kwargs.get("cfgScale", 5.0) acceleration = kwargs.get("acceleration", "none") + useTtl = kwargs.get("useTtl", False) + ttl = kwargs.get("ttl", 604800) # Handle model input - could be dict or string if isinstance(runwareVideoModel, dict): @@ -448,6 +460,10 @@ class txt2vid: if acceleration and acceleration != "none": genConfig[0]["acceleration"] = acceleration + # Add TTL for output URL retention (requires outputType URL) + if useTtl: + genConfig[0]["ttl"] = int(ttl) + if (multiInferenceMode): return (None, genConfig, None) else: diff --git a/modules/videoModelSearch.py b/modules/videoModelSearch.py index f4ecf0e..0ddd947 100644 --- a/modules/videoModelSearch.py +++ b/modules/videoModelSearch.py @@ -137,6 +137,7 @@ class videoModelSearch: "runware:210@1 (Kandinsky 5.0 Lite)", ], "xAI": [ + "xai:grok-imagine@video-1.5 (Grok Imagine Video 1.5)", "xai:grok-imagine@video-1.5-preview (Grok Imagine Video 1.5 Preview)", "xai:grok-imagine@video (Grok Imagine Video)", ], @@ -285,6 +286,7 @@ class videoModelSearch: "runware:210@1": {"width": 512, "height": 512}, # xAI Models + "xai:grok-imagine@video-1.5": {"width": 480, "height": 480}, "xai:grok-imagine@video-1.5-preview": {"width": 480, "height": 480}, "xai:grok-imagine@video": {"width": 480, "height": 480}, @@ -437,6 +439,7 @@ class videoModelSearch: "runware:210@1": None, # No resolution support (fixed 512x512) # xAI Models + "xai:grok-imagine@video-1.5": "480p", "xai:grok-imagine@video-1.5-preview": "480p", "xai:grok-imagine@video": "480p", diff --git a/workflows/Runware_Video_Inference_XaI_Grok_1_5.json b/workflows/Runware_Video_Inference_XaI_Grok_1_5.json new file mode 100644 index 0000000..61e4af7 --- /dev/null +++ b/workflows/Runware_Video_Inference_XaI_Grok_1_5.json @@ -0,0 +1 @@ +{"id":"a1a27a4c-aaac-456a-b19f-186424a83f8a","revision":0,"last_node_id":7,"last_link_id":8,"nodes":[{"id":5,"type":"Runware Video Inputs Frame Images","pos":[-830.3333094008024,401.99322679534],"size":[342.05625,478],"flags":{},"order":2,"mode":0,"inputs":[{"localized_name":"image1","name":"image1","shape":7,"type":"IMAGE","link":4},{"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":"useFrame1","name":"useFrame1","shape":7,"type":"BOOLEAN","widget":{"name":"useFrame1"},"link":null},{"localized_name":"frame1 position","name":"frame1 position","shape":7,"type":"COMBO","widget":{"name":"frame1 position"},"link":null},{"localized_name":"useTimestamp1","name":"useTimestamp1","shape":7,"type":"BOOLEAN","widget":{"name":"useTimestamp1"},"link":null},{"localized_name":"timestamp1","name":"timestamp1","shape":7,"type":"FLOAT","widget":{"name":"timestamp1"},"link":null},{"localized_name":"useFrame2","name":"useFrame2","shape":7,"type":"BOOLEAN","widget":{"name":"useFrame2"},"link":null},{"localized_name":"frame2 position","name":"frame2 position","shape":7,"type":"COMBO","widget":{"name":"frame2 position"},"link":null},{"localized_name":"useTimestamp2","name":"useTimestamp2","shape":7,"type":"BOOLEAN","widget":{"name":"useTimestamp2"},"link":null},{"localized_name":"timestamp2","name":"timestamp2","shape":7,"type":"FLOAT","widget":{"name":"timestamp2"},"link":null},{"localized_name":"useFrame3","name":"useFrame3","shape":7,"type":"BOOLEAN","widget":{"name":"useFrame3"},"link":null},{"localized_name":"frame3 position","name":"frame3 position","shape":7,"type":"COMBO","widget":{"name":"frame3 position"},"link":null},{"localized_name":"useTimestamp3","name":"useTimestamp3","shape":7,"type":"BOOLEAN","widget":{"name":"useTimestamp3"},"link":null},{"localized_name":"timestamp3","name":"timestamp3","shape":7,"type":"FLOAT","widget":{"name":"timestamp3"},"link":null},{"localized_name":"useFrame4","name":"useFrame4","shape":7,"type":"BOOLEAN","widget":{"name":"useFrame4"},"link":null},{"localized_name":"frame4 position","name":"frame4 position","shape":7,"type":"COMBO","widget":{"name":"frame4 position"},"link":null},{"localized_name":"useTimestamp4","name":"useTimestamp4","shape":7,"type":"BOOLEAN","widget":{"name":"useTimestamp4"},"link":null},{"localized_name":"timestamp4","name":"timestamp4","shape":7,"type":"FLOAT","widget":{"name":"timestamp4"},"link":null}],"outputs":[{"localized_name":"Video Inputs Frame Images","name":"Video Inputs Frame Images","type":"RUNWAREVIDEOINPUTSFRAMEIMAGES","links":[3]}],"properties":{"cnr_id":"ComfyUI-Runware","ver":"a9581cc0d837185854906709b0a16f24626f62ba","Node name for S&R":"Runware Video Inputs Frame Images"},"widgets_values":[false,"first",false,0,false,"first",false,0,false,"first",false,0,false,"first",false,0],"bgcolor":"#5345bf"},{"id":6,"type":"LoadImage","pos":[-824.8593550105402,5.7269503999492954],"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":[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":[".webp","image"]},{"id":2,"type":"Runware Video Model Search","pos":[-470.5522397951421,64.0120843205552],"size":[294.16015625,250],"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":[6]}],"properties":{"cnr_id":"ComfyUI-Runware","ver":"a9581cc0d837185854906709b0a16f24626f62ba","Node name for S&R":"Runware Video Model Search"},"widgets_values":["","xAI","xai:grok-imagine@video-1.5 (Grok Imagine Video 1.5)",false,"Model Default",480,480,false,"1080p"],"bgcolor":"#5345bf"},{"id":4,"type":"Runware Video Inference Inputs","pos":[-418.5227729859571,467.30224865626514],"size":[341.783203125,374],"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":3},{"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":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":"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":[7]}],"properties":{"cnr_id":"ComfyUI-Runware","ver":"a9581cc0d837185854906709b0a16f24626f62ba","Node name for S&R":"Runware Video Inference Inputs"},"widgets_values":["","","","",""],"bgcolor":"#5345bf"},{"id":7,"type":"Runware Video Inference","pos":[31.747248740995957,15.246675309161354],"size":[400,886],"flags":{},"order":4,"mode":0,"inputs":[{"localized_name":"Model","name":"Model","type":"RUNWAREVIDEOMODEL","link":6},{"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":7},{"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":"lora","name":"lora","shape":7,"type":"RUNWAREVIDEOINFERENCELORA","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":"useTtl","name":"useTtl","type":"BOOLEAN","widget":{"name":"useTtl"},"link":null},{"localized_name":"ttl","name":"ttl","type":"INT","widget":{"name":"ttl"},"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":[8]},{"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":"a9581cc0d837185854906709b0a16f24626f62ba","Node name for S&R":"Runware Video Inference"},"widgets_values":[false,"Disabled",false,5,false,24,"mp4",false,349844437,"randomize",false,20,false,1,false,"euler",false,5,"none",false,604800,"masterpiece, best quality, highly detailed, concept art, a lone explorer standing at the edge of a bioluminescent alien ocean",""],"bgcolor":"#5345bf"},{"id":3,"type":"SaveVideo","pos":[591.981574354883,53.395118390963276],"size":[474.1486461861864,574.5826667595647],"flags":{},"order":5,"mode":0,"inputs":[{"localized_name":"video","name":"video","type":"VIDEO","link":8},{"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"]}],"links":[[3,5,0,4,1,"RUNWAREVIDEOINPUTSFRAMEIMAGES"],[4,6,0,5,0,"IMAGE"],[6,2,0,7,0,"RUNWAREVIDEOMODEL"],[7,4,0,7,7,"RUNWAREVIDEOINFERENCEINPUTS"],[8,7,0,3,0,"VIDEO"]],"groups":[],"config":{},"extra":{"ds":{"scale":0.505529313703492,"offset":[1208.6443101886366,273.7229905977236]}},"version":0.4} \ No newline at end of file