From fc542abb98159d77c2da864e611c21c47b5cdb94 Mon Sep 17 00:00:00 2001 From: Taichang Zhou Date: Mon, 15 Jun 2026 07:14:55 +0000 Subject: [PATCH 01/51] [BDE] Add Block Diffusion Engine selection via config field Introduce the Block Diffusion Engine (BDE), a DiffusionEngine subclass that will own engine-level KV cache management for autoregressive / chunked world-model diffusion (DreamZero and the AR-DiT family). This first change is the engine-selection skeleton; no KV behavior yet. - Add `engine_backend` field to OmniDiffusionConfig. - DiffusionEngine.make_engine now dispatches via resolve_engine_class, mirroring DiffusionExecutor.get_class: accepts "default"/"bde", a DiffusionEngine subclass, or an import-path string. Both existing make_engine call sites pick this up unchanged. - Add vllm_omni/bde with BDEEngine (behavior-preserving subclass for now; the KVCacheManager lifecycle is added in later phases). - Route DreamZero (DreamZeroPipeline) to BDE by default at the config layer via default_engine_backend_for_model(), overridable by an explicit engine_backend. Other models are unaffected. - Tests for the dispatcher and DreamZero defaulting (15 tests, all passing). Co-Authored-By: Claude Opus 4.8 Signed-off-by: Taichang Zhou --- README.md | 1 - docs/models/supported_models.md | 6 +- docs/serving/speech_api.md | 7 - docs/serving/videos_api.md | 7 +- .../examples/online_serving/image_to_video.md | 18 +- .../examples/online_serving/text_to_video.md | 18 +- .../dreamzero/client_schedule.py | 129 - .../dreamzero/export_prediction_video.py | 136 +- .../online_serving/image_to_video/README.md | 11 +- .../online_serving/text_to_video/README.md | 11 +- recipes/NVIDIA/GR00T-N1.7.md | 101 - recipes/README.md | 11 +- recipes/mistralai/Voxtral-TTS.md | 42 - requirements/common.txt | 2 - tests/bde/__init__.py | 1 + tests/bde/test_engine_routing.py | 96 + tests/config/test_server_settings.py | 84 - tests/diffusion/cache/test_cache_backends.py | 115 +- tests/diffusion/cache/test_cache_dit.py | 47 +- tests/diffusion/cache/test_stepcache.py | 116 - tests/diffusion/models/gr00t/__init__.py | 0 tests/diffusion/models/gr00t/test_pipeline.py | 141 - .../models/ltx2/test_ltx2_3_pipeline.py | 17 +- tests/diffusion/quantization/test_hsdp_fp8.py | 147 - tests/diffusion/test_diffusion_worker.py | 25 +- tests/dreamzero/test_crossattn_cache.py | 114 - tests/dreamzero/test_fused_qk_rms_norm.py | 112 - tests/dreamzero/test_qkv_fusion.py | 117 - tests/e2e/offline_inference/test_moss_tts.py | 333 ++- .../test_moss_tts_realtime.py | 290 -- .../test_dreamzero_expansion.py | 2 + tests/e2e/online_serving/test_gr00t_openpi.py | 163 -- .../openai_api/test_openpi_connection.py | 41 - .../openai_api/test_storage_manager.py | 94 - .../openai_api/test_video_server.py | 51 +- tests/gr00t/__init__.py | 2 - tests/gr00t/openpi_client_helper.py | 183 -- .../models/moss_tts/test_per_request_codes.py | 176 -- tests/test_omni_request.py | 89 - vllm_omni/bde/__init__.py | 12 + vllm_omni/bde/engine.py | 30 + vllm_omni/config/pipeline_registry.py | 4 - vllm_omni/config/server_settings.py | 58 - vllm_omni/deploy/Gr00tN1d7.yaml | 41 - vllm_omni/deploy/dreamzero.yaml | 7 +- vllm_omni/deploy/dreamzero_tp1_cfg2.yaml | 7 +- vllm_omni/diffusion/cache/base.py | 2 - .../diffusion/cache/cache_dit_backend.py | 2401 ++++++++++++----- vllm_omni/diffusion/cache/selector.py | 13 +- .../diffusion/cache/stepcache/__init__.py | 66 - .../diffusion/cache/stepcache/backend.py | 129 - vllm_omni/diffusion/cache/stepcache/config.py | 51 - vllm_omni/diffusion/cache/stepcache/state.py | 51 - vllm_omni/diffusion/data.py | 44 +- vllm_omni/diffusion/diffusion_engine.py | 50 +- vllm_omni/diffusion/distributed/hsdp.py | 7 +- .../model_loader/diffusers_loader.py | 27 +- .../models/bagel/bagel_transformer.py | 9 - .../models/cosmos3/transformer_cosmos3.py | 12 - .../diffusion/models/dreamid_omni/fusion.py | 9 - .../models/dreamzero/causal_wan_model.py | 127 +- .../models/dreamzero/pipeline_dreamzero.py | 293 +- .../models/dreamzero/state_dreamzero.py | 111 +- .../models/dreamzero/video_export_worker.py | 25 +- .../dreamzero/wan_vae_feat_cache_patch.py | 92 - .../ernie_image/ernie_image_transformer.py | 8 - .../diffusion/models/flux/flux_transformer.py | 9 - .../models/flux2/flux2_transformer.py | 9 - .../flux2_klein/flux2_klein_transformer.py | 9 - .../models/glm_image/glm_image_transformer.py | 10 - vllm_omni/diffusion/models/gr00t/__init__.py | 6 - .../models/gr00t/configs/__init__.py | 8 - .../gr00t/configs/embodiment_configs.py | 12 - .../models/gr00t/configs/gr00t_n1d7.py | 109 - .../diffusion/models/gr00t/dataio/__init__.py | 2 - .../models/gr00t/dataio/embodiment_tags.py | 191 -- .../gr00t/dataio/state_action/__init__.py | 2 - .../dataio/state_action/action_chunking.py | 654 ----- .../models/gr00t/dataio/state_action/pose.py | 709 ----- .../state_action/state_action_processor.py | 643 ----- .../diffusion/models/gr00t/dataio/types.py | 112 - .../diffusion/models/gr00t/dataio/utils.py | 187 -- .../models/gr00t/modeling/__init__.py | 7 - .../models/gr00t/modeling/gr00t_n1d7.py | 491 ---- .../models/gr00t/modeling/modules/__init__.py | 2 - .../models/gr00t/modeling/modules/dit.py | 344 --- .../modules/embodiment_conditioned_mlp.py | 178 -- .../gr00t/modeling/processing_gr00t_n1d7.py | 555 ---- .../diffusion/models/gr00t/pipeline_gr00t.py | 148 - vllm_omni/diffusion/models/gr00t/policy.py | 434 --- .../models/helios/helios_transformer.py | 9 - .../pipeline_hidream_i1_image.py | 1059 ++++++++ .../hunyuan_image3_transformer.py | 9 - .../hunyuan_video_15_transformer.py | 9 - .../longcat_image_transformer.py | 10 - .../diffusion/models/ltx2/ltx2_transformer.py | 10 - .../diffusion/models/sd3/sd3_transformer.py | 8 - .../sensenova_u1/pipeline_sensenova_u1.py | 2 - .../sensenova_u1/sensenova_u1_transformer.py | 10 - .../stable_audio/stable_audio_transformer.py | 8 - vllm_omni/diffusion/quantization/__init__.py | 2 - vllm_omni/diffusion/quantization/hsdp_fp8.py | 112 - vllm_omni/diffusion/registry.py | 5 - vllm_omni/diffusion/utils/flow_matching.py | 28 - .../worker/diffusion_model_runner.py | 24 +- .../diffusion/worker/diffusion_worker.py | 15 +- vllm_omni/engine/async_omni_engine.py | 10 +- vllm_omni/entrypoints/cli/serve.py | 2 +- vllm_omni/entrypoints/openai/api_server.py | 73 +- .../entrypoints/openai/serving_speech.py | 1 + vllm_omni/entrypoints/openai/storage.py | 170 +- .../entrypoints/openai/tts_adapters/base.py | 3 + vllm_omni/entrypoints/openpi/connection.py | 98 +- .../models/cosyvoice3/cosyvoice3.py | 35 +- .../models/cosyvoice3/cosyvoice3_code2wav.py | 73 +- .../models/cosyvoice3/pipeline.py | 6 +- .../model_executor/models/cosyvoice3/utils.py | 22 + .../models/covo_audio/config_covo_audio.py | 1 + .../models/covo_audio/token2wav.py | 5 +- .../fish_speech/fish_speech_dac_decoder.py | 18 +- .../models/fish_speech/fish_speech_fast_ar.py | 11 +- .../models/fish_speech/prompt_utils.py | 10 + .../models/glm_tts/glm_tts_dit.py | 4 + .../model_executor/models/gr00t/__init__.py | 2 - .../model_executor/models/gr00t/pipeline.py | 26 - .../configuration_higgs_audio_v2.py | 12 + .../higgs_audio_v2/higgs_audio_v2_talker.py | 35 +- .../models/higgs_audio_v3/ref_audio_cache.py | 111 + .../models/ming_flash_omni/projectors.py | 27 + .../models/ming_flash_omni/text_processing.py | 91 + .../models/ming_tts/config_ming_tts.py | 2 + .../models/ming_tts/constants.py | 1 + .../models/ming_tts/ming_tts.py | 4 + .../models/ming_tts/ming_tts_llm.py | 14 +- .../models/moss_tts/audio_tokenizer.py | 2 +- .../moss_tts/modeling_moss_tts_talker.py | 166 +- .../configuration_moss_tts_nano.py | 60 + .../moss_tts_nano/modeling_moss_tts_nano.py | 1 + .../models/omnivoice/omnivoice.py | 3 +- .../models/omnivoice/omnivoice_generator.py | 23 +- .../qwen3_tts/configuration_qwen3_tts.py | 11 +- .../models/qwen3_tts/prompt_embeds_builder.py | 8 +- .../models/qwen3_tts/qwen3_tts_talker.py | 7 + .../modeling_qwen3_tts_tokenizer_v2.py | 5 + .../qwen3_tts/tokenizer_25hz/vq/core_vq.py | 5 + .../models/step_audio2/step_audio2.py | 8 +- .../step_audio2/step_audio2_constants.py | 36 + .../models/step_audio2/step_audio2_thinker.py | 30 +- .../step_audio2/step_audio2_token2wav.py | 121 + .../models/voxcpm2/minicpm4_paged.py | 19 +- .../models/voxcpm2/voxcpm2_talker.py | 43 +- .../models/voxtral_tts/voxtral_tts.py | 3 + .../voxtral_tts_audio_generation.py | 26 +- .../voxtral_tts_audio_tokenizer.py | 4 +- vllm_omni/request.py | 7 +- .../transformers_utils/processors/ming.py | 1 + vllm_omni/worker/gpu_model_runner.py | 14 - 157 files changed, 4319 insertions(+), 10044 deletions(-) delete mode 100644 examples/offline_inference/dreamzero/client_schedule.py delete mode 100644 recipes/NVIDIA/GR00T-N1.7.md create mode 100644 tests/bde/__init__.py create mode 100644 tests/bde/test_engine_routing.py delete mode 100644 tests/config/test_server_settings.py delete mode 100644 tests/diffusion/cache/test_stepcache.py delete mode 100644 tests/diffusion/models/gr00t/__init__.py delete mode 100644 tests/diffusion/models/gr00t/test_pipeline.py delete mode 100644 tests/diffusion/quantization/test_hsdp_fp8.py delete mode 100644 tests/dreamzero/test_crossattn_cache.py delete mode 100644 tests/dreamzero/test_fused_qk_rms_norm.py delete mode 100644 tests/dreamzero/test_qkv_fusion.py delete mode 100644 tests/e2e/offline_inference/test_moss_tts_realtime.py delete mode 100644 tests/e2e/online_serving/test_gr00t_openpi.py delete mode 100644 tests/entrypoints/openai_api/test_storage_manager.py delete mode 100644 tests/gr00t/__init__.py delete mode 100644 tests/gr00t/openpi_client_helper.py delete mode 100644 tests/model_executor/models/moss_tts/test_per_request_codes.py delete mode 100644 tests/test_omni_request.py create mode 100644 vllm_omni/bde/__init__.py create mode 100644 vllm_omni/bde/engine.py delete mode 100644 vllm_omni/config/server_settings.py delete mode 100644 vllm_omni/deploy/Gr00tN1d7.yaml delete mode 100644 vllm_omni/diffusion/cache/stepcache/__init__.py delete mode 100644 vllm_omni/diffusion/cache/stepcache/backend.py delete mode 100644 vllm_omni/diffusion/cache/stepcache/config.py delete mode 100644 vllm_omni/diffusion/cache/stepcache/state.py delete mode 100644 vllm_omni/diffusion/models/dreamzero/wan_vae_feat_cache_patch.py delete mode 100644 vllm_omni/diffusion/models/gr00t/__init__.py delete mode 100644 vllm_omni/diffusion/models/gr00t/configs/__init__.py delete mode 100644 vllm_omni/diffusion/models/gr00t/configs/embodiment_configs.py delete mode 100644 vllm_omni/diffusion/models/gr00t/configs/gr00t_n1d7.py delete mode 100644 vllm_omni/diffusion/models/gr00t/dataio/__init__.py delete mode 100755 vllm_omni/diffusion/models/gr00t/dataio/embodiment_tags.py delete mode 100644 vllm_omni/diffusion/models/gr00t/dataio/state_action/__init__.py delete mode 100644 vllm_omni/diffusion/models/gr00t/dataio/state_action/action_chunking.py delete mode 100644 vllm_omni/diffusion/models/gr00t/dataio/state_action/pose.py delete mode 100644 vllm_omni/diffusion/models/gr00t/dataio/state_action/state_action_processor.py delete mode 100644 vllm_omni/diffusion/models/gr00t/dataio/types.py delete mode 100644 vllm_omni/diffusion/models/gr00t/dataio/utils.py delete mode 100644 vllm_omni/diffusion/models/gr00t/modeling/__init__.py delete mode 100644 vllm_omni/diffusion/models/gr00t/modeling/gr00t_n1d7.py delete mode 100644 vllm_omni/diffusion/models/gr00t/modeling/modules/__init__.py delete mode 100644 vllm_omni/diffusion/models/gr00t/modeling/modules/dit.py delete mode 100644 vllm_omni/diffusion/models/gr00t/modeling/modules/embodiment_conditioned_mlp.py delete mode 100644 vllm_omni/diffusion/models/gr00t/modeling/processing_gr00t_n1d7.py delete mode 100644 vllm_omni/diffusion/models/gr00t/pipeline_gr00t.py delete mode 100644 vllm_omni/diffusion/models/gr00t/policy.py create mode 100644 vllm_omni/diffusion/models/hidream_image/pipeline_hidream_i1_image.py delete mode 100644 vllm_omni/diffusion/quantization/__init__.py delete mode 100644 vllm_omni/diffusion/quantization/hsdp_fp8.py delete mode 100644 vllm_omni/diffusion/utils/flow_matching.py delete mode 100644 vllm_omni/model_executor/models/gr00t/__init__.py delete mode 100644 vllm_omni/model_executor/models/gr00t/pipeline.py create mode 100644 vllm_omni/model_executor/models/higgs_audio_v3/ref_audio_cache.py create mode 100644 vllm_omni/model_executor/models/moss_tts_nano/configuration_moss_tts_nano.py diff --git a/README.md b/README.md index e300b6b8d1e..cf1658b4574 100644 --- a/README.md +++ b/README.md @@ -68,7 +68,6 @@ Visit our [documentation](https://vllm-omni.readthedocs.io/en/latest/) to learn - [Installation](https://vllm-omni.readthedocs.io/en/latest/getting_started/installation/) - [Quickstart](https://vllm-omni.readthedocs.io/en/latest/getting_started/quickstart/) - [List of Supported Models](https://vllm-omni.readthedocs.io/en/latest/models/supported_models/) -- [Deployment Recipes](https://recipes.vllm.ai) for vLLM-Omni model serving ## Contributing diff --git a/docs/models/supported_models.md b/docs/models/supported_models.md index c224c1a6a2f..119f3bf683c 100644 --- a/docs/models/supported_models.md +++ b/docs/models/supported_models.md @@ -6,8 +6,6 @@ vLLM-Omni supports unified multimodal comprehension and generation models across If vLLM-Omni natively supports a model, its implementation can be found in and . -For deployment recipes (TTS and multimodal), see [recipes.vllm.ai](https://recipes.vllm.ai) and the in-repo [`recipes/`](https://github.com/vllm-project/vllm-omni/tree/main/recipes) directory. - ## List of Supported Models