Боты и автоматизация2026-07-297 минРедакция Submarine School

Как сделать стикер-бот в Telegram в 2026: набор и свой бот

Как сделать стикер-бот в Telegram в 2026: набор и свой бот

Стикер-бот в Telegram бывает двух видов, и собираются они совершенно по-разному. Первый вид: официальный бот @Stickers, через который свой набор загружается руками минут за десять. Второй: ваш собственный бот, который принимает фото от пользователя, вырезает фон нейросетью и сам собирает набор через Bot API. Ниже разобраны оба, с требованиями Telegram к картинкам, конкретными методами API и планом сборки вместе с ИИ-ассистентом.

Под стикер-ботом понимают одно из двух

Разница принципиальная, потому что во втором случае вы пишете программу, а в первом просто пользуетесь готовой.

  • Официальный @Stickers: набор создаёте вы сами, картинки готовите заранее, бот только принимает файлы и публикует пак. Кода ноль.
  • Свой бот: пользователь присылает ему фото, а всю рутину (вырезать фон, привести к нужному размеру, собрать набор) делает программа. Кода немного, но он нужен.
  • Промежуточный вариант: сторонние боты-конструкторы, которые собирают стикеры из ваших картинок. Удобно разово, но пак остаётся привязан к чужому сервису.

Если стикеры нужны один раз и для себя, а бот вам не интересен, проще пойти другой дорогой: мы отдельно разбирали, как собрать стикеры вообще без бота, через редактор и генерацию картинок. Здесь речь именно про ботов.

Набор через @Stickers: порядок действий

Telegram предлагает управлять паками через мини-приложение @Stickers или через текстовые команды тому же боту, как описано в официальной документации. Команды остаются самым предсказуемым способом.

  1. Откройте в Telegram бота @Stickers и отправьте команду /newpack.
  2. Напишите название набора: это то, что увидят люди в списке стикеров.
  3. Отправьте первую картинку файлом, без сжатия. Если отправить её обычным фото, Telegram пережмёт изображение и потеряет прозрачность, бот такой файл не примет.
  4. Пришлите эмодзи, которое будет соответствовать этому стикеру. Эмодзи нужно каждому стикеру, это обязательная часть.
  5. Повторите два предыдущих шага для остальных картинок.
  6. Отправьте /publish, при желании загрузите иконку набора и придумайте короткий адрес латиницей.
  7. Получите ссылку вида t.me/addstickers/имя_набора: по ней набор ставит себе кто угодно.

Дальше набор редактируется теми же командами: /addsticker добавляет картинку в существующий пак, /delsticker убирает лишнюю, /setpackicon меняет иконку. Удалять и пересоздавать пак ради одной правки не нужно.

Бот, который делает стикеры за человека, собирается тем же способом, что и любой другой рабочий проект. На бесплатном вебинаре показываем этот способ на практике.

Занять место

Требования Telegram к файлам стикеров

Эти цифры одинаковы и для ручной загрузки, и для бота, который делает стикеры сам. Все они описаны на странице Telegram про стикеры.

  • Статичный стикер: формат .png или .webp, одна сторона ровно 512 пикселей, вторая не больше 512. Фон прозрачный, иначе стикер будет выглядеть наклейкой на белом квадрате.
  • Анимированный стикер: формат .tgs (это Lottie-анимация), холст 512x512, до 3 секунд, ровно 60 кадров в секунду, вес после рендера до 64 КБ.
  • Видеостикер: формат .webm с кодеком VP9, одна сторона 512 пикселей, до 3 секунд, до 30 кадров в секунду, без звуковой дорожки, вес до 256 КБ.
  • Кастомные эмодзи делаются той же техникой, но холст у них 100x100 пикселей, а для использования своих наборов эмодзи нужен Telegram Premium.
  • В обычный набор помещается до 120 стикеров, в набор кастомных эмодзи до 200, по документации Bot API.

Самая частая причина отказа: картинка не квадратная и ни одна её сторона не равна 512 пикселям. Для статичных стикеров Telegram проверяет это строго и отвечает ошибкой STICKER_PNG_DIMENSIONS.

По теме: Нейросеть в телеграм-боте 2026: как подключить и сколько стоит

