2026-08-23
What Discord and Twitch actually require from a photo-based emote or sticker — and where the cutout comes from
Community chat runs on inside jokes, and the best raw material for an inside joke is a real photo — your own exaggerated expression, your cat mid-yawn, the group's mascot object. That's why "how do I turn a photo into a Discord emoji" and "photo emote for my stream" are perennial searches. The mechanics have two halves: what each platform actually accepts as an upload, and how you get a photo into that shape. The first half has concrete, published answers — Discord's own help center spells its specs out, down to the byte. The second half is where a background cutout comes in, because a photo pasted into chat as a rectangle, kitchen wall and all, reads as a picture; the same face cut out clean reads as an emote.
What the platforms actually accept
| Upload | Published spec | Slots / who can upload |
|---|---|---|
| Discord custom emoji | "Custom emojis must be under 256KB in size and use supported formats like JPEG, PNG, GIF, or WEBP," per Discord's help center. Names need at least 2 characters, alphanumeric and underscores only. | 50 static per server, and 50 more animated slots on servers with Nitro/Nitro Basic. Uploading takes the server owner or a member with Manage Emojis / Create Expressions permission. |
| Discord sticker | Discord's sticker-creator FAQ is unusually exact: static stickers must be PNG, animated ones APNG, max file size 512KB, and dimensions "320px x 320px (exact)" — not a maximum, the required size. In desktop chat they render at about 160×160. | 5 slots on every server by default, growing with Boost levels up to 60 at level 3. Sticker management is desktop-only, and an uploaded sticker can't be edited afterward — only deleted and replaced. |
| Twitch emote | On the serving side Twitch's developer docs are unambiguous: every emote is delivered to chat at three fixed sizes — 28×28, 56×56, and 112×112 pixels. The creator-side upload rules live in Twitch's emote-guidelines help page, which is where to check the current upload flow for your channel. | Emote slots are a channel/partner-program matter — check Twitch's own guidelines; they change with status. |
Discord's own advice: cut the background out
You don't have to take a background-removal tool's word for why transparency matters here. Discord's sticker-creator FAQ says it directly: "Due to their uniqueness, stickers are often created with transparent backgrounds," and its how-to list includes "Make sure your background layer is transparent when saving the image" and — verbatim — "Cutting the background out with a photo editing tool." The practical reason is visible in any server: chat backgrounds are dark for most users and light for others, so an emote or sticker that ships its own rectangle of photo background shows up as exactly that — a rectangle, in whichever color clashes with the theme. A transparent PNG has no rectangle; only the subject lands in chat. The alpha channel is a property of the PNG file itself, which is why one clean cutout works across Discord emoji, Discord stickers, and anywhere else that takes a PNG.
The real design constraint: 28 pixels
The harder, less-discussed constraint isn't the file format — it's the render size. Twitch serves emotes at 28×28 in standard chat; Discord emoji in the flow of a message are in the same tiny-glyph class, and even Discord's comparatively large stickers render at roughly 160×160 on desktop. At those sizes, a full-body photo cutout becomes an unreadable sliver. This is why photo emotes that work are almost always a tight crop of a face or a single object filling the frame — Discord's own sticker advice is to make the subject "take up as much canvas space as possible."
Where NearBG fits — and the steps it deliberately doesn't do
NearBG covers exactly one step of this pipeline: turning the photo into a clean transparent-PNG cutout, on-device. The photo — usually a face, often your face — is processed by a segmentation model running in your browser and is never uploaded anywhere; for the single most personal image category there is, that's a meaningful difference from routing it through a cloud cutout service. After the automatic pass, the touch-up brush erases what the model got wrong (a patch of wall, a stray shoulder fragment), with a size slider and a reset, and you download a PNG with real alpha transparency.
The boundaries, stated as plainly as this blog always states them. NearBG has no resize or crop step — and Discord's sticker spec demands exactly 320×320, so hitting that number is a separate edit in any image editor before upload (for emoji, Discord's own upload flow partly covers this: its Emoji Studio, per the help center, lets you resize, rotate, and zoom the image as you add it — though it's desktop-only). File size is on you too: a cutout PNG saved at a phone camera's full resolution can exceed the 256KB emoji cap or 512KB sticker cap, which is another reason to downscale before uploading. NearBG makes static PNGs only — animated emoji (GIF) and animated stickers (APNG) are out of its scope entirely. It processes one photo at a time, so an emote pack means one pass per image. And the model's known limit applies: fine hair and fur edges come out simplified — at 28 pixels nobody will see that, but on a 320-pixel sticker of a fluffy cat you may want a brush pass, and the full story is in this blog's hair post.
A practical workflow
- Shoot or pick a photo where the subject is big in the frame and the background contrasts with it — the same conditions that help any segmentation model.
- Run it through NearBG, zoom in, and clean the silhouette with the touch-up brush before downloading — a leftover background chip is far more visible against Discord's dark theme than against the checkerboard preview.
- Downscale and crop the PNG in any image editor: exactly 320×320 for a Discord sticker (under 512KB), small-and-tight for an emoji (under 256KB). Preview it at real chat size — if the expression doesn't read when tiny, crop tighter and try again.
- Upload per platform: Server Settings → Emoji or Stickers on Discord (stickers: desktop-only, and not editable after upload — get the file right first), and via your dashboard's emote flow on Twitch, checking Twitch's current emote guidelines.
The honest summary
The specs here aren't folklore: Discord publishes them — emoji under 256KB in JPEG/PNG/GIF/WEBP, stickers as PNG/APNG at exactly 320×320 under 512KB, slot counts tied to Nitro and Boost levels — and Twitch's developer docs fix the three sizes chat is served: 28, 56, 112. Discord's own creator advice includes cutting the background out with a photo editing tool. NearBG is that step and only that step: an on-device cutout with a touch-up brush, one photo at a time, nothing uploaded — with sizing to each platform's exact numbers left to an image editor, and animation out of scope. For a photo of your own face becoming a public emote, doing the cutout without the photo leaving your device is the part NearBG is built to guarantee.