lumenocturne/ai-sticker-pack — explained in plain English
Analysis updated 2026-05-18
Add sticker-sending ability to a Telegram or Discord bot without re-analyzing images on every message.
Design a database schema for storing AI generated descriptions of a sticker or meme library.
Learn how to inject text-only image descriptions into a chatbot prompt to keep token costs low.
Avoid common pitfalls like broken Telegram image URLs or garbled multi-byte text streaming.
| lumenocturne/ai-sticker-pack | a-shojaei/constructdrawingai | aaronz345/athena-personal-academic-page | |
|---|---|---|---|
| Stars | 20 | 20 | 20 |
| Language | — | Python | JavaScript |
| Setup difficulty | moderate | moderate | moderate |
| Complexity | 2/5 | 4/5 | 2/5 |
| Audience | developer | developer | researcher |
Figures from each repo's GitHub metadata at analysis time.
This is a conceptual guide with example snippets, not a plug-and-play package, you adapt the code to your own backend and vision model.
Ai-sticker-pack is not a ready to run application. It is a written explanation of an architecture pattern for giving any chatbot the ability to pick and send its own stickers or meme images at the right moment in a conversation, along with code snippets you are meant to adapt rather than copy directly. The author is upfront that the backend language, chat platform, and vision model are all up to you, what this repository hands you is the idea and a list of mistakes already made so you do not repeat them. The core problem it solves is that a chatbot cannot look at an image and know when it is funny or appropriate to send, and asking a vision model to look at every candidate sticker on every single message would be slow and expensive. The solution splits understanding from using. When you first upload a sticker, a vision model looks at it exactly once and writes a short name and a one sentence description covering any text on the image, its emotional tone, and when it would fit. That name and description get stored in a small database table alongside the image's URL. From then on, the chatbot never looks at the image again. It only ever sees the short text description injected into its prompt, and when it wants to send a sticker it writes a marker like [sticker:name] in its reply, which the backend catches and swaps for the actual image before sending. The write up walks through four pieces: a simple stickers table with id, name, URL, and description columns, a one time vision call at upload time using any OpenAI compatible vision model, a function that formats stored descriptions into a prompt block for the bot, and backend code that intercepts the sticker marker to render an inline image or call Telegram's sendPhoto API. A large section covers practical pitfalls: Telegram's sendPhoto needs a publicly reachable image URL with no authentication, text and sticker markers can arrive as separate messages if not batched together, sticker images look better floating outside a chat bubble than crammed inside one, images should be size capped so they do not dominate the screen, and streaming multi-byte UTF-8 text in chunks can corrupt characters if concatenated the wrong way. The project is released under the MIT license, though it notes that copyright of the sticker images themselves belongs to their original creators.
A written architecture guide, not a runnable app, showing how to make any chatbot pick and send its own stickers cheaply by describing images once at upload time instead of every message.
Free to use, modify, and redistribute for any purpose. Note that copyright of the sticker images themselves stays with their original creators.
Setup difficulty is rated moderate, with roughly 1h+ to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Don't trust strangers blindly. Verify against the repo.