Release version 1.26.5
This commit is contained in:
+1
-1
@@ -2,7 +2,7 @@
|
||||
|
||||
> 更新时间:2026-06-18
|
||||
> 当前分支:`main`
|
||||
> 当前项目版本:`1.26.4`
|
||||
> 当前项目版本:`1.26.5`
|
||||
> 上一发布基线:`v1.25.0`
|
||||
> 当前状态:代码清理、识别改进和 UI 重构已完成,运行文件已同步到实际 ComfyUI 插件目录
|
||||
> 发布约束:只有用户明确要求时才提交或上传 GitHub
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# ComfyUI_FindModels
|
||||
|
||||
Current version: `1.26.4`
|
||||
Current version: `1.26.5`
|
||||
|
||||
`ComfyUI_FindModels` scans the workflow currently open in ComfyUI, identifies model
|
||||
references that are missing locally, suggests compatible installed models, and finds
|
||||
|
||||
+1
-1
@@ -437,7 +437,7 @@ def match_reference(reference: Reference, installed: dict[str, list[str]]) -> di
|
||||
reference.category,
|
||||
CATEGORY_ALIASES["unknown"] if reference.category == "unknown" else (reference.category,),
|
||||
)
|
||||
if reference.official_missing:
|
||||
if reference.official_missing or reference.official_valid:
|
||||
categories = tuple(dict.fromkeys((*categories, *CATEGORY_ALIASES["unknown"], *installed.keys())))
|
||||
candidates = [(category, name) for category in categories for name in installed.get(category, [])]
|
||||
wanted_path = normalize_path(reference.name).lower()
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
[project]
|
||||
name = "comfyui-findmodels"
|
||||
version = "1.26.4"
|
||||
version = "1.26.5"
|
||||
description = "Find and adapt missing models in the current ComfyUI workflow"
|
||||
readme = "README.md"
|
||||
requires-python = ">=3.10"
|
||||
|
||||
@@ -456,6 +456,30 @@ class ModelFinderTests(unittest.TestCase):
|
||||
self.assertEqual(result["models"][0]["status"], "adaptable")
|
||||
self.assertEqual(result["models"][0]["match"]["category"], "unet")
|
||||
|
||||
def test_confirmed_unet_selection_keeps_legacy_local_candidate(self):
|
||||
model_name = "ltx-2.3-22b-distilled-1.1_transformer_only_fp8_scaled.safetensors"
|
||||
payload = {
|
||||
"nodes": [{
|
||||
"id": 400,
|
||||
"type": "UNet加载器",
|
||||
"widgets": [{
|
||||
"name": "unet_name",
|
||||
"value": model_name,
|
||||
"model_selector": True,
|
||||
"model_value_valid": True,
|
||||
}],
|
||||
}]
|
||||
}
|
||||
|
||||
result = analyze(
|
||||
payload,
|
||||
lambda category: [model_name] if category == "unet" else [],
|
||||
)
|
||||
|
||||
self.assertEqual(result["summary"]["unresolved"], 1)
|
||||
self.assertEqual(result["models"][0]["status"], "adaptable")
|
||||
self.assertEqual(result["models"][0]["match"]["category"], "unet")
|
||||
|
||||
def test_text_encoders_do_not_resolve_from_legacy_clip_folder(self):
|
||||
model_name = "qwen_3_06b_base.safetensors"
|
||||
payload = {
|
||||
@@ -486,6 +510,32 @@ class ModelFinderTests(unittest.TestCase):
|
||||
self.assertEqual(result["models"][0]["status"], "adaptable")
|
||||
self.assertEqual(result["models"][0]["match"]["category"], "clip")
|
||||
|
||||
def test_confirmed_text_encoder_selection_keeps_legacy_clip_candidate(self):
|
||||
model_name = "qwen_3_06b_base.safetensors"
|
||||
payload = {
|
||||
"nodes": [{
|
||||
"id": 2,
|
||||
"type": "CLIPLoader",
|
||||
"widgets": [{
|
||||
"name": "clip_name",
|
||||
"value": model_name,
|
||||
"model_selector": True,
|
||||
"model_value_valid": True,
|
||||
"directory": "text_encoders",
|
||||
}],
|
||||
}],
|
||||
}
|
||||
|
||||
result = analyze(
|
||||
payload,
|
||||
lambda category: [model_name] if category == "clip" else [],
|
||||
)
|
||||
|
||||
self.assertEqual(result["summary"]["unresolved"], 1)
|
||||
self.assertEqual(result["models"][0]["category"], "text_encoders")
|
||||
self.assertEqual(result["models"][0]["status"], "adaptable")
|
||||
self.assertEqual(result["models"][0]["match"]["category"], "clip")
|
||||
|
||||
def test_scans_official_embedded_node_model_metadata(self):
|
||||
payload = {
|
||||
"nodes": [{
|
||||
|
||||
Reference in New Issue
Block a user