Files
modelscope/tests/pipelines/test_efficient_diffusion_tuning_swift.py

88 lines
3.8 KiB
Python
Raw Normal View History

# Copyright 2022-2023 The Alibaba Fundamental Vision Team Authors. All rights reserved.
import tempfile
import unittest
import cv2
from modelscope.models import Model
from modelscope.models.multi_modal import EfficientStableDiffusion
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
from modelscope.utils.test_utils import test_level
class EfficientDiffusionTuningTestSwift(unittest.TestCase):
def setUp(self) -> None:
self.task = Tasks.efficient_diffusion_tuning
@unittest.skipUnless(test_level() >= 1, 'skip test in current test level')
def test_efficient_diffusion_tuning_swift_lora_run_pipeline(self):
model_id = 'damo/multi-modal_efficient-diffusion-tuning-swift-lora'
inputs = {
'prompt':
'a street scene with a cafe and a restaurant sign in anime style'
}
sd_tuner_pipeline = pipeline(self.task, model_id)
result = sd_tuner_pipeline(inputs, generator_seed=0)
output_image_path = tempfile.NamedTemporaryFile(suffix='.png').name
cv2.imwrite(output_image_path, result['output_imgs'][0])
print(
f'Efficient-diffusion-tuning-swift-lora output: {output_image_path}'
)
@unittest.skipUnless(test_level() >= 2, 'skip test in current test level')
def test_efficient_diffusion_tuning_swift_lora_load_model_from_pretrained(
self):
model_id = 'damo/multi-modal_efficient-diffusion-tuning-swift-lora'
model = Model.from_pretrained(model_id)
self.assertTrue(model.__class__ == EfficientStableDiffusion)
@unittest.skipUnless(test_level() >= 1, 'skip test in current test level')
def test_efficient_diffusion_tuning_swift_adapter_run_pipeline(self):
model_id = 'damo/multi-modal_efficient-diffusion-tuning-swift-adapter'
inputs = {
'prompt':
'a street scene with a cafe and a restaurant sign in anime style'
}
sd_tuner_pipeline = pipeline(self.task, model_id)
result = sd_tuner_pipeline(inputs, generator_seed=0)
output_image_path = tempfile.NamedTemporaryFile(suffix='.png').name
cv2.imwrite(output_image_path, result['output_imgs'][0])
print(
f'Efficient-diffusion-tuning-swift-adapter output: {output_image_path}'
)
@unittest.skipUnless(test_level() >= 2, 'skip test in current test level')
def test_efficient_diffusion_tuning_swift_adapter_load_model_from_pretrained(
self):
model_id = 'damo/multi-modal_efficient-diffusion-tuning-swift-adapter'
model = Model.from_pretrained(model_id)
self.assertTrue(model.__class__ == EfficientStableDiffusion)
@unittest.skipUnless(test_level() >= 1, 'skip test in current test level')
def test_efficient_diffusion_tuning_swift_prompt_run_pipeline(self):
model_id = 'damo/multi-modal_efficient-diffusion-tuning-swift-prompt'
inputs = {
'prompt':
'a street scene with a cafe and a restaurant sign in anime style'
}
sd_tuner_pipeline = pipeline(self.task, model_id)
result = sd_tuner_pipeline(inputs, generator_seed=0)
output_image_path = tempfile.NamedTemporaryFile(suffix='.png').name
cv2.imwrite(output_image_path, result['output_imgs'][0])
print(
f'Efficient-diffusion-tuning-swift-prompt output: {output_image_path}'
)
@unittest.skipUnless(test_level() >= 2, 'skip test in current test level')
def test_efficient_diffusion_tuning_swift_prompt_load_model_from_pretrained(
self):
model_id = 'damo/multi-modal_efficient-diffusion-tuning-swift-prompt'
model = Model.from_pretrained(model_id)
self.assertTrue(model.__class__ == EfficientStableDiffusion)
if __name__ == '__main__':
unittest.main()