Files
WJLUOXIAO-XB_ToolBox/nodes_model_loader_v1.py
T
2026-10-08 21:14:39 +08:00

36 lines
1.3 KiB
Python

"""
XB-ToolBox 模型加载器 —— 遗留公共函数
============================================
原 V1/V2/V3「模型加载大全」节点已删除;此处只保留 __init__.py 的模型刷新
接口仍在调用的 _filter_by_keyword(按关键词扫描模型目录)。
"""
import os
import folder_paths
def _filter_by_keyword(folder_type, keyword: str):
"""扫描模型目录,仅返回子文件夹名包含 keyword 的文件。"""
if not keyword or not keyword.strip():
return ["(请先输入模型类型)"]
kw = keyword.strip().lower()
base_dirs = folder_paths.get_folder_paths(folder_type)
result = []
valid_exts = {".safetensors", ".ckpt", ".pt", ".pth", ".bin"}
for base_dir in base_dirs:
if not os.path.exists(base_dir):
continue
for root, dirs, files in os.walk(base_dir):
rel = os.path.relpath(root, base_dir)
if rel == ".":
continue
parts = rel.replace("\\", "/").split("/")
if not any(kw in p.lower() for p in parts):
continue
for f in files:
if os.path.splitext(f)[1].lower() in valid_exts:
result.append(os.path.join(rel, f).replace("\\", "/"))
result.sort()
return result if result else ["(无匹配模型)"]