Highlights
This release features 504 merged changes from 183 contributors, including 94 new contributors.
vLLM-Omni v0.30.0 is led by three major advances: 1) a unified full-duplex serving framework, 2) native cross-stage KV and multimodal payload transfer, and 3) interactive world-model and streaming video generation. The release rebases onto vLLM 0.30.0, expands model support across speech, image, audiovisual generation, and VLA, and improves batching, memory efficiency, and deployment scalability.
Key Improvements
- Unified full-duplex serving around engine-owned sessions, separating duplex orchestration from turn-based execution and introducing shared model-plugin interfaces. MiniCPM-o 4.5 uses the new framework, with AURA adding multimodal interaction and multi-turn history. (#7413, #7633)
- Extended scheduler-managed diffusion KV into cross-stage transfer and reuse, adding native Mooncake AR-to-DiT handoff, KV prefetch, and HunyuanImage3 cross-request paged prefix caching. Added NIXL transport for complete AR/encoder-to-diffusion conditioning payloads. (#7166, #7637, #7719, #6264)
- Advanced interactive world-model and video execution, with LingBot World stepwise generation and mid-stream camera control, session-owned streaming VAE decode, and bounded worker-side video encoding and asynchronous chunk transfer. (#6844, #7198, #6533, #7048, #7406)
Core Architecture & Runtime
- Rebased the project onto vLLM 0.30.0, including corresponding Ascend NPU integration updates. (#7820, #8027)
- Introduced
DuplexOmni,DuplexOmniEngine, andDuplexOrchestrator, moving session ownership and lifecycle management into the engine. Eligible models can serve duplex sessions and Chat Completions using the same engine and weights. (#7413) - Added parallel stage initialization with device-aware admission and locking, allowing independent stages and replicas to initialize concurrently. Centralized Omni configuration resolution and retained structured configuration through runtime startup. (#5224, #7292, #5140, #6849)
- Added NIXL Omni connectors and complete conditioning-payload transfer, including text, visual/audio latents, and layout metadata for disaggregated MiniMax H3 execution. (#6093, #6264)
- Added scheduler-level
pause_generation(mode="keep")for request-level diffusion execution, preserving queued work and acknowledging device synchronization before returning. (#7685)
Model Support
- Added MAGI-2 Preview with native text/image-to-video-and-audio generation, synchronized stereo audio, distributed execution, and Cache-DiT integration. (#5918)
- Added Ming-Image-0.1-Design and Design-Layer, supporting text-to-image generation, single-reference image editing, and RGBA layer decomposition. (#8021)
- Added Anima native text-to-image inference from local single-file checkpoints, and support for HunyuanImage-3.0-Instruct-Distil. (#4083, #4048)
- Expanded SenseNova-U1.5-8B-MoT support with its distilled eight-step LoRA, and added the Boogu-Image Turbo native DMD execution path. (#6516, #6699)
- Added Tencent AuK and AuK-Flash for instruction-driven speech generation and editing, Audio8 TTS Preview 0.6B, and Breeze-TTS-2 with a two-stage streaming AR/codec pipeline. (#7385, #6157, #7084)
- Added an experimental JoyAI-VL-Interaction native multi-stage speech pipeline and an experimental Mage-VL duplex adapter and reference-backed offline integration. (#5352, #6537)
- Added π0.5 (Pi0.5), extending vision-language-action model coverage. (#6950)
Audio, Speech & Realtime Serving
- Moved the shared MiniCPM-o 4.5 and PersonaPlex duplex infrastructure out of the experimental namespace, and integrated AURA with the unified runtime for vision-only inputs, session history, and overlapping subsequent turns with draining speech output. (#6196, #7633)
- Enabled event-driven orchestration by default for Qwen3-TTS and selected experimental Model Runner V2 in its default CUDA deploy profile. (#7088, #7781, #7930)
- Added server-side VAD for turn-based omni models and a shared realtime web UI for MiniCPM-o and Qwen3-Omni. (#6618, #7585)
- Improved TTS execution with OmniVoice variable-length attention and request batching, optimized MOSS-TTS Local batching and streaming codec execution, and bounded-window incremental CosyVoice3 vocoder streaming. (#6408, #7202, #7521)
- Added Gepard-1.0 Speech API serving, configurable speech output sample rates, and Speech API streaming metrics. (#7499, #6553, #6853)
Diffusion, Image & Video Generation
- Expanded MiniMax H3 with the full LightX2V Turbo LoRA matrix, direct FastH3 8-Step V2 checkpoint loading, latent-mask editing, and long-video latent continuation with driving audio. (#7062, #7610, #7465, #7838)
- Extended LingBot World with Ulysses sequence parallelism, distributed streaming VAE decode, and experimental last-step KV reuse. (#6841, #7651, #7816)
- Added BAGEL step execution and continuous batching, request-level batching for Boogu-Image, and migrated MammothModa2 DiT onto the shared diffusion runtime with request batching and Cache-DiT acceleration. (#6359, #6968, #7134, #7476, #7291)
- Expanded SANA-Video 2B with tensor, CFG, and sequence parallelism, Cache-DiT, and CPU offload. Added CFG and sequence parallelism for Boogu-Image. (#5861, #5940, #5882, #6786, #5718)
- Improved video output handling with chunked worker-side MP4 encoding and bounded asynchronous device-to-host transfers, reducing full-video materialization and producer-side blocking. (#7018, #7048, #7406)
Quantization & Memory Efficiency
- Added component-selective offload policies and unified diffusion offload topology resolution. Improved HSDP startup through rank-0 shared weight loading and accelerated LoRA delta computation. (#5929, #7209, #7005)
- Added Cosmos3 mixed W8A8/W8A16 and W4A4/W4A16 denoising, FP8 support for Boogu-Image and its MLLM, and online FP8 linears for LingBot World. (#6560, #6925, #7342, #7549)
- Added MammothModa2 AR-stage FP8 KV cache, reduced MiniMax H3 VAE memory peaks, and introduced reusable exact projection caching with MiniMax H3 integration. (#7436, #7241, #7987)
Serving, Frontend & API Behavior
- Added opt-in multi-process API serving through
--api-server-count, allowing supported local EngineCore pipelines to share GPU stage engines across frontend processes. (#6923) - Added an initial RL rollout serving API with session creation, stepping, reset, close, and status operations for
world_model_envintegration. (#4770) - Expanded ComfyUI workflows with FastH3, MiniMax H3 reference inputs, latent editing, and MiniMax Music 3 generation. (#7456, #7483, #7898, #7516)
- Extended benchmarking to image/video endpoints and duplex interaction, adding OmniInteract and Omni-DuplexEval performance metrics, accuracy evaluation, and detailed diffusion pipeline timings. (#4728, #7242, #7317, #6822)
Platforms & Hardware Coverage
- Expanded Ascend NPU support with Wan2.2 MXFP4 and MindIE quantized attention paths, MOSS-TTS-Nano on Ascend A2, and multi-NPU MOSS-TTS Local deployment profiles. (#7210, #7561, #7192, #7052)
- Enabled HunyuanImage-3.0 text-to-image and the LTX-2 family on Intel XPU, and made AR-diffusion KV preallocation device-agnostic. (#7674, #7961, #7777)
- Expanded ROCm engine, executor, and entrypoint coverage, and enabled LTX DiffVAE kernel fusions on NVIDIA SM100/SM103. (#7397, #7398, #7350)
Breaking Changes
diffusion_batch_sizehas been removed. Usemax_num_seqsinstead. Unknown diffusion configuration fields now raise validation errors rather than being silently discarded. (#6484, #5172)- Duplex clients must follow the updated session contract.
/v1/duplexis an alias of/v1/realtime?duplex=1; obsolete experimental client parameters and thenative_duplexsession parameter have been removed. Useauto_responseinstead of the removedfull_duplexalias. (#7413, #7647, #8024) - Realtime audio and transcript events now use current, non-beta OpenAI event names. Clients consuming the previous names must update their handlers. (#7339, #7426)
- First-party support for Dynin-Omni and dots.tts has been removed. (#7655)
Note
- Qwen3-TTS's default Model Runner V2 remains experimental and CUDA-specific; non-CUDA platforms retain V1. Set
model_runner: v1to opt out. Its event-driven orchestration default is also model-specific and can be overridden withVLLM_OMNI_EVENT_DRIVEN_ORCH. (#7930, #7088) - Multi-process API serving is opt-in and currently limited to supported local EngineCore pipelines; diffusion stages and remote/headless stages are not supported in this mode. (#6923)
- Native Mooncake KV transfer is opt-in. The existing transfer path remains available when
kv_transfer_configis absent. (#7166) - Mage-VL uses its Transformers/reference implementation, while the initial JoyAI native speech profile executes stages sequentially. These integrations should not be interpreted as native vLLM execution for Mage-VL or overlapping streaming execution for JoyAI. (#6537, #5352)
What's Changed
- [Diffusion] Add Boogu Edit-Turbo support docs and tests by @xRay2016 in #6701
- [Config] Remove diffusion_batch_size and use max_num_seqs instead. by @LyxWxj in #6484
- [Core] Validate PipelineConfig in
__post_init__by @alex-jw-brooks in #6829 - [Frontend] Add configurable output sample rate to Speech API by @AuFlow in #6553
- [Test] Add MiniMax-H3 DLO DP2 variants and Turbo LoRA L3 test by @david6666666 in #6556
- [Doc] Update README and docs for v0.28.0 by @hsliuustc0106 in #6858
- [Bugfix][Diffusion] Preserve stage attention backend by @AndyZhou952 in #6645
- docs: add concise API server endpoint guide by @hsliuustc0106 in #6114
- [Bugfix][Cosmos3] Avoid logging prompts at INFO level by @rahul-steiger-nv in #6913
- [CI][ROCm] Fix deterministic AMD L3 blockers by @andyluo7 in #6884
- [Model] Support SenseNova-U1.5-8B-MoT and its distilled 8-step LoRA by @MrlixiangWE in #6516
- [Bugfix] Prevent build_engine_args_dict from mutating stage_config.engine_args by @Arifuzzamanjoy in #6783
- [Bugfix][Ascend NPU][Boogu] Replace complex RoPE with real-valued operations by @JW-L-7 in #6571
- [Bugfix][Diffusion] Keep the GQA ratio when padding Ulysses heads by @Xenoryn in #5716
- [Hardware][Ascend] Use npu_rotary_mul fused kernel for MOSS-TTS codec RoPE by @jingchengtian in #6908
- [CI] Migrate L4 jobs to l4-k8s and split by GPU count by @yenuo26 in #6890
- [Model] Add TP and CFG parallelism to SANA-Video 2B by @cr-gao in #5861
- [Feature][MiniMax-H3] Complete VSA and Ulysses support by @princepride in #6909
- [Doc] Refine TRTLLM attention guidance by @bobboli in #6724
- [Bugfix][Diffusion] Register Sana I2V pipeline as video output by @yenuo26 in #6953
- [CI] Select mirror_hardwares presets via MIRROR_HW (H100/B200) by @yenuo26 in #5543
- [Model] Add Cache-DiT and CPU offload support for SANA-Video 2B by @cr-gao in #5882
- [Bugfix][Qwen3-TTS] Reject task mismatches before EngineCore dispatch by @gxxx-hum in #6113
- [Bugfix][TTS] Isolate concurrent StepAudio2 TRT builds by @BANANASJIM in #6957
- [Perf][Bugfix][OmniVoice] Restore float16 serving, and fuse the generator hot loop by @MrlixiangWE in #6317
- [Bugfix] Fix vLLM serve error response imports by @maithilijoshi20 in #6707
- [Bugfix][Cosmos3] Support multi-chunk transfer with distributed VAE by @rahul-steiger-nv in #6920
- [Feature][Diffusion]: CFG parallelism support for Boogu-Image by @nagisa-kunhah in #6786
- [Core] Optimize diffusion LoRA expand accumulation by @0z5a in #6268
- [Feat] Add support and testcase for HunyuanImage-3.0-Instruct-Distil by @zengchuang-hw in #4048
- [model]Add experimental Mage-VL full-duplex adapter and offline integration by @zyforsure in #6537
- [Bugfix][XPU] Add MoTRMSNorm.forward_xpu delegating to forward_native by @Joshna-Medisetty in #5568
- [Bugfix][Qwen2.5-Omni] Fix two stale call sites in the speech helpers by @Anai-Guo in #6886
- [Bugfix] Validate --stage-overrides shape in parse_stage_overrides (drop field allowlist) by @MciG-ggg in #6230
- [Bugfix][TTS] Make CosyVoice3 TRT plan publication concurrency-safe by @BANANASJIM in #6955
- [Bugfix] Restore Omni health route ownership by @qujing226 in #6723
- [Bugfix][LTX] Restore distilled two-stage video serving by @mglyn in #6847
- [Doc] Add production diffusion model skill by @david6666666 in #6097
- [Bugfix] Preserve BF16 residual semantics in fused MiniMax-H3 modulation by @bobboli in #6878
- [Model] Add BAGEL step execution and continuous batching by @Sky-Trigger in #6359
- [Perf][NemotronVoiceChat] Fast defaults for all three deploy profiles: 2.8x offline, realtime full-duplex audio by @yuekaizhang in #6354
- [Benchmark] Add local OmniInteract performance cases by @natureofnature in #6817
- [Perf][Model] Optimize LTX video output transport by @mglyn in #7000
- [Diffusion] Enable request-level batching for Boogu-Image (T2I) by @ShengleiFu in #6968
- [Bugfix] Release diffusion worker RPC results on ranks that do not reply by @heyuanliu-intel in #6989
- [Perf][DreamZero] Remove redundant CUDA compile guard by @MikeyDong1 in #6983
- [Bugfix] Fix Qwen3-Omni MoE backend selection by @lishunyang12 in #7019
- [Bugfix] Update Hub kernel dependency floor by @lishunyang12 in #7020
- [CI][Bugfix] Normalize spoken units in text comparison by @FayeSpica in #6947
- [Bugfix][BAGEL] Restore original denoise step count by @Sky-Trigger in #7049
- [Feat][dots.tts] Add Online Serving Support by @sphinxkkkbc in #6235
- [Bugfix] Give exact-shape codec models an unpadded input_ids view by @IneshReddy249 in #6775
- [Bugfix] Fix Higgs Audio v3 voice-clone token validation by @LOGO127 in #7065
- [Perf][CI] Use Whisper on GPU when memory permits by @akshatvishu in #5675
- [Feature][Moss-TTS] Reference Audio Preprocessing by @BruceLoveDecimal in #4982
- [Bugfix] Fix fallback loading for IndexTTS external models by @sphinxkkkbc in #6137
- [Model] Add sequence parallelism to SANA-Video 2B by @cr-gao in #5940
- [Model] Add native MAGI-2 Preview diffusion support by @hsliuustc0106 in #5918
- [Core] Graduate MiniCPM-o 4.5 and PersonaPlex full-duplex serving out of experimental by @chickeyton in #6196
- Parallel stage initialization (admission + SH/EX device locks) (Worker refactor 1/N) by @tzhouam in #5224
- [Bugfix] Drop the removed diffusion_batch_size kwarg from the stage-init test by @princepride in #7101
- [Bugfix][Diffusion] Fuse distilled LoRA weights before HSDP sharding by @SamitHuang in #6948
- [diffusion][feature] Add component-selective offload policies by @lishunyang12 in #5929
- [Diffusion] Implement paged AR↔DiT KV connector ("v1", reusing vllm's native mooncake) by @fhfuih in #6310
- [Doc] Fix markdownlint findings in the serving API reference by @MaxFreedomPollard in #7111
- [Model] Add Boogu-Image Turbo native DMD path by @prettygirlisnotme in #6699
- [CI][Bugfix] Use the matching checkpoint for Qwen3-TTS VoiceDesign tests by @FayeSpica in #7054
- [Model] FP8 Support For Boogu-Image by @Dmaner in #6925
- [CI/Build] Stabilize Qwen3-TTS speaker-embedding tests against miss-EOS flake by @mjZhaoElaine in #6924
- [Perf][Diffusion] Skip the Ulysses length all-gather when shards are padded equal by @Xenoryn in #5717
- [Feature][MiniMax-H3] Support the full LightX2V Turbo LoRA matrix by @princepride in #7062
- [Bugfix] Fix Hunyuan Image-3 expert mapping contract by @lishunyang12 in #7021
- [Model] MiniMax-H3: validate versioned text-conditioning handoff by @hsliuustc0106 in #6720
- [Model] Preserve MiniCPM-o Talker full attention until capacity by @natureofnature in #6799
- [Feature] Define the runner preprocess phase contract and regression coverage by @xiaobaixia222 in #7136
- [Bugfix][Diffusion] Restore the TRTLLM attention default for the MiniMax-H3 modular alias by @princepride in #7162
- [Core][Diffusion] Refactor prompt updates into a modality-ready interaction framework by @fhfuih in #6294
- [AR-Diffusion] Allocate K and V separately so the compiled path stops cloning the pool by @linzhenpl07 in #6463
- [BugFix][Qwen-Image-Edit] restore txt_seq_lens RoPE width after #3588 regression by @NumberWan in #5586
- [Feature][LingBot World]stepwise execution by @BruceLoveDecimal in #6844
- [Doc] Add A100 recipe for Wan2.2-TI2V-5B by @lucasruan1618 in #7189
- [Doc] Update vLLM-Omni WeChat QR code by @david6666666 in #7178
- [Bugfix][Diffusion] Canonicalize cache_backend=None to "none" by @zhang-keliang in #7041
- [Bugfix][Diffusion] Include guidance_scale_2_provided in the request-batch key by @ShengleiFu in #7078
- [Bugfix][Diffusion] Make Cosmos3 transfer image arrays writable by @rahul-steiger-nv in #6915
- [Frontend][Model] Add Cosmos3 control uploads to video API by @FredHuangNV in #7027
- [Bugfix][Cosmos3] Auto-pad non-divisible Ulysses GEN sequences by @rahul-steiger-nv in #6918
- [Model][Perf] Optimize LTX Ulysses sequence parallelism by @mglyn in #7079
- [skip ci][Doc] Module design doc for diffusion runtime by @fhfuih in #6440
- [Bugfix][MiniMax-H3] Stabilize keyframe VAE encoding by @david6666666 in #7191
- [Perf][Diffusion] Keep LoRA weights resident across activation cycles by @princepride in #7195
- [Bugfix][NPU] Fix MiniMax-H3 INT8 quantization dispatch by @KrystalRay in #6876
- [Bugfix][MiniCPM-o] Allow ragged audio_feature_lens across a batch by @pujitha24 in #7071
- [Bugfix][Cosmos3] Fix distributed Transfer output envelope by @rahul-steiger-nv in #7205
- [1/N] Stream Wan VAE chunks to the media consumer by @specture724 in #7016
- [Model] Add Boogu-Image Turbo pipeline resolution by @Jerry2423 in #6961
- [Migrate]Move model-specific helpers out of serving_speech by @sphinxkkkbc in #6697
- [Refactor] fish_speech: vendor DAC codec modules, drop external fish-speech dependency by @linyueqian in #4871
- [Frontend] Add omni benchmark support for image and video endpoints by @ZacheryAU in #4728
- [Bugfix][Qwen3-Omni] Read code-predictor RoPE theta from rope_parameters by @dshah1333 in #7228
- [Refactor 1/N] Centralize Omni config resolution by @fake0fan in #5140
- [Bugfix] Fix Step-Audio2 L4 CI KV cache allocation by @wuli666 in #6839
- [Perf]Boogu-Image Skip dense attention masks by @AbelSara in #6871
- [Bugfix] Keep --disable-log-stats out of stage config resolution by @fake0fan in #7237
- [Bugfix] Bound omni benchmark per-request timeout to 15 min by default by @tlysanhuo in #7130
- [CI/Build] Wait for duplex reaper recovery in retry test by @andyluo7 in #7225
- [Bugfix] Fix video benchmark timeout and failure accounting by @congw729 in #7259
- [Frontend] Add server-side VAD for turn-based omni models by @LHXuuu in #6618
- [Bugfix][Model] GR00T-N1.7: honor processor_config image pipeline (use_albumentations / crop_fraction / letter_box_transform) to match Isaac-GR00T by @liangmenghuang in #7083
- [Model][JoyAI-VL-Interaction] Add native multi-stage pipeline by @ShuoleiWang in #5352
- [Bugfix] Preserve additional_config for LLM stages by @AbelSara in #7272
- [Bugfix][Examples] Use --profiler-config flag in offline TTS examples by @Asthenia0412 in #6763
- [Bugfix] Skip HWR store-size scans when no limit is configured by @hsliuustc0106 in #7131
- [CI][ROCm] Route LTX2 Ulysses parity to two-GPU lane by @andyluo7 in #7234
- [Bugfix][Model] GR00T-N1.7: honor the per-request seed for flow-matching noise by @liangmenghuang in #7253
- Add vLLM-Omni library info to Hugging Face Hub requests by @hmellor in #5381
- [Bugfix][NPU] Limit MiniMax H3 modulation grid size by @KrystalRay in #6794
- [Bugfix] Build the forced-aligner prompt without a chat template (word timestamps one bin late) by @twu3202 in #7240
- [Refactor][Diffusion] Resolve offload topology through one plan resolver by @specture724 in #7209
- [Doc] Add AI usage policy for contributions by @hsliuustc0106 in #7305
- [Bugfix][MiMo-Audio] Align code2wav decode with tokenizer device by @smartDream-chao in #6539
- [Bugfix][MiniCPM-o] Fix the audio_embeds input path by @eval-dev in #5730
- [Feat][OmniVoice]Support Varlen Attn, Request-Batch and Step-Execution by @sphinxkkkbc in #6408
- [Model] Add Audio8 TTS Preview 0.6B (DualAR, 44.1 kHz codec) by @NancyFyong in #6157
- [Bugfix][Frontend] Accept the msgpack-numpy package's numpy markers on the OpenPI endpoint by @ZJLi2013 in #6051
- [Frontend] Opt-in WebSocket TTS split_granularity and session seed by @rk9595 in #7046
- [Bugfix][Frontend] Clear the P0 multimodal cache through the renderer by @ZenAlexa in #7003
- [Bugfix][Frontend] Enforce image pixel limits for video input references by @BANANASJIM in #6963
- [Bugfix][TTS] Isolate shared Higgs v3 reference encode from request cancellation by @EchoHayate in #7076
- [Bugfix][CosyVoice3] Resolve hash snapshot pipeline by @XuTianle0101 in #6896
- [CI] Skip Qwen3-Omni Server VAD multi-turn realtime test (#7279) by @yenuo26 in #7314
- [Bugfix][Magi2] Allow import without an active Triton driver by @andyluo7 in #7239
- [Core] Split Omni connector model runner mixin by @natureofnature in #6903
- [Bugfix] Make LTX vocoder decoding deterministic by @mglyn in #7231
- [Doc] [Recipe] Add FLUX.1-schnell recipe for RTX 5090 32GB by @Sparks-M in #7299
- [Doc] Qwen3-TTS: add 0.6B on 1x A100 40GB by @chi030303 in #7289
- [Perf][Model] Add optimized LTX-2.5 DiffVAE operators by @mglyn in #7308
- [2/N] Add a minimal temporal chunk callback for MiniMax-H3 by @specture724 in #7017
- [Feature][Diffusion] Expose detailed pipeline timings by @bobboli in #6822
- [Bugfix] Resolve #6931 hub FA3 on torch 2.13 via kernels 0.16.1 by @NumberWan in #7185
- [Bugfix][Ascend] fix npu 310/a5 bugs by @zyz111222 in #6685
- [Bugfix][Engine] Group overlapping device stages into one sequential init component by @ZhengWG in #7328
- fix: reserve Qwen3-Omni NVFP4 backend fix by @kunkunblueberry in #7200
- [BugFix] Add field validators for /v1/audio/generate request by @Shaun-Walsh in #4741
- [CI][ROCm] Match CUDA/NPU L2/L3 label routing by @andyluo7 in #6966
- [CI/Build] Avoid duplicate stage CLI deploy config by @CarrotSwordsman in #7007
- [CI/Build][ROCm] Normalize SenseNova paged-decode hardware markers by @andyluo7 in #6935
- [Model] Skip unused frame packing in Wan2.2 S2V by @yuweih205 in #7155
- [Doc] Add dual DGX Spark MiniMax-H3 results by @bojiang-li in #7343
- [Model] Optimize MOSS-TTS Local batched execution and streaming codec by @Sy0307 in #7202
- [Bugfix][XPU] Restore N-D output shape for W8A16 FP8 linear by @Joshna-Medisetty in #7301
- [Doc] Document num_outputs_per_prompt for /v1/videos by @Hiro208 in #7341
- [Skills] Add perf-evidence isolation, stage-attribution, and realtime-contract requirements by @hsliuustc0106 in #6820
- [Bugfix] Allow LLM replicas on different GPUs to initialize concurrently by @Gaohan123 in #7292
- [CI/Build] Stabilize LTX2 vocoder autocast test on ROCm by @andyluo7 in #7336
- [NPU][CI] Add A5 and 310P CI support by @FayeSpica in #6875
- [Kernel] Enable LTX DiffVAE fusions on SM100 and SM103 by @mglyn in #7350
- [Bugfix][MiniCPM-o] Align structured chat content with native omni rendering by @Sy0307 in #7344
- [Rebase] Rebase to vLLM 0.29.0 by @tzhouam in #7230
- [Refactor] P0.2: Migrate API server helpers out of api_server by @herotai214 in #5453
- [CI] Stabilize Qwen3-Omni Server VAD E2E by @LHXuuu in #7356
- [CI/Build] Diff-aware source_file_dependencies for CUDA/NPU pipelines by @yenuo26 in #6597
- [Core][Diffusion] Add a typed pre-D2H video media contract by @NancyFyong in #6615
- [Bugfix] Bound HWR domain initialization lock waits by @hsliuustc0106 in #7128
- [Bugfix] Escalate diffusion worker shutdown and retain survivors by @hsliuustc0106 in #7126
- [Misc] Add standalone safetensors retention diagnostic by @hsliuustc0106 in #7145
- [CI] Isolate layerwise offload memory measurements by @andyluo7 in #6938
- [Model] Add Cosmos3 mixed W8A8/W8A16 and W4A4/W4A16 denoising by @wkutak in #6560
- [Test] Use public render_jinja_template in MiniCPM-o native template test by @tlysanhuo in #7362
- [Bugfix] Fix video prewarm cache retention and cancel-restart delay by @psv666 in #7363
- Cosmos3 action policy improvements by @MaciejBalaNV in #6460
- [BugFix][CI] Restore diff-aware source filtering for post-merge L3 by @yenuo26 in #7371
- [Bugfix] Fail when a diffusion LoRA adapter binds no layer by @Hiro208 in #7349
- [Bugfix] Fix host-memory leak on aborted /v1/images/generations (#6462) by @zhang-keliang in #6561
- [Refactor] Declare model-local KV held outside the paged manager by @linyueqian in #6171
- [Realtime] Emit current (non-beta) OpenAI audio/transcript event names by @NickCao in #7339
- [Bugfix][Core] Clean up failed HWR atomic metadata writes by @BANANASJIM in #6956
- [Bugfix] Keep MiniMax-H3 reference audio budgets separate by @david6666666 in #7281
- [Bugfix] Fix Helios USP: per-component split for correct sequence parallelism by @yancaocn in #6930
- [Perf][Diffusion] Optimize HSDP startup via Rank-0 shared weight loading and accelerated LoRA delta computation by @SamitHuang in #7005
- [Example] Migrate HunyuanImage-3.0 to model_extras + shared task examples by @suyanli220 in #5559
- [Model] Avoid scalar synchronizations in GLM-Image preparation by @yuweih205 in #7172
- [Model][ERNIE-Image] Delay AdaLN modulation broadcast by @yuweih205 in #7171
- [Kernel][MiniMax-H3] Run Q/K RMSNorm-RoPE in one launch by @yuweih205 in #7167
- [CI][ROCm] Align AMD image with vLLM 0.29 by @andyluo7 in #7395
- [Bugfix] Add embed_multimodal to MiniCPM-o 4.5 omni LLM class by @Hiro208 in #7384
- [Model] Add LingBot World Ulysses sequence parallelism by @wtz2333 in #6841
- [Feature][TTS] Add Speech API streaming metrics by @gxxx-hum in #6853
- [Bugfix][Model] Fix FLUX.2 Klein multi-image edit metadata by @kuafou in #7430
- [BugFix] Fix leftovers of the legacy OpenAI realtime API event names by @NickCao in #7426
- [Model] Add Tencent AuK speech generation and editing (encoder + diffusion pipeline) by @linyueqian in #7385
- [XPU][Docker] Align XPU image and CI with vLLM v0.29.0 by @Joshna-Medisetty in #7441
- [Bugfix] Add explicit error when using CFGP with distilled Cosmos3 models by @MaciejBalaNV in #7427
- [Perf][Diffusion] Run MammothModa2 DiT attention through the shared attention layer by @MrlixiangWE in #7094
- [Bugfix] Give model CLI flags typed owners in the Omni config by @Hiro208 in #7390
- [Bugfix] Require a model for
vllm serve --omni(fixes #4158) by @abinggo in #4167 - [Bugfix] Send a downstream terminal chunk when a parked stage ends by @psv666 in #6889
- [NPU] upgrade to v0.29.0 by @FayeSpica in #7433
- [Bugfix][Model][Lance] Support decoded video frames in video editing by @junpengw67-max in #5128
- [Refactor][Diffusion] Remove model-specific names from LoRA and ModelOpt loader defaults by @congw729 in #5907
- Optimize CosyVoice3 Stage1 flow batching by @gerayking in #4876
- [3/N] Encode streamed video on the worker with bounded batching by @specture724 in #7018
- [Kernel][Boogu-Image] Fuse Q/K RMSNorm + interleaved RoPE via fused_qk_norm_rope by @Holworth in #6982
- [Bugfix][Frontend] Honor output_compression on the image generations route by @hsliuustc0106 in #7447
- [Core] Add NIXL omni connector by @yuanwu2017 in #6093
- [AR-Diffusion] Add session-owned streaming VAE decode by @linzhenpl07 in #6533
- [Perf][Frontend] Chunk in-memory image file responses by @kuafou in #7459
- [Doc][NPU] Keep AllGather for MiniMax-H3 INT8 DLO by @KrystalRay in #7444
- [P0][RFC #3747] RL rollout serving: session management + world_model_env by @Srinivasoo7 in #4770
- [Bugfix][NPU] Materialize causal mask in FlashAttention dense path by @Oliver7th in #7324
- [CI/Build] Align CUDA release image with vLLM 0.29 by @LiquidGunay in #7445
- [Doc] Update vLLM-Omni WeChat QR code by @david6666666 in #7490
- [Frontend] Add ComfyUI FastH3 node, fix t2va aspect ratio and dropped audio by @princepride in #7456
- [CI/Build] Add experimental AMD MI300 nightly lane by @andyluo7 in #6978
- [CI/Build] Share nightly CUDA YAML between H100/L4 and B200 by @yenuo26 in #7028
- [Performance][MammothModa2] Enable and validate FP8 KV cache for AR stage by @JiahengX in #7436
- [Bugfix] Forward Qwen3-Omni streaming video sampling parameters by @psv666 in #7325
- [Bugfix][MiniCPMO45] Return bare tensor in Thinker forward to fix repetition loop (#7497) by @BeatSeat in #7517
- fix(qwen-image): drop the shadowed dead _get_qwen_prompt_embeds duplicate by @Anai-Guo in #7461
- [Bugfix][Frontend] Preserve duplex chat audio format and duration by @NolenLiang in #7316
- [Model] Add Breeze-TTS-2 two-stage AR TTS support (talker + codec, streaming) by @lzwnoname in #7084
- [Qwen2.5-Omni] Avoid redundant embedding computation by @nodeeeeee in #7477
- [Bugfix][Qwen3-Omni] Fix synchronous Thinker pipeline parallelism by @dshah1333 in #7345
- [Model][MiniMax-H3] Multi-GPU serving fixes and layer-wise offload component selection by @heyuanliu-intel in #7047
- [Bugfix] Allow Fish Speech phoneme-control tokens through normalize_fish_speech_text by @pujitha24 in #7043
- [Bugfix][Hardware][Ascend] Fix Qwen3-TTS code predictor dtype and nested graph replay by @yadongtan in #6639
- [BugFix] Fix importing renamed module vllm.entrypoints.openai.engine.… by @NickCao in #7531
- [Tests] Skip global GPU cleanup for parallel online diffusion tests by @NickCao in #7534
- [Misc][HiggsAudioV3] Diagnose skipped reference audio substitution by @LOGO127 in #7098
- [Model] Stop MiniCPM-o Thinker at TTS boundaries by @vuuihc in #7463
- [Performance] Optimize MammothModa2 AR → DiT hidden-state transfer by @kunkunblueberry in #7102
- [Hardware][Ascend][Model] Support MOSS-TTS-Nano on Ascend A2 by @Big2Wheel in #7192
- [Kernel] Fuse Ming streaming ISTFT overlap-add and normalization by @yashkgp in #7338
- [Bugfix][MiniCPM-o] Attach a unit's whole frame group and size the vision slot budget like Stage0 by @twu3202 in #7271
- [Model] Add VoxCPM2 startup LoRA adapter support by @Bezdarnost in #7108
- [Bugfix][Qwen3-TTS] Gate async-chunk Code2Wav on non_streaming_mode (#4371) by @smartDream-chao in #6898
- [Frontend][Benchmark] Add duplex performance metrics for OmniInteract and Omni-DuplexEval benchmark by @ZacheryAU in #7242
- [Bugfix] Don't shutdown Engine on py_generator=True by @alex-jw-brooks in #6334
- [Bugfix] Use current OpenAI audio event names in duplex client metrics by @linyueqian in #7541
- [Refactor][Diffusion] Complete generic backend plan consumption by @specture724 in #7313
- [Bugfix] Restore the async PP sampled-token broadcast in the AR runner by @dshah1333 in #7393
- [CI][ROCm] Add non-blocking engine and model executor GPU coverage by @andyluo7 in #7397
- [Frontend] Add MiniMax H3 video upscale workflow (WF-07) by @xuexueligao in #7472
- [Lingbot World] Bound image condition storage and extend temporal RoPE by @wtz2333 in #6838
- [Diffusion][Perf] Add Qwen-Image QK RoPE Triton path by @dongbo910220 in #5931
- [Tests] Test image edit input limits in tiny model framework by @NickCao in #7434
- [Model] Add Gepard-1.0 OpenAI /v1/audio/speech serving by @mjZhaoElaine in #7499
- [Perf][Cosmos3] Add SeaCache support for Cosmos3 by @yzhautouskay in #6922
- [CI][ROCm] Add non-blocking entrypoint GPU coverage by @andyluo7 in #7398
- [Bugfix][Core] Keep sample-rate snapshots bounded in delta output by @LOGO127 in #7448
- [NPU][CosyVoice3] Add CPU STFT fallback by @peterDengcx in #7520
- [CI][Bugfix] Update Qwen3-TTS CI Validation Message by @FayeSpica in #7276
- [Bugfix] Route Music3 float32 attention to SDPA by @liuyao0322 in #7354
- [Voxtral] Raise BadRequest for ref_audio by @clodaghwalsh17 in #7012
- [Bugfix] Fix Qwen3-Omni streaming crops in mixed-length batches by @dshah1333 in #7340
- [Bugfix] Tolerate a bounded TTS tail in the audio-text similarity gate by @tlysanhuo in #7358
- [Bugfix][Wan2.2] Apply UniPC flow shift once by @HAAZZZEEEE in #7576
- [CI/Build][Hardware][Ascend] Add torchmetrics to the NPU CI image by @GodHu777777 in #7570
- [Bugfix] Align video frame consumption reporting with prompt sampling by @psv666 in #7329
- [Bugfix] Per-key accumulation strategy for Qwen3-TTS codec frame outputs by @linyueqian in #7608
- [Bugfix] Keep async video jobs queued until inference and abort on delete by @ZhengWG in #6759
- [Feature][Qwen3-TTS] Make Code2Wav honor the stage dtype by @gxxx-hum in #6059
- [Diffusion] MAGI-2: regional compile coverage by @cr-gao in #7174
- [Bugfix] Skip generic text-only warmup for DreamZero by @tzhouam in #7548
- [LingBot World] Reuse the text encode for a prompt already encoded by @linzhenpl07 in #6845
- [Core][Frontend] Unified Full-duplex Framework by @chickeyton in #7413
- [Attention] [P1] Keep H3 VSA policy in the model and share sparse primitives by @lishunyang12 in #7535
- [Bugfix][MiniCPM-o] Stabilize code2wav CFM CUDA graph caching with reference audio normalization and mel-frame bucketing by @y-null in #7416
- [Frontend] Add MiniMax-H3 references and Ref2VA workflow by @LinzeShi in #7483
- [feat] Extend disaggregated MiniMax-H3 stage with VAE encoders by @asukaqaq-s in #6939
- [Frontend] Add MiniMax H3 ComfyUI text-to-video workflow (WF-01) by @zhuhu00 in #7423
- [Boogu-Image] Fuse QKV/FFN projections + switch to diffusion RMSNorm by @Bounty-hunter in #6649
- [Diffusion] Fuse Qwen-Image-Edit select01 modulation for CUDA by @dongbo910220 in #5921
- [Bugfix][Omni-DuplexEval] Load local Hugging Face dataset layouts in duplex eval loader by @RyanYun09 in #7331
- [Bugfix] Fail a duplex session that outgrows max_model_len instead of killing the EngineCore by @twu3202 in #7277
- [Perf][CosyVoice3] Bounded-window incremental HiFT vocoder streaming by @timzsu in #7521
- [Bugfix] Preserve benchmark metric sample counts in results by @psv666 in #7624
- [Bugfix][Qwen-Image] Restore RotaryEmbedding CUDA RoPE for Diffusers e2e by @NumberWan in #7513
- [CI][MiniCPM-o] Lower the Daily-Omni accuracy gate to 0.77 by @y-null in #7657
- [Bugfix] Reject failed diffusion benchmark warmups by @yuweih205 in #7092
- [Misc] Remove dead deploy keys from personaplex.yaml by @THUqliu in #7454
- [Bugfix][Qwen3-Omni] Include deferred residual in captured Thinker states by @dshah1333 in #7304
- [BugFix][NPU] Fix Fish Speech S2 Pro NPU support by @KrystalRay in #7546
- [Bugfix][Frontend] Route synthetic aborts through final stage by @CarrotSwordsman in #7006
- Preserve audio boundary embeddings in Qwen2.5-Omni interleaved input by @nodeeeeee in #7510
- [BugFix][TTS] Fix MOSS Realtime serving and generation by @akshatvishu in #5661
- [Bugfix] Fix Breeze-TTS-2 repeated silence and audio EOS handling by @linyueqian in #7667
- [Frontend] Add ComfyUI Generate Music node with initial MiniMax Music 3 support by @FayeSpica in #7516
- [Bugfix] Fix Qwen3-TTS word timestamps with async chunking by @Bezdarnost in #7544
- [Frontend] Allow explicit turn-based serving by @LinzeShi in #7675
- [Doc] Scope Spark FP8 guidance to the validated revision by @bojiang-li in #7536
- [CI][bugfix] Fix MiniMax H3 FP8 quality test remote-code loading by @david6666666 in #7617
- [Bugfix] Update ComfyUI serving-mode mock after helper rename by @LinzeShi in #7694
- [Hardware][Ascend] Add Wan2.2 MXFP4 UOS, Smooth and W4A8 fallback by @HAAZZZEEEE in #7210
- [Core] Retain structured configs through runtime startup by @maithilijoshi20 in #6849
- [Bugfix][NPU] Fix talker_mtp ACL graph capture missing force_uniform_decode by @Wallbreazzz in #7008
- [Frontend] Scale Omni serving across API processes by @Sy0307 in #6923
- [Model][PersonaPlex] Add paced multi-session validation by @LOGO127 in #7428
- [CI] Fix Structured Diffusion Config Wan Test by @alex-jw-brooks in #7707
- [Diffusion][Model] Add direct FastH3 8-Step V2 checkpoint loading by @david6666666 in #7610
- [Model][PersonaPlex] add per-row RingKV offsets and active rows by @MrDongsls in #7670
- [Core] Give the OpenAI Realtime wire codec a reusable home (RFC #6592 P0a) by @psv666 in #7640
- [Bugfix][MiniCPM-o] Size the duplex HD slice reservation from the frame by @twu3202 in #7654
- [Voxtral] Follow up to raise BadRequest for ref_audio by @clodaghwalsh17 in #7649
- [Doc][NPU] Refresh MiniMax-H3 Ascend recipes for 0.28-era configurations by @brandneway in #7720
- [Model] Add π0.5 (Pi0.5) VLA model support by @chenchaoxu7575 in #6950
- fix(minicpmo45): deadline-align native duplex silence continuation by @Tiagosf00 in #7059
- [Qwen3-Omni] Remove redundant text embedding in DeepStack path by @howard-shan in #7573
- [Feature][TTS] MOSS-TTS: place the reference-audio encoder on the code2wav stage's GPU by @gcanlin in #7724
- [Frontend] Add a shared realtime web UI for MiniCPM-o and Qwen3-Omni (#7222) by @amy-why-3459 in #7585
- [4/N] Unify worker-side MP4 encoding and wire Wan into it by @specture724 in #7048
- [Kernel] Fuse LongCat paired Q/K RoPE by @dongbo910220 in #7500
- [Bugfix][MAGI-2] Fix layerwise offload OOM by pointing offload block attrs to 'block' (#7523) by @BeatSeat in #7540
- [Diffusion] Fuse ERNIE-Image Q/K RoPE for eager execution by @dongbo910220 in #7502
- [Misc] treewide: remove shm_threshold_bytes from deploy config by @NickCao in #7522
- [XPU][HunyuanImage3] Fix HunyuanImage-3.0 text-to-image on XPU by @Joshna-Medisetty in #7674
- [Bugfix] Fix Parallel State Initialization For MoE + Diffusion by @alex-jw-brooks in #7676
- [5/N] Schedule chunk transfers as their own stage by @specture724 in #7406
- [Hardware][Ascend] Integrate MindIE dense and sparse quantized attention for Wan2.2 T2V by @De-cs in #7561
- [CI/Build][ROCm] Stabilize shared AMD test lanes by @andyluo7 in #7706
- [AR-Diffusion] Bound KV metadata for long rollouts by @wtz2333 in #7498
- [Bugfix][MiniMax-H3] Use Hopper-safe modulation precision by @david6666666 in #7693
- [Bugfix][Ascend NPU][Diffusion] Load over-wide unquantized fallback weights straight into host memory under DLOFix/mxfp online offload after quant by @brandneway in #7009
- [Test][Ascend] Share HunyuanVideo-1.5 E2E across GPU and NPU by @zengchuang-hw in #7547
- [Perf][Diffusion] Activate NPU/GPU matmul for LoRA delta computation when weights are on CPU by @holykie in #7590
- [CI/Build][MiniCPM-o] Fix the Nightly tests by @chickeyton in #7758
- [BugFix][TTS] Restore MOSS v1 codec streaming by @akshatvishu in #6420
- [Bugfix][Core] Fix CLI parallel flags losing to nested deploy parallel_config by @zwhzzz0821 in #7786
- [CI/Build] Retarget skipped HiDream and MammothModa2 E2E tests to current issues by @yenuo26 in #7755
- [CI][Qwen3-Omni] Compare structured-config sampling defaults against vLLM normalization by @linyueqian in #7742
- [CI][Qwen3-Omni] Keep the deploy-YAML literal in the structured-config sampling check by @linyueqian in #7803
- [Bugfix][Core] Apply Realtime item truncation once per command by @NolenLiang in #7800
- [XPU][Bugfix] Make AR-Diffusion KV preallocation device-agnostic by @Joshna-Medisetty in #7777
- [Model] Migrate MammothModa2 DiT to the shared diffusion runtime by @Levius-Fubuki in #7134
- [XPU][CI] Drop the USTC PyPI mirror from the XPU image build by @Joshna-Medisetty in #7808
- [CI/Build] Restrict ERNIE fused RoPE tests to NVIDIA CUDA by @andyluo7 in #7771
- [Refactor][Diffusion] Resolve distributed layerwise topology in the plan by @specture724 in #7326
- [Core] Refactor omni prefix cache into Manager/Controller by @ZhengWG in #6654
- [Bugfix] Use monotonic clocks for test server startup timeouts by @psv666 in #7628
- [Refactor] Reject unknown diffusion config fields by @TaffyOfficial in #5172
- [Model] Add circlestone-labs/Anima by @akshatvishu in #4083
- [Bugfix]Include Reference Audio Cache Salt for HiggsAudio v2 by @sphinxkkkbc in #7826
- [Bugfix][Qwen-Image] Keep AutoRound W4A16 on CPU when offloading; Fixes #7555 by @NumberWan in #7579
- [Bugfix][Test] Assert stable-audio CPU offload savings on max_memory_allocated by @IneshReddy249 in #6826
- [Bugfix] Register statistics for dynamically added replicas by @leegangtoe in #7298
- fix(e2e): re-point HunyuanImage3 offline test to text_to_image.py by @chethanuk in #7525
- [CI/Build][ROCm] Cache AMD test images in registry by @andyluo7 in #7712
- [Bugfix][RAINFUSION_ATTN] Fix padding-mask rejection on packed [real, pad] layouts and reuse query tail as output padding by @brandneway in #7235
- [Perf][MiniMax-H3] Cut video VAE encode/decode memory peaks for low-memory serving by @brandneway in #7241
- [Hardware][Ascend] Enable VoxCPM2 eager optimizations by @Big2Wheel in #7207
- [Bugfix] Avoid multimodal cache collisions in multistage image editing by @princepride in #7817
- [Model][Frontend] MiniMax-H3: Add latent-mask editing by @xiaoyu-xyz in #7465
- [Bugfix] Stabilize NIXL ownership test claim queries by @zengchuang-hw in #7870
- [Misc] Remove Dynin-Omni and dots.tts support by @yenuo26 in #7655
- [Bugfix] Honor request-level seed in VoxCPM2 CFM noise by @tlysanhuo in #7866
- [Benchmark][MiniCPM-o] Port Video-MME dataset support to Omni bench s… by @amy-why-3459 in #6987
- [Refactor][Diffusion] Move single-model layers into their model directories by @congw729 in #5908
- [Hardware][Ascend] Use incremental KV-cache decode for MOSS-TTS depth transformer by @jingchengtian in #6967
- [Bugfix] Avoid waveform-list GC scans and release completed MOSS batches by @gcanlin in #7885
- [Bugfix] Replace ffmpeg subprocess with PyAV to avoid HEVC decoder hang (#7364) by @RyanYun09 in #7504
- [Bugfix] Fix Qwen3-Omni realtime playback interruption and conversation history by @psv666 in #7791
- [Feat] Add native Mooncake KV transfer from AR to DiT by @asukaqaq-s in #7166
- [Bugfix] Route text-only chat as per-request comprehension in HunyuanImage3 AR sampler by @MrlixiangWE in #6111
- [Model] Add MiniMax-H3 long-video latent continuation with driving audio by @princepride in #7838
- [Core][Diffusion] Camera interaction for diffusion streaming generation (LingBot World 2 as example) by @fhfuih in #7198
- [Performance] Capture MOSS-TTS codec streaming decode with NPUGraph by @Wallbreazzz in #7280
- feat(comfyui): add MiniMax H3 first and last frame inputs by @avraichur96 in #7449
- [Model] Add online FP8 support for Boogu-Image MLLM by @Dmaner in #7342
- [Core][Model] Enable Qwen3-TTS MRV2 and optimize the TTS pipeline by @Sy0307 in #7781
- [LingBot World] Eleven bit-identical removals of repeated work in the realtime path by @tzhouam in #7648
- [Bugfix] Honor the requested output canvas in BAGEL img2img by @nussejzz in #7287
- [Bugfix][MiniMax-H3] Fix Hopper keyframe and modulation precision by @david6666666 in #7913
- [Bugfix][Engine] Preserve text_encoder_tp_size in OmniEngineArgs by @CarrotSwordsman in #7652
- [Feature] Add experimental LingBot World last-step KV reuse by @wtz2333 in #7816
- [LingBot World] Shard the streaming VAE decode across the Ulysses ranks by @tzhouam in #7651
- [Test] add stability test case for High-priority model by @zhumingjue138 in #7571
- [Model] Enable online FP8 linears for LingBot World by @tsinghua-code in #7549
- [Frontend] Add MiniMax-H3 latent editing workflows (WF-05) by @FayeSpica in https://github.com/vllm-project/vllm-omni/pull/7898
- [Benchmark] Add LingBot-World realtime streaming benchmark by @tzhouam in https://github.com/vllm-project/vllm-omni/pull/7645
- [Doc] Update vLLM-Omni WeChat QR code by @david6666666 in https://github.com/vllm-project/vllm-omni/pull/7911
- [CI/Build] Promote LingBot-Video dense smoke to ready/merge and wire L4 expansion by @yenuo26 in https://github.com/vllm-project/vllm-omni/pull/7892
- [BugFix] Fix diffusion TTS voice error responses by @akshatvishu in https://github.com/vllm-project/vllm-omni/pull/7798
- [Bugfix] Preserve NextStep rectangular latent dimensions by @0z5a in https://github.com/vllm-project/vllm-omni/pull/7853
- [Bugfix] Isolate weekly CPU tests from inherited attention env and hf_api mocks by @yenuo26 in https://github.com/vllm-project/vllm-omni/pull/7565
- [Bugfix] Refresh duplex client defaults after session updates by @wuli666 in https://github.com/vllm-project/vllm-omni/pull/7784
- [Model] Integrate AURA into Full-Duplex Runtime by @NumberWan in https://github.com/vllm-project/vllm-omni/pull/7633
- [Core][Diffusion] Add pause_generation(mode="keep") for diffusion stages by @cr-gao in https://github.com/vllm-project/vllm-omni/pull/7685
- [Model] Default Qwen3-TTS to experimental Model Runner V2 by @Sy0307 in https://github.com/vllm-project/vllm-omni/pull/7930
- [Perf][Qwen3-TTS] Enable event-driven orchestration by default by @Sy0307 in https://github.com/vllm-project/vllm-omni/pull/7088
- [Bugfix] Keep --no-guardrails out of diffusion stage config by @Levius-Fubuki in https://github.com/vllm-project/vllm-omni/pull/7917
- [tts][feature][NPU] Add 2-NPU and 3-NPU disaggregated deploy profiles for MOSS-TTS-Local by @jingchengtian in https://github.com/vllm-project/vllm-omni/pull/7052
- [Model] MammothModa2: enable Cache-DiT acceleration for the DiT stage by @shihongzhi in https://github.com/vllm-project/vllm-omni/pull/7291
- [Bugfix] Add opt-in MiniCPM-o 4.5 Stage-0 sliding window by @0z5a in https://github.com/vllm-project/vllm-omni/pull/7631
- [Misc] Deprecate VLLM_OMNI_VOXCPM_CODE_PATH by @armaanamatya in https://github.com/vllm-project/vllm-omni/pull/7779
- [CI][ROCm] Shorten the blocking CosyVoice test path by @andyluo7 in https://github.com/vllm-project/vllm-omni/pull/7748
- [Misc] Refactor static stage metadata lookups by @NickCao in https://github.com/vllm-project/vllm-omni/pull/7602
- [Bugfix] Catch asyncio.TimeoutError so duplex serving starts on Python 3.10 by @twu3202 in https://github.com/vllm-project/vllm-omni/pull/7412
- [Frontend] Reject built-in name collisions in voice upload and add VLLM_OMNI_SPEAKER_REGISTRATION_POLICY by @hoseung2 in https://github.com/vllm-project/vllm-omni/pull/6848
- [Frontend] Remove obsolete experimental duplex client parameters by @natureofnature in https://github.com/vllm-project/vllm-omni/pull/7647
- [Bugfix] Reject stray <|AUDIO|> placeholder with use_audio_in_video in Qwen2.5-Omni by @LiRunGuo in https://github.com/vllm-project/vllm-omni/pull/7959
- [Bugfix][Model] Fix CoVo-Audio prompt processing and dummy loading by @jeffaa729 in https://github.com/vllm-project/vllm-omni/pull/7909
- [Bugfix][TTS] Fix Audio8 voice clone reference resolution by @liuyihua95 in https://github.com/vllm-project/vllm-omni/pull/7815
- [Core] Optimize Qwen2.5-Omni Token2Wav buffer loading by @akshatvishu in https://github.com/vllm-project/vllm-omni/pull/7061
- [Bugfix] Fix GLM-TTS DiT float32 crash with flash-attn backends by @Sworol in https://github.com/vllm-project/vllm-omni/pull/7756
- [CI][Perf] migrate diffusion DFX benches to vllm bench serve --omni by @yenuo26 in https://github.com/vllm-project/vllm-omni/pull/7737
- [Doc][skip ci] Add design doc for scheduler-managed diffusion paged KV cache by @Acerak01-fy in https://github.com/vllm-project/vllm-omni/pull/6891
- [Misc] Add portable MiniMax H3 skills by @princepride in https://github.com/vllm-project/vllm-omni/pull/7923
- [Model] Reduce MOSS TTS reference audio preparation overhead by @Sy0307 in https://github.com/vllm-project/vllm-omni/pull/7725
- [CI] Count VLLM_OMNI_SPEAKER_REGISTRATION_POLICY in the inventory snapshot by @armaanamatya in https://github.com/vllm-project/vllm-omni/pull/7977
- [Bugfix] Keep resumable duplex prompts out of async-chunk prewarm by @twu3202 in https://github.com/vllm-project/vllm-omni/pull/7992
- [CI/Build] Give diffusion CPU tests more timeout headroom by @cr-gao in https://github.com/vllm-project/vllm-omni/pull/7983
- [Bugfix] Stabilize NIXL manager receiver tests by @cr-gao in https://github.com/vllm-project/vllm-omni/pull/7984
- [Feat] Add prefetch for Mooncake cross-stage paged KV transfer in HunyuanImage3 by @Acerak01-fy in https://github.com/vllm-project/vllm-omni/pull/7637
- [Frontend][Benchmark] Add duplex performance metrics to refactored full-duplex framework by @ZacheryAU in https://github.com/vllm-project/vllm-omni/pull/7714
- [CI] Bump the public env var snapshot count after #6848 landed by @linyueqian in https://github.com/vllm-project/vllm-omni/pull/7964
- [CI][Voxtral] Resolve failing test_prepare_speech_generation_awaits_voxtral_async by @clodaghwalsh17 in https://github.com/vllm-project/vllm-omni/pull/7601
- [Bugfix] Mark Omni chat benchmark streams with error events as failed by @Levius-Fubuki in https://github.com/vllm-project/vllm-omni/pull/8000
- [Bugfix] Restore GLM-Image unshifted timesteps after set_timesteps by @cs-fisha in https://github.com/vllm-project/vllm-omni/pull/7953
- [Bugfix] Mark image edit benchmark stream errors as failed by @Levius-Fubuki in https://github.com/vllm-project/vllm-omni/pull/8015
- [Doc] Correct the SessionClosed admission-slot guarantee (#7636 Issue 22) by @yanbao1217 in https://github.com/vllm-project/vllm-omni/pull/7869
- [Rebase] Rebase to vLLM 0.30.0 by @tzhouam in https://github.com/vllm-project/vllm-omni/pull/7820
- [Bugfix] Preserve all video-stream audio deltas by @dshah1333 in https://github.com/vllm-project/vllm-omni/pull/7532
- [Bugfix] Merge audio final output into the matching text choice (#7376) by @CarrotSwordsman in https://github.com/vllm-project/vllm-omni/pull/7879
- [Hardware][Ascend] Add opt-in chunked anti-alias FIR upsampling by @Celeste-jq in https://github.com/vllm-project/vllm-omni/pull/7896
- [optimization] Added Wan 2.2 VAE decode optimizations by @MaciejBalaNV in https://github.com/vllm-project/vllm-omni/pull/7056
- [bugfix] Fix FP8 Quack kernels when using Context Parallelism and reduce number of recompilations by @MaciejBalaNV in https://github.com/vllm-project/vllm-omni/pull/7458
- [Bugfix][Qwen3-TTS] Ignore voice labels for inline Base cloning by @sc-hua in https://github.com/vllm-project/vllm-omni/pull/6974
- [Model] Accelerate Breeze-TTS-2 non-streaming inference by @linyueqian in https://github.com/vllm-project/vllm-omni/pull/7752
- [Bugfix] Restore MRV2 full-payload transport for offline Qwen3-TTS by @Sy0307 in https://github.com/vllm-project/vllm-omni/pull/8010
- [CI/Build] Move Breeze-TTS-2 voice design e2e to weekly by @yenuo26 in https://github.com/vllm-project/vllm-omni/pull/8032
- [BugFix][Diffusion] Scope Wan RMSNorm patch to NPU by @Dong1017 in https://github.com/vllm-project/vllm-omni/pull/8047
- [Bugfix] Fix Qwen3-TTS prefill probe on MRv2 runner by @Sy0307 in https://github.com/vllm-project/vllm-omni/pull/8065
- [Feature] Transfer AR-to-diffusion payloads over NIXL by @yuanwu2017 in https://github.com/vllm-project/vllm-omni/pull/6264
- [New Model] Ming-Image (inclusionAI/Ming-Image-0.1-Design) Support by @yuanheng-zhao in https://github.com/vllm-project/vllm-omni/pull/8021
- [Misc] remove legacy full_duplex alias for auto_response by @NickCao in https://github.com/vllm-project/vllm-omni/pull/8024
- [CI][Omni-DuplexEval] Add nightly scoring CI guard by @RyanYun09 in https://github.com/vllm-project/vllm-omni/pull/7773
- [Bugfix] Fix native Mooncake cross-stage KV layout mismatch by @Acerak01-fy in https://github.com/vllm-project/vllm-omni/pull/8003
- [NPU] upgrade to v0.30.0 by @FayeSpica in https://github.com/vllm-project/vllm-omni/pull/8027
- [Bugfix][Core] Preserve static KV staging inputs in AR-Diffusion by @MichaelCao0 in https://github.com/vllm-project/vllm-omni/pull/7921
- [Diffusion][HunyuanImage3] Add request paged prefix caching by @zwhzzz0821 in https://github.com/vllm-project/vllm-omni/pull/7719
- [CI/Build][MiniCPM-o] Gate Seed-TTS WER over chat completions instead of the native duplex path by @chickeyton in https://github.com/vllm-project/vllm-omni/pull/7963
- [Bugfix][HunyuanImage3] Fix DiT LoRA binding: namespace alias + GQA QKV de-interleave by @Asthenia0412 in https://github.com/vllm-project/vllm-omni/pull/6802
- [Bugfix] Gate Qwen-Image fused QK-norm+RoPE on short sequences (#7780) by @NumberWan in https://github.com/vllm-project/vllm-omni/pull/7965
- [Bugfix][Diffusion] Drop aborted request's orphaned async output (fix #6413) by @zhang-keliang in https://github.com/vllm-project/vllm-omni/pull/6439
- [Bugfix][Core] Fix stage initialization spawn-lock/device-lock inversion by @tzhouam in https://github.com/vllm-project/vllm-omni/pull/7926
- [BugFix] Download Anima assets for README CI test by @akshatvishu in https://github.com/vllm-project/vllm-omni/pull/7928
- [Bugfix] Drain the omni connector output on the main thread in the AR runner by @Joshna-Medisetty in https://github.com/vllm-project/vllm-omni/pull/7750
- [Bugfix] Preserve cancellation in duplex session control queues by @wuli666 in https://github.com/vllm-project/vllm-omni/pull/7782
- [Bugfix] Align MiniMax-H3 inference steps with denoiser evaluations by @AbelSara in https://github.com/vllm-project/vllm-omni/pull/7219
- [CI][NPU] Onboard Qwen-Image perf to Ascend A3 nightly by @NumberWan in https://github.com/vllm-project/vllm-omni/pull/7970
- [CI/Build] Cut L3 entrypoint BAGEL cold starts via L4 small-model sleep suites (#6851) by @yenuo26 in https://github.com/vllm-project/vllm-omni/pull/7359
- [CI/Build][NPU] Add E2E test on Ascend A3 by @DarkMatter9527 in https://github.com/vllm-project/vllm-omni/pull/7775
- [Bugfix] Reject partially bound diffusion LoRA adapters by @provoke210 in https://github.com/vllm-project/vllm-omni/pull/8008
- [Bugfix] Validate Breeze PCM speech content and calibrate HNR guard by @linyueqian in https://github.com/vllm-project/vllm-omni/pull/8044
- [Frontend][Benchmark] Add judger and accuracy metrics for OmniInterac… by @ZacheryAU in https://github.com/vllm-project/vllm-omni/pull/7317
- [Bugfix][Frontend] Return 500 for unexpected speech failures by @z2z23n0 in https://github.com/vllm-project/vllm-omni/pull/6487
- [Bugfix] Reclaim aborted chunk SHM and consumed connector state by @natureofnature in https://github.com/vllm-project/vllm-omni/pull/8082
- [Bugfix] Fix MiniCPM-o 4.5 native duplex speech alignment by @natureofnature in https://github.com/vllm-project/vllm-omni/pull/7974
- [BugFix][Cosmos3] Register opt-in T2I pipeline so deploy-config applies by @NumberWan in https://github.com/vllm-project/vllm-omni/pull/7971
- [CI/Build] Stabilize MiniCPM-o mixed-input audio consistency test by @0z5a in https://github.com/vllm-project/vllm-omni/pull/7710
- [LingBot World] Speed up VAE decode, FP8 input quant, and default K/V gather by @tzhouam in https://github.com/vllm-project/vllm-omni/pull/7749
- [Model] Reduce MiniCPM-o 4.5 reference setup and Talker overhead by @natureofnature in https://github.com/vllm-project/vllm-omni/pull/7968
- [Hotfix][Core] PrefixCache: re-plan same-step prefix hits whose rows are written after the early prefetch by @ZhengWG in https://github.com/vllm-project/vllm-omni/pull/7877
- [CI/Build] Initialize RoPE frequencies in MiniMax H3 TeaCache tests by @gcanlin in https://github.com/vllm-project/vllm-omni/pull/8125
- [Bugfix][Diffusion] Clean up inline worker lifecycle by @andyluo7 in https://github.com/vllm-project/vllm-omni/pull/7986
- [CI/Build][Bugfix] Cover corrupt chat audio data URLs on Qwen3-Omni by @yenuo26 in https://github.com/vllm-project/vllm-omni/pull/8108
- [CI/Build][NPU] Run HunyuanVideo-1.5 perf step via run_benchmark.py by @zengchuang-hw in https://github.com/vllm-project/vllm-omni/pull/8107
- [Bugfix] Read hidden layer key from model config instead of hardcoding 24 by @khairulkabir1661 in https://github.com/vllm-project/vllm-omni/pull/5825
- [Perf] Add reusable exact projection caching with MiniMax-H3 integration by @lishunyang12 in https://github.com/vllm-project/vllm-omni/pull/7987
- [Orchestrator] Implement cache reset RPC forwarding to AR stage engine cores by @Asthenia0412 in https://github.com/vllm-project/vllm-omni/pull/6766
- [CI/Build] Fix Qwen3-Omni Talker benchmark workload by @psv666 in https://github.com/vllm-project/vllm-omni/pull/8057
- [Bugfix] Fix OmniRequestOutput iteration in the MOSS-TTS-Nano offline example by @devangpratap in https://github.com/vllm-project/vllm-omni/pull/6583
- [CI/Build] Make benchmark CLI test hermetic by @HaningZS in https://github.com/vllm-project/vllm-omni/pull/6337
- [Bugfix] Replace hardcoded Vivian speaker default with config-ordered default by @khairulkabir1661 in https://github.com/vllm-project/vllm-omni/pull/5814
- [Bugfix] Sync TeaCache skip decision across SP to prevent deadlock by @yzong-rh in https://github.com/vllm-project/vllm-omni/pull/6228
- [Bugfix][Cosmos3] Resolve per-component transformer quantization config by @NumberWan in https://github.com/vllm-project/vllm-omni/pull/8101
- [Bugfix] Enable pipeline profiling for LingBot Video by @Bezdarnost in https://github.com/vllm-project/vllm-omni/pull/7744
- [Bugfix] Print text alongside audio in multimodal chat example by @Gaohan123 in https://github.com/vllm-project/vllm-omni/pull/8130
- [Bugfix][Diffusion] Bound diffusion execute RPCs with the DP wave timeout by @ChoHee15 in https://github.com/vllm-project/vllm-omni/pull/7745
- [Doc] Announce PR limitation to avoid agent spam by @Isotr0py in https://github.com/vllm-project/vllm-omni/pull/8131
- [Bugfix][XPU] Enable LTX-2 family on XPU by @Joshna-Medisetty in https://github.com/vllm-project/vllm-omni/pull/7961
- [CI][Diffusion] Add tiny model builder for StableDiffusion3Pipeline by @khairulkabir1661 in https://github.com/vllm-project/vllm-omni/pull/6423
- [CI][Diffusion] Add acceleration test groups for SD3 and Flux2 by @khairulkabir1661 in https://github.com/vllm-project/vllm-omni/pull/6625
- [Bugfix][Frontend] Surface streaming terminal submit failures by @BANANASJIM in https://github.com/vllm-project/vllm-omni/pull/7011
- [BugFix] Add modalities and logprobs validation for /v1/chat/completions by @Shaun-Walsh in https://github.com/vllm-project/vllm-omni/pull/4743
- [Bugfix][Qwen3-Omni] Restore the talker sampling seed by @tzhouam in https://github.com/vllm-project/vllm-omni/pull/7474
- [Bugfix][Qwen3-TTS] Decode full payload from model buffer by @Sy0307 in https://github.com/vllm-project/vllm-omni/pull/8132
- [Bugfix] Compensate cancelled duplex open, append and resume; fix serving README drift (#7636 Issues 1, 2, 3, 21) by @chickeyton in https://github.com/vllm-project/vllm-omni/pull/7785
- [Model] Support request-level batching for MammothModa2 DiT on shared runtime by @BeatSeat in https://github.com/vllm-project/vllm-omni/pull/7476
- [Bugfix] Stop cancelled MiniMax-H3 requests at denoising boundaries by @Gaohan123 in https://github.com/vllm-project/vllm-omni/pull/7844
- [BugFix][Cosmos3] Decode uploaded video paths in v2v preprocess by @NumberWan in https://github.com/vllm-project/vllm-omni/pull/8106
- [Feature][Diffusion] Add BOOGU Image sequence parallel support by @Xenoryn in https://github.com/vllm-project/vllm-omni/pull/5718
- feat(magi2): add fused mHC post-processing by @yeahdongcn in https://github.com/vllm-project/vllm-omni/pull/7261
- [Bugfix][Diffusion] Skip AllGather DLO weight restore on worker shutdown by @specture724 in https://github.com/vllm-project/vllm-omni/pull/8103
- [CI/Build] Fix MiniCPM-o codec readback test under default-device dispatch by @natureofnature in https://github.com/vllm-project/vllm-omni/pull/8147
- [Bugfix][MammothModa2] Keep AR layer 0 in BF16 in the FP8 KV preset by @MrlixiangWE in https://github.com/vllm-project/vllm-omni/pull/8083
- [Bugfix][MammothModa2] Stop allocating AR KV cache for the replaced language model by @MrlixiangWE in https://github.com/vllm-project/vllm-omni/pull/8095
- [Bugfix] Align Ming-Image prompt templates and RNG, fix number of layer to decompose by @yuanheng-zhao in https://github.com/vllm-project/vllm-omni/pull/8118
- [Bugfix] Restore MiniCPM duplex Seed-TTS startup by @NolenLiang in https://github.com/vllm-project/vllm-omni/pull/8152
- [Bugfix][MiniCPM-o] Build the Stage-0 duplex runtime at load time by @chickeyton in https://github.com/vllm-project/vllm-omni/pull/8146
- [Bugfix] Restore torch default device between tests by @yenuo26 in https://github.com/vllm-project/vllm-omni/pull/8157
- [Bugfix] Fix MRV2 payload slicing with CUDA Graph padding by @Sy0307 in https://github.com/vllm-project/vllm-omni/pull/8159
- [Bugfix] Fix Nemotron VoiceChat duplex nightly handshake by @Sy0307 in https://github.com/vllm-project/vllm-omni/pull/7884
- [Bugfix] Fix MiniCPM-o 4.5 seeded turns and window E2E inputs by @Gaohan123 in https://github.com/vllm-project/vllm-omni/pull/8160
New Contributors
- @xRay2016 made their first contribution in #6701
- @LyxWxj made their first contribution in #6484
- @AuFlow made their first contribution in #6553
- @andyluo7 made their first contribution in #6884
- @Arifuzzamanjoy made their first contribution in #6783
- @JW-L-7 made their first contribution in #6571
- @Xenoryn made their first contribution in #5716
- @jingchengtian made their first contribution in #6908
- @BANANASJIM made their first contribution in #6957
- @0z5a made their first contribution in #6268
- @Anai-Guo made their first contribution in #6886
- @MciG-ggg made their first contribution in #6230
- @Sky-Trigger made their first contribution in #6359
- @heyuanliu-intel made their first contribution in #6989
- @MikeyDong1 made their first contribution in #6983
- @LOGO127 made their first contribution in #7065
- @MaxFreedomPollard made their first contribution in #7111
- @xiaobaixia222 made their first contribution in #7136
- @lucasruan1618 made their first contribution in #7189
- @zhang-keliang made their first contribution in #7041
- @FredHuangNV made their first contribution in #7027
- @KrystalRay made their first contribution in #6876
- @pujitha24 made their first contribution in #7071
- @specture724 made their first contribution in #7016
- @Jerry2423 made their first contribution in #6961
- @tlysanhuo made their first contribution in #7130
- @liangmenghuang made their first contribution in #7083
- @ShuoleiWang made their first contribution in #5352
- @hmellor made their first contribution in #5381
- @twu3202 made their first contribution in #7240
- @eval-dev made their first contribution in #5730
- @NancyFyong made their first contribution in #6157
- @ZenAlexa made their first contribution in #7003
- @XuTianle0101 made their first contribution in #6896
- @Sparks-M made their first contribution in #7299
- @chi030303 made their first contribution in #7289
- @kunkunblueberry made their first contribution in #7200
- @Shaun-Walsh made their first contribution in #4741
- @CarrotSwordsman made their first contribution in #7007
- @yuweih205 made their first contribution in #7155
- @bojiang-li made their first contribution in #7343
- @Hiro208 made their first contribution in #7341
- @yancaocn made their first contribution in #6930
- @kuafou made their first contribution in #7430
- @junpengw67-max made their first contribution in #5128
- @gerayking made their first contribution in #4876
- @Holworth made their first contribution in #6982
- @yuanwu2017 made their first contribution in #6093
- @Srinivasoo7 made their first contribution in #4770
- @Oliver7th made their first contribution in #7324
- @LiquidGunay made their first contribution in #7445
- @JiahengX made their first contribution in #7436
- @NolenLiang made their first contribution in #7316
- @lzwnoname made their first contribution in #7084
- @nodeeeeee made their first contribution in #7477
- @yadongtan made their first contribution in #6639
- @vuuihc made their first contribution in #7463
- @Big2Wheel made their first contribution in #7192
- @Bezdarnost made their first contribution in #7108
- @xuexueligao made their first contribution in #7472
- @yzhautouskay made their first contribution in #6922
- @peterDengcx made their first contribution in #7520
- @GodHu777777 made their first contribution in #7570
- @LinzeShi made their first contribution in #7483
- @zhuhu00 made their first contribution in #7423
- @RyanYun09 made their first contribution in #7331
- @THUqliu made their first contribution in #7454
- @chenchaoxu7575 made their first contribution in #6950
- @Tiagosf00 made their first contribution in #7059
- @howard-shan made their first contribution in #7573
- @De-cs made their first contribution in #7561
- @holykie made their first contribution in #7590
- @Levius-Fubuki made their first contribution in #7134
- @leegangtoe made their first contribution in #7298
- @chethanuk made their first contribution in #7525
- @xiaoyu-xyz made their first contribution in #7465
- @avraichur96 made their first contribution in #7449
- @tsinghua-code made their first contribution in #7549
- @shihongzhi made their first contribution in https://github.com/vllm-project/vllm-omni/pull/7291
- @armaanamatya made their first contribution in https://github.com/vllm-project/vllm-omni/pull/7779
- @hoseung2 made their first contribution in https://github.com/vllm-project/vllm-omni/pull/6848
- @LiRunGuo made their first contribution in https://github.com/vllm-project/vllm-omni/pull/7959
- @jeffaa729 made their first contribution in https://github.com/vllm-project/vllm-omni/pull/7909
- @liuyihua95 made their first contribution in https://github.com/vllm-project/vllm-omni/pull/7815
- @Sworol made their first contribution in https://github.com/vllm-project/vllm-omni/pull/7756
- @cs-fisha made their first contribution in https://github.com/vllm-project/vllm-omni/pull/7953
- @yanbao1217 made their first contribution in https://github.com/vllm-project/vllm-omni/pull/7869
- @sc-hua made their first contribution in https://github.com/vllm-project/vllm-omni/pull/6974
- @Dong1017 made their first contribution in https://github.com/vllm-project/vllm-omni/pull/8047
- @MichaelCao0 made their first contribution in https://github.com/vllm-project/vllm-omni/pull/7921
- @DarkMatter9527 made their first contribution in https://github.com/vllm-project/vllm-omni/pull/7775
- @provoke210 made their first contribution in https://github.com/vllm-project/vllm-omni/pull/8008
- @z2z23n0 made their first contribution in https://github.com/vllm-project/vllm-omni/pull/6487
- @devangpratap made their first contribution in https://github.com/vllm-project/vllm-omni/pull/6583
Full Changelog: v0.28.0...v0.30.0