fix(vllm): pass response_format through omni video EngineInputs
Overview:
Preserve response_format=b64_json on vLLM-Omni video generation (T2V and I2V) so the formatter returns inline base64 instead of a pod-local file:// URL.
This is part A of https://github.com/ai-dynamo/dynamo/issues/14667 only. The independent FFmpeg color-corruption issue (part B) is out of scope.
Upstream PR could not be opened (403). Open against ai-dynamo/dynamo from:
Details:
_engine_inputs_from_video() constructed EngineInputs without response_format=req.response_format. The output formatter then defaulted to url, so an explicit b64_json request completed with only a worker-local file URL.
Sibling builders were checked for the same omission (#14668 shared root cause):
- Image (
_engine_inputs_from_image): already forwardsreq.response_format. - Audio (
AudioGenerationHandler.build_engine_inputs): already mapsdata_sourcetoEngineInputs.response_format(OpenAI audio usesresponse_formatfor the codec). - I2V: shares
_engine_inputs_from_video, so the one-line assignment covers it.
A unit test now asserts T2V and I2V forward b64_json/url, plus an image regression check.
Where should the reviewer start?
components/src/dynamo/vllm/omni/omni_handler.py(_engine_inputs_from_video)components/src/dynamo/vllm/tests/omni/test_omni_handler.py(test_video_and_i2v_forward_response_format)
Related Issues
🔗 This PR is linked to an issue:
- Closes #14667
Summary
Video omni EngineInputs now carry req.response_format, matching the image path, so b64_json is not dropped.
Validation
- Sibling builders inspected: image and audio already forward delivery format; I2V uses the patched video builder.
- Added unit tests in
test_omni_handler.pyfor image, T2V, and I2Vresponse_formatforwarding. - Source-level check: both image and video
EngineInputsconstructors passresponse_format=req.response_format. - Full
vllm-omniunit suite is intended to run in CI (pytestmarkers:unit,vllm,gpu_0,multimodal,pre_merge). This cloud-agent environment does not havevllm-omniinstalled.


Summary by cubic
Fixes vLLM-Omni video generation (T2V and I2V) so response_format=b64_json returns inline base64 instead of a pod-local file URL. _engine_inputs_from_video now forwards req.response_format to EngineInputs, matching the image and audio builders. Adds unit tests verifying b64_json and url forwarding for T2V and I2V. Closes #14667.