Skip to content

Commit 6b98d62

Browse files
committed
update tests
1 parent 6f3deae commit 6b98d62

File tree

8 files changed

+32
-11
lines changed

8 files changed

+32
-11
lines changed

optimum/commands/export/openvino.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -416,6 +416,10 @@ def run(self):
416416
from optimum.intel import OVFluxPipeline
417417

418418
model_cls = OVFluxPipeline
419+
elif class_name == "SanaPipeline":
420+
from optimum.intel import OVSanaPipeline
421+
422+
model_cls = OVSanaPipeline
419423
else:
420424
raise NotImplementedError(f"Quantization in hybrid mode isn't supported for class {class_name}.")
421425

optimum/exporters/openvino/convert.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1047,7 +1047,6 @@ def get_diffusion_models_for_export_ext(
10471047
sd3_pipes.append(StableDiffusion3InpaintPipeline)
10481048

10491049
is_sd3 = isinstance(pipeline, tuple(sd3_pipes))
1050-
logger.warn(f"IS SD3 {pipeline} {is_sd3}")
10511050
else:
10521051
is_sd3 = False
10531052

@@ -1185,7 +1184,6 @@ def get_sd3_models_for_export(pipeline, exporter, int_dtype, float_dtype):
11851184
task="semantic-segmentation",
11861185
model_type="sd3-transformer",
11871186
)
1188-
logger.warn(f"TRANSFORMER COFG {export_config_constructor}")
11891187
transformer_export_config = export_config_constructor(
11901188
pipeline.transformer.config, int_dtype=int_dtype, float_dtype=float_dtype
11911189
)

optimum/intel/openvino/modeling_diffusion.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -844,17 +844,23 @@ def reshape(
844844

845845
if self.text_encoder is not None:
846846
self.text_encoder.model = self._reshape_text_encoder(
847-
self.text_encoder.model, batch_size, self.tokenizer.model_max_length
847+
self.text_encoder.model,
848+
batch_size,
849+
self.tokenizer.model_max_length if "Gemma" not in self.tokenizer.__class__.__name__ else -1,
848850
)
849851

850852
if self.text_encoder_2 is not None:
851853
self.text_encoder_2.model = self._reshape_text_encoder(
852-
self.text_encoder_2.model, batch_size, self.tokenizer_2.model_max_length
854+
self.text_encoder_2.model,
855+
batch_size,
856+
self.tokenizer_2.model_max_length if "Gemma" not in self.tokenizer.__class__.__name__ else -1,
853857
)
854858

855859
if self.text_encoder_3 is not None:
856860
self.text_encoder_3.model = self._reshape_text_encoder(
857-
self.text_encoder_3.model, batch_size, self.tokenizer_3.model_max_length
861+
self.text_encoder_3.model,
862+
batch_size,
863+
self.tokenizer_3.model_max_length if "Gemma" not in self.tokenizer.__class__.__name__ else -1,
858864
)
859865

860866
self.clear_requests()

optimum/intel/openvino/utils.py

Lines changed: 1 addition & 0 deletions
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

Lines changed: 3 additions & 1 deletion
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

Lines changed: 11 additions & 3 deletions
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": 4 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
(
@@ -357,9 +359,15 @@ def test_exporters_cli_int8(self, task: str, model_type: str):
357359
models = [model.encoder, model.decoder]
358360
if task.endswith("with-past") and not model.decoder.stateful:
359361
models.append(model.decoder_with_past)
360-
elif model_type.startswith("stable-diffusion") or model_type.startswith("flux"):
362+
elif (
363+
model_type.startswith("stable-diffusion")
364+
or model_type.startswith("flux")
365+
or model_type.startswith("sana")
366+
):
361367
models = [model.unet or model.transformer, model.vae_encoder, model.vae_decoder]
362-
models.append(model.text_encoder if model_type == "stable-diffusion" else model.text_encoder_2)
368+
models.append(
369+
model.text_encoder if model_type in ["stable-diffusion", "sana"] else model.text_encoder_2
370+
)
363371
elif task.startswith("image-text-to-text"):
364372
models = [model.language_model, model.vision_embeddings]
365373
else:

tests/openvino/test_quantization.py

Lines changed: 2 additions & 0 deletions
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,
@@ -543,6 +544,7 @@ class OVWeightCompressionTest(unittest.TestCase):
543544
[
544545
(OVStableDiffusion3Pipeline, "stable-diffusion-3", 9, 65),
545546
(OVFluxPipeline, "flux", 7, 56),
547+
(OVSanaPipeline, "sana", 19, 53),
546548
]
547549
)
548550

tests/openvino/utils_tests.py

Lines changed: 2 additions & 2 deletions
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)