Свой бот: из чего он состоит

Бот, который делает стикеры за пользователя, это конвейер из пяти простых шагов. Каждый шаг решается одной библиотекой, ничего сложного внутри нет.

  1. Приём фото. Бот ловит сообщение с изображением, берёт версию максимального размера и скачивает файл к себе.
  2. Удаление фона. Картинка уходит в нейросеть-сегментатор, обратно приходит PNG с прозрачностью вокруг объекта.
  3. Подгонка размера. Изображение масштабируется так, чтобы большая сторона стала ровно 512 пикселей, и сохраняется в .webp.
  4. Загрузка в Telegram. Готовый файл отправляется методом uploadStickerFile, в ответ приходит file_id.
  5. Сборка набора. Если у пользователя пака ещё нет, бот вызывает createNewStickerSet, если есть, то addStickerToSet, и отдаёт ссылку на набор.

Отдельно нужно хранить связку «пользователь, имя его набора». Достаточно одной таблицы в SQLite: по ней бот понимает, создавать новый пак или дополнять существующий.

Токен для бота выдаёт @BotFather, порядок первой регистрации мы подробно расписывали в статье про то, как создать бота в Telegram. Если бот планируется не только для вас, сразу добавьте кнопки под сообщениями: как боту сделать кнопки мы разбирали отдельно, они здорово упрощают выбор эмодзи и подтверждение.

Рабочий бот отличается от учебного примера тем, что им кто-то пользуется каждый день. На бесплатном вебинаре по вайбкодингу разбираем, как довести своего бота до этого состояния, и отдаём гайд в подарок.

Записаться на вебинар

Методы Bot API для стикеров

Все методы работают от имени бота, но набор принадлежит пользователю: именно его user_id указывается при создании. Актуальная версия Bot API на конец июля 2026 года: 10.2 от 14 июля, список изменений ведётся на сайте Telegram.

  • uploadStickerFile: параметры user_id, sticker и sticker_format (static, animated или video). Возвращает объект файла, чей file_id можно переиспользовать в других наборах.
  • createNewStickerSet: user_id, name, title и массив stickers из 1-50 объектов InputSticker. Есть необязательный sticker_type со значениями regular, mask или custom_emoji.
  • addStickerToSet: user_id, name набора и один объект sticker. Если такой же файл в наборе уже есть, метод вернёт успех и просто ничего не изменит.
  • InputSticker: поля sticker (файл или file_id), format, emoji_list (от 1 до 20 эмодзи) и необязательные keywords для поиска.
  • setStickerSetThumbnail и deleteStickerFromSet пригодятся позже: иконка набора и удаление отдельной картинки.

Важная деталь про имя набора: поле name может содержать только латинские буквы, цифры и подчёркивания, начинаться с буквы и обязано заканчиваться на _by_<имя_бота>. Без этого суффикса Telegram вернёт ошибку, и на этом спотыкается почти каждый первый бот.

from aiogram.types import InputSticker, BufferedInputFile

file = BufferedInputFile(webp_bytes, filename="sticker.webp")
sticker = InputSticker(sticker=file, format="static", emoji_list=["🔥"])

await bot.create_new_sticker_set(
    user_id=user_id,
    name=f"pack{user_id}_by_{bot_username}",
    title="Мои стикеры",
    stickers=[sticker],
)

По теме: Как создать команду боту в Telegram в 2026: меню и обработчик

Где брать удаление фона

Это единственное место, где нужна нейросеть. Проверенный вариант для своего бота: библиотека rembg, она ставится через pip, работает локально на моделях сегментации семейства U-2-Net и не отправляет фотографии наружу, исходники лежат на GitHub. Для домашнего бота этого достаточно.

  • rembg: бесплатно, локально, без ключей и оплаты. Первый запуск скачивает модель, дальше работает быстро.
  • Облачные сервисы удаления фона: качество на сложных волосах и мехе обычно выше, но это внешний API, подписка и оплата картой, что из России решается отдельно.
  • Ручной вариант: пользователь сам присылает PNG с прозрачностью. Годится как запасной путь, когда автоматика ошиблась.
pip install aiogram rembg pillow

from rembg import remove
from PIL import Image
import io

