@@ -5,6 +5,9 @@ from decimal import Decimal from io import BytesIO from typing import Any +from replicate.exceptions import ModelError +from ml_model.exceptions import RequestBlocked, GenerationException + import filetype import requests from django.core.files import File @@ -63,7 +66,12 @@ class Reve(SimpleService): input_message.file.close() callback_data.update({'image': image}) type = 'edit-fast' - image = replicate_run(f'reve/{type}', callback_data) + try: + image = replicate_run(f'reve/{type}', 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, type=type) msgs = self.save_results(input_message.content, image, process_time, save)