All plugins

hermes-persona-stickers

Instant persona-aware emotion reaction stickers for Hermes: stamps pre-baked chibi bases with comic captions in about 13 ms, and falls back to a pure Pillow vector path when the pool misses. Slash command /sticker and tool generate_persona_sticker return MEDIA:<path> PNG/WebP. Disclosure: writes sticker PNG/WebP files under the active profile at get_hermes_home()/plugin-data/hermes-persona-stickers; no third-party network, no telemetry, no self-update, no shell commands; ships pre-baked RGBA persona assets in-repo.

EricBlack47Toolsv1.0.1Updated 4 hours ago

About

Instant persona-aware emotion reaction stickers for Hermes: stamps pre-baked chibi bases with comic captions in about 13 ms, and falls back to a pure Pillow vector path when the pool misses. Slash command /sticker and tool generate_persona_sticker return MEDIA:<path> PNG/WebP. Disclosure: writes sticker PNG/WebP files under the active profile at get_hermes_home()/plugin-data/hermes-persona-stickers; no third-party network, no telemetry, no self-update, no shell commands; ships pre-baked RGBA persona assets in-repo.

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 border ensure 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_failed document-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 extraction
  • test_pool_sticker_rendering: Sub-50ms pre-baked asset stamping
  • test_fast_vector_fallback: Pure Pillow chibi drawing
  • test_unified_render_sticker: Graceful multi-tier fallback
  • test_tool_handler: Hermes Tool Schema & media tag output
  • test_input_validation: Emotion whitelist + size clamp
  • test_profile_output_dir: Profile-aware plugin-data path
  • test_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.