github vllm-project/vllm-omni v0.32.0rc1

pre-release4 hours ago

Highlights

vLLM-Omni v0.32.0rc1 includes 297 merged changes since v0.31.0rc1. This prerelease (not GA) aligns with / is built on vLLM v0.32.0, expands multimodal and realtime serving, and improves diffusion and speech performance.

Core Architecture & Runtime

  • Align vLLM-Omni with vLLM v0.32.0 (runtime integration surfaces, dependencies, container/docs defaults, and Python support >=3.11,<3.14). (#9066)
  • Add session-aware replica placement and multi-frontend full-duplex serving, plus server VAD on turn-based /v1/realtime. (#8913, #8600)
  • Add RL weight-transfer support for training handoff into Omni serving. (#7686)

Model Support & Realtime Serving

  • Add MOSS-Image text-to-image with SLG. (#8926)
  • Add TaoMate-H3 realtime streaming on AR-Diffusion (USP2/USP4). (#8268)
  • Add LTX 2.5 text-to-audio one-stage pipeline. (#6489)
  • Add JoyAI speech input on unified duplex sessions. (#8931)
  • Add YuE2 music generation and cover workflows to ComfyUI. (#8881)

Speech & Audio Performance

  • Improve PersonaPlex with batched execution, CUDA graphs, and memory optimization across Stage 0 / Depformer / Stage 1. (#8441)
  • Continue MiniCPM-o / Qwen3-TTS / CosyVoice3 throughput and streaming fixes landed since v0.31.0rc1 (see full changelog).

Diffusion, Image & Video

  • Add CUDA FA3 FP8 diffusion attention. (#8965)
  • Enable online FP8 quantization for MammothModa2 DiT. (#7221)

Compatibility & Packaging

  • Python support for this cut: >=3.11,<3.14, with dependency, container reference, and install-guidance updates from the v0.32.0 alignment. (#9066)
  • This tag is a release candidate, not a GA release.

Validation & Known Issues

  • The release is pinned to da572cddb38383deae9caef33b8d490e292ef071 on branch release/v0.32.0rc1 (includes the vLLM v0.32.0 alignment from #9066).
  • This note does not claim a fully green multi-platform nightly or day-one support for every new model. Please file issues against this tip SHA.

Release Artifacts

  • GitHub pre-release tag: v0.32.0rc1. PyPI wheel and container images will be published by the omni-release pipeline after this tag; install links will be updated once those artifacts are available.
  • Until then, install from the tagged source: pip install git+https://github.com/vllm-project/vllm-omni.git@v0.32.0rc1

What's Changed

  • [Model][Perf] IndexTTS2: drop per-step hidden D2H in latent mode by @vivivi-111 in #8478
  • [Bugfix] Qwen3-Omni thinker: create deepstack buffers on the real device by @johnnynunez in #8461
  • [Bugfix] Do not assume a stream decoder in MRv2 eager-MTP preprocess by @Sy0307 in #8484
  • [Bugfix] Validate sleep stage_ids before blocking admission by @he-yufeng in #8501
  • [Perf] Add CUDA graphs for MiniCPM-o 4.5 input encoders by @amy-why-3459 in #8332
  • [Bugfix] Keep client error status in the single-GPU diffusion executor by @fusheng-ji in #8474
  • [Bugfix] Configure logging in the Omni CLI/API Server by @NickCao in #8518
  • [Perf][MiniCPM-o] Code2Wav resident Euler slot pool, fused DiT body, and exact HiFT graphs by @BeatSeat in #8443
  • [Model][PersonaPlex] Encode only consumed Mimi codebooks by @LOGO127 in #7399
  • [Model][PersonaPlex] Vectorize prefill embedding construction by @LinzeShi in #7481
  • [Bugfix][MiniCPM-o] Take the duplex vision tile from the image-processor config by @twu3202 in #8462
  • [CI/Build][ROCm] Reuse AITER cache for Mammoth attention tests by @haic0 in #8527
  • [Model] Optimize Wan VAE first-frame decoding with Conv2d by @QianCyrus in #8179
  • [CI/Build][ROCm] Retry AMD Simple Diffusion shards on GPU hangs by @haic0 in #8520
  • [XPU][Docker] Align XPU image and CI with vLLM v0.31.0 by @Joshna-Medisetty in #8528
  • [CI][ROCm] Add LingBot nightly coverage by @haic0 in #7935
  • [Core] Add batch parallel VAE decode by @QianCyrus in #8162
  • [CI][ROCm] Add Cosmos3 nightly coverage by @haic0 in #7933
  • Kandinsky6 by @osipovmekete in #8537
  • [Bugfix] Migrate CreateAudio from deprecated class Config to ConfigDict by @NickCao in #5245
  • [Model] MiniMax-H3: accept raw video masks and resolve the latent grid server-side by @avicii-forever in #7947
  • [Core] Generalized turn-based /v1/realtime implementation by @NickCao in #8339
  • [Perf][MiniCPM-o] Stage 0 streaming audio/vision encoder CUDA graphs and candidate sampling by @BeatSeat in #8430
  • [Perf] Fuse AdaLayerNorm CUDA eager path with Triton by @Dong1017 in #8231
  • [Model] Default MOSS Local 1.5 to adaptive CUDA MRV2 with MPS by @Sy0307 in #8438
  • [Frontend] MiniMax-H3: Add latent-mask editing to the ComfyUI extension by @avicii-forever in #7575
  • [CI][ROCm] Add and stabilize HunyuanImage3 nightly coverage by @haic0 in #7934
  • [CI/Build][ROCm] Move Pi0.5 CPU coverage to AMD nightly by @haic0 in #8559
  • [Perf][PersonaPlex] Batch live duplex appends and replay Mimi codec frames from CUDA graphs by @linyueqian in #8356
  • [Perf][Qwen3-Omni] Capture the thinker image encoder with CUDA graphs (part of #7452) by @MrlixiangWE in #8215
  • [Model] MiniCPM-o 4.5: enable fused CFM body by default on CUDA by @amy-why-3459 in #8557
  • [CI/Build][ROCm] Run diffusion CPU-offload coverage with SDPA by @haic0 in #8570
  • [Core] Defer generation payload host waits to output consumption by @amy-why-3459 in #8540
  • [Frontend] Share regular and duplex chat initialization by @natureofnature in #7646
  • [Model] Avoid repeated attention and MLP work in Klein TP by @QianCyrus in #8553
  • [New model] Qwen-Image-2.1 support (rebase + review follow-ups) by @NumberWan in #8099
  • [feature] Reduce memory usage with SP by @MaciejBalaNV in #7728
  • [CI/Build][ROCm] Stabilize R2-01 platform selection by @haic0 in #8561
  • [NPU] upgrade to v0.31.0 by @FayeSpica in #8588
  • [CI/Build] Fix CPU groups in distributed VAE test mocks by @amy-why-3459 in #8591
  • [Bugfix] Fix In Place Compile Overwrites for Qwen3Omni Embeddings with TP > 1 by @alex-jw-brooks in #8532
  • [BugFix] Optimize turn-based /v1/realtime auto truncation by @NickCao in #8566
  • [Bugfix] Fix Sender Address Propagation by @alex-jw-brooks in #8599
  • Add XPU deploy overlays and mark Intel GPU support by @Joshna-Medisetty in #8409
  • [Bugfix] Report sample rate and channels for streamed speech PCM by @linyueqian in #8567
  • [Bugfix][Qwen3-Omni] Default the talker voice to Ethan by @linyueqian in #8568
  • [Model] Add JoyAI-Image-Edit pipeline support by @nagisa-kunhah in #4112
  • [Doc] Add new technical report to README by @hsliuustc0106 in #8609
  • [Bugfix] Add SageAttention2/3 custom ops and execution contracts by @rahul-steiger-nv in #7740
  • [Feature] Add FlashInfer H3 VSA backends and exact AdaLN weight offload by @lishunyang12 in #7989
  • [CI/Build] Add NIXL timeout regression and real-ZMQ coverage by @fusinjay in #7733
  • [Model] Add VDN-H3 hybrid attention (VDNH3_ATTN) for MiniMax-H3 by @haochengxi in #8439
  • [Core] Limit SHM reaping work on chunk sends by @psv666 in #8618
  • [Bugfix] Guard OmniVoice Triton dispatch for CPU and NPU tensors by @Liuchenbing-2026 in #8589
  • [CI/Build] Move premerge CPU jobs to the medium queue and retune nightly/weekly suites by @yenuo26 in #8616
  • [Model] Reduce CosyVoice3 TensorRT Euler host overhead by @trueoneplusone in #7767
  • [Bugfix][CI][Benchmark] switch thread_type to SLICE for HEVC in Omni-DuplexEval by @ZacheryAU in #8307
  • [Feat][optimization] mammoth moda2 VAE slicing tiling by @VLa1111 in #7774
  • [Kernel] Accelerate MOSS Local depth decoding with QKV lookup and fusion by @gcanlin in #8232
  • [Model] MiniCPM-o 4.5: add NPU and Code2Wav encoder graphs by @amy-why-3459 in #8515
  • [Perf][PersonaPlex] Hoist RoPE tables and RingKV position computation out of the per-layer loop by @Sendoh-code in #7850
  • [Bugfix][Model] Make PersonaPlex Code2Wav input delta-only by @jeffaa729 in #7480
  • [Perf][Model] Use block-sparse attention in Qwen2.5-Omni Token2Wav DiT by @LiRunGuo in #7975
  • [Bugfix][YuE2] Build the output from live mm outputs when prefix caching is on by @twu3202 in #8479
  • [Bugfix][MiniCPM-o] Apply the Talker's 16-frame codec penalty on MRv2 by @linyueqian in #8576
  • [Bugfix] Calibrate Z-Image TeaCache coefficients and add ZImageAdapter by @kuatovakamila in #8408
  • [Bugfix] Fix missing SenseNova-U1 TeaCache position embeddings by @LinzeShi in #8260
  • [Bugfix] Scope stage-0 multimodal UUIDs on a copy of the prompt by @armaanamatya in #8062
  • [Feature] Support request-level batching for SDXL text2image by @heyuanliu-intel in #7033
  • [Perf][AuK] Opt-in FP8 GEMMs for the DiT block linears by @linyueqian in #8442
  • [Feature][Qwen3-TTS] Return the codec frames code2wav decodes as a client output by @linyueqian in #8619
  • Map current Kandinsky 6 Diffusers checkpoint names. by @osipovmekete in #8590
  • [Bugfix][CI/Build][ROCm] Fix AuK FP8 and diffusion CI contracts by @haic0 in #8643
  • [AutoRound] Extend INC config for AutoRound NVFP4 by @changwangss in #7721
  • [Bugfix] Honor CPU lists for in-process stage workers by @Sorbett in #8631
  • [Hardware][Ascend] Optimize MOSS-TTS codec attention and RoPE for NPU by @jingchengtian in #7556
  • [Doc] Update vLLM-Omni WeChat QR code by @david6666666 in #8608
  • [CI/Build][ROCm] Reuse Omni processor metadata snapshot by @haic0 in #8646
  • [CI/Build][ROCm] Move full Omni processor matrix to nightly by @haic0 in #8571
  • [Model] Reduce MiniMax-H3 Ref2VA RGB frame conversion by @Dong1017 in #8129
  • [Perf][PersonaPlex] Send one codec frame per audio chunk by @linyueqian in #8662
  • [Model] MiniMax-H3: Support an independent VAE decoder stage by @Dong1017 in #8104
  • [Bugfix][Test] Keep the PersonaPlex load driver on the capture clock by @linyueqian in #8650
  • [Model] Overlap MiniMax-H3 reference audio extraction with video decode by @Dong1017 in #8229
  • [Kernel][Core] Fuse Ring attention output merging by @QianCyrus in #8494
  • [Bugfix][Duplex] Close session when session.created never reaches the client by @NumberWan in #7997
  • [Perf] MAGI-2: count BF16 MoE routes in int32 by @yeahdongcn in #8496
  • [Perf] MAGI-2: use a 64-wide K tile for the BF16 MoE GEMMs on MUSA by @yeahdongcn in #8506
  • [Bugfix] MAGI-2: keep a single W13 bank for the fused BF16 MoE path by @yeahdongcn in #8497
  • [MOSS-TTS] Fast pcm convert and first-frame codec in stage0 by @gcanlin in #8640
  • [Model][Hardware][MUSA] Add MAGI-2 Preview MUSA support by @yeahdongcn in #8498
  • [Perf] MAGI-2: use FP32 mHC stream contractions on MUSA by @yeahdongcn in #8510
  • [CI] Add tests for Qwen3 Omni Thinker variant by @clodaghwalsh17 in #4944
  • [CI/Build][ROCm] Move PersonaPlex temporal stress to nightly by @haic0 in #8670
  • [Model] Prefetch the MiniCPM-o 4.5 Code2Wav reference during Stage-2 … by @MinhaoLi0318 in #8198
  • [Bugfix][ROCm] Repair R2-01 MOSS and Breeze coverage by @haic0 in #8562
  • [Bugfix][MiniCPM-o] Fix empty audio in synchronous serving (#8681) by @amy-why-3459 in #8692
  • [New model] Add Qwen-Image-2.1-Turbo support by @Isotr0py in #8699
  • [Hardware][Ascend] Use registered NPU allocator telemetry for cache retention by @Dong1017 in #8578
  • [Model] MiniMax-H3: overlap Ref2VA CPU noise preparation by @Dong1017 in #8577
  • [Model] Consolidate MOSS-TTS Local 1.5 deploy configuration by @gcanlin in #8704
  • [Perf][Qwen-Omni] Check audio-in-video interleaving with tensor reductions by @MrlixiangWE in #8629
  • [Model] Reduce MOSS-TTS codec streaming state memory by @gcanlin in #8701
  • [Bugfix][MiniCPM-o] Keep a duplex unit's text before a mid-unit tts_bos by @BeatSeat in #8717
  • [Feature] Compose Ulysses with AllGather-KV as a 2D diffusion SP by @Bounty-hunter in #7641
  • [Doc] Update README slides link to v0.30.0 release by @hsliuustc0106 in #8695
  • [Bugfix][CI] Make Mooncake fanout timeout tests deterministic by @amy-why-3459 in #8727
  • [CI/Build][Ascend] Move nightly Wan 2.2 function tests to A3 by @FayeSpica in #8706
  • [CI/Build][ROCm] Split Wan2.2 merge cold starts by @andyluo7 in #8014
  • [Bugfix] Finalize step requests before engine idle by @Laceprndpm in #8719
  • [Perf] Allow disabling per-request stage metrics by @AlessioNetti in #8554
  • [bugfix] Fix CLI flags that modify model_config when using --deploy-config by @MaciejBalaNV in #8289
  • [Bugfix] Preserve CUDA toolkit header precedence in a2a JIT builds by @LeslieWylie in #7599
  • [Bugfix] Reserve CUDA graph memory when sizing Omni KV caches by @MrlixiangWE in #7632
  • [Core][Model] Unified Full-Duplex MRv2 Support and MiniCPM-o 4.5 Adaptation by @BeatSeat in #8536
  • [Misc] Remove dead and duplicate code in TTS and full-duplex paths by @linyueqian in #8751
  • [optimization] Added Wan 2.2 VAE encode optimizations by @MaciejBalaNV in #8067
  • [Bugfix] Fail the request, not the orchestrator, on a bridge client error by @kuatovakamila in #8605
  • [Model] Cosmos3: Reduce video output transfer overhead by @rahul-steiger-nv in #5712
  • [Model] MiniMax H3 timeline guide conditioning by @shykoe in #8460
  • [Doc] Add human contributor intent gate by @hsliuustc0106 in #8786
  • [Bugfix][Qwen3-TTS] Bound CustomVoice/VoiceDesign codec budgets by input length by @linyueqian in #8569
  • [Bugfix][Qwen3-TTS] Always send ref_audio so an evicted engine artifact cannot kill the engine by @linyueqian in #8697
  • [Frontend] Reduce API server output and request overhead by @Sy0307 in #8703
  • [Core] Reduce MOSS-TTS Local serving overhead by @Sy0307 in #8667
  • OmniVoice: Validate instructions by @clodaghwalsh17 in #6105
  • [Doc] Update vLLM-Omni WeChat QR code by @david6666666 in #8806
  • [Bugfix][Duplex] Keep replicas alive after streaming context overflow [fix personaPlex stage 0 crash bug] by @natureofnature in #8683
  • [Bugfix] Read nested Realtime WebSocket error codes in tests by @yenuo26 in #8825
  • [Perf][MiniCPM-o] Share Code2Wav graphs across CUDA and NPU by @amy-why-3459 in #8735
  • [Bugfix] Prevent FP16 overflow in SeedVR2 RMSNorm by @princepride in #8767
  • [Bugfix][NPU] Preserve contiguous K/V cache allocation by @FayeSpica in #8827
  • [Bugfix][NPU] Forward torch_profiler_record_shapes to the NPU profiler by @wangzhao-11a in #8770
  • [BugFix] CosyVoice3: honor the weights iterator in load_weights by @linyueqian in #6738
  • [Bugfix] Realtime: reply to session.update before any other event by @lazariv in #8839
  • [Test] Route hardware-platform marks through hardware_test by @yenuo26 in #8708
  • [Bugfix][MiniCPM-o] Give each duplex session its own audio feature extractor by @williamLyh in #8638
  • [Bugfix] Build Qwen3-Omni Thinker PP-capture tensors without dict.update by @he-yufeng in #8846
  • [CI/Build][ROCm] Move slow diffusion CPU cases out of hash shards by @haic0 in #8849
  • [Bugfix] MiniCPM-o 4.5 duplex: reset turn_end on every unit to fix st… by @lrq619 in #8822
  • [Frontend][Benchmark] Add Omni-DuplexEval to bench serve by @natureofnature in #8645
  • [Model] Add ABot-World realtime AR-Diffusion support by @tsinghua-code in #6392
  • [Bugfix][Diffusion] Preserve client errors across request execution by @zhongc1211 in #8713
  • [Frontend][Benchmark] Add Seed-TTS Realtime turn-trigger perf test for Qwen3-Omni by @psv666 in #8060
  • [CI/Build] Pin Qwen3-Omni multi-replica speaker and retire audio baselines by @psv666 in #8826
  • [Bugfix] Harden video job cancellation and cleanup by @MaciejBalaNV in #8843
  • [CI/Build] Stabilize Qwen3-TTS model setup and 8 kHz ASR validation by @amy-why-3459 in #8837
  • [CI/Build] Diagnose cancellation collective worker startup failures by @amy-why-3459 in #8861
  • [Bugfix] Fix Cosmos3 transfer resize and cropping by @MaciejBalaNV in #8844
  • [Core] Reduce async chunk request snapshot overhead by @psv666 in #8833
  • [Bugfix] Fix AutoRound layer resolution after INC config upgrade by @Thinkash in #8870
  • [Refactor][Core] Refactor the prefix-cache manager/controller boundary to make write-task ownership and resource cleanup explicit by @ZhengWG in #8835
  • [Frontend] Expose MiniMax H3 timeline guides on /v1/videos by @shykoe in #8838
  • [CI/Build][ROCm] Reuse the unmasked BF16 AITER MHA module by @haic0 in #8848
  • [Doc] PR merge loop bible (maintainer ops) by @hsliuustc0106 in #8897
  • [Perf][Engine] Make event-driven orchestration the default for all pipelines by @linyueqian in #8675
  • [Quantization] FLUX.1-dev text encoder FP8 online quantization by @guanzheh in #3997
  • [Bugfix] Realtime: use response_cancel_not_active for cancels with nothing to cancel by @lazariv in #8840
  • [CI/Build][ROCm] Shorten YuE2 full-vocabulary sampler agreement by @haic0 in #8851
  • Run Qwen3-TTS and Audio8 eager on XPU by @Joshna-Medisetty in #8853
  • [Model] Default MiniCPM-o duplex reference audio by @NickCao in #8023
  • [Bugfix] Fix int32→int16 wrap-around in TTS gradio demo ref-audio encoding by @yuxinyuan in #7901
  • [CI/Build] Expand MiniCPM-o 4.5 concurrency sweeps and enable duplex WER by @amy-why-3459 in #8720
  • [Doc] Clarify community PR triage limits and feedback by @hsliuustc0106 in #8904
  • [Model][Core][Frontend] Add opt-in native ASR input profile for JoyAI… by @ShuoleiWang in #8031
  • [Model] Reduce MOSS-TTS-Local startup pauses with progressive chunks and priority scheduling by @gcanlin in #8863
  • [CI/Build] Rebalance CUDA ready jobs and move slow cases to weekly by @yenuo26 in #8888
  • [CI/Build] Add CodeQL analysis in a single job by @hsliuustc0106 in #8673
  • Prefix-cache upstream lifecycle adapter by @kunkunblueberry in #7920
  • [Model] Add Fish Audio Drama 3 (fish_omni) TTS support by @linyueqian in #8900
  • [Doc] Make review requests concise and contributor-owned by @hsliuustc0106 in #8910
  • Feat/wan EG/EGD disagg by @yuanwu2017 in #6285
  • [Bugfix][Diffusion] Release queues when output streams close before iteration by @rahul-steiger-nv in #8513
  • [CI/Build] Run Omni-DuplexEval nightly through bench serve by @natureofnature in #8871
  • [Doc] Add concise review and issue lessons by @hsliuustc0106 in #8917
  • [Frontend] Accept image input on /v1/realtime?duplex=0 by @NickCao in #8896
  • [Model] Add JoyAI unified duplex text/video sessions by @natureofnature in #8823
  • [Doc] Connect contributor precheck to existing design contracts by @hsliuustc0106 in #8918
  • [Bugfix] MiniMax H3: cap num_frames on aligned 17n+5 grid for max duration by @iboiko-habana in #8696
  • [Bugfix][Hardware][Intel] LingBot-Video: drive autocast from the tensor device by @Joshna-Medisetty in #8651
  • [perf][VoxCPM2]: enable batched FSQ fusion and prefill tail by default by @Lingwei1943 in #8311
  • [Hardware][Ascend] Cache codec RoPE cos/sin tables across all transformer layers by @jingchengtian in #7967
  • [Hardware][Ascend] Optimize MOSS-Audio-Tokenizer codec decode with mask sharing and addcmul fusion by @jingchengtian in #8002
  • [Kernel][Model] Optimize Qwen-Image-2.1 Turbo BF16 inference on B300 by @david6666666 in #8739
  • [Misc] Label diffusion runner peak memory log in GiB by @luca-888 in #8865
  • [Perf][Drama 3] Optimization of Drama3 performance by @Sy0307 in #8933
  • [Bugfix] Drama 3: one-frame requests no longer hang in the codec handoff by @linyueqian in #8938
  • [Bugfix][Hardware][Intel] Covo: keep token2wav attention off CUDA-only APIs by @Joshna-Medisetty in #8656
  • [XPU][GR00T] Select the pipeline device from the current platform by @Joshna-Medisetty in #8653
  • [CI/Build][ROCm] Restore the BF16 AITER module in READY consumers by @haic0 in #8939
  • [CI/Build][ROCm] Mark reliability fault tests for AMD GPU by @haic0 in #8944
  • [Misc] Remove Pydantic v1 field-set fallback by @NickCao in #8548
  • [Doc] Close the CI failure feedback and repair evidence loop by @hsliuustc0106 in #8969
  • [Core] Add AR and diffusion backend config propagation by @shunwendongan in #8092
  • [CI/Build][ROCm] Add the AMD weekly reliability suite by @haic0 in #8945
  • [Bugfix] Preserve MiniCPM-o 4.5 streaming condition sequence in Talker output by @yezhi0312 in #8970
  • [Bugfix][Core] Schedule async chunks atomically by @dongteng in #7438
  • [Hardware][Ascend] Enable LingBot-World realtime benchmark on 4x Ascend 910B1 by @Dong1017 in #8112
  • [Diffusion][MAGI-2] Fuse multi-head MoE route construction by @IDEA-V in #7175
  • [Perf][Qwen-Image-2.1] Drop dead VAE feature-cache clones for single-frame images by @MinhaoLi0318 in #8680
  • [XPU] update the way integrate xpu mxfp8/mxfp4 by direct invoking vllm mxfp4/mxfp8 kernel by @xuechendi in #7173
  • [Diffusion][CI] diffusion ci skill && qwen_image21 acc ci by @Bounty-hunter in #8726
  • [Bugfix] Reserve talker MTP and auxiliary CUDA graph memory when sizing Omni KV caches by @MrlixiangWE in #8854
  • [Model][Qwen3-Omni] Serve duplex sessions on Model Runner V2 by @amy-why-3459 in #8974
  • [Misc] Standardize Omni accuracy result files for the accuracy dashboard by @yenuo26 in #8924
  • [Core] Add playback backpressure for diffusion streams by @wtz2333 in #8721
  • [Model] Add eager offline VibeVoice-1.5B support by @YouHengfei in #8909
  • [Core] Add VoxCPM2 MRV2 support with mixed CUDA graphs and incremental VAE decoding by @sphinxkkkbc in #8743
  • [Bugfix] Load the speech usage tokenizer once and honor trust_remote_code by @twu3202 in #8413
  • [CI] Add nightly performance test for Qwen-Image-2.1 by @wangqiankun13 in #8923
  • [Bugfix][Frontend] Share the runtime voice registry across API processes by @Sy0307 in #8424
  • [BugFix][HunyuanImage3] Fix pipeline metadata by @NickCao in #8432
  • [Bugfix] Preserve typed engine configs during legacy stage projection by @Liuchenbing-2026 in #8976
  • [CI/Build] Cancel superseded PR workflows and schedule CodeQL to reduce workflow queue time by @yenuo26 in #8922
  • [Benchmark] [TTS] Report per-concurrency first-audio latency in the TTS benchmark by @VLa1111 in #6577
  • [Core][TTS] Add per-segment rho instrumentation to the Qwen3-TTS ramp path (#6496) by @CAICAIIs in #7201
  • [Frontend] Add M1 streaming text commitment for Qwen3-TTS by @liuyao0322 in #6515
  • [Frontend / Core] Support Running Frontend Only & Validate Stage IDs by @alex-jw-brooks in #8626
  • [Feature] Add server VAD support to turn-based /v1/realtime by @NickCao in #8600
  • [Bugfix][ROCm] Skip MAGI-2 fused routing tie tests off NVIDIA CUDA by @haic0 in #8996
  • [CI/Build][ROCm] Add MiniMax-H3 MI300 nightly smoke by @haic0 in #8942
  • [Bugfix][Ascend][Perf] MiniCPM-o 4.5 Talker multi-frame decode and NPU pipeline optimizations by @y-null in #7929
  • [Bugfix] Correct Cosmos3 transfer control guidance scaling by @rahul-steiger-nv in #8927
  • [Kernel] Remove fa3-fwd dependency by @dougbtv in #7735
  • [Misc] Share offline profiler configuration parsing by @lishunyang12 in #7022
  • [CI/Build][ROCm] Kill the Qwen thinker stage before the fault probe by @haic0 in #8995
  • [new model] Added LiDAR VAE by @MaciejBalaNV in #8556
  • [Bugfix] Stop UniProc diffusion worker overwriting the API-server process title by @Sworol in #8953
  • [Bugfix][Ascend NPU][Diffusion] Fall back for CPU tensors in NPU dispatch by @QwertyJack in #6792
  • [Model] Speed up Qwen3-TTS high-concurrency serving on CUDA MRv2 by @Sy0307 in #8674
  • [Core] Add LLM-stage queue/prefill/decode split to StageRequestStats by @MinhaoLi0318 in #8575
  • [Bugfix][Metrics] Count VAE decode time for prefixed and latent VAE targets by @MinhaoLi0318 in #8804
  • [Model] Add JoyAI speech input to unified duplex sessions by @natureofnature in #8931
  • [Core] Guard online quantization factory behavior with CPU regression tests by @tzhouam in #8315
  • [Model] Optimize MOSS Local two-stage kernels and host outputs by @gcanlin in #8989
  • [Bugfix] Shield video stream cleanup from ASGI cancellation by @amy-why-3459 in #9001
  • [Frontend][Benchmark] Support Qwen3-Omni duplex dataset benchmarks by @psv666 in #8613
  • [Model] Replace MOSS Local Inductor compilation with explicit fused kernels by @gcanlin in #9016
  • [Model] Pack MOSS Local codec chunks in the existing Stage1 engine by @gcanlin in #8990
  • [Bugfix] Fix MiniCPM duplex response-required CI test by @natureofnature in #9019
  • [CI] Add shared AsyncOmni pytest fixtures with leftover-worker cleanup by @armaanamatya in #8026
  • [CI/Build][ROCm] Make weekly OOM injection ready on HIP by @haic0 in #8994
  • [Bugfix][ROCm] Omit CUDA-only Triton launch options on HIP by @haic0 in #9031
  • [CI/Build][ROCm] Add HunyuanVideo-1.5 MI300 nightly smoke by @haic0 in #9032
  • [CI/Build][ROCm] Add Qwen-Image MI300 nightly smoke by @haic0 in #8948
  • [CI/Build][ROCm] Add Stable Audio CPU-offload MI300 nightly by @haic0 in #8999
  • [CI/Build][ROCm] Add CosyVoice3 offline zero-shot to MI300 nightly by @haic0 in #9034
  • [Core][Model] Add Chunk/Noisy KV path for CausVid Wan by @ShengDev in #8282
  • [Perf] MAGI-2: pin the attention head layout in the output projection by @yeahdongcn in #8627
  • [Core] Introduce a generic cross-attention abstraction with LingBot integration by @tsinghua-code in #8859
  • [Perf][Qwen-Image-2.1] Reuse repeated conditioning and shared modulation by @amy-why-3459 in #8729
  • [Core][Duplex] Add session-aware replica placement and multi-frontend full-duplex serving by @QianCyrus in #8913
  • [CI/Build][ROCm] Add Qwen2.5-Omni documentation examples to MI300 nightly by @haic0 in #9000
  • [Perf][MiniCPM-o] Fuse the NPU CFM DiT body by @amy-why-3459 in #8908
  • [Feature] Add Text-to-audio one-stage pipline for LTX 2.5 by @nagisa-kunhah in #6489
  • [Perf][PersonaPlex] Batched execution, CUDA graphs, and memory optimization (Stage 0, Depformer, Stage 1) by @BeatSeat in #8441
  • [perf][sched] O(N) chunk queue partition: remove O(N²) queue.remove-in-loop by @Asthenia0412 in #9025
  • [Hardware][Ascend][Perf] Run the CAM++ speaker embedding on the NPU instead of CPU onnxruntime by @y-null in #9026
  • [CI/Build][ROCm] Deduplicate combined AMD test suites by @andyluo7 in #8417
  • [Core][Duplex] Shared tool-call flow for half-duplex and full-duplex sessions by @NumberWan in #8493
  • [Bugfix] Fix Qwen3-Omni fastsafetensors load OOM by @takeshi-yoshimura in #6412
  • [Test] Tighten reliability fault assertions and skip known API-exit cases by @yenuo26 in #9005
  • [Bugfix][Diffusion] Release async outputs abandoned by consumer streams by @rahul-steiger-nv in #6580
  • [ComfyUI][UX] Automatically extract model name from vllm-omni server url by @Isotr0py in #8773
  • [RL] Add Weight Transfer Support for RL Training by @Bounty-hunter in #7686
  • [Kernel] Add CUDA FA3 FP8 diffusion attention by @zwhzzz0821 in #8965
  • [Model] Avoid redundant SenseNova-U1 denoising synchronizations by @LinzeShi in #8254
  • [bugfix] Cosmos3 cleanup for preparation of new models by @MaciejBalaNV in #8898
  • [Core] Report CUDA SDPA execution paths and support inference fullgraph by @Levius-Fubuki in #7895
  • [Bugfix][Diffusion] Keep TeaCache CFG branches separate in the shared CFG helper by @fusheng-ji in #8475
  • [Frontend] Add YuE2 music generation and cover workflows to ComfyUI by @FayeSpica in #8881
  • [Bugfix] Enforce stage_init_timeout on stage readiness and stop launching after shutdown by @kuatovakamila in #8606
  • [Core] Add duplex tool result timeout and cancellation recovery by @NolenLiang in #8758
  • [Bugfix] Drama 3: never sample semantic code 0 as the main token by @linyueqian in #9044
  • [CI/Build] Route CPU and device tests to matching hardware lanes by @andyluo7 in #8381
  • [Bugfix][Diffusion] Fix inline CuMem shutdown and FA3 FP8 CPU numerics by @haic0 in #9063
  • [CI/Build][ROCm] Stabilize Fish-Omni BF16 top-k distribution test by @andyluo7 in #9064
  • [Perf] MAGI-2: bit-exact MoE route build, token-major routes and separate shared-expert activation by @yeahdongcn in #8592
  • [Core] Add paced interaction timing for diffusion streams by @wtz2333 in #8952
  • [Hardware][Ascend] Add opt-in LingBot SP8 output paths by @tzhouam in #8610
  • [Model] TaoMate-H3 realtime streaming on AR-Diffusion (USP2/USP4) by @tzhouam in #8268
  • [Core] Add Qwen3-Omni duplex history calibration by @psv666 in #8712
  • [Test] add stability test case (GPU&NPU) for High-priority model by @wangwei1254 in #8975
  • [Feature][Performance]: Enable online FP8 quantization for MammothModa2 DiT by @xRay2016 in #7221
  • [Model] Remove Pi0.5, HiDream-I1, and LTX-2-19b distilled by @yenuo26 in #9065
  • [Model] Add MOSS-Image text-to-image with SLG by @gcanlin in #8926
  • [Bugfix] Calibrate Qwen3-TTS PCM speech HNR floor for stochastic sampling by @kunkunblueberry in #9029
  • diffusion moe lora bridge by @BLANKETusers in #8326
  • [Core] Align vLLM-Omni with vLLM v0.32.0 by @tzhouam in #9066
  • [CI/Build] Run merge, nightly, and weekly CI on release/vX.Y.Z branches by @yenuo26 in #8985
  • [Diffusion][CI] Add performance test skill for diffusion model by @wangqiankun13 in #9022
  • [CI] Drama 3: lower the PCM HNR floor for the streaming voice-clone test by @linyueqian in #9083
  • ci: validate hardware helper contracts before test collection by @andyluo7 in #8380
  • [Bugfix] Explain uncalibrated MingZImage TeaCache by @cheater6666 in #8521
  • [Core] Add Smart Turn semantic VAD to duplex sessions (RFC #7478) by @chickeyton in #8895
  • [Bugfix][Diffusion] Pass the resolved FA version into dense varlen attention by @ShengDev in #9100
  • [BugFix] Add missing stage_id to MooncakeTransferEngineConnector by @NickCao in #4270

New Contributors

  • @vivivi-111 made their first contribution in #8478
  • @johnnynunez made their first contribution in #8461
  • @he-yufeng made their first contribution in #8501
  • @fusheng-ji made their first contribution in #8474
  • @haic0 made their first contribution in #8527
  • @osipovmekete made their first contribution in #8537
  • @avicii-forever made their first contribution in #7947
  • @fusinjay made their first contribution in #7733
  • @haochengxi made their first contribution in #8439
  • @Liuchenbing-2026 made their first contribution in #8589
  • @trueoneplusone made their first contribution in #7767
  • @VLa1111 made their first contribution in #7774
  • @kuatovakamila made their first contribution in #8408
  • @changwangss made their first contribution in #7721
  • @MinhaoLi0318 made their first contribution in #8198
  • @Laceprndpm made their first contribution in #8719
  • @AlessioNetti made their first contribution in #8554
  • @LeslieWylie made their first contribution in #7599
  • @shykoe made their first contribution in #8460
  • @wangzhao-11a made their first contribution in #8770
  • @lazariv made their first contribution in #8839
  • @williamLyh made their first contribution in #8638
  • @lrq619 made their first contribution in #8822
  • @zhongc1211 made their first contribution in #8713
  • @Thinkash made their first contribution in #8870
  • @iboiko-habana made their first contribution in #8696
  • @Lingwei1943 made their first contribution in #8311
  • @luca-888 made their first contribution in #8865
  • @shunwendongan made their first contribution in #8092
  • @yezhi0312 made their first contribution in #8970
  • @dongteng made their first contribution in #7438
  • @IDEA-V made their first contribution in #7175
  • @YouHengfei made their first contribution in #8909
  • @wangqiankun13 made their first contribution in #8923
  • @QwertyJack made their first contribution in #6792
  • @ShengDev made their first contribution in #8282
  • @takeshi-yoshimura made their first contribution in #6412
  • @wangwei1254 made their first contribution in #8975
  • @cheater6666 made their first contribution in #8521

Full Changelog: v0.31.0rc1...v0.32.0rc1

Don't miss a new vllm-omni release

NewReleases is sending notifications on new releases.