109 lines
4.3 KiB
Python
109 lines
4.3 KiB
Python
"""
|
|
Runware Google Provider Settings Node
|
|
Provides Google-specific settings for image/video generation
|
|
"""
|
|
|
|
from typing import 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",
|
|
}
|
|
|