cut = remove(photo_bytes)              # PNG с прозрачным фоном
img = Image.open(io.BytesIO(cut))
w, h = img.size
k = 512 / max(w, h)                    # большая сторона станет 512
img = img.resize((max(1, round(w * k)), max(1, round(h * k))))
buf = io.BytesIO()
img.save(buf, format="WEBP")
webp_bytes = buf.getvalue()

Как собрать такого бота с ИИ-ассистентом

Писать это руками не обязательно. Задача хорошо ложится на разговор с ИИ-ассистентом, если давать ему не «сделай стикер-бота», а конкретные требования и по одному шагу за раз.

  1. Опишите задачу целиком: бот на Python и aiogram 3, принимает фото, удаляет фон через rembg, приводит картинку к 512 пикселям по большей стороне, сохраняет в .webp.
  2. Отдельным пунктом попросите работу с наборами: uploadStickerFile, потом createNewStickerSet при первом стикере пользователя и addStickerToSet при последующих, имя набора с суффиксом _by_<имя_бота>.
  3. Попросите хранить соответствие «пользователь, имя набора» в SQLite и обрабатывать ошибки API текстом для человека, а не трассировкой.
  4. Запустите бота у себя, отправьте ему три разные фотографии и посмотрите, где он споткнулся.
  5. Возвращайтесь к ассистенту с точным текстом ошибки: так правки получаются за одну итерацию, а не за десять.

Начинайте с одного стикера. Бот, который умеет принять одно фото и вернуть один рабочий стикер, уже содержит весь сложный код. Наборы, кнопки и очередь дорисовываются поверх за вечер.

Пока бот запущен у вас на компьютере, он живёт ровно до закрытия терминала. Чтобы им пользовались другие люди, его нужно перенести на сервер: варианты и цены собраны в разборе, как сделать, чтобы бот работал круглосуточно.

По теме: Как сделать бота приватным в Telegram: доступ только своим 2026

Что ломается чаще всего

  • Картинка отправлена фотографией, а не файлом: прозрачность пропала, фон стал белым.
  • Ни одна сторона не равна 512 пикселям: Telegram отвечает ошибкой размеров и стикер не принимает.
  • Имя набора без суффикса _by_<имя_бота> или с двумя подчёркиваниями подряд: набор не создаётся.
  • У стикера не указан ни один эмодзи: поле emoji_list обязательное, пустым его оставлять нельзя.
  • Набор упёрся в 120 стикеров: нужен новый пак, а бот должен уметь его завести и сказать об этом пользователю.
  • Бот пытается редактировать чужой набор: методы работают только с теми паками, которые создал он сам.

Частые вопросы

Можно ли сделать стикер-бот без программирования?

Бота, который сам обрабатывает фото, без кода собрать не получится: конструкторы ботов не умеют вызывать методы работы со стикерами. А вот свой набор стикеров без кода делается за десять минут через @Stickers.

Сколько стоит такой бот?

Сам Bot API бесплатный, rembg тоже. Платить придётся только за место, где бот крутится круглосуточно, и то в пределах стоимости самого простого сервера.

Кому будет принадлежать набор, боту или пользователю?

Пользователю: в createNewStickerSet указывается его user_id. Бот при этом сохраняет право редактировать созданный им набор, поэтому дополнять пак он сможет и потом.

Можно ли делать так видеостикеры и анимации?

Да, у InputSticker есть поле format со значениями static, animated и video. Но подготовка .webm с кодеком VP9 и весом до 256 КБ сложнее, чем статичной картинки, так что начинать логичнее со статики.

Почему бот не видит фото, отправленное документом?

Потому что это разные типы сообщений: обычное фото приходит как photo, файл как document. Рабочий бот обрабатывает оба, иначе половина пользователей будет считать, что он сломан.

Стикер-бот удобно делать первым проектом: результат видно сразу, а внутри тот же набор навыков, что и в любом другом боте или сервисе. На бесплатном вебинаре по вайбкодингу показываем, как собирать такие проекты с ИИ-ассистентом от идеи до запуска.

Записаться на вебинар
Разборы, кейсы и фишки вайбкодинга каждую неделю в телеграм-канале «Яков вайбкодит».
Первый проект с ИИ: живой разбор, бесплатно Занять место