[Bugfix] Fix Qwen-Image-Edit-2511 TeaCache zero_cond_t handling (#3219)

Signed-off-by: JasonJ2021 <jasonj@zju.edu.cn>
Signed-off-by: Jason <72191212+JasonJ2021@users.noreply.github.com>
Co-authored-by: Zeyu Huang | 黃澤宇 <11222265+fhfuih@users.noreply.github.com>
This commit is contained in:
JasonandZeyu Huang | 黃澤宇 authored and GitHub committed 2026-05-27 11:06:18 +08:00
1 parent a3802d1e5c
commit 753508fe02
4 files changed
+15 -13

No files matched your search

@@ -1,10 +1,10 @@
[
{
"test_name": "test_qwen_image_edit_2509_single_device",
"test_name": "test_qwen_image_edit_2511_single_device",
"description": "Single-device baseline (two input images)",
"server_type": "vllm-omni",
"server_params": {
"model": "Qwen/Qwen-Image-Edit-2509",
"model": "Qwen/Qwen-Image-Edit-2511",
"serve_args": {
"enable-diffusion-pipeline-profiler": true
}
@@ -49,11 +49,11 @@
]
},
{
"test_name": "test_qwen_image_edit_2509_ulysses2_cfg2_vae_patch4",
"test_name": "test_qwen_image_edit_2511_ulysses2_cfg2_vae_patch4",
"description": "Ulysses SP=2 + CFG=2 + VAE patch parallel=4",
"server_type": "vllm-omni",
"server_params": {
"model": "Qwen/Qwen-Image-Edit-2509",
"model": "Qwen/Qwen-Image-Edit-2511",
"serve_args": {
"ulysses-degree": 2,
"cfg-parallel-size": 2,
@@ -102,11 +102,11 @@
]
},
{
"test_name": "test_qwen_image_edit_2509_ulysses2_cfg2_cache_dit",
"test_name": "test_qwen_image_edit_2511_ulysses2_cfg2_cache_dit",
"description": "Ulysses SP=2 + CFG=2 + CacheDiT",
"server_type": "vllm-omni",
"server_params": {
"model": "Qwen/Qwen-Image-Edit-2509",
"model": "Qwen/Qwen-Image-Edit-2511",
"serve_args": {
"ulysses-degree": 2,
"cfg-parallel-size": 2,
+1 -1
View File
@@ -20,7 +20,7 @@ pytestmark = [pytest.mark.full_model, pytest.mark.diffusion]
SINGLE_MODEL = "Qwen/Qwen-Image-Edit"
MULTIPLE_MODEL = "Qwen/Qwen-Image-Edit-2509"
MULTIPLE_MODEL = "Qwen/Qwen-Image-Edit-2511"
WIDTH = 512
HEIGHT = 512
NUM_INFERENCE_STEPS = 20
@@ -141,10 +141,10 @@ def test_qwen_image_edit(omni_server: OmniServer, openai_client: OpenAIClientHan
@pytest.mark.parametrize(
"omni_server",
_get_diffusion_feature_cases("Qwen/Qwen-Image-Edit-2509"),
_get_diffusion_feature_cases("Qwen/Qwen-Image-Edit-2511"),
indirect=True,
)
def test_qwen_image_edit_2509_single_image(omni_server: OmniServer, openai_client: OpenAIClientHandler):
def test_qwen_image_edit_2511_single_image(omni_server: OmniServer, openai_client: OpenAIClientHandler):
"""Test Qwen-Image-Edit-2509 with a single image input.
Regression: with tea_cache enabled and zero_cond_t=True, the TeaCache
@@ -176,10 +176,10 @@ def test_qwen_image_edit_2509_single_image(omni_server: OmniServer, openai_clien
@pytest.mark.parametrize(
"omni_server",
_get_diffusion_feature_cases("Qwen/Qwen-Image-Edit-2509"),
_get_diffusion_feature_cases("Qwen/Qwen-Image-Edit-2511"),
indirect=True,
)
def test_qwen_image_edit_2509_two_images(omni_server: OmniServer, openai_client: OpenAIClientHandler):
def test_qwen_image_edit_2511_two_images(omni_server: OmniServer, openai_client: OpenAIClientHandler):
"""Test Qwen-Image-Edit-2509 with two image inputs."""
image_data_url_1 = f"data:image/jpeg;base64,{generate_synthetic_image(512, 512)['base64']}"
image_data_url_2 = f"data:image/jpeg;base64,{generate_synthetic_image(512, 512)['base64']}"
+4 -2
View File
@@ -277,8 +277,10 @@ def extract_qwen_context(
def postprocess(h):
"""Apply Qwen-specific output postprocessing."""
t = temb.chunk(2, dim=0)[0] if module.zero_cond_t else temb
h = module.norm_out(h, t)
if getattr(module, "zero_cond_t", False):
h = module.norm_out(h, temb.chunk(2, dim=0)[0])
else:
h = module.norm_out(h, temb)
output = module.proj_out(h)
if not return_dict:
return (output,)