diff --git a/pipeline_platform/platform_ability.py b/pipeline_platform/platform_ability.py index 5bf164a..92b0513 100644 --- a/pipeline_platform/platform_ability.py +++ b/pipeline_platform/platform_ability.py @@ -497,7 +497,15 @@ def _capability_guard(capability, description): return None, None has_ref = any(w in desc for w in _DESC_REF_WORDS) kinds = [k for k, words in _DESC_MEDIA_WORDS.items() if any(w in desc for w in words)] - input_kinds = [k for k in kinds if k != 'video'] + # 输出侧媒体词对称排除(2026-09-07 qwen-image-plus 实测根因):纯文本生成 + # 能力的描述几乎必含其输出媒体词——t2v 必含「视频」、t2i 必含「图像/图片」, + # 那是输出声明不是输入声明。此前只排 video(video 在 t2v/i2v 描述必现), + # 没排 image(image 在 t2i 描述必现)→「千问系列图像生成模型」被误判有 + # 图像输入 → t2i 被反复纠正成 i2i,且 overrides.model_capability 压不住 + # (守卫在 apply 前置阶段每次又改回去,用户纠正陷入死循环)。 + _OUTPUT_KIND = {'t2v': 'video', 't2i': 'image'} + out_kind = _OUTPUT_KIND.get(capability) + input_kinds = [k for k in kinds if k != out_kind] if not (has_ref or input_kinds): return None, None if capability == 't2t':