diff --git a/modules/klingProviderSettings.py b/modules/klingProviderSettings.py new file mode 100644 index 0000000..dd33da9 --- /dev/null +++ b/modules/klingProviderSettings.py @@ -0,0 +1,68 @@ +""" +Runware KlingAI Provider Settings Node +Provides KlingAI-specific settings for video generation +""" + +from typing import Dict, Any + + +class RunwareKlingProviderSettings: + """Runware KlingAI Provider Settings Node""" + + @classmethod + def INPUT_TYPES(cls): + return { + "required": {}, + "optional": { + "soundVolume": ("FLOAT", { + "tooltip": "Background sound volume to mix with generated audio (provider key: soundVolume).", + "default": 1.0, + "min": 0.0, + "max": 2.0, + "step": 0.1, + }), + "originalAudioVolume": ("FLOAT", { + "tooltip": "Original video volume mix level (provider key: originalAudioVolume). No effect if source has no audio.", + "default": 1.0, + "min": 0.0, + "max": 2.0, + "step": 0.1, + }), + } + } + + RETURN_TYPES = ("RUNWAREPROVIDERSETTINGS",) + RETURN_NAMES = ("Provider Settings",) + FUNCTION = "create_provider_settings" + CATEGORY = "Runware/Provider Settings" + DESCRIPTION = "Configure KlingAI-specific provider settings for video generation including sound and original audio volume controls." + + def create_provider_settings(self, **kwargs) -> tuple[Dict[str, Any]]: + """Create KlingAI provider settings""" + + sound_volume = kwargs.get("soundVolume", None) + original_audio_volume = kwargs.get("originalAudioVolume", None) + + kling_settings: Dict[str, Any] = {} + + if sound_volume is not None: + kling_settings["soundVolume"] = float(sound_volume) + if original_audio_volume is not None: + kling_settings["originalAudioVolume"] = float(original_audio_volume) + + # Remove unset values + kling_settings = {k: v for k, v in kling_settings.items() if v is not None} + + return (kling_settings,) + + +# Node class mappings +NODE_CLASS_MAPPINGS = { + "RunwareKlingProviderSettings": RunwareKlingProviderSettings, +} + +NODE_DISPLAY_NAME_MAPPINGS = { + "RunwareKlingProviderSettings": "Runware KlingAI Provider Settings", +} + +