""" Runware Google Provider Settings Node Provides Google-specific settings for image/video generation """ from typing import Optional, Dict, Any class RunwareGoogleProviderSettings: """Runware Google Provider Settings Node""" @classmethod def INPUT_TYPES(cls): return { "required": {}, "optional": { "useGenerateAudio": ("BOOLEAN", { "tooltip": "Enable to include generateAudio parameter in provider settings", "default": False, }), "generateAudio": ("BOOLEAN", { "tooltip": "Enable audio generation. Only used when 'Use Generate Audio' is enabled.", "default": False, "label_on": "Enabled", "label_off": "Disabled", }), "useEnhancePrompt": ("BOOLEAN", { "tooltip": "Enable to include enhancePrompt parameter in provider settings", "default": False, }), "enhancePrompt": ("BOOLEAN", { "tooltip": "Enable prompt enhancement for Google generation. Only used when 'Use Enhance Prompt' is enabled.", "default": False, "label_on": "Enabled", "label_off": "Disabled", }), "useSearch": ("BOOLEAN", { "tooltip": "Enable to include search parameter in provider settings", "default": False, }), "search": ("BOOLEAN", { "tooltip": "Enable search functionality. Only used when 'Use Search' is enabled.", "default": False, "label_on": "Enabled", "label_off": "Disabled", }), "useResizeMode": ("BOOLEAN", { "tooltip": "Enable to include resizeMode in providerSettings.google (image resize behavior).", "default": False, }), "resizeMode": (["crop", "pad"], { "tooltip": "Value for providerSettings.google.resizeMode. Must be 'crop' or 'pad'. Only used when 'Use Resize Mode' is enabled.", "default": "crop", }), } } RETURN_TYPES = ("RUNWAREPROVIDERSETTINGS",) RETURN_NAMES = ("Provider Settings",) FUNCTION = "createProviderSettings" CATEGORY = "Runware/Provider Settings" DESCRIPTION = "Configure Google-specific provider settings for image/video generation including audio generation, prompt enhancement, search, and resizeMode (crop/pad)." def createProviderSettings(self, **kwargs) -> tuple[Dict[str, Any]]: """Create Google provider settings""" # Get control parameters useGenerateAudio = kwargs.get("useGenerateAudio", False) useEnhancePrompt = kwargs.get("useEnhancePrompt", False) useSearch = kwargs.get("useSearch", False) useResizeMode = kwargs.get("useResizeMode", False) # Get value parameters generateAudio = kwargs.get("generateAudio", False) enhancePrompt = kwargs.get("enhancePrompt", False) search = kwargs.get("search", False) resizeMode = kwargs.get("resizeMode", "crop") # Build settings dictionary - only include what is enabled googleSettings: Dict[str, Any] = {} # Add parameters only if their use toggles are enabled if useGenerateAudio: googleSettings["generateAudio"] = generateAudio if useEnhancePrompt: googleSettings["enhancePrompt"] = enhancePrompt if useSearch: googleSettings["search"] = search if useResizeMode: mode = str(resizeMode).strip().lower() if resizeMode is not None else "crop" googleSettings["resizeMode"] = mode if mode in ("crop", "pad") else "crop" # Clean up None values googleSettings = {k: v for k, v in googleSettings.items() if v is not None} # Return flat dictionary - will be wrapped by inference node with provider name return (googleSettings,) # Node class mappings NODE_CLASS_MAPPINGS = { "RunwareGoogleProviderSettings": RunwareGoogleProviderSettings, } NODE_DISPLAY_NAME_MAPPINGS = { "RunwareGoogleProviderSettings": "Runware Google Provider Settings", }