Skip to content

Commit 9473498

Browse files
committed
update tests
1 parent 714b8af commit 9473498

File tree

8 files changed

+32
-11
lines changed

8 files changed

+32
-11
lines changed

optimum/commands/export/openvino.py

+4
Original file line numberDiff line numberDiff line change
@@ -420,6 +420,10 @@ def run(self):
420420
from optimum.intel import OVFluxPipeline
421421

422422
model_cls = OVFluxPipeline
423+
elif class_name == "SanaPipeline":
424+
from optimum.intel import OVSanaPipeline
425+
426+
model_cls = OVSanaPipeline
423427
else:
424428
raise NotImplementedError(f"Quantization in hybrid mode isn't supported for class {class_name}.")
425429

optimum/exporters/openvino/convert.py

-2
Original file line numberDiff line numberDiff line change
@@ -1002,7 +1002,6 @@ def get_diffusion_models_for_export_ext(
10021002
sd3_pipes.append(StableDiffusion3InpaintPipeline)
10031003

10041004
is_sd3 = isinstance(pipeline, tuple(sd3_pipes))
1005-
logger.warn(f"IS SD3 {pipeline} {is_sd3}")
10061005
else:
10071006
is_sd3 = False
10081007

@@ -1137,7 +1136,6 @@ def get_sd3_models_for_export(pipeline, exporter, int_dtype, float_dtype):
11371136
task="semantic-segmentation",
11381137
model_type="sd3-transformer",
11391138
)
1140-
logger.warn(f"TRANSFORMER COFG {export_config_constructor}")
11411139
transformer_export_config = export_config_constructor(
11421140
pipeline.transformer.config, int_dtype=int_dtype, float_dtype=float_dtype
11431141
)

optimum/intel/openvino/modeling_diffusion.py

+9-3
Original file line numberDiff line numberDiff line change
@@ -836,17 +836,23 @@ def reshape(
836836

837837
if self.text_encoder is not None:
838838
self.text_encoder.model = self._reshape_text_encoder(
839-
self.text_encoder.model, batch_size, self.tokenizer.model_max_length
839+
self.text_encoder.model,
840+
batch_size,
841+
self.tokenizer.model_max_length if "Gemma" not in self.tokenizer.__class__.__name__ else -1,
840842
)
841843

842844
if self.text_encoder_2 is not None:
843845
self.text_encoder_2.model = self._reshape_text_encoder(
844-
self.text_encoder_2.model, batch_size, self.tokenizer_2.model_max_length
846+
self.text_encoder_2.model,
847+
batch_size,
848+
self.tokenizer_2.model_max_length if "Gemma" not in self.tokenizer.__class__.__name__ else -1,
845849
)
846850

847851
if self.text_encoder_3 is not None:
848852
self.text_encoder_3.model = self._reshape_text_encoder(
849-
self.text_encoder_3.model, batch_size, self.tokenizer_3.model_max_length
853+
self.text_encoder_3.model,
854+
batch_size,
855+
self.tokenizer_3.model_max_length if "Gemma" not in self.tokenizer.__class__.__name__ else -1,
850856
)
851857

852858
self.clear_requests()

optimum/intel/openvino/utils.py

+1
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@
125125
"stable-diffusion": "OVStableDiffusionPipeline",
126126
"stable-diffusion-xl": "OVStableDiffusionXLPipeline",
127127
"stable-diffusion-3": "OVStableDiffusion3Pipeline",
128+
"sana": "OVSanaPipeline",
128129
"flux": "OVFluxPipeline",
129130
"flux-fill": "OVFluxFillPipeline",
130131
"pix2struct": "OVModelForPix2Struct",

tests/openvino/test_diffusion.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ class OVPipelineForText2ImageTest(unittest.TestCase):
7878
NEGATIVE_PROMPT_SUPPORT_ARCHITECTURES = ["stable-diffusion", "stable-diffusion-xl", "latent-consistency"]
7979
if is_transformers_version(">=", "4.40.0"):
8080
SUPPORTED_ARCHITECTURES.extend(["stable-diffusion-3", "flux", "sana"])
81-
NEGATIVE_PROMPT_SUPPORT_ARCHITECTURES.extend(["stable-diffusion-3", "sana"])
81+
NEGATIVE_PROMPT_SUPPORT_ARCHITECTURES.append(["stable-diffusion-3"])
8282
CALLBACK_SUPPORT_ARCHITECTURES = ["stable-diffusion", "stable-diffusion-xl", "latent-consistency"]
8383

8484
OVMODEL_CLASS = OVPipelineForText2Image
@@ -215,6 +215,8 @@ def test_shape(self, model_arch: str):
215215

216216
height, width, batch_size = 128, 64, 1
217217
inputs = self.generate_inputs(height=height, width=width, batch_size=batch_size)
218+
if model_arch == "sana":
219+
inputs["use_resolution_binning"] = False
218220

219221
for output_type in ["pil", "np", "pt", "latent"]:
220222
inputs["output_type"] = output_type

tests/openvino/test_exporters_cli.py

+11-3
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
OVModelOpenCLIPForZeroShotImageClassification,
4545
OVModelOpenCLIPText,
4646
OVModelOpenCLIPVisual,
47+
OVSanaPipeline,
4748
OVSentenceTransformer,
4849
OVStableDiffusion3Pipeline,
4950
OVStableDiffusionPipeline,
@@ -107,6 +108,7 @@ class OVCLIExportTestCase(unittest.TestCase):
107108
"flux": 4 if is_tokenizers_version("<", "0.20") or is_openvino_version(">=", "2024.5") else 0,
108109
"flux-fill": 2 if is_tokenizers_version("<", "0.20") or is_openvino_version(">=", "2024.5") else 0,
109110
"llava": 2 if is_tokenizers_version("<", "0.20") or is_openvino_version(">=", "2024.5") else 0,
111+
"sana": 2 if is_tokenizers_version("<", "0.20.0") or is_openvino_version(">=", "2024.5") else 0,
110112
}
111113

