- Use librosa instead of torchaudio for mediaStorage - Created dedicated toggle handlers for Image Inference, Video Inference, Upscaler, Audio Inference, Accelerator Options, Bytedance Provider Settings, and OpenAI Provider Settings - Fixed Audio Inference widget ordering (use parameters now appear before their corresponding parameters) - All handlers use the same proven pattern from videoInferenceDimensionsHandler - Improved widget disabling/enabling functionality across all nodes
69 lines
2.2 KiB
Python
69 lines
2.2 KiB
Python
"""
|
|
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"
|
|
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",
|
|
}
|
|
|
|
|