Медленное время отклика Bria API (~ 40–60 с на изображение) при асинхронной обработке более 300 изображений в Python httPython

Программы на Python
Ответить
Anonymous
 Медленное время отклика Bria API (~ 40–60 с на изображение) при асинхронной обработке более 300 изображений в Python htt

Сообщение Anonymous »

В настоящее время я интегрирую Bria API для массового удаления фона из видеокадров (изображений) с использованием асинхронного кода Python.
Настройка работает нормально для небольшого количества изображений, но когда я отправляю более 300 изображений, я сталкиваюсь с серьезной медлительностью. Каждый ответ API занимает от 40 до 60 секунд на изображение, что значительно замедляет общий конвейер обработки.
Вот часть моей асинхронной функции, которая обрабатывает ответ и загружает окончательное изображение, возвращенное Bria:

Код: Выделить всё

import aiohttp
import asyncio
import re

# Bria response post-process: downloads image using the final processed URL
async def process_output_url(session, url):
if url is not None:
pattern = re.search("_(frame.*)", url)
if pattern:
imagename = pattern.group(1)

pattern1 = re.search("(.*)_frame", url)
if pattern1:
url = pattern1.group(1)
else:
print("One None data found in URL")
return None, None

async with session.get(url) as response:
data = await response.read()
return data, imagename
Что я делаю:

Я извлекаю сотни кадров из видео.
Отправляю каждый кадр (как изображение) в конечную точку удаления фона Bria.
После удаления фона я получаю ответ с URL-адресом нового изображения (размещенного на стороне Bria).
Затем я загружаю изображение, используя функцию выше.
Проблема:

После ~200 изображений время отклика резко увеличивается.
Для более 300 изображений получение и загрузка обработанных URL-адресов занимает более 20 минут.
Я подозреваю, что либо ограничение скорости, либо большая полезная нагрузка/очередь на стороне Bria.
Что я пробовал:

Ограничено параллелизм с asyncio.Semaphore.
Добавлена логика повтора для неудачных вызовов.
Проверено на наличие ответов «429 слишком много запросов» — их не видно.
Разделение запросов на куски по 50–100 — минимальное улучшение.
В чем мне нужна помощь:

Как оптимизировать или пакетировать Bria API использование для сокращения времени ответа?
Есть ли лучший способ асинхронной загрузки обработанных изображений?
Какие-либо известные ограничения скорости или рекомендации при использовании Bria API для большого объема использования?
Должен ли я добавить задержку между запросами или использовать экспоненциальную отсрочку?
Буду очень признателен за любую помощь, совет или обходной путь, поскольку я застрял в этом узком месте и не могу двигаться. вперед с остальной частью конвейера обработки видео.
Спасибо!
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»