Skip to content

Conversation

@ywang96
Copy link
Member

@ywang96 ywang96 commented Oct 3, 2025

Purpose

Fix regression from #25631

FIXES #26190

Test Plan

Test Result


Essential Elements of an Effective PR Description Checklist
  • The purpose of the PR, such as "Fix some issue (link existing issues this PR will resolve)".
  • The test plan, such as providing test command.
  • The test results, such as pasting the results comparison before and after, or e2e results
  • (Optional) The necessary documentation update, such as updating supported_models.md and examples for a new model.
  • (Optional) Release notes update. If your change is user facing, please update the release notes draft in the Google Doc.

Signed-off-by: Roger Wang <[email protected]>
Signed-off-by: Roger Wang <[email protected]>
@ywang96 ywang96 requested a review from sighingnow as a code owner October 3, 2025 21:15
@mergify mergify bot added the qwen Related to Qwen models label Oct 3, 2025
Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request fixes a regression in dummy data generation for Qwen3-VL models with overrides. The changes correctly apply video overrides for number of frames, width, and height. My review focuses on improving code maintainability by addressing code duplication and an unused parameter. I've suggested refactoring the override logic to be more centralized and adding clarification for an unused parameter to prevent future confusion.

Signed-off-by: Roger Wang <[email protected]>
Copy link
Contributor

@wwl2755 wwl2755 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! nit: How about changing to make them in a consistent format like in

def _get_dummy_videos(
self,
*,
width: int,
height: int,
num_frames: int,
num_videos: int,
overrides: Optional[VideoDummyOptions] = None,
) -> list[VideoItem]:
if overrides:
if overrides.num_frames:
if overrides.num_frames > num_frames:
logger.warning(
"video.num_frames override (%d) exceeds model's "
"maximum number of frames (%d), will be ignored",
overrides.num_frames, num_frames)
num_frames = min(num_frames, overrides.num_frames)
if overrides.width:
if overrides.width > width:
logger.warning(
"video.width override (%d) exceeds model's "
"maximum width (%d), will be ignored", overrides.width,
width)
width = min(width, overrides.width)
if overrides.height:
if overrides.height > height:
logger.warning(
"video.height override (%d) exceeds model's "
"maximum height (%d), will be ignored",
overrides.height, height)
height = min(height, override.height)

@ywang96
Copy link
Member Author

ywang96 commented Oct 3, 2025

LGTM! nit: How about changing to make them in a consistent format like in

def _get_dummy_videos(
self,
*,
width: int,
height: int,
num_frames: int,
num_videos: int,
overrides: Optional[VideoDummyOptions] = None,
) -> list[VideoItem]:
if overrides:
if overrides.num_frames:
if overrides.num_frames > num_frames:
logger.warning(
"video.num_frames override (%d) exceeds model's "
"maximum number of frames (%d), will be ignored",
overrides.num_frames, num_frames)
num_frames = min(num_frames, overrides.num_frames)
if overrides.width:
if overrides.width > width:
logger.warning(
"video.width override (%d) exceeds model's "
"maximum width (%d), will be ignored", overrides.width,
width)
width = min(width, overrides.width)
if overrides.height:
if overrides.height > height:
logger.warning(
"video.height override (%d) exceeds model's "
"maximum height (%d), will be ignored",
overrides.height, height)
height = min(height, override.height)

This is unfortunately not doable for this model. For other models, typically max frames & height & size are constant, but for Qwen3-VL, max height & width needs to depend on how many frames there are, which is why this particular check needs to happen inside get_dummy_data instead of _get_dummy_video.

@wwl2755
Copy link
Contributor

wwl2755 commented Oct 3, 2025

This is unfortunately not doable for this model. For other models, typically max frames & height & size are constant, but for Qwen3-VL, max height & width needs to depend on how many frames there are, which is why this particular check needs to happen inside get_dummy_data instead of _get_dummy_video.

Make sense. Thanks for the explaination!

@ywang96 ywang96 added the ready ONLY add when PR is ready to merge/full CI is needed label Oct 3, 2025
@ywang96 ywang96 enabled auto-merge (squash) October 3, 2025 21:52
Copy link
Member

@mgoin mgoin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, just a typing nit

@ywang96 ywang96 merged commit 67bc0c0 into vllm-project:main Oct 4, 2025
53 checks passed
tomeras91 pushed a commit to tomeras91/vllm that referenced this pull request Oct 6, 2025
karan pushed a commit to karan/vllm that referenced this pull request Oct 6, 2025
southfreebird pushed a commit to southfreebird/vllm that referenced this pull request Oct 7, 2025
xuebwang-amd pushed a commit to xuebwang-amd/vllm that referenced this pull request Oct 10, 2025
lywa1998 pushed a commit to lywa1998/vllm that referenced this pull request Oct 20, 2025
alhridoy pushed a commit to alhridoy/vllm that referenced this pull request Oct 24, 2025
xuebwang-amd pushed a commit to xuebwang-amd/vllm that referenced this pull request Oct 24, 2025
rtourgeman pushed a commit to rtourgeman/vllm that referenced this pull request Nov 10, 2025
devpatelio pushed a commit to SumanthRH/vllm that referenced this pull request Nov 29, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

qwen Related to Qwen models ready ONLY add when PR is ready to merge/full CI is needed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: Qwen3-VL Launch failed due to incompatible API in get_dummy_input

3 participants