Skip to content

Commit d11d03b

Browse files
committed
Fix false Qwen3-VL detection when mmproj is not required
1 parent b2be8ef commit d11d03b

File tree

6 files changed

+24
-11
lines changed

6 files changed

+24
-11
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,3 +51,5 @@ Thumbs.db
5151
# ComfyUI specific
5252
output/
5353
temp/
54+
55+
experiments/

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,13 @@ All notable changes to ComfyUI-MultiModal-Prompt-Nodes will be documented in thi
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [1.0.7] - 2026-01-26
9+
10+
### Fixed
11+
- Fixed incorrect detection of Qwen3-VL when mmproj is set to (Not required).
12+
- Disabled automatic mmproj detection and prevented use of the VL handler in this case.
13+
- Updated GGUFModelManager.load_model and node-side mmproj interpretation to correctly respect (Not required).
14+
815
## [1.0.6] - 2026-01-16
916

1017
### Fixed

README.md

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -472,9 +472,5 @@ Areas needing help:
472472

473473
See [CHANGELOG.md](CHANGELOG.md) for detailed version history.
474474

475-
### Current Version: 1.0.6
476-
- Improved stability when switching between Qwen3-VL GGUF models
477-
- Fixed mmproj reuse issues in local vision models
478-
- Internal structure preparation for future backend refactoring
479-
- Documentation updates clarifying project scope, installation notes, and attribution
480-
- No breaking changes to node interfaces
475+
### Current Version: 1.0.7
476+
- Fixed incorrect detection of Qwen3-VL when mmproj is set to (Not required).

__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
# the Free Software Foundation, either version 3 of the License, or
77
# (at your option) any later version.
88

9-
__version__ = "1.0.6"
9+
__version__ = "1.0.7"
1010

1111
from .qwen_nodes import NODE_CLASS_MAPPINGS as qNODE_CLASS_MAPPINGS, NODE_DISPLAY_NAME_MAPPINGS as qNODE_DISPLAY_NAME_MAPPINGS
1212
from .wan_nodes import NODE_CLASS_MAPPINGS as wNODE_CLASS_MAPPINGS, NODE_DISPLAY_NAME_MAPPINGS as wNODE_DISPLAY_NAME_MAPPINGS

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[project]
22
name = "multimodal-prompt-nodes"
33
description = "Multimodal prompt generator nodes for ComfyUI, designed to generate prompts for QwenImageEdit and Wan2.2. Supports local LLM / local GGUF models (Qwen3-VL, Qwen-VL) and Qwen API for image and video prompt generation and enhancement."
4-
version = "1.0.6"
4+
version = "1.0.7"
55
license = {file = "LICENSE"}
66
# classifiers = [
77
# # For OS-independent nodes (works on all operating systems)

vision_llm_node.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -281,8 +281,13 @@ def load_model(
281281
# Infer Qwen version from model name
282282
is_qwen3 = self._infer_is_qwen3(model_path)
283283

284-
# Qwen3-VL requires mmproj
285-
if is_qwen3:
284+
# If user explicitly selected "(Not required)", force text-only even if the filename contains "qwen3".
285+
# This prevents accidental Qwen3-VL handler selection and mmproj auto-detection for text-only Qwen3 models.
286+
force_no_mmproj = (mmproj_path == "(Not required)")
287+
if force_no_mmproj:
288+
mmproj_path = None
289+
# Qwen3-VL requires mmproj (unless explicitly disabled)
290+
if is_qwen3 and not force_no_mmproj:
286291
if mmproj_path is None:
287292
mmproj_path = self._auto_detect_mmproj(model_path)
288293
if mmproj_path is None:
@@ -625,7 +630,10 @@ def rewrite(self, prompt: str, model: str, mmproj: str, style: str, target_langu
625630

626631
# mmproj processing
627632
mmproj_path = None
628-
if mmproj not in ["(Auto-detect)", "(Not required)"]:
633+
if mmproj == "(Not required)":
634+
# Sentinel to force text-only (prevents mmproj auto-detect / VL handler)
635+
mmproj_path = "(Not required)"
636+
elif mmproj != "(Auto-detect)":
629637
mmproj_path = os.path.normpath(os.path.join(models_dir, mmproj))
630638
if not os.path.exists(mmproj_path):
631639
print(f"[Vision LLM Node] Warning: mmproj not found: {mmproj_path}")

0 commit comments

Comments
 (0)