112114
SUPPORTED_SD_HYBRID_ARCHITECTURES = [
@@ -118,7 +120,7 @@ class OVCLIExportTestCase(unittest.TestCase):
118120
if is_transformers_version(">=", "4.45"):
119121
SUPPORTED_SD_HYBRID_ARCHITECTURES.append(("stable-diffusion-3", 9, 65))
120122
SUPPORTED_SD_HYBRID_ARCHITECTURES.append(("flux", 7, 56))
121-
SUPPORTED_SD_HYBRID_ARCHITECTURES.append(("sana", 7, 56))
123+
SUPPORTED_SD_HYBRID_ARCHITECTURES.append(("sana", 19, 53))
122124

123125
SUPPORTED_QUANTIZATION_ARCHITECTURES = [
124126
(
@@ -348,9 +350,15 @@ def test_exporters_cli_int8(self, task: str, model_type: str):
348350
models = [model.encoder, model.decoder]
349351
if task.endswith("with-past"):
350352
models.append(model.decoder_with_past)
351-
elif model_type.startswith("stable-diffusion") or model_type.startswith("flux"):
353+
elif (
354+
model_type.startswith("stable-diffusion")
355+
or model_type.startswith("flux")
356+
or model_type.startswith("sana")
357+
):
352358
models = [model.unet or model.transformer, model.vae_encoder, model.vae_decoder]
353-
models.append(model.text_encoder if model_type == "stable-diffusion" else model.text_encoder_2)
359+
models.append(
360+
model.text_encoder if model_type in ["stable-diffusion", "sana"] else model.text_encoder_2
361+
)
354362
elif task.startswith("image-text-to-text"):
355363
models = [model.language_model, model.vision_embeddings]
356364
else:

tests/openvino/test_quantization.py

+2
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@
5959
OVStableDiffusionXLPipeline,
6060
OVStableDiffusion3Pipeline,
6161
OVQuantizer,
62+
OVSanaPipeline,
6263
OVTrainer,
6364
OVQuantizationConfig,
6465
OVWeightQuantizationConfig,
@@ -539,6 +540,7 @@ class OVWeightCompressionTest(unittest.TestCase):
539540
[
540541
(OVStableDiffusion3Pipeline, "stable-diffusion-3", 9, 65),
541542
(OVFluxPipeline, "flux", 7, 56),
543+
(OVSanaPipeline, "sana", 19, 53),
542544
]
543545
)
544546

tests/openvino/utils_tests.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@
168168
"open-clip-ov": "zofinka/tiny-open-clip-model",
169169
"st-bert": "sentence-transformers/all-MiniLM-L6-v2",
170170
"st-mpnet": "sentence-transformers/all-mpnet-base-v2",
171-
"sana": "/home/ea/work/my_optimum_intel/optimum-intel/tiny-random-sana",
171+
"sana": "katuni4ka/tiny-random-sana",
172172
}
173173

174174

@@ -201,7 +201,7 @@
201201
"minicpmv": (30, 26, 1, 6),
202202
"nanollava": (30, 15, 1),
203203
"qwen2_vl": (30, 1, 1, 10),
204-
"sana": (242, 34, 42, 64),
204+
"sana": (58, 28, 28, 18),
205205
}
206206

207207
TEST_IMAGE_URL = "http://images.cocodataset.org/val2017/000000039769.jpg"

0 commit comments

Comments
 (0)