@@ -8,6 +8,7 @@ import requests from django.core.files import File from messages.models import Message +from ml_model.services.FileService import ImageFileProcessor, ImageFileValidator from ml_model.services.base import SimpleService from ml_model.tasks import replicate_run from payments.exceptions.insufficient_balance import InsufficientBalance @@ -50,6 +51,12 @@ class Grok_Image(SimpleService): } ) if image := input_message.file: + image_processor = ImageFileProcessor(image) + kind = image_processor.get_kind(image_processor.get_bytes(20)) + ImageFileValidator.validate_kind(kind, image_processor.EXTENSIONS) + width, height = image_processor.get_dimensions() + ImageFileValidator.validate_dimensions(width, height, max_pixels=178_956_970) + image.close() callback_data.update({'image': image}) start_time = time.time() images = replicate_run('xai/grok-imagine-image', callback_data)