diff --git a/__init__.py b/__init__.py index 9ad9a6c..8657554 100644 --- a/__init__.py +++ b/__init__.py @@ -56,6 +56,7 @@ from .modules.providerSettings.lumaProviderSettings import RunwareLumaProviderSe from .modules.providerSettings.midjourneyProviderSettings import RunwareMidjourneyProviderSettings from .modules.providerSettings.alibabaProviderSettings import RunwareAlibabaProviderSettings from .modules.providerSettings.googleProviderSettings import RunwareGoogleProviderSettings +from .modules.providerSettings.blackForestProviderSettings import RunwareBlackForestProviderSettings from .modules.providerSettings.syncSegment import RunwareSyncSegment from .modules.providerSettings.syncProviderSettings import RunwareSyncProviderSettings from .modules.vectorize import vectorize @@ -136,6 +137,7 @@ NODE_CLASS_MAPPINGS = { "Runware Midjourney Provider Settings": RunwareMidjourneyProviderSettings, "Runware Alibaba Provider Settings": RunwareAlibabaProviderSettings, "Runware Google Provider Settings": RunwareGoogleProviderSettings, + "Runware BlackForest Labs Provider Settings": RunwareBlackForestProviderSettings, "Runware Sync Segment": RunwareSyncSegment, "Runware Sync Provider Settings": RunwareSyncProviderSettings, "Runware Vectorize": vectorize, diff --git a/modules/providerSettings/blackForestProviderSettings.py b/modules/providerSettings/blackForestProviderSettings.py new file mode 100644 index 0000000..56ec3bf --- /dev/null +++ b/modules/providerSettings/blackForestProviderSettings.py @@ -0,0 +1,66 @@ +""" +Runware BlackForest Labs Provider Settings Node +Provides BlackForest Labs-specific settings for image generation +""" + +from typing import Optional, Dict, Any + +class RunwareBlackForestProviderSettings: + """Runware BlackForest Labs Provider Settings Node""" + + @classmethod + def INPUT_TYPES(cls): + return { + "required": {}, + "optional": { + "useSafetyTolerance": ("BOOLEAN", { + "tooltip": "Enable to include safetyTolerance parameter in API request", + "default": False, + }), + "safetyTolerance": ("INT", { + "tooltip": "Safety tolerance value for generation. Only used when 'Use Safety Tolerance' is enabled.", + "default": 0, + "min": 0, + "max": 100, + }), + } + } + + RETURN_TYPES = ("RUNWAREPROVIDERSETTINGS",) + RETURN_NAMES = ("Provider Settings",) + FUNCTION = "createProviderSettings" + CATEGORY = "Runware/Provider Settings" + DESCRIPTION = "Configure BlackForest Labs-specific provider settings for image generation including safety tolerance." + + def createProviderSettings(self, **kwargs) -> tuple[Dict[str, Any]]: + """Create BlackForest Labs provider settings""" + + # Get control parameters + useSafetyTolerance = kwargs.get("useSafetyTolerance", False) + + # Get value parameters + safetyTolerance = kwargs.get("safetyTolerance", 0) + + # Build settings dictionary - only include what is enabled + blackForestSettings: Dict[str, Any] = {} + + # Add safetyTolerance only if useSafetyTolerance is enabled + if useSafetyTolerance: + blackForestSettings["safetyTolerance"] = safetyTolerance + + # Clean up None values + blackForestSettings = {k: v for k, v in blackForestSettings.items() if v is not None} + + # Return flat dictionary - will be wrapped by inference node with provider name + return (blackForestSettings,) + + +# Node class mappings +NODE_CLASS_MAPPINGS = { + "RunwareBlackForestProviderSettings": RunwareBlackForestProviderSettings, +} + +NODE_DISPLAY_NAME_MAPPINGS = { + "RunwareBlackForestProviderSettings": "Runware BlackForest Labs Provider Settings", +} +