edit config_options_node add api protocol

This commit is contained in:
qnsh
2026-08-24 16:26:18 +08:00
parent f2bf505afd
commit bfaa9db3a7
10 changed files with 47 additions and 32 deletions
+3 -3
View File
@@ -49,7 +49,7 @@ class GeminiImage(io.ComfyNode):
"""
# 如果提供了配置覆盖,则使用覆盖配置
if config_options is not None:
base_url = config_options.get('base_url', '').strip()
base_url = config_options.get('api_url', '').strip()
api_key = config_options.get('api_key', '').strip()
timeout = config_options.get('timeout', 120)
@@ -98,8 +98,8 @@ class GeminiImage(io.ComfyNode):
# 如果有配置覆盖,则使用覆盖的值(如果提供了)
if config_options is not None:
if config_options.get('base_url', '').strip():
base_url = config_options['base_url'].strip()
if config_options.get('api_url', '').strip():
base_url = config_options['api_url'].strip()
if config_options.get('api_key', '').strip():
api_key = config_options['api_key'].strip()
if config_options.get('timeout'):
+3 -3
View File
@@ -45,7 +45,7 @@ class GeminiSTT(io.ComfyNode):
"""
# 如果提供了配置覆盖,则使用覆盖配置
if config_options is not None:
base_url = config_options.get('base_url', '').strip()
base_url = config_options.get('api_url', '').strip()
api_key = config_options.get('api_key', '').strip()
timeout = config_options.get('timeout', 120)
@@ -94,8 +94,8 @@ class GeminiSTT(io.ComfyNode):
# 如果有配置覆盖,则使用覆盖的值(如果提供了)
if config_options is not None:
if config_options.get('base_url', '').strip():
base_url = config_options['base_url'].strip()
if config_options.get('api_url', '').strip():
base_url = config_options['api_url'].strip()
if config_options.get('api_key', '').strip():
api_key = config_options['api_key'].strip()
if config_options.get('timeout'):
+3 -3
View File
@@ -77,7 +77,7 @@ class GeminiTTS(io.ComfyNode):
"""
# 如果提供了配置覆盖,则使用覆盖配置
if config_options is not None:
base_url = config_options.get('base_url', '').strip()
base_url = config_options.get('api_url', '').strip()
api_key = config_options.get('api_key', '').strip()
timeout = config_options.get('timeout', 120)
@@ -126,8 +126,8 @@ class GeminiTTS(io.ComfyNode):
# 如果有配置覆盖,则使用覆盖的值(如果提供了)
if config_options is not None:
if config_options.get('base_url', '').strip():
base_url = config_options['base_url'].strip()
if config_options.get('api_url', '').strip():
base_url = config_options['api_url'].strip()
if config_options.get('api_key', '').strip():
api_key = config_options['api_key'].strip()
if config_options.get('timeout'):
+7 -3
View File
@@ -158,14 +158,18 @@
"display_name": "API Config Options",
"description": "This node provides override API config options.",
"inputs": {
"base_url": {
"name": "base_url",
"tooltip": "Override the API base URL"
"api_url": {
"name": "api_url",
"tooltip": "Override the API URL"
},
"api_key": {
"name": "api_key",
"tooltip": "Override the API key"
},
"api_protocol": {
"name": "api_protocol",
"tooltip": "Override the API protocol (openai-completions / openai-responses / anthropic-messages)"
},
"timeout": {
"name": "timeout",
"tooltip": "Override the request timeout in seconds"
+8 -4
View File
@@ -159,16 +159,20 @@
"display_name": "API 配置选项",
"description": "该节点提供了覆盖 API 配置选项的功能",
"inputs": {
"base_url": {
"name": "base_url",
"tooltip": "覆盖 API 基础 URL"
"api_url": {
"name": "api_url",
"tooltip": "覆盖 API URL"
},
"api_key": {
"name": "api_key",
"tooltip": "覆盖 API 密钥"
},
"api_protocol": {
"name": "API 协议",
"tooltip": "覆盖 API 协议(openai-completions / openai-responses / anthropic-messages)"
},
"timeout": {
"name": "timeout",
"name": "超时时间",
"tooltip": "以秒为单位覆盖请求超时时间"
}
},
+1 -1
View File
@@ -39,7 +39,7 @@ class ModelScopeImageEdit(io.ComfyNode):
raise ValueError(f"Missing '{cls._CONFIG_SECTION}' section in config file")
config_options = config_options or {}
base_url = str(config_options.get("base_url") or config.get("base_url") or "").strip()
base_url = str(config_options.get("api_url") or config.get("base_url") or "").strip()
api_key = str(config_options.get("api_key") or config.get("api_key") or "").strip()
timeout = config_options.get("timeout") or config.get("timeout", 300)
try:
+3 -3
View File
@@ -46,7 +46,7 @@ class ModelScopeImage(io.ComfyNode):
"""
# 如果提供了配置覆盖,则使用覆盖配置
if config_options is not None:
base_url = config_options.get('base_url', '').strip()
base_url = config_options.get('api_url', '').strip()
api_key = config_options.get('api_key', '').strip()
timeout = config_options.get('timeout', 300)
@@ -95,8 +95,8 @@ class ModelScopeImage(io.ComfyNode):
# 如果有配置覆盖,则使用覆盖的值(如果提供了)
if config_options is not None:
if config_options.get('base_url', '').strip():
base_url = config_options['base_url'].strip()
if config_options.get('api_url', '').strip():
base_url = config_options['api_url'].strip()
if config_options.get('api_key', '').strip():
api_key = config_options['api_key'].strip()
if config_options.get('timeout'):
+3 -3
View File
@@ -11,7 +11,7 @@ def _load_config_credentials(config_options=None):
"""
# 如果提供了配置覆盖,则使用覆盖配置
if config_options is not None:
base_url = config_options.get('base_url', '').strip()
base_url = config_options.get('api_url', '').strip()
api_key = config_options.get('api_key', '').strip()
timeout = config_options.get('timeout', 120)
@@ -42,8 +42,8 @@ def _load_config_credentials(config_options=None):
# 如果有配置覆盖,则使用覆盖的值(如果提供了)
if config_options is not None:
if config_options.get('base_url', '').strip():
base_url = config_options['base_url'].strip()
if config_options.get('api_url', '').strip():
base_url = config_options['api_url'].strip()
if config_options.get('api_key', '').strip():
api_key = config_options['api_key'].strip()
if config_options.get('timeout'):
+3 -3
View File
@@ -12,7 +12,7 @@ def _load_config_credentials(config_options=None):
"""
# 如果提供了配置覆盖,则使用覆盖配置
if config_options is not None:
base_url = config_options.get('base_url', '').strip()
base_url = config_options.get('api_url', '').strip()
api_key = config_options.get('api_key', '').strip()
timeout = config_options.get('timeout', 120)
@@ -43,8 +43,8 @@ def _load_config_credentials(config_options=None):
# 如果有配置覆盖,则使用覆盖的值(如果提供了)
if config_options is not None:
if config_options.get('base_url', '').strip():
base_url = config_options['base_url'].strip()
if config_options.get('api_url', '').strip():
base_url = config_options['api_url'].strip()
if config_options.get('api_key', '').strip():
api_key = config_options['api_key'].strip()
if config_options.get('timeout'):
+13 -6
View File
@@ -2,7 +2,7 @@ from comfy_api.latest import ComfyExtension, io
class ConfigOptions(io.ComfyNode):
"""
这个节点用于覆盖 API 的配置参数(base_url、api_key、timeout)
这个节点用于覆盖 API 的配置参数(api_url、api_key、api_protocol、timeout)
"""
@classmethod
@@ -13,9 +13,9 @@ class ConfigOptions(io.ComfyNode):
category="YCYY/API/utils",
inputs=[
io.String.Input(
id="base_url",
id="api_url",
multiline=True,
tooltip="Override the API base URL"
tooltip="Override the API URL"
),
io.String.Input(
id="api_key",
@@ -23,6 +23,12 @@ class ConfigOptions(io.ComfyNode):
multiline=True,
tooltip="Override the API key"
),
io.Combo.Input(
id="api_protocol",
options=["openai-completions", "openai-responses", "anthropic-messages"],
default="openai-completions",
tooltip="Override the API protocol"
),
io.Int.Input(
id="timeout",
default=120,
@@ -42,14 +48,15 @@ class ConfigOptions(io.ComfyNode):
)
@classmethod
def execute(cls, base_url, api_key, timeout) -> io.NodeOutput:
def execute(cls, api_url, api_key, api_protocol, timeout) -> io.NodeOutput:
# 验证和清理输入
base_url = base_url.strip() if base_url else ""
api_url = api_url.strip() if api_url else ""
api_key = api_key.strip() if api_key else ""
config_options = {
"base_url": base_url,
"api_url": api_url,
"api_key": api_key,
"api_protocol": api_protocol,
"timeout": timeout
}