face2sticker - бот, который превратит ваше фото в комикс-стикер. С текстом!
Как неудачное приложение из конкурса telegram обрело вторую жизнь. В telegram.
Идея
Этим летом telegram устроил конкурс по разработке мобильного приложения для создания стикеров.
С мобильной разработкой до этого момента я вообще не сталкивался, но у меня уже был другой бот, который делал из фото комиксы. Переделав исходный комикс-алгоритм под новую задачу, я сваял на коленке приложение на react native. Оно просто стучалось на api и позволяло сохранить и пошерить результат.
Приложение это после торжественного запуска утонуло в минусах. Впрочем, сообщество оказалось беспристрастно и заминусовало вообще всех, судя по тому, что максимальный балл там сейчас -1, лол.
¯\_(ツ)_/¯
Не дожидаясь результатов конкурса, я решил завернуть новый алгоритм в бота. И не прогадал, так как результатов конкурса все еще нет, а на дворе уже конец октября. Прием работ, напомню, был завершен в начале июля 😂
face2sticker
В итоге получился telegram бот с одной функцией. Запустил я его еще летом, то есть до того, как это стало мейнстримом 😈
Работает просто:
- отправляете фото и текст @face2stickerbot
- получаете сами стикеры и их .png версии
- отправляете друзьям
Стикеры также можно добавить в стикерпак с помощью официального бота @stickers
.png файлы можно использовать как угодно, хоть в том же instagram - прозрачность там отлично работает.
Правда, это на самом деле не png, а webp, так как телеграм не дает отправить webp файлом :(
Детали
Расскажу немного о реализации.
Сам бот написан на TypeScript/telegraf.js, алгоритм обработки фото - на питоне.
Пример бота в связке с питоном. Ему уже пара лет, но если будет интерес, могу попробовать причесать код текущего бота и тоже выложить на гитхаб.
Под капотом алгоритма несколько нейросетей, каждая из которых выполняет свою роль.
u2net создает маску для отделения ключевых объектов от фона,
RetinaFace обнаруживает лица и их ключевые точки.
Лицо вырезается, улучшается с помощью GPEN, стилизуется unet и вклеивается на фон, который также предварительно улучшается и стилизуется.
Вместе с этим изображения немного блюрятся и шарпятся для большего комикс-эффекта.
По координатам лица определяем, в какой части фото оно находится, и, исходя из этого, рисуем баббл с текстом. Вуаля!
Что дальше
Уже было небольшое обновление, в котором была добавлена минималистичная обработка - улучшение и обводка контуров лица, без комикс-стиля.
Алгоритм постоянно совершенствуется и облегчается, чтобы в будущем запилить поддержку анимированных стикеров.
Также в планах добавить и стикер-менеджмент, чтобы можно было создавать стикерпаки не отходя о кассы.
Если у вас есть какие-то пожелания - не забудьте отписать в комментах.
На этом все, спасибо за ваше время и крутых вам стикеров!
Как говорится, го тыкать, я создал -> @face2stickerbot
Удобно, прикольно, но 400 руб в месяц, чтобы убрать подпись это перебор. У меня тариф мобильного столько стоит. Я заплачу, месяц попользуюсь и забуду.
Согласен! Отсутствие вотермарки - скорее приятный бонус поддержавшим мой канал и бота.
Попробуйте брать 400 руб за год. Когда у человека оплачено что-то на год вперед, есть хоть какой-то шанс, что ваш бот не забудут через месяц. Кстати, тем кто подписан можно добавлять и пушить ежемесячно новые скины, сейчас их всего два насколько я понял.
Я планировал сделать побольше лимиты + подобные фичи для всех своих ботов по одной подписке
Пока добавил промо за 99р/мес. В течение месяца думаю подвезти новых плюшек, дабы смотивировать на продление)