StickerForge
AI-powered sticker pack generator. Turns any character image into a full set of emotion-variant stickers ready for messaging platforms.
How It Works
Trait Extraction — A vision model (Gemini 2.5 Flash) analyzes the input character image and extracts detailed visual traits: body color, flipper color, belly color, eye type, accessories, clothing, and an overall description.
Base Generation — An image generation model (Gemini 3 Pro) creates a full-body neutral-pose sticker using the extracted traits as strict guidance, ensuring character consistency.
Emotion Variants — The base sticker is edited into emotion variants (happy, sad, angry, surprised, love, cool). Each edit only changes expression and pose while preserving all character traits.
Post-Processing — Each sticker goes through:
- Background removal (flood-fill from edges)
- White die-cut sticker outline
- Resize to platform specs
- Format conversion (WebP for Telegram/WhatsApp, PNG for others)
Packaging — All stickers are packaged into a downloadable ZIP file.
Available Tools
sticker_from_pudgy
Generate a sticker pack directly from a Pudgy Penguin NFT — just provide the token ID. The tool automatically fetches the NFT image from IPFS (no image upload needed), retrieves on-chain metadata/traits, then runs the full sticker generation pipeline.
Parameters:
token_id (required) — Pudgy Penguin token ID (0–8887)
platform (optional, default: "telegram") — Target platform: telegram, whatsapp, discord, line, wechat
emotions (optional, default: all 6) — List of emotions to generate: happy, sad, angry, surprised, love, cool
Returns: Path to the output directory containing individual stickers, sticker_pack.zip, the original NFT image, and both on-chain and vision-extracted traits.
Example usage:
- "I have Pudgy Penguin #6873, make me stickers" →
sticker_from_pudgy(token_id=6873)
- "Make WhatsApp stickers for Pudgy #100, just happy and love" →
sticker_from_pudgy(token_id=100, platform="whatsapp", emotions=["happy", "love"])
sticker_extract_traits
Extract visual traits from a character image. Returns a JSON object describing the character's colors, accessories, clothing, and overall appearance. Useful for understanding what the character looks like before generating stickers.
Parameters:
image_path (required) — Path to the character image file (PNG, JPG, or WebP)
sticker_generate_pack
Generate a complete sticker pack from a character image. Runs the full pipeline: trait extraction, base generation, emotion variants, post-processing, and ZIP packaging.
Parameters:
image_path (required) — Path to the character image file
platform (optional, default: "telegram") — Target platform: telegram, whatsapp, discord, line, wechat
emotions (optional, default: all 6) — List of emotions to generate: happy, sad, angry, surprised, love, cool
Returns: Path to the output directory containing individual stickers and a sticker_pack.zip.
sticker_generate_single
Generate a single emotion sticker from a character image. Useful for testing or generating one-off stickers.
Parameters:
image_path (required) — Path to the character image file
emotion (required) — One of: happy, sad, angry, surprised, love, cool
platform (optional, default: "telegram") — Target platform
Returns: Path to the generated sticker file.
Supported Platforms
| Platform |
Size |
Format |
Max Size |
| Telegram |
512px |
WebP |
512KB |
| WhatsApp |
512px |
WebP |
100KB |
| Discord |
320px |
PNG |
512KB |
| LINE |
370px |
PNG |
1MB |
| WeChat |
240px |
PNG |
1MB |
Emotions
| Emotion |
Description |
| Happy |
Big smile, jumping with raised flippers, sparkles |
| Sad |
Droopy eyes, single tear, slouched pose |
| Angry |
Furrowed brows, puffed cheeks, steam puffs |
| Surprised |
Wide eyes, open mouth, flippers up, exclamation marks |
| Love |
Heart eyes, blushing cheeks, floating hearts |
| Cool |
Smug smirk, winking, peace sign, sparkles |
Requirements
- OpenRouter API access is handled automatically via SC-Proxy — no API key configuration needed. All calls to
openrouter.ai are routed through the proxy which injects credentials.
- Python packages:
requests, Pillow (should already be installed)
- Uses
core.http_client.proxied_post for all OpenRouter API calls
1---2name: 1365-stickerforge3description: AI sticker pack generator — extract character traits from images and generate emotion-variant sticker packs for Telegram, WhatsApp, Discord, LINE, and WeChat4---56# StickerForge78AI-powered sticker pack generator. Turns any character image into a full set of emotion-variant stickers ready for messaging platforms.910## How It Works11121. **Trait Extraction** — A vision model (Gemini 2.5 Flash) analyzes the input character image and extracts detailed visual traits: body color, flipper color, belly color, eye type, accessories, clothing, and an overall description.13142. **Base Generation** — An image generation model (Gemini 3 Pro) creates a full-body neutral-pose sticker using the extracted traits as strict guidance, ensuring character consistency.15163. **Emotion Variants** — The base sticker is edited into emotion variants (happy, sad, angry, surprised, love, cool). Each edit only changes expression and pose while preserving all character traits.17184. **Post-Processing** — Each sticker goes through:19 - Background removal (flood-fill from edges)20 - White die-cut sticker outline21 - Resize to platform specs22 - Format conversion (WebP for Telegram/WhatsApp, PNG for others)23245. **Packaging** — All stickers are packaged into a downloadable ZIP file.2526## Available Tools2728### `sticker_from_pudgy`29Generate a sticker pack directly from a Pudgy Penguin NFT — just provide the token ID. The tool automatically fetches the NFT image from IPFS (no image upload needed), retrieves on-chain metadata/traits, then runs the full sticker generation pipeline.3031**Parameters:**32- `token_id` (required) — Pudgy Penguin token ID (0–8887)33- `platform` (optional, default: "telegram") — Target platform: telegram, whatsapp, discord, line, wechat34- `emotions` (optional, default: all 6) — List of emotions to generate: happy, sad, angry, surprised, love, cool3536**Returns:** Path to the output directory containing individual stickers, `sticker_pack.zip`, the original NFT image, and both on-chain and vision-extracted traits.3738**Example usage:**39- "I have Pudgy Penguin #6873, make me stickers" → `sticker_from_pudgy(token_id=6873)`40- "Make WhatsApp stickers for Pudgy #100, just happy and love" → `sticker_from_pudgy(token_id=100, platform="whatsapp", emotions=["happy", "love"])`4142### `sticker_extract_traits`43Extract visual traits from a character image. Returns a JSON object describing the character's colors, accessories, clothing, and overall appearance. Useful for understanding what the character looks like before generating stickers.4445**Parameters:**46- `image_path` (required) — Path to the character image file (PNG, JPG, or WebP)4748### `sticker_generate_pack`49Generate a complete sticker pack from a character image. Runs the full pipeline: trait extraction, base generation, emotion variants, post-processing, and ZIP packaging.5051**Parameters:**52- `image_path` (required) — Path to the character image file53- `platform` (optional, default: "telegram") — Target platform: telegram, whatsapp, discord, line, wechat54- `emotions` (optional, default: all 6) — List of emotions to generate: happy, sad, angry, surprised, love, cool5556**Returns:** Path to the output directory containing individual stickers and a `sticker_pack.zip`.5758### `sticker_generate_single`59Generate a single emotion sticker from a character image. Useful for testing or generating one-off stickers.6061**Parameters:**62- `image_path` (required) — Path to the character image file63- `emotion` (required) — One of: happy, sad, angry, surprised, love, cool64- `platform` (optional, default: "telegram") — Target platform6566**Returns:** Path to the generated sticker file.6768## Supported Platforms6970| Platform | Size | Format | Max Size |71|-----------|--------|--------|----------|72| Telegram | 512px | WebP | 512KB |73| WhatsApp | 512px | WebP | 100KB |74| Discord | 320px | PNG | 512KB |75| LINE | 370px | PNG | 1MB |76| WeChat | 240px | PNG | 1MB |7778## Emotions7980| Emotion | Description |81|------------|-------------------------------------------------------|82| Happy | Big smile, jumping with raised flippers, sparkles |83| Sad | Droopy eyes, single tear, slouched pose |84| Angry | Furrowed brows, puffed cheeks, steam puffs |85| Surprised | Wide eyes, open mouth, flippers up, exclamation marks |86| Love | Heart eyes, blushing cheeks, floating hearts |87| Cool | Smug smirk, winking, peace sign, sparkles |8889## Requirements9091- **OpenRouter API access** is handled automatically via SC-Proxy — no API key configuration needed. All calls to `openrouter.ai` are routed through the proxy which injects credentials.92- Python packages: `requests`, `Pillow` (should already be installed)93- Uses `core.http_client.proxied_post` for all OpenRouter API calls