Dalle produces an input image

Hello! I make a request to Dalle and keep getting an input image, what could be the problem?

def generate_openai_image(user_id, translated_prompt, message, image_stream, image_photo):
    try:
        processing_message = bot.reply_to(message, f"{loading}Обработка запроса...")
        client = OpenAI(api_key=get_next_dalle_token())

        response = client.images.edit(
            model="dall-e-2",
            image=image_stream,
            prompt=translated_prompt,
            response_format='b64_json',
            mask=image_photo
        )
        if response:
            for i, image_response in enumerate(response.data):
                image_b64 = image_response.b64_json
                if image_b64:
                    generated_image = base64.b64decode(image_b64)
                    bot.send_photo(message.chat.id, generated_image, reply_to_message_id=message.message_id, timeout=180)
                    increase_dalle_counter(user_id)
                    os.remove(f"{user_id}_input_image.png")
                    os.remove(f"{user_id}_put_image.png")
            try:
                # Удаляем сообщение о начале обработки после отправки изображения
                bot.delete_message(message.chat.id, processing_message.message_id)
            except Exception as e:
                logging.error(f"Ошибка при удалении сообщения: {e}")

            return

        bot.delete_message(message.chat.id, processing_message.message_id)
        bot.reply_to(message, f"{warning}Произошла ошибка при генерации изображения.\n{info}Возможно ваш запрос нецензурный и OpenAI не смог обработать его.")
        logging.error(f"Произошла ошибка при генерации изображения: {response.text}")
        os.remove(f"{user_id}_input_image.png")
        os.remove(f"{user_id}_put_image.png")

    except Exception as e:
        bot.delete_message(message.chat.id, processing_message.message_id)
        bot.reply_to(message, f"{warning}Произошла ошибка при генерации изображения.\n{info}Возможно ваш запрос нецензурный и OpenAI не смог обработать его.")
        logging.error(f"Произошла ошибка при генерации изображения: {e}")
        os.remove(f"{user_id}_input_image.png")
        os.remove(f"{user_id}_put_image.png")
# Функция изменения размера изображения
def resize_image(image_stream, target_size):
    image = Image.open(image_stream)
    image = image.convert('RGBA')
    resized_image = image.resize(target_size)
    output = io.BytesIO()
    resized_image.save(output, format='PNG')
    output.seek(0)
    return output

# Обработчик для получения описания изображения
@bot.message_handler(content_types=['photo'], func=lambda message: user_state.get(message.from_user.id) == 'awaiting_image_description')
def handle_image_description(message):
    user_id = message.from_user.id
    file_id = message.photo[-1].file_id
    file_info = bot.get_file(file_id)
    image_stream = bot.download_file(file_info.file_path)

    # Получаем предпочтительное API для данного пользователя из базы данных
    with get_conn() as conn:
        c = conn.cursor()
        c.execute("SELECT preferred_api FROM users WHERE user_id = ?", (user_id, ))
        user_data = c.fetchone()
    current_api = user_data[0] if user_data else "не выбрано"

    # Преобразование изображения в формат PNG, если необходимо
    image = Image.open(io.BytesIO(image_stream))
    image = image.convert('RGBA')
    if image.format != 'PNG':
        # Если формат не PNG, конвертируем
        output_stream = io.BytesIO()
        image.save(output_stream, format='PNG')
        image_stream = output_stream.getvalue()

    # Проверка и ограничение размера изображения
    if len(image_stream) > 4 * 1024 * 1024:  # 4 МБ в байтах
        # Если размер превышает 4 МБ, уменьшаем изображение
        image_stream = resize_image(io.BytesIO(image_stream), (1024, 1024)).getvalue()
        
    # Проверяем размер изображения и изменяем его, если необходимо
    image_size = image.size
    target_sizes = [(1024, 1024), (1152, 896), (1216, 832), (1344, 768), (1536, 640),
                    (640, 1536), (768, 1344), (832, 1216), (896, 1152)]

    if image_size not in target_sizes:
        # Ищем ближайший подходящий размер
        closest_size = min(target_sizes, key=lambda x: ((x[0] - image_size[0]) ** 2 + (x[1] - image_size[1]) ** 2))
        image_stream = resize_image(io.BytesIO(image_stream), closest_size).getvalue()
    
    # Сохранение изображения
    with open(f"{user_id}_input_image.png", 'wb') as file:
        file.write(image_stream)

    if current_api in 'YandexGPT' or current_api in 'GigaChat':
        user_state[user_id] = 'awaiting_image_action'
        bot.reply_to(message, f"{picture}Введите описание того, что нужно сделать с этим изображением:")
    elif current_api in 'OpenAI':
        # Запрашиваем у пользователя описание того, что сделать с изображением
        user_state[user_id] = 'awaiting_image_photo'
        bot.reply_to(message, f"{picture}Отправьте изображение с закрашенной областью, которую нужно изменить:")

