--- frameworks: - Pytorch license: apache-2.0 tasks: - image-style-transfer #model-type: ##如 gpt、phi、llama、chatglm、baichuan 等 #- gpt #domain: ##如 nlp、cv、audio、multi-modal #- nlp #language: ##语言代码列表 https://help.aliyun.com/document_detail/215387.html?spm=a2c4g.11186623.0.0.9f8d7467kni6Aa #- cn #metrics: ##如 CIDEr、Blue、ROUGE 等 #- CIDEr #tags: ##各种自定义,包括 pretrained、fine-tuned、instruction-tuned、RL-tuned 等训练方法和其他 #- pretrained #tools: ##如 vllm、fastchat、llamacpp、AdaSeq 等 #- vllm --- # StyleBooth: Image Style Editing with Multimodal Instruction ## Run StyleBooth - Code implementation: See model configuration and code based on [🪄SCEPTER](https://github.com/modelscope/scepter). - Demo: Try [🖥️SCEPTER Studio](https://github.com/modelscope/scepter/tree/main?tab=readme-ov-file#%EF%B8%8F-scepter-studio). - Easy run: Try the following example script to run StyleBooth modified from [tests/modules/test_diffusion_inference.py](https://github.com/modelscope/scepter/blob/main/tests/modules/test_diffusion_inference.py): ```python # `pip install scepter>0.0.4` or # clone newest SCEPTER and run `PYTHONPATH=./ python ` at the main branch root. import os import unittest from PIL import Image from torchvision.utils import save_image from scepter.modules.inference.stylebooth_inference import StyleboothInference from scepter.modules.utils.config import Config from scepter.modules.utils.file_system import FS from scepter.modules.utils.logger import get_logger class DiffusionInferenceTest(unittest.TestCase): def setUp(self): print(('Testing %s.%s' % (type(self).__name__, self._testMethodName))) self.logger = get_logger(name='scepter') config_file = 'scepter/methods/studio/scepter_ui.yaml' cfg = Config(cfg_file=config_file) if 'FILE_SYSTEM' in cfg: for fs_info in cfg['FILE_SYSTEM']: FS.init_fs_client(fs_info) self.tmp_dir = './cache/save_data/diffusion_inference' if not os.path.exists(self.tmp_dir): os.makedirs(self.tmp_dir) def tearDown(self): super().tearDown() # uncomment this line to skip this module. # @unittest.skip('') def test_stylebooth(self): config_file = 'scepter/methods/studio/inference/edit/stylebooth_tb_pro.yaml' cfg = Config(cfg_file=config_file) diff_infer = StyleboothInference(logger=self.logger) diff_infer.init_from_cfg(cfg) output = diff_infer({'prompt': 'Let this image be in the style of sai-lowpoly'}, style_edit_image=Image.open('asset/images/inpainting_text_ref/ex4_scene_im.jpg'), style_guide_scale_text=7.5, style_guide_scale_image=1.5, stylebooth_state=True) save_path = os.path.join(self.tmp_dir, 'stylebooth_test_lowpoly_cute_dog.png') save_image(output['images'], save_path) if __name__ == '__main__': unittest.main() ```