78 lines
2.2 KiB
Python
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)",
|
|
}
|