@@ -7,8 +7,11 @@ from io import BytesIO import filetype import requests from django.core.files import File -import logging + +from replicate.exceptions import ModelError + from messages.models import Message +from ml_model.exceptions import RequestBlocked, GenerationException from ml_model.services.base import SimpleService from ml_model.tasks import replicate_run @@ -51,7 +54,12 @@ class Kling(SimpleService): input_message.file.close() callback_data.update({'start_image': image}) start_time = time.time() - video = replicate_run('kwaivgi/kling-v2.1', callback_data) + try: + video = replicate_run('kwaivgi/kling-v2.1', callback_data) + except ModelError as exc: + if any(error in str(exc) for error in ('E005', 'E006', 'sexual')): + raise RequestBlocked + raise GenerationException from exc process_time = timedelta(seconds=(time.time() - start_time)) self.handle_invoice(input_message.content_object.model, mode=mode, duration=duration) msgs = self.save_results(input_message.content, process_time, video, save)