From 862e0a2b27a92638fd2e31b30f4f9293a73f7c08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B1=AA=E5=BF=97=E9=B9=8F?= Date: Mon, 6 Jul 2026 01:06:30 +0800 Subject: [PATCH] [BugFix] Preserve diffusion extra_body params for out-of-process CFG Parallel (#4900) Signed-off-by: princepride --- vllm_omni/entrypoints/async_omni.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/vllm_omni/entrypoints/async_omni.py b/vllm_omni/entrypoints/async_omni.py index ce7ea8817..3fe0f8165 100644 --- a/vllm_omni/entrypoints/async_omni.py +++ b/vllm_omni/entrypoints/async_omni.py @@ -209,10 +209,13 @@ class AsyncOmni(EngineClient, OmniBase): def get_diffusion_od_config(self) -> Any | None: """Return the diffusion-stage config when the pipeline has one.""" + saw_diffusion_stage = False for stage_client in self.engine.stage_clients: if getattr(stage_client, "stage_type", None) != "diffusion": continue + saw_diffusion_stage = True + od_config = getattr(stage_client, "od_config", None) if od_config is not None: return od_config @@ -222,6 +225,11 @@ class AsyncOmni(EngineClient, OmniBase): if od_config is not None: return od_config + # Out-of-process diffusion clients don't carry od_config (it lives in the + # worker); fall back to the engine's model_class_name resolution. + if saw_diffusion_stage: + return self.engine.get_diffusion_od_config() + return None @property