@@ -18,6 +18,7 @@ class Stablediffusion(SimpleService): Stablediffusion Service contains abstract method make, which makes a generation """ + title = 'StableDiffusion' description = 'Нейросеть, способная генерировать картинки из вашего текста' category = ModelCategory(title='Изображения', slug='images') @@ -105,13 +106,12 @@ class Stablediffusion(SimpleService): key='aspect_ratio', type=ModelParameter.TypeChoices.LIST, values={ - 'availables': - [ - '1:1', - '16:9', - '9:16', - ], - 'default': '1:1' + 'availables': [ + '1:1', + '16:9', + '9:16', + ], + 'default': '1:1', }, ), ModelParameter( @@ -119,18 +119,17 @@ class Stablediffusion(SimpleService): key='aspect_ratio', type=ModelParameter.TypeChoices.LIST, values={ - 'availables': - [ - '1:1', - '4:3', - '3:4', - '3:2', - '16:9', - '9:16', - '24:10', - '10:24' - ], - 'default': '1:1' + 'availables': [ + '1:1', + '4:3', + '3:4', + '3:2', + '16:9', + '9:16', + '24:10', + '10:24', + ], + 'default': '1:1', }, ), ] @@ -143,17 +142,17 @@ class Stablediffusion(SimpleService): if ( input_message.info.get('version') or input_message.info.get('engine', 'sd3') ) == 'sd3': - return Decimal('71.5') + return Decimal('13') elif ( input_message.info.get('version') or input_message.info.get('engine', 'sd3') ) == 'sd3-turbo': - return Decimal('44') + return Decimal('8') steps = input_message.info.get('steps', 30) default_price = Decimal('0.9') * self.TOKEN_PRICE return default_price if steps <= 30 else default_price * Decimal((steps / 30)) def save_results( - self, input_prompt: str, r: list[BytesIO], t: timedelta, save: bool = True + self, input_prompt: str, r: list[BytesIO], t: timedelta, save: bool = True ) -> list[Message]: out: list[Message] = [] for obj in r: @@ -181,7 +180,7 @@ class Stablediffusion(SimpleService): '16:9': (1344, 768), '9:16': (768, 1344), '24:10': (1536, 640), - '10:24': (640, 1536) + '10:24': (640, 1536), } start_time = time.time() info = input_message.info.copy() @@ -205,7 +204,7 @@ class Stablediffusion(SimpleService): if model_name in ('sd3', 'sd3-turbo'): callback_data = dict( prompt=translated_prompt, - model=model_name, + model='sd3-large' if model_name == 'sd3' else 'sd3-large-turbo', aspect_ratio=input_message.info.get('aspect_ratio', '1:1'), output_format='jpeg', )