[Diffusion] Add Worker contracts and RPC plumbing for Scheduler-managed paged KV cache (#5550)

Signed-off-by: Acerak01-fy <wfy2003324@163.com>
Signed-off-by: Hongsheng Liu <liuhongsheng4@huawei.com>
Co-authored-by: Hongsheng Liu <liuhongsheng4@huawei.com>
This commit is contained in:
Wang fuyinandHongsheng Liu authored and GitHub committed 2026-08-11 14:55:42 +08:00
1 parent 322600bfb2
commit af3faa6c1e
10 files changed
+622 -13

No files matched your search

+18 -4
View File
@@ -188,10 +188,24 @@ class DiffusionEngine:
self._init_process_hooks(od_config)
self.execution_mode = self._resolve_execution_mode(od_config)
self._init_executor(od_config)
self._init_scheduler(od_config, scheduler)
self._init_runtime_state()
self._init_execute_fn()
self._log_execution_mode(od_config)
try:
self._init_scheduler(od_config, scheduler)
self._init_runtime_state()
self._init_execute_fn()
self._log_execution_mode(od_config)
except Exception:
# close() cannot be used because runtime synchronization state may not exist yet.
scheduler_to_close = getattr(self, "scheduler", None)
if scheduler_to_close is not None:
try:
scheduler_to_close.close()
except Exception:
logger.exception("Failed to close Scheduler after DiffusionEngine initialization failed")
try:
self.executor.shutdown()
except Exception:
logger.exception("Failed to shut down Executor after DiffusionEngine initialization failed")
raise
def _init_process_hooks(self, od_config: OmniDiffusionConfig) -> None:
self.post_process_func = get_diffusion_post_process_func(od_config)