From e840a24c4df9f57fbeeb6a73d7c6b895f0e23d1a Mon Sep 17 00:00:00 2001 From: Alex Brooks Date: Tue, 2 Jun 2026 20:07:58 +0000 Subject: [PATCH 1/6] disable lance changes (passing bagel tests) Signed-off-by: Alex Brooks --- .../test_bagel_mooncake_connector.py | 2 +- .../test_bagel_shared_memory_connector.py | 33 +------------------ .../models/bagel/bagel_transformer.py | 12 ++++--- .../diffusion/models/bagel/pipeline_bagel.py | 3 +- 4 files changed, 11 insertions(+), 39 deletions(-) diff --git a/tests/distributed/omni_connectors/test_bagel_mooncake_connector.py b/tests/distributed/omni_connectors/test_bagel_mooncake_connector.py index fe705734b7a..2ef4ebe225e 100644 --- a/tests/distributed/omni_connectors/test_bagel_mooncake_connector.py +++ b/tests/distributed/omni_connectors/test_bagel_mooncake_connector.py @@ -33,7 +33,7 @@ # Reference pixel data extracted from the known-good output image # Each entry contains (x, y) position and expected (R, G, B) values # "Generated with seed=52, num_inference_steps=15, -# prompt='A futuristic city skyline at twilight, cyberpunk style'" +# prompt='A cute cat'" REFERENCE_PIXELS = [ {"position": (100, 100), "rgb": (115, 113, 94)}, {"position": (400, 50), "rgb": (159, 160, 144)}, diff --git a/tests/distributed/omni_connectors/test_bagel_shared_memory_connector.py b/tests/distributed/omni_connectors/test_bagel_shared_memory_connector.py index 3906611b16c..1fbe94bcc95 100644 --- a/tests/distributed/omni_connectors/test_bagel_shared_memory_connector.py +++ b/tests/distributed/omni_connectors/test_bagel_shared_memory_connector.py @@ -24,7 +24,6 @@ from tests.helpers.runtime import OmniRunner from tests.helpers.stage_config import get_deploy_config_path, modify_stage_config from vllm_omni.entrypoints.omni import Omni -from vllm_omni.platforms import current_omni_platform pytestmark = [pytest.mark.usefixtures("clean_gpu_memory_between_tests")] @@ -47,23 +46,9 @@ {"position": (256, 256), "rgb": (181, 201, 221)}, ] -if current_omni_platform.is_rocm(): - REFERENCE_PIXELS = [ - {"position": (100, 100), "rgb": (156, 172, 217)}, - {"position": (400, 50), "rgb": (105, 144, 217)}, - {"position": (700, 100), "rgb": (118, 159, 232)}, - {"position": (150, 400), "rgb": (180, 22, 52)}, - {"position": (512, 336), "rgb": (221, 211, 194)}, - {"position": (700, 400), "rgb": (192, 10, 46)}, - {"position": (100, 600), "rgb": (102, 12, 22)}, - {"position": (400, 600), "rgb": (161, 28, 47)}, - {"position": (700, 600), "rgb": (100, 87, 94)}, - {"position": (256, 256), "rgb": (181, 201, 221)}, - ] - # text2img reference pixels (aligned with offline `bagel/end2end.py` text2img, 15 steps) # "Generated with seed=52, num_inference_steps=15, -# prompt='A futuristic city skyline at twilight, cyberpunk style'" +# prompt='A cute cat'" TEXT2IMG_REFERENCE_PIXELS = [ {"position": (100, 100), "rgb": (115, 113, 94)}, {"position": (400, 50), "rgb": (159, 160, 144)}, @@ -77,20 +62,6 @@ {"position": (256, 256), "rgb": (167, 156, 150)}, ] -if current_omni_platform.is_rocm(): - TEXT2IMG_REFERENCE_PIXELS = [ - {"position": (100, 100), "rgb": (115, 113, 94)}, - {"position": (400, 50), "rgb": (159, 160, 144)}, - {"position": (700, 100), "rgb": (164, 151, 123)}, - {"position": (150, 400), "rgb": (120, 121, 107)}, - {"position": (512, 512), "rgb": (165, 133, 127)}, - {"position": (700, 400), "rgb": (217, 130, 66)}, - {"position": (100, 700), "rgb": (191, 168, 152)}, - {"position": (400, 700), "rgb": (130, 96, 77)}, - {"position": (700, 700), "rgb": (247, 203, 140)}, - {"position": (256, 256), "rgb": (167, 156, 150)}, - ] - PIXEL_TOLERANCE = 10 TEXT2IMG_PIXEL_TOLERANCE = 5 @@ -258,7 +229,6 @@ def _resolve_deploy_config(config_path: str, run_level: str) -> str: @pytest.mark.core_model @pytest.mark.advanced_model @pytest.mark.diffusion -@pytest.mark.skip(reason="Skip failed CI issue 3977: https://github.com/vllm-project/vllm-omni/issues/3977") @hardware_test(res={"cuda": "H100", "rocm": "MI325"}) def test_bagel_img2img_shared_memory_connector(run_level): """Test Bagel img2img with shared memory connector.""" @@ -276,7 +246,6 @@ def test_bagel_img2img_shared_memory_connector(run_level): @pytest.mark.core_model @pytest.mark.advanced_model @pytest.mark.diffusion -@pytest.mark.skip(reason="Skip failed CI issue 3977: https://github.com/vllm-project/vllm-omni/issues/3977") @hardware_test(res={"cuda": "H100", "rocm": "MI325"}) def test_bagel_text2img_shared_memory_connector(run_level): """Test Bagel text2img with shared memory connector.""" diff --git a/vllm_omni/diffusion/models/bagel/bagel_transformer.py b/vllm_omni/diffusion/models/bagel/bagel_transformer.py index 4039e06ac1e..a5ecc1f6873 100644 --- a/vllm_omni/diffusion/models/bagel/bagel_transformer.py +++ b/vllm_omni/diffusion/models/bagel/bagel_transformer.py @@ -1693,11 +1693,13 @@ def generate_image( frame_condition_token_indexes = frame_condition_token_indexes.to(x_t.device).long() pinned_x_t = x_t[frame_condition_token_indexes].clone() - # Use num_timesteps + 1 sample points so we get `num_timesteps` denoise - # steps after dropping the terminal t=0 (which has no dt). Upstream - # Lance / BAGEL both use this convention; without the +1 we silently - # run one fewer denoise iteration than the user asked for. - timesteps = torch.linspace(1, 0, num_timesteps + 1, device=x_t.device) + # TODO: Re-enable with new reference pixels in Bagel tests + # # Use num_timesteps + 1 sample points so we get `num_timesteps` denoise + # # steps after dropping the terminal t=0 (which has no dt). Upstream + # # Lance / BAGEL both use this convention; without the +1 we silently + # # run one fewer denoise iteration than the user asked for. + # timesteps = torch.linspace(1, 0, num_timesteps + 1, device=x_t.device) + timesteps = torch.linspace(1, 0, num_timesteps, device=x_t.device) timesteps = timestep_shift * timesteps / (1 + (timestep_shift - 1) * timesteps) dts = timesteps[:-1] - timesteps[1:] timesteps = timesteps[:-1] diff --git a/vllm_omni/diffusion/models/bagel/pipeline_bagel.py b/vllm_omni/diffusion/models/bagel/pipeline_bagel.py index 26451615ebf..d1ef4c0eedb 100644 --- a/vllm_omni/diffusion/models/bagel/pipeline_bagel.py +++ b/vllm_omni/diffusion/models/bagel/pipeline_bagel.py @@ -777,7 +777,8 @@ def vae_transforms(img): if torch.is_tensor(v): generation_input[k] = v.to(self.device) - self._regen_init_noise_on_device(generation_input, req.sampling_params.seed) + # TODO: Re-enable with new reference pixels in Bagel tests + # self._regen_init_noise_on_device(generation_input, req.sampling_params.seed) # text cfg generation_input_cfg_text = self.bagel.prepare_vae_latent_cfg( From 0c43b716e6834623ec4ecd2ed83d3165b2545e1c Mon Sep 17 00:00:00 2001 From: Alex Brooks Date: Tue, 2 Jun 2026 20:25:27 +0000 Subject: [PATCH 2/6] update ref pixels, bring lance changes back Signed-off-by: Alex Brooks --- .../test_bagel_mooncake_connector.py | 20 +++++----- .../test_bagel_shared_memory_connector.py | 38 +++++++++---------- .../models/bagel/bagel_transformer.py | 12 +++--- .../diffusion/models/bagel/pipeline_bagel.py | 3 +- 4 files changed, 35 insertions(+), 38 deletions(-) diff --git a/tests/distributed/omni_connectors/test_bagel_mooncake_connector.py b/tests/distributed/omni_connectors/test_bagel_mooncake_connector.py index 2ef4ebe225e..572d1ae1509 100644 --- a/tests/distributed/omni_connectors/test_bagel_mooncake_connector.py +++ b/tests/distributed/omni_connectors/test_bagel_mooncake_connector.py @@ -35,16 +35,16 @@ # "Generated with seed=52, num_inference_steps=15, # prompt='A cute cat'" REFERENCE_PIXELS = [ - {"position": (100, 100), "rgb": (115, 113, 94)}, - {"position": (400, 50), "rgb": (159, 160, 144)}, - {"position": (700, 100), "rgb": (164, 151, 123)}, - {"position": (150, 400), "rgb": (120, 121, 107)}, - {"position": (512, 512), "rgb": (165, 133, 127)}, - {"position": (700, 400), "rgb": (217, 130, 66)}, - {"position": (100, 700), "rgb": (191, 168, 152)}, - {"position": (400, 700), "rgb": (130, 96, 77)}, - {"position": (700, 700), "rgb": (247, 203, 140)}, - {"position": (256, 256), "rgb": (167, 156, 150)}, + {"position": (100, 100), "rgb": (64, 45, 35)}, + {"position": (400, 50), "rgb": (81, 58, 44)}, + {"position": (700, 100), "rgb": (106, 77, 50)}, + {"position": (150, 400), "rgb": (67, 47, 36)}, + {"position": (512, 512), "rgb": (165, 155, 140)}, + {"position": (700, 400), "rgb": (137, 101, 64)}, + {"position": (100, 700), "rgb": (51, 42, 37)}, + {"position": (400, 700), "rgb": (217, 214, 203)}, + {"position": (700, 700), "rgb": (91, 55, 28)}, + {"position": (256, 256), "rgb": (76, 53, 41)}, ] # Maximum allowed difference per color channel diff --git a/tests/distributed/omni_connectors/test_bagel_shared_memory_connector.py b/tests/distributed/omni_connectors/test_bagel_shared_memory_connector.py index 1fbe94bcc95..931bd8afea2 100644 --- a/tests/distributed/omni_connectors/test_bagel_shared_memory_connector.py +++ b/tests/distributed/omni_connectors/test_bagel_shared_memory_connector.py @@ -34,32 +34,32 @@ # prompt='Change the grass color to red', # input image: 2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg REFERENCE_PIXELS = [ - {"position": (100, 100), "rgb": (156, 172, 217)}, + {"position": (100, 100), "rgb": (155, 172, 216)}, {"position": (400, 50), "rgb": (105, 144, 217)}, - {"position": (700, 100), "rgb": (118, 159, 232)}, - {"position": (150, 400), "rgb": (180, 22, 52)}, - {"position": (512, 336), "rgb": (221, 211, 194)}, - {"position": (700, 400), "rgb": (192, 10, 46)}, - {"position": (100, 600), "rgb": (102, 12, 22)}, - {"position": (400, 600), "rgb": (161, 28, 47)}, - {"position": (700, 600), "rgb": (100, 87, 94)}, - {"position": (256, 256), "rgb": (181, 201, 221)}, + {"position": (700, 100), "rgb": (119, 160, 231)}, + {"position": (150, 400), "rgb": (181, 9, 53)}, + {"position": (512, 336), "rgb": (191, 190, 157)}, + {"position": (700, 400), "rgb": (190, 17, 50)}, + {"position": (100, 600), "rgb": (96, 0, 11)}, + {"position": (400, 600), "rgb": (144, 16, 39)}, + {"position": (700, 600), "rgb": (101, 86, 91)}, + {"position": (256, 256), "rgb": (181, 202, 221)}, ] # text2img reference pixels (aligned with offline `bagel/end2end.py` text2img, 15 steps) # "Generated with seed=52, num_inference_steps=15, # prompt='A cute cat'" TEXT2IMG_REFERENCE_PIXELS = [ - {"position": (100, 100), "rgb": (115, 113, 94)}, - {"position": (400, 50), "rgb": (159, 160, 144)}, - {"position": (700, 100), "rgb": (164, 151, 123)}, - {"position": (150, 400), "rgb": (120, 121, 107)}, - {"position": (512, 512), "rgb": (165, 133, 127)}, - {"position": (700, 400), "rgb": (217, 130, 66)}, - {"position": (100, 700), "rgb": (191, 168, 152)}, - {"position": (400, 700), "rgb": (130, 96, 77)}, - {"position": (700, 700), "rgb": (247, 203, 140)}, - {"position": (256, 256), "rgb": (167, 156, 150)}, + {"position": (100, 100), "rgb": (64, 45, 35)}, + {"position": (400, 50), "rgb": (81, 58, 44)}, + {"position": (700, 100), "rgb": (106, 77, 50)}, + {"position": (150, 400), "rgb": (67, 47, 36)}, + {"position": (512, 512), "rgb": (165, 155, 140)}, + {"position": (700, 400), "rgb": (137, 101, 64)}, + {"position": (100, 700), "rgb": (51, 42, 37)}, + {"position": (400, 700), "rgb": (217, 214, 203)}, + {"position": (700, 700), "rgb": (91, 55, 28)}, + {"position": (256, 256), "rgb": (76, 53, 41)}, ] PIXEL_TOLERANCE = 10 diff --git a/vllm_omni/diffusion/models/bagel/bagel_transformer.py b/vllm_omni/diffusion/models/bagel/bagel_transformer.py index a5ecc1f6873..4039e06ac1e 100644 --- a/vllm_omni/diffusion/models/bagel/bagel_transformer.py +++ b/vllm_omni/diffusion/models/bagel/bagel_transformer.py @@ -1693,13 +1693,11 @@ def generate_image( frame_condition_token_indexes = frame_condition_token_indexes.to(x_t.device).long() pinned_x_t = x_t[frame_condition_token_indexes].clone() - # TODO: Re-enable with new reference pixels in Bagel tests - # # Use num_timesteps + 1 sample points so we get `num_timesteps` denoise - # # steps after dropping the terminal t=0 (which has no dt). Upstream - # # Lance / BAGEL both use this convention; without the +1 we silently - # # run one fewer denoise iteration than the user asked for. - # timesteps = torch.linspace(1, 0, num_timesteps + 1, device=x_t.device) - timesteps = torch.linspace(1, 0, num_timesteps, device=x_t.device) + # Use num_timesteps + 1 sample points so we get `num_timesteps` denoise + # steps after dropping the terminal t=0 (which has no dt). Upstream + # Lance / BAGEL both use this convention; without the +1 we silently + # run one fewer denoise iteration than the user asked for. + timesteps = torch.linspace(1, 0, num_timesteps + 1, device=x_t.device) timesteps = timestep_shift * timesteps / (1 + (timestep_shift - 1) * timesteps) dts = timesteps[:-1] - timesteps[1:] timesteps = timesteps[:-1] diff --git a/vllm_omni/diffusion/models/bagel/pipeline_bagel.py b/vllm_omni/diffusion/models/bagel/pipeline_bagel.py index d1ef4c0eedb..26451615ebf 100644 --- a/vllm_omni/diffusion/models/bagel/pipeline_bagel.py +++ b/vllm_omni/diffusion/models/bagel/pipeline_bagel.py @@ -777,8 +777,7 @@ def vae_transforms(img): if torch.is_tensor(v): generation_input[k] = v.to(self.device) - # TODO: Re-enable with new reference pixels in Bagel tests - # self._regen_init_noise_on_device(generation_input, req.sampling_params.seed) + self._regen_init_noise_on_device(generation_input, req.sampling_params.seed) # text cfg generation_input_cfg_text = self.bagel.prepare_vae_latent_cfg( From 2d011b073adb12bd706d82b152696b57d9c50e90 Mon Sep 17 00:00:00 2001 From: Alex Brooks Date: Wed, 3 Jun 2026 20:28:55 +0000 Subject: [PATCH 3/6] cuda only for bagel tests Signed-off-by: Alex Brooks --- .../omni_connectors/test_bagel_mooncake_connector.py | 1 - .../omni_connectors/test_bagel_shared_memory_connector.py | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/tests/distributed/omni_connectors/test_bagel_mooncake_connector.py b/tests/distributed/omni_connectors/test_bagel_mooncake_connector.py index 572d1ae1509..9c8fee393ce 100644 --- a/tests/distributed/omni_connectors/test_bagel_mooncake_connector.py +++ b/tests/distributed/omni_connectors/test_bagel_mooncake_connector.py @@ -269,7 +269,6 @@ def _load_mooncake_config(host: str, rpc_port: int, http_port: int) -> str: @pytest.mark.core_model @pytest.mark.advanced_model @pytest.mark.diffusion -@pytest.mark.skip(reason="Skip failed CI issue 3977: https://github.com/vllm-project/vllm-omni/issues/3977") @hardware_test(res={"cuda": "H100"}, num_cards=1) def test_bagel_text2img_mooncake_connector(run_level): """Test Bagel text2img with Mooncake connector for inter-stage communication.""" diff --git a/tests/distributed/omni_connectors/test_bagel_shared_memory_connector.py b/tests/distributed/omni_connectors/test_bagel_shared_memory_connector.py index 931bd8afea2..f1854158e70 100644 --- a/tests/distributed/omni_connectors/test_bagel_shared_memory_connector.py +++ b/tests/distributed/omni_connectors/test_bagel_shared_memory_connector.py @@ -229,7 +229,7 @@ def _resolve_deploy_config(config_path: str, run_level: str) -> str: @pytest.mark.core_model @pytest.mark.advanced_model @pytest.mark.diffusion -@hardware_test(res={"cuda": "H100", "rocm": "MI325"}) +@hardware_test(res={"cuda": "H100"}) def test_bagel_img2img_shared_memory_connector(run_level): """Test Bagel img2img with shared memory connector.""" input_image = _load_input_image() @@ -246,7 +246,7 @@ def test_bagel_img2img_shared_memory_connector(run_level): @pytest.mark.core_model @pytest.mark.advanced_model @pytest.mark.diffusion -@hardware_test(res={"cuda": "H100", "rocm": "MI325"}) +@hardware_test(res={"cuda": "H100"}) def test_bagel_text2img_shared_memory_connector(run_level): """Test Bagel text2img with shared memory connector.""" config_path = _resolve_deploy_config(BAGEL_CI_DEPLOY, run_level) From f3f305882f87c1508d5e4416f012fd9a2169db6d Mon Sep 17 00:00:00 2001 From: Alex Brooks Date: Thu, 4 Jun 2026 05:23:09 +0000 Subject: [PATCH 4/6] re-enable back on mi325 Signed-off-by: Alex Brooks --- .../omni_connectors/test_bagel_shared_memory_connector.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/distributed/omni_connectors/test_bagel_shared_memory_connector.py b/tests/distributed/omni_connectors/test_bagel_shared_memory_connector.py index f1854158e70..931bd8afea2 100644 --- a/tests/distributed/omni_connectors/test_bagel_shared_memory_connector.py +++ b/tests/distributed/omni_connectors/test_bagel_shared_memory_connector.py @@ -229,7 +229,7 @@ def _resolve_deploy_config(config_path: str, run_level: str) -> str: @pytest.mark.core_model @pytest.mark.advanced_model @pytest.mark.diffusion -@hardware_test(res={"cuda": "H100"}) +@hardware_test(res={"cuda": "H100", "rocm": "MI325"}) def test_bagel_img2img_shared_memory_connector(run_level): """Test Bagel img2img with shared memory connector.""" input_image = _load_input_image() @@ -246,7 +246,7 @@ def test_bagel_img2img_shared_memory_connector(run_level): @pytest.mark.core_model @pytest.mark.advanced_model @pytest.mark.diffusion -@hardware_test(res={"cuda": "H100"}) +@hardware_test(res={"cuda": "H100", "rocm": "MI325"}) def test_bagel_text2img_shared_memory_connector(run_level): """Test Bagel text2img with shared memory connector.""" config_path = _resolve_deploy_config(BAGEL_CI_DEPLOY, run_level) From 5b3a9ead673beeeab21836b5fe16ccc1e96e8513 Mon Sep 17 00:00:00 2001 From: Alex Brooks Date: Thu, 4 Jun 2026 06:15:35 +0000 Subject: [PATCH 5/6] revert lance on device latent changes, use 14 steps for off by one fix Signed-off-by: Alex Brooks --- .../test_bagel_mooncake_connector.py | 22 +++++----- .../test_bagel_shared_memory_connector.py | 42 ++++++++++--------- .../diffusion/models/bagel/pipeline_bagel.py | 4 +- 3 files changed, 36 insertions(+), 32 deletions(-) diff --git a/tests/distributed/omni_connectors/test_bagel_mooncake_connector.py b/tests/distributed/omni_connectors/test_bagel_mooncake_connector.py index 9c8fee393ce..c804db2a9da 100644 --- a/tests/distributed/omni_connectors/test_bagel_mooncake_connector.py +++ b/tests/distributed/omni_connectors/test_bagel_mooncake_connector.py @@ -35,16 +35,16 @@ # "Generated with seed=52, num_inference_steps=15, # prompt='A cute cat'" REFERENCE_PIXELS = [ - {"position": (100, 100), "rgb": (64, 45, 35)}, - {"position": (400, 50), "rgb": (81, 58, 44)}, - {"position": (700, 100), "rgb": (106, 77, 50)}, - {"position": (150, 400), "rgb": (67, 47, 36)}, - {"position": (512, 512), "rgb": (165, 155, 140)}, - {"position": (700, 400), "rgb": (137, 101, 64)}, - {"position": (100, 700), "rgb": (51, 42, 37)}, - {"position": (400, 700), "rgb": (217, 214, 203)}, - {"position": (700, 700), "rgb": (91, 55, 28)}, - {"position": (256, 256), "rgb": (76, 53, 41)}, + {"position": (100, 100), "rgb": (115, 113, 94)}, + {"position": (400, 50), "rgb": (159, 160, 144)}, + {"position": (700, 100), "rgb": (164, 151, 123)}, + {"position": (150, 400), "rgb": (120, 121, 107)}, + {"position": (512, 512), "rgb": (165, 133, 127)}, + {"position": (700, 400), "rgb": (217, 130, 66)}, + {"position": (100, 700), "rgb": (191, 168, 152)}, + {"position": (400, 700), "rgb": (130, 96, 77)}, + {"position": (700, 700), "rgb": (247, 203, 140)}, + {"position": (256, 256), "rgb": (167, 156, 150)}, ] # Maximum allowed difference per color channel @@ -63,7 +63,7 @@ def _find_free_port() -> int: return port -def _configure_sampling_params(omni: Omni, num_inference_steps: int = 15) -> list: +def _configure_sampling_params(omni: Omni, num_inference_steps: int = 14) -> list: """Configure sampling parameters for Bagel text2img generation. Args: diff --git a/tests/distributed/omni_connectors/test_bagel_shared_memory_connector.py b/tests/distributed/omni_connectors/test_bagel_shared_memory_connector.py index 931bd8afea2..76500ad4350 100644 --- a/tests/distributed/omni_connectors/test_bagel_shared_memory_connector.py +++ b/tests/distributed/omni_connectors/test_bagel_shared_memory_connector.py @@ -34,34 +34,36 @@ # prompt='Change the grass color to red', # input image: 2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg REFERENCE_PIXELS = [ - {"position": (100, 100), "rgb": (155, 172, 216)}, + {"position": (100, 100), "rgb": (156, 172, 217)}, {"position": (400, 50), "rgb": (105, 144, 217)}, - {"position": (700, 100), "rgb": (119, 160, 231)}, - {"position": (150, 400), "rgb": (181, 9, 53)}, - {"position": (512, 336), "rgb": (191, 190, 157)}, - {"position": (700, 400), "rgb": (190, 17, 50)}, - {"position": (100, 600), "rgb": (96, 0, 11)}, - {"position": (400, 600), "rgb": (144, 16, 39)}, - {"position": (700, 600), "rgb": (101, 86, 91)}, - {"position": (256, 256), "rgb": (181, 202, 221)}, + {"position": (700, 100), "rgb": (118, 159, 232)}, + {"position": (150, 400), "rgb": (180, 22, 52)}, + {"position": (512, 336), "rgb": (221, 211, 194)}, + {"position": (700, 400), "rgb": (192, 10, 46)}, + {"position": (100, 600), "rgb": (102, 12, 22)}, + {"position": (400, 600), "rgb": (161, 28, 47)}, + {"position": (700, 600), "rgb": (100, 87, 94)}, + {"position": (256, 256), "rgb": (181, 201, 221)}, ] + # text2img reference pixels (aligned with offline `bagel/end2end.py` text2img, 15 steps) # "Generated with seed=52, num_inference_steps=15, # prompt='A cute cat'" TEXT2IMG_REFERENCE_PIXELS = [ - {"position": (100, 100), "rgb": (64, 45, 35)}, - {"position": (400, 50), "rgb": (81, 58, 44)}, - {"position": (700, 100), "rgb": (106, 77, 50)}, - {"position": (150, 400), "rgb": (67, 47, 36)}, - {"position": (512, 512), "rgb": (165, 155, 140)}, - {"position": (700, 400), "rgb": (137, 101, 64)}, - {"position": (100, 700), "rgb": (51, 42, 37)}, - {"position": (400, 700), "rgb": (217, 214, 203)}, - {"position": (700, 700), "rgb": (91, 55, 28)}, - {"position": (256, 256), "rgb": (76, 53, 41)}, + {"position": (100, 100), "rgb": (115, 113, 94)}, + {"position": (400, 50), "rgb": (159, 160, 144)}, + {"position": (700, 100), "rgb": (164, 151, 123)}, + {"position": (150, 400), "rgb": (120, 121, 107)}, + {"position": (512, 512), "rgb": (165, 133, 127)}, + {"position": (700, 400), "rgb": (217, 130, 66)}, + {"position": (100, 700), "rgb": (191, 168, 152)}, + {"position": (400, 700), "rgb": (130, 96, 77)}, + {"position": (700, 700), "rgb": (247, 203, 140)}, + {"position": (256, 256), "rgb": (167, 156, 150)}, ] + PIXEL_TOLERANCE = 10 TEXT2IMG_PIXEL_TOLERANCE = 5 @@ -86,7 +88,7 @@ def _find_free_port() -> int: return port -def _configure_sampling_params(omni: Omni, num_inference_steps: int = 15) -> list: +def _configure_sampling_params(omni: Omni, num_inference_steps: int = 14) -> list: """Configure sampling parameters for Bagel img2img generation. Args: diff --git a/vllm_omni/diffusion/models/bagel/pipeline_bagel.py b/vllm_omni/diffusion/models/bagel/pipeline_bagel.py index 26451615ebf..a0ebfaf450b 100644 --- a/vllm_omni/diffusion/models/bagel/pipeline_bagel.py +++ b/vllm_omni/diffusion/models/bagel/pipeline_bagel.py @@ -777,7 +777,9 @@ def vae_transforms(img): if torch.is_tensor(v): generation_input[k] = v.to(self.device) - self._regen_init_noise_on_device(generation_input, req.sampling_params.seed) + # NOTE: For now we disable device specific noise regeneration so that e2e tests can run + # on both CUDA and ROCm. Context: https://github.com/vllm-project/vllm-omni/pull/4081 + # self._regen_init_noise_on_device(generation_input, req.sampling_params.seed) # text cfg generation_input_cfg_text = self.bagel.prepare_vae_latent_cfg( From 8865f502e18f6197d6ccf246fd2fb0363e63a724 Mon Sep 17 00:00:00 2001 From: Alex Brooks Date: Thu, 4 Jun 2026 06:24:22 +0000 Subject: [PATCH 6/6] comment fix Signed-off-by: Alex Brooks --- .../omni_connectors/test_bagel_mooncake_connector.py | 2 +- .../omni_connectors/test_bagel_shared_memory_connector.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/distributed/omni_connectors/test_bagel_mooncake_connector.py b/tests/distributed/omni_connectors/test_bagel_mooncake_connector.py index c804db2a9da..106507114b1 100644 --- a/tests/distributed/omni_connectors/test_bagel_mooncake_connector.py +++ b/tests/distributed/omni_connectors/test_bagel_mooncake_connector.py @@ -32,7 +32,7 @@ # Reference pixel data extracted from the known-good output image # Each entry contains (x, y) position and expected (R, G, B) values -# "Generated with seed=52, num_inference_steps=15, +# "Generated with seed=52, num_inference_steps=14, # prompt='A cute cat'" REFERENCE_PIXELS = [ {"position": (100, 100), "rgb": (115, 113, 94)}, diff --git a/tests/distributed/omni_connectors/test_bagel_shared_memory_connector.py b/tests/distributed/omni_connectors/test_bagel_shared_memory_connector.py index 76500ad4350..eb5a79d6aff 100644 --- a/tests/distributed/omni_connectors/test_bagel_shared_memory_connector.py +++ b/tests/distributed/omni_connectors/test_bagel_shared_memory_connector.py @@ -30,7 +30,7 @@ BAGEL_CI_DEPLOY = get_deploy_config_path("ci/bagel.yaml") # Reference pixel data extracted from the known-good output image -# Generated with seed=52, num_inference_steps=15, +# Generated with seed=52, num_inference_steps=14, # prompt='Change the grass color to red', # input image: 2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg REFERENCE_PIXELS = [ @@ -48,7 +48,7 @@ # text2img reference pixels (aligned with offline `bagel/end2end.py` text2img, 15 steps) -# "Generated with seed=52, num_inference_steps=15, +# "Generated with seed=52, num_inference_steps=14, # prompt='A cute cat'" TEXT2IMG_REFERENCE_PIXELS = [ {"position": (100, 100), "rgb": (115, 113, 94)},