[Refactor][Diffusion] Read the resolved offload policy outside the config layer (#7327)

Signed-off-by: specture724 <specture724@gmail.com>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Co-authored-by: Hongsheng Liu <liuhongsheng4@huawei.com>
This commit is contained in:
authored and GitHub committed 2026-09-26 17:45:20 +08:00
1 parent ad025defe6
commit acf6620233
22 files changed
+265 -111

No files matched your search

+8 -3
View File
@@ -44,7 +44,11 @@ from vllm_omni.diffusion.io_support import (
supports_audio_output,
supports_multimodal_input,
)
from vllm_omni.diffusion.offloader.config import any_selected_component_uses_allgather
from vllm_omni.diffusion.offloader.config import (
OffloadStrategy,
any_selected_component_uses_allgather,
resolve_offload_strategy,
)
from vllm_omni.diffusion.output_formatter import (
format_diffusion_outputs,
format_empty_diffusion_outputs,
@@ -573,7 +577,8 @@ class DiffusionEngine:
if output.media is not None:
if output.output is not None:
raise ValueError("DiffusionOutput cannot contain both media and legacy output")
media = output.media.to_cpu() if self.od_config.enable_cpu_offload else output.media
model_level = resolve_offload_strategy(self.od_config) is OffloadStrategy.MODEL_LEVEL
media = output.media.to_cpu() if model_level else output.media
output_data = media.video.tensor
outputs = finalize_diffusion_media(media, sampling_params=request.sampling_params)
else:
@@ -585,7 +590,7 @@ class DiffusionEngine:
# post-processing to avoid device OOM — model weights may still
# reside on the device and leave no headroom for intermediates.
output_data = output.output
if self.od_config.enable_cpu_offload:
if resolve_offload_strategy(self.od_config) is OffloadStrategy.MODEL_LEVEL:
output_data = _move_tensor_tree_to_cpu(output_data)
if self.post_process_func is not None: