From 48735b98ba1aee622d665ead1e8201b937d89d1d Mon Sep 17 00:00:00 2001 From: yumoqing Date: Mon, 7 Sep 2026 18:18:42 +0800 Subject: [PATCH] =?UTF-8?q?fix(platform):=20=5Fcapability=5Fguard=E8=BE=93?= =?UTF-8?q?=E5=87=BA=E4=BE=A7=E5=AA=92=E4=BD=93=E8=AF=8D=E5=AF=B9=E7=A7=B0?= =?UTF-8?q?=E6=8E=92=E9=99=A4=E2=80=94=E2=80=94t2i=E6=8F=8F=E8=BF=B0?= =?UTF-8?q?=E5=90=AB'=E5=9B=BE=E5=83=8F/=E5=9B=BE=E7=89=87'(=E8=BE=93?= =?UTF-8?q?=E5=87=BA)=E8=A2=AB=E8=AF=AF=E5=88=A4=E5=9B=BE=E5=83=8F?= =?UTF-8?q?=E8=BE=93=E5=85=A5=E2=86=92=E5=8F=8D=E5=A4=8D=E7=BA=A0=E6=AD=A3?= =?UTF-8?q?=E6=88=90i2i=E4=B8=94overrides.model=5Fcapability=E5=8E=8B?= =?UTF-8?q?=E4=B8=8D=E4=BD=8F(2026-09-07=20qwen-image-plus=E5=AE=9E?= =?UTF-8?q?=E6=B5=8B:=E6=96=87=E6=A1=A3=E6=98=8E=E5=86=99=E8=BE=93?= =?UTF-8?q?=E5=85=A5=E6=96=87=E6=9C=AC=E8=BE=93=E5=87=BA=E5=9B=BE=E5=83=8F?= =?UTF-8?q?,=E5=8A=A9=E6=89=8Boverride=20t2i=E8=A2=AB=E5=AE=88=E5=8D=AB?= =?UTF-8?q?=E6=AF=8F=E6=AC=A1=E6=94=B9=E5=9B=9Ei2i=E6=AD=BB=E5=BE=AA?= =?UTF-8?q?=E7=8E=AF);=E6=AD=A4=E5=89=8D=E5=8F=AA=E6=8E=92video=E6=9C=AA?= =?UTF-8?q?=E6=8E=92image,=E8=A1=A5=5FOUTPUT=5FKIND=E5=AF=B9=E7=A7=B0?= =?UTF-8?q?=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pipeline_platform/platform_ability.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) 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':