| Type | Format | Resolution | Transparent | Max Duration | Max File |
|---|---|---|---|---|---|
| ------ | -------- | ----------- | ------------- | ------------- | --------- |
| Static | PNG or WebP | 512×512 | Required | — | 512 KB |
| Video | WebM VP9 (yuva420p) | 512×512 | Required | 3 sec | 256 KB |
| Animated | TGS (Lottie) | 512×512 | Required | 3 sec | 64 KB |
> TGS = vector only. Never attempt TGS from raster/PNG — impossible under 64KB compressed. Requires original layered vector artwork in After Effects. For NFT/photo art → use WebM video stickers.
For most requests, use sticker.py which handles the full pipeline in one command:
# Static PNG sticker
python3 scripts/sticker.py <image>
# Animated WebM sticker
python3 scripts/sticker.py <image> --animate sway # gentle side-to-side
python3 scripts/sticker.py <image> --animate bounce # energetic bounce
python3 scripts/sticker.py <image> --animate shake # fast hype jitter
# Skip upload (local file only)
python3 scripts/sticker.py <image> --animate sway --no-upload
Output: (static) or + tmpfiles.org download URL (animated).
Use these when you need fine-grained control or are processing in bulk.
python3 scripts/make_sticker.py <input_image> [output.png]
~/.u2net/u2net.onnx after first run — ~170MB download)python3 scripts/animate_sway.py <sticker.png> [--fps 24] [--duration 2.0] [--shift 18] [--angle 4] [--outdir frames_sway]
python3 scripts/animate_bounce.py <sticker.png> [--fps 24] [--duration 1.5] [--height 20] [--outdir frames_bounce]
python3 scripts/animate_shake.py <sticker.png> [--fps 24] [--duration 1.0] [--intensity 10] [--outdir frames_shake]
Input must be a processed 512×512 transparent PNG (output of make_sticker.py).
python3 scripts/make_webm.py <frames_dir> [output.webm] [--fps 24] [--duration 2.0] [--no-upload]
-loop 0 — GIF flag, breaks WebMAfter generating the file, upload via tmpfiles.org (already handled by make_webm.py / sticker.py):
curl -s -F "file=@sticker.png" https://tmpfiles.org/api/v1/upload
# Returns JSON → insert /dl/ after tmpfiles.org/ in the URL for direct download
See references/stickers-bot-guide.md for full @Stickers bot step-by-step.
Key rule: always send sticker files to @Stickers bot as a Document, not a photo. Telegram compresses photos to JPEG and destroys transparency.
| Pack type | Bot command | File format |
|---|---|---|
| ----------- | ------------ | ------------- |
| Static | /newpack | PNG sent as Document |
| Video stickers | /newvideo | WebM sent as Document |
Static and video packs are separate — cannot mix types in one pack.
pip install "rembg[cpu]" Pillow numpy
# ffmpeg with libvpx-vp9 (system-wide install)
sticker.py runs a dependency check on startup and prints install hints if anything is missing.
共 1 个版本