Files
ycyy-ComfyUI-YCYY-API/options/config_options_node.py
T
2026-08-27 10:37:17 +08:00

70 lines
2.6 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
from comfy_api.latest import ComfyExtension, io
def build_config_options(base_url, api_key, api_protocol, timeout):
"""Return only values that explicitly override a target API config."""
base_url = base_url.strip() if isinstance(base_url, str) else ""
api_key = api_key.strip() if isinstance(api_key, str) else ""
options = {}
if base_url:
options["base_url"] = base_url
if api_key:
options["api_key"] = api_key
if api_protocol and api_protocol != "inherit":
options["api_protocol"] = api_protocol
if isinstance(timeout, int) and not isinstance(timeout, bool) and timeout > 0:
options["timeout"] = timeout
return options
class ConfigOptions(io.ComfyNode):
"""
这个节点用于覆盖 API 的配置参数(base_url、api_key、api_protocol、timeout)
"""
@classmethod
def define_schema(cls) -> io.Schema:
return io.Schema(
node_id="YCYY_API_Config_Options",
display_name="API Config Options",
category="YCYY/API/utils",
inputs=[
io.String.Input(
id="base_url",
multiline=True,
tooltip="Override the API base URL"
),
io.String.Input(
id="api_key",
default="",
multiline=True,
tooltip="Override the API key"
),
io.Combo.Input(
id="api_protocol",
options=["inherit", "openai-completions", "openai-responses", "anthropic-messages"],
default="inherit",
tooltip="Override the API protocol, or inherit the selected API configuration"
),
io.Int.Input(
id="timeout",
default=0,
min=0,
max=600,
tooltip="Override the request timeout in seconds; 0 inherits the selected API configuration"
)
],
outputs=[
io.AnyType.Output(
id="config_options",
display_name="config_options",
tooltip="Override configuration options"
)
],
description="This node provides override API config options."
)
@classmethod
def execute(cls, base_url, api_key, api_protocol, timeout) -> io.NodeOutput:
return io.NodeOutput(build_config_options(base_url, api_key, api_protocol, timeout))