Files
gelasdev-ComfyUI-FLUX-BFL-API/nodes/config_node.py
T

78 lines
2.2 KiB
Python

from .config import ConfigLoader
class FluxConfig_BFL:
"""
Configuration node for BFL API settings.
Provides optional configuration that can be connected to other nodes.
If not connected, nodes will use the default file-based configuration.
"""
@classmethod
def INPUT_TYPES(cls):
return {
"required": {
"x_key": ("STRING", {
"default": "",
"multiline": False,
"placeholder": "Enter your BFL API key"
}),
"base_url": ("STRING", {
"default": "https://api.bfl.ai/v1/",
"multiline": False,
"placeholder": "Base API URL"
}),
},
"optional": {
"region": (["none", "us", "eu"], {
"default": "none",
"tooltip": "Regional endpoint for finetuning operations"
})
}
}
RETURN_TYPES = ("BFL_CONFIG",)
RETURN_NAMES = ("config",)
FUNCTION = "create_config"
CATEGORY = "BFL/Config"
def create_config(self, x_key, base_url, region="none"):
"""Create a configuration object with the provided settings."""
# Regional endpoints for finetuning (required by BFL API)
regional_endpoints = {
"us": "https://api.us.bfl.ai",
"eu": "https://api.eu.bfl.ai"
}
config = {
"x_key": x_key.strip() if x_key.strip() else None,
"base_url": base_url.strip() if base_url.strip() else "https://api.bfl.ai/v1/",
"regional_endpoints": regional_endpoints,
"default_region": region if region != "none" else None
}
return (config,)
def get_config_loader(config_override=None):
"""
Get a ConfigLoader instance with optional config override.
Args:
config_override: Optional config dict from FluxConfig_BFL node
Returns:
ConfigLoader instance
"""
return ConfigLoader(config_override)
# Node mappings for ComfyUI
NODE_CLASS_MAPPINGS = {
"FluxConfig_BFL": FluxConfig_BFL,
}
NODE_DISPLAY_NAME_MAPPINGS = {
"FluxConfig_BFL": "Flux Config (BFL)",
}