- 一个节点调用 ZenMux 聚合平台全部文本类模型(20 厂商 / 138 模型) - vendor→model 二级下拉:前端 web/zenmux_cascade.js 按厂商实时收窄模型列表 - 模型选项后缀标注输入/输出价格(USD/百万token),如 [入$0.2/M 出$1.25/M] - 默认模型 openai/gpt-5.4-nano;具备 api_key/system/user prompt/seed/ temperature/top_p/max_tokens/多模态图像×6/detail/base_url/proxy 等完整参数 - 模型清单随包分发(models_snapshot.json),离线可列出; build_snapshot.py 可随时重拉最新价格 - VALIDATE_INPUTS 宽松校验:价格快照更新后旧工作流的模型标签仍可解析执行 - base_url 默认值沿用仓库约定不含 "://",规避 ComfyUI 前端吞协议片段的老问题 - 导出 WEB_DIRECTORY 以装载前端级联脚本 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
94 lines
6.0 KiB
Python
94 lines
6.0 KiB
Python
# 顶部已有的导入
|
|
from .saturation_node import NODE_CLASS_MAPPINGS as SAT_NODE_CLASS_MAPPINGS
|
|
from .saturation_node import NODE_DISPLAY_NAME_MAPPINGS as SAT_NODE_DISPLAY_NAME_MAPPINGS
|
|
from .flip_node import NODE_CLASS_MAPPINGS as FLIP_NODE_CLASS_MAPPINGS
|
|
from .flip_node import NODE_DISPLAY_NAME_MAPPINGS as FLIP_NODE_DISPLAY_NAME_MAPPINGS
|
|
from .load_image_node import NODE_CLASS_MAPPINGS as LOAD_NODE_CLASS_MAPPINGS
|
|
from .load_image_node import NODE_DISPLAY_NAME_MAPPINGS as LOAD_NODE_DISPLAY_NAME_MAPPINGS
|
|
from .load_image_with_name_node import NODE_CLASS_MAPPINGS as LOAD_NAME_NODE_CLASS_MAPPINGS
|
|
from .load_image_with_name_node import NODE_DISPLAY_NAME_MAPPINGS as LOAD_NAME_NODE_DISPLAY_NAME_MAPPINGS
|
|
from .qwenedit_node import NODE_CLASS_MAPPINGS as QWEN_NODE_CLASS_MAPPINGS
|
|
from .qwenedit_node import NODE_DISPLAY_NAME_MAPPINGS as QWEN_NODE_DISPLAY_NAME_MAPPINGS
|
|
from .shot_splitter_node import NODE_CLASS_MAPPINGS as SHOT_NODE_CLASS_MAPPINGS
|
|
from .shot_splitter_node import NODE_DISPLAY_NAME_MAPPINGS as SHOT_NODE_DISPLAY_NAME_MAPPINGS
|
|
from .dialogue_extractor_node import NODE_CLASS_MAPPINGS as DIALOGUE_NODE_CLASS_MAPPINGS
|
|
from .dialogue_extractor_node import NODE_DISPLAY_NAME_MAPPINGS as DIALOGUE_NODE_DISPLAY_NAME_MAPPINGS
|
|
# 新增:遮罩筛选节点
|
|
from .mask_selector_node import NODE_CLASS_MAPPINGS as MASKSELECT_NODE_CLASS_MAPPINGS
|
|
from .mask_selector_node import NODE_DISPLAY_NAME_MAPPINGS as MASKSELECT_NODE_DISPLAY_NAME_MAPPINGS
|
|
from .page_narration_remover_node import NODE_CLASS_MAPPINGS as NARRATION_NODE_CLASS_MAPPINGS
|
|
from .page_narration_remover_node import NODE_DISPLAY_NAME_MAPPINGS as NARRATION_NODE_DISPLAY_NAME_MAPPINGS
|
|
from .text_list_node import NODE_CLASS_MAPPINGS as TEXTLIST_NODE_CLASS_MAPPINGS
|
|
from .text_list_node import NODE_DISPLAY_NAME_MAPPINGS as TEXTLIST_NODE_DISPLAY_NAME_MAPPINGS
|
|
from .mask_preview_node import NODE_CLASS_MAPPINGS as MASKPREVIEW_NODE_CLASS_MAPPINGS
|
|
from .mask_preview_node import NODE_DISPLAY_NAME_MAPPINGS as MASKPREVIEW_NODE_DISPLAY_NAME_MAPPINGS
|
|
from .utf8_converter_node import NODE_CLASS_MAPPINGS as UTF8_NODE_CLASS_MAPPINGS
|
|
from .utf8_converter_node import NODE_DISPLAY_NAME_MAPPINGS as UTF8_NODE_DISPLAY_NAME_MAPPINGS
|
|
from .openai_node import NODE_CLASS_MAPPINGS as OPENAI_NODE_CLASS_MAPPINGS
|
|
from .openai_node import NODE_DISPLAY_NAME_MAPPINGS as OPENAI_NODE_DISPLAY_NAME_MAPPINGS
|
|
# 新增:颜色匹配器节点
|
|
from .color_matcher_node import NODE_CLASS_MAPPINGS as COLORMATCHER_NODE_CLASS_MAPPINGS
|
|
from .color_matcher_node import NODE_DISPLAY_NAME_MAPPINGS as COLORMATCHER_NODE_DISPLAY_NAME_MAPPINGS
|
|
# 新增:素材拆分节点
|
|
from .image_splitter_node import NODE_CLASS_MAPPINGS as IMAGESPLITTER_NODE_CLASS_MAPPINGS
|
|
from .image_splitter_node import NODE_DISPLAY_NAME_MAPPINGS as IMAGESPLITTER_NODE_DISPLAY_NAME_MAPPINGS
|
|
# 新增:SDMatte 精细抠图节点(依赖 diffusers/transformers,缺失时不影响其余节点加载)
|
|
try:
|
|
from .sdmatte_node import NODE_CLASS_MAPPINGS as SDMATTE_NODE_CLASS_MAPPINGS
|
|
from .sdmatte_node import NODE_DISPLAY_NAME_MAPPINGS as SDMATTE_NODE_DISPLAY_NAME_MAPPINGS
|
|
except Exception as _e:
|
|
print(f"[Ruinode] SDMatte 节点未加载:{_e}")
|
|
print("[Ruinode] 如需使用,请安装:pip install diffusers transformers safetensors scipy opencv-python")
|
|
SDMATTE_NODE_CLASS_MAPPINGS = {}
|
|
SDMATTE_NODE_DISPLAY_NAME_MAPPINGS = {}
|
|
# 新增:ZenMux API 连接节点(聚合平台,厂商→模型二级选择,标签含价格)
|
|
from .zenmux import NODE_CLASS_MAPPINGS as ZENMUX_NODE_CLASS_MAPPINGS
|
|
from .zenmux import NODE_DISPLAY_NAME_MAPPINGS as ZENMUX_NODE_DISPLAY_NAME_MAPPINGS
|
|
|
|
# 合并节点映射字典
|
|
NODE_CLASS_MAPPINGS = {}
|
|
NODE_CLASS_MAPPINGS.update(SAT_NODE_CLASS_MAPPINGS)
|
|
NODE_CLASS_MAPPINGS.update(FLIP_NODE_CLASS_MAPPINGS)
|
|
NODE_CLASS_MAPPINGS.update(LOAD_NODE_CLASS_MAPPINGS)
|
|
NODE_CLASS_MAPPINGS.update(LOAD_NAME_NODE_CLASS_MAPPINGS)
|
|
NODE_CLASS_MAPPINGS.update(QWEN_NODE_CLASS_MAPPINGS)
|
|
NODE_CLASS_MAPPINGS.update(SHOT_NODE_CLASS_MAPPINGS)
|
|
NODE_CLASS_MAPPINGS.update(DIALOGUE_NODE_CLASS_MAPPINGS)
|
|
# 新增:合并遮罩筛选节点
|
|
NODE_CLASS_MAPPINGS.update(MASKSELECT_NODE_CLASS_MAPPINGS)
|
|
NODE_CLASS_MAPPINGS.update(NARRATION_NODE_CLASS_MAPPINGS)
|
|
NODE_CLASS_MAPPINGS.update(TEXTLIST_NODE_CLASS_MAPPINGS)
|
|
NODE_CLASS_MAPPINGS.update(MASKPREVIEW_NODE_CLASS_MAPPINGS)
|
|
NODE_CLASS_MAPPINGS.update(UTF8_NODE_CLASS_MAPPINGS)
|
|
NODE_CLASS_MAPPINGS.update(OPENAI_NODE_CLASS_MAPPINGS)
|
|
NODE_CLASS_MAPPINGS.update(COLORMATCHER_NODE_CLASS_MAPPINGS)
|
|
NODE_CLASS_MAPPINGS.update(IMAGESPLITTER_NODE_CLASS_MAPPINGS)
|
|
NODE_CLASS_MAPPINGS.update(SDMATTE_NODE_CLASS_MAPPINGS)
|
|
NODE_CLASS_MAPPINGS.update(ZENMUX_NODE_CLASS_MAPPINGS)
|
|
|
|
# 合并节点显示名称映射
|
|
NODE_DISPLAY_NAME_MAPPINGS = {}
|
|
NODE_DISPLAY_NAME_MAPPINGS.update(SAT_NODE_DISPLAY_NAME_MAPPINGS)
|
|
NODE_DISPLAY_NAME_MAPPINGS.update(FLIP_NODE_DISPLAY_NAME_MAPPINGS)
|
|
NODE_DISPLAY_NAME_MAPPINGS.update(LOAD_NODE_DISPLAY_NAME_MAPPINGS)
|
|
NODE_DISPLAY_NAME_MAPPINGS.update(LOAD_NAME_NODE_DISPLAY_NAME_MAPPINGS)
|
|
NODE_DISPLAY_NAME_MAPPINGS.update(QWEN_NODE_DISPLAY_NAME_MAPPINGS)
|
|
NODE_DISPLAY_NAME_MAPPINGS.update(SHOT_NODE_DISPLAY_NAME_MAPPINGS)
|
|
NODE_DISPLAY_NAME_MAPPINGS.update(DIALOGUE_NODE_DISPLAY_NAME_MAPPINGS)
|
|
# 新增:合并遮罩筛选节点显示名
|
|
NODE_DISPLAY_NAME_MAPPINGS.update(MASKSELECT_NODE_DISPLAY_NAME_MAPPINGS)
|
|
NODE_DISPLAY_NAME_MAPPINGS.update(NARRATION_NODE_DISPLAY_NAME_MAPPINGS)
|
|
NODE_DISPLAY_NAME_MAPPINGS.update(TEXTLIST_NODE_DISPLAY_NAME_MAPPINGS)
|
|
NODE_DISPLAY_NAME_MAPPINGS.update(MASKPREVIEW_NODE_DISPLAY_NAME_MAPPINGS)
|
|
NODE_DISPLAY_NAME_MAPPINGS.update(UTF8_NODE_DISPLAY_NAME_MAPPINGS)
|
|
NODE_DISPLAY_NAME_MAPPINGS.update(OPENAI_NODE_DISPLAY_NAME_MAPPINGS)
|
|
NODE_DISPLAY_NAME_MAPPINGS.update(COLORMATCHER_NODE_DISPLAY_NAME_MAPPINGS)
|
|
NODE_DISPLAY_NAME_MAPPINGS.update(IMAGESPLITTER_NODE_DISPLAY_NAME_MAPPINGS)
|
|
NODE_DISPLAY_NAME_MAPPINGS.update(SDMATTE_NODE_DISPLAY_NAME_MAPPINGS)
|
|
NODE_DISPLAY_NAME_MAPPINGS.update(ZENMUX_NODE_DISPLAY_NAME_MAPPINGS)
|
|
|
|
# 前端扩展目录(ZenMux 节点的「厂商→模型」级联脚本等)
|
|
WEB_DIRECTORY = "./web"
|
|
|
|
__all__ = ['NODE_CLASS_MAPPINGS', 'NODE_DISPLAY_NAME_MAPPINGS', 'WEB_DIRECTORY']
|