# Функция изменения размера изображения
def resize_image_photo(image_photo, target_size):
    image = Image.open(image_photo)
    image = image.convert('RGBA')
    resized_image = image.resize(target_size)
    output = io.BytesIO()
    resized_image.save(output, format='PNG')
    output.seek(0)
    return output

# Обработчик для получения описания изображения
@bot.message_handler(content_types=['photo'], func=lambda message: user_state.get(message.from_user.id) == 'awaiting_image_photo')
def handle_image_photo(message):
    user_id = message.from_user.id
    file_id = message.photo[-1].file_id
    file_info = bot.get_file(file_id)
    image_photo = bot.download_file(file_info.file_path)

    # Преобразование изображения в формат PNG, если необходимо
    image = Image.open(io.BytesIO(image_photo))
    image = image.convert('RGBA')
    if image.format != 'PNG':
        # Если формат не PNG, конвертируем
        output_stream = io.BytesIO()
        image.save(output_stream, format='PNG')
        image_photo = output_stream.getvalue()

    # Проверка и ограничение размера изображения
    if len(image_photo) > 4 * 1024 * 1024:  # 4 МБ в байтах
        # Если размер превышает 4 МБ, уменьшаем изображение
        image_photo = resize_image_photo(io.BytesIO(image_photo), (1024, 1024)).getvalue()

        # Проверяем размер изображения и изменяем его, если необходимо
    image_size = image.size
    target_sizes = [(1024, 1024), (1152, 896), (1216, 832), (1344, 768), (1536, 640),
                    (640, 1536), (768, 1344), (832, 1216), (896, 1152)]

    if image_size not in target_sizes:
        # Ищем ближайший подходящий размер
        closest_size = min(target_sizes, key=lambda x: ((x[0] - image_size[0]) ** 2 + (x[1] - image_size[1]) ** 2))
        image_photo = resize_image(io.BytesIO(image_photo), closest_size).getvalue()

    # Сохранение изображения
    with open(f"{user_id}_put_image.png", 'wb') as file:
        file.write(image_photo)
        
    user_state[user_id] = 'awaiting_image_action_photo'
    bot.reply_to(message, f"{picture}Введите описание того, что нужно сделать с закрашенной зоной на изображении:")

# Обработчик для получения действия, которое нужно выполнить с изображением
@bot.message_handler(content_types=['text'], func=lambda message: user_state.get(message.from_user.id) == 'awaiting_image_action_photo' and message.text is not None and '/' not in message.text)
def handle_image_action_photo(message):
    user_id = message.from_user.id
    image_stream = load_image_stream(user_id)
    image_photo = load_image_stream_photo(user_id)
    if user_state.get(user_id) == 'awaiting_image_action_photo':
        user_state[user_id] = None
        prompt = message.text
        translated_prompt = translate_to_english(prompt)
        generate_openai_image(user_id, translated_prompt, message, image_stream, image_photo)

# Обработчик для получения действия, которое нужно выполнить с изображением
@bot.message_handler(content_types=['text'], func=lambda message: user_state.get(message.from_user.id) == 'awaiting_image_action' and message.text is not None and '/' not in message.text)
def handle_image_action(message):
    user_id = message.from_user.id
    image_stream = load_image_stream(user_id)
    if user_state.get(user_id) == 'awaiting_image_action':
        user_state[user_id] = None
        prompt = message.text
        translated_prompt = translate_to_english(prompt)
        generate_image_with_stability_sdk_image(user_id, translated_prompt, message, image_stream)

# Добавьте функцию для загрузки изображения из файла или другого источника
def load_image_stream_photo(user_id):
    with open(f"{user_id}_put_image.png", 'rb') as file:
        return file.read()

# Добавьте функцию для загрузки изображения из файла или другого источника
def load_image_stream(user_id):
    with open(f"{user_id}_input_image.png", 'rb') as file:
        return file.read()