@@ -53,27 +53,27 @@ class Recraft(SimpleService): type=ModelParameter.TypeChoices.LIST, values={ 'availables': [ - 'any', - 'realistic_image', - 'digital_illustration', - 'digital_illustration/pixel_art', - 'digital_illustration/hand_drawn', - 'digital_illustration/grain', - 'digital_illustration/infantile_sketch', - 'digital_illustration/2d_art_poster', - 'digital_illustration/handmade_3d', - 'digital_illustration/hand_drawn_outline', - 'digital_illustration/engraving_color', - 'digital_illustration/2d_art_poster_2', - 'realistic_image/b_and_w', - 'realistic_image/hard_flash', - 'realistic_image/hdr', - 'realistic_image/natural_light', - 'realistic_image/studio_portrait', - 'realistic_image/enterprise', - 'realistic_image/motion_blur' + 'любой', + 'реалистичное изображение', + 'цифровая иллюстрация', + 'цифровая иллюстрация/пиксель-арт', + 'цифровая иллюстрация/ручной рисунок', + 'цифровая иллюстрация/зернистость', + 'цифровая иллюстрация/детский рисунок', + 'цифровая иллюстрация/2D арт-постер', + 'цифровая иллюстрация/ручной 3D', + 'цифровая иллюстрация/контурный рисунок вручную', + 'цифровая иллюстрация/гравировка в цвете', + 'цифровая иллюстрация/2D арт-постер 2', + 'реалистичное изображение/черно-белое', + 'реалистичное изображение/яркий свет', + 'реалистичное изображение/HDR', + 'реалистичное изображение/естественное освещение', + 'реалистичное изображение/студийный портрет', + 'реалистичное изображение/предпринимательство', + 'реалистичное изображение/размытие движения' ], - 'default': 'any', + 'default': 'любой', }, ), ModelParameter( @@ -160,6 +160,27 @@ class Recraft(SimpleService): return messages def make(self, input_message: Message, save: bool = True) -> list[Message]: + styles = { + 'любой': 'any', + 'реалистичное изображение': 'realistic_image', + 'цифровая иллюстрация': 'digital_illustration', + 'цифровая иллюстрация/пиксель-арт': 'digital_illustration/pixel_art', + 'цифровая иллюстрация/ручной рисунок': 'digital_illustration/hand_drawn', + 'цифровая иллюстрация/зернистость': 'digital_illustration/grain', + 'цифровая иллюстрация/детский рисунок': 'digital_illustration/infantile_sketch', + 'цифровая иллюстрация/2D арт-постер': 'digital_illustration/2d_art_poster', + 'цифровая иллюстрация/ручной 3D': 'digital_illustration/handmade_3d', + 'цифровая иллюстрация/контурный рисунок вручную': 'digital_illustration/hand_drawn_outline', + 'цифровая иллюстрация/гравировка в цвете': 'digital_illustration/engraving_color', + 'цифровая иллюстрация/2D арт-постер 2': 'digital_illustration/2d_art_poster_2', + 'реалистичное изображение/черно-белое': 'realistic_image/b_and_w', + 'реалистичное изображение/яркий свет': 'realistic_image/hard_flash', + 'реалистичное изображение/HDR': 'realistic_image/hdr', + 'реалистичное изображение/естественное освещение': 'realistic_image/natural_light', + 'реалистичное изображение/студийный портрет': 'realistic_image/studio_portrait', + 'реалистичное изображение/предпринимательство': 'realistic_image/enterprise', + 'реалистичное изображение/размытие движения': 'realistic_image/motion_blur' + } start_time = time.time() extension = '.svg' if input_message.info['version'] == self.versions[1].slug else '.png' size = self._get_size(input_message.info.pop('width', 1024), input_message.info.pop('height', 1024)) @@ -170,6 +191,7 @@ class Recraft(SimpleService): f'Input description: {self.translate_prompt(input_message.content)}' ), 'size': size, + 'style': styles.get(input_message.info.pop('style'), 'любой'), **input_message.info } )