NearBG

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

UploadPublished specSlots / 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 stickerDiscord'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 emoteOn 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."

Discord sticker upload: 320×320 (exact) renders ~160×160 in desktop chat Twitch emote sizes 112×112 56×56 28×28 = standard chat
Drawn at true pixel ratios: Discord's exact 320×320 sticker upload (rendering at about 160×160 in desktop chat, dashed) next to the three fixed sizes Twitch serves emotes at. The 28×28 square — what standard chat actually shows — is the one your cutout has to survive.

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.

Sponsored
← NearBG

This page shows ads only if you consent.