PIL вместе с вот этой красотой -> asyncio, concurrent.futures, aiofiles, aiohttp (я так понимаю ты запрос дергаешь и он должен тебе обрабатывать картинку)
А смысл пихать ассихронность туда, где она почти ничего не поменяет? Записать изображение в файл ты можешь и через aiofiles.
Astagnar, не совсем. Я делаю аналог raika чекера но по другой игре, и каждое изображение там отдельно, я накладываю на 1 изображение все фото по очереди(на данный момент), и это занимает порядка 3 секунд
Окулист, асихронность тут не моможет, это CPU bound задача, а не IO bound. Нужно оптимизировать сам процес наложения - делать картинку меньше, отренедрить картинку с одинаковыми элментами заранее, а на нее накладывать только уникальные, искать узкие места и заменять их другими инструментами и тд.