hermes-persona-stickers π±π¨
Instant, Character-Consistent Emotion Reaction Stickers & Memes for Hermes Agent.
Built for the Nous Research Hermes Agent Plugin Hackathon (Nov 2026).
hermes-persona-stickers gives Hermes Agent an expressive visual voice. Instead of replying with dry text, Hermes can stamp bespoke chibi stickers on demandβpouting, boasting, sighing, or celebrating alongside the user with sub-30ms instant responseβvia the generate_persona_sticker tool or /sticker command.
β‘ The Breakthrough: Why Sub-30ms Matters
Traditional AI image diffusion takes 10β30 seconds per generationβfar too slow for real-time instant messaging. Nobody wants to wait 15 seconds in the middle of a lively chat for a reaction meme.
hermes-persona-stickers solves this through a Dual-Engine Architecture:
βββββββββββββββββββββββββββββββββββββββββββ
β Hermes Dialogue / Emotion Extractor β
βββββββββββββββββββββ¬ββββββββββββββββββββββ
β
ββββββββββββββββββββ΄βββββββββββββββββββ
β Mode Auto-Resolution & Asset Check β
ββββββββββββ¬ββββββββββββββββββββ¬βββββββ
β β
[Pre-baked Pool Exists] βΌ βΌ [Zero GPU / Headless VPS]
βββββββββββββββββββββββββββββββββ βββββββββββββββββββββββββββββββββββββ
β Engine A: Instant Stamper β β Engine B: Fast Pure Vector β
β β’ Pre-baked transparent base β β β’ Pure Python + Pillow drawing β
β β’ 3-layer comic caption text β β β’ 0 GPU, 0 models, 0 MB download β
β β’ 32-bit RGBA PNG / WebP β β β’ Sub-50ms instant generation β
β β‘ 12.88 ms | ~18 KB β β β‘ 35.00 ms | ~15 KB β
βββββββββββββββββββββββββββββββββ βββββββββββββββββββββββββββββββββββββ
π Real-world Benchmarks (Tested on RTX 3070 Ti Laptop & Linux Cloud VPS)
| Pipeline Stage | Traditional Diffusion | Our Instant Stamper (Engine A) | Pure Vector (Engine B) |
|---|---|---|---|
| Turnaround Latency | 12,000 β 25,000 ms | 12.88 ms (0.013s) | 35.12 ms (0.035s) |
| User Wait Time | Noticeable disruption | Zero perceptible delay | Zero perceptible delay |
| Output File Size | 400 β 800 KB (raw PNG) | 7.98 β 19.4 KB (WebP/PNG) | 14.2 KB (PNG) |
| Hardware Requirement | High-end GPU required | Any CPU / 512MB RAM | Any CPU / 512MB RAM |
| Character Consistency | Random face drift | 100% Identical Persona | 100% Identical Vector |
β¨ Key Technical Highlights
1. π― Persona Consistency
Pre-baked persona bases keep the same face and colors across turns. Asset prompts used (offline, outside this plugin) locked:
- Hair Lock:
(silver hair:1.2), very long hair, (complete twintails:1.3), ahoge - Eyes Lock:
(aqua eyes:1.2), (cyan eyes:1.1)(strictly avoiding muddy green/brown drift) - Features Lock:
cat ears, cat tail, fangs - 360Β° No-Crop Margin: Generous negative boundary penalties
(cropped:1.5), (cropped hair:1.5), touching borderensure 40px+ margin on all sides, completely eliminating severed hair edges.
2. π‘οΈ Floodfill Alpha Decoupling & 3-Layer Captioning
- Corner Floodfill: Connected-component background removal starting exclusively from the 4 outer image corners, preserving internal white hair highlights and eye reflections.
- Smooth 6px Sticker Border: Euclidean Distance Transform (EDT) generates a clean white die-cut rim.
- 3-Layer Comic Typography: Dark plum drop shadow $\rightarrow$ 4-8px crisp white stroke $\rightarrow$ vibrant hot pink fill.
- Telegram Native Compatibility: Enforces 32-bit RGBA PNG and WebP output, preventing Telegram's
Image_process_faileddocument-fallback bug.
π Quick Start
Installation
Install directly via Hermes Plugin Manager:
hermes plugins install hermes-persona-stickers
Slash Command
Generate an on-demand reaction sticker at any time:
/sticker tsundere εΌοΌζ沑ζε¨ηδ½ ε’οΌ
/sticker smug εΌεΌ~ε°θδΈη’οΌ
/sticker sigh ηζ―ζδΊδ½ δΊ...
/sticker shock ιͺδΊΊηε§οΌοΌ
/sticker happy ε₯½θΆθΆ
εΌεΏοΌ
Native Agent Tool Calling
Hermes automatically calls generate_persona_sticker whenever strong emotional banter occurs:
{
"name": "generate_persona_sticker",
"arguments": {
"emotion": "tsundere",
"text": "ζ沑ζθ’«εε°ε€΄εε’οΌ",
"size": 256,
"mode": "auto"
}
}
The tool returns a platform-native MEDIA:<path> tag that renders natively as an image bubble across Telegram, Discord, and Slack!
βοΈ Usage notes
No plugin config schema is required. Stickers are written under the active Hermes profile:
<HERMES_HOME>/plugin-data/hermes-persona-stickers/
Pass emotion, text, size (128 / 256 / 512), and mode (auto | pool | fast) as tool arguments or via /sticker.
π§ͺ Automated Testing
Run the full verification suite:
pytest test_plugin.py -v
Core suites:
test_emotion_detection: Keyword & conversational tone extractiontest_pool_sticker_rendering: Sub-50ms pre-baked asset stampingtest_fast_vector_fallback: Pure Pillow chibi drawingtest_unified_render_sticker: Graceful multi-tier fallbacktest_tool_handler: Hermes Tool Schema & media tag outputtest_input_validation: Emotion whitelist + size clamptest_profile_output_dir: Profile-aware plugin-data pathtest_hook_removed: No post_llm_call registration
π Hackathon Submission Metadata
- Competition: Nous Research Hermes Agent Plugin Hackathon (Nov 2026)
- Target Category: System & Personality Enhancement / Multimedia Experience
- Author: Eric Black & Xuewan (ιͺδΈΈ)
- License: MIT
README from the reviewed commit 7db126a; it updates when the author re-pins.

EricBlack47