Skip to content
runonweb

Text-to-Emoji

Emojify

Translate any English sentence into a short emoji sequence with a 2.4M-parameter model trained by runonweb. Loads in under a second, runs in a few milliseconds and never leaves the tab.

Try Emojify

Runs in this tab · nothing uploaded

Pick a sample or type a sentence
Try with
Emojis will appear here…
~4 MB, cached after the first load

What it does

Turn a sentence into emojis. 4 MB model.

  • Trained from scratch: a 3-layer T5 (d_model 128, 8k shared vocab) on ~490k text/emoji pairs from the Text2Emoji dataset. Recipe in training/text2emoji.
  • English input. Output is a short sequence of distinct emojis; maxEmojis caps the length (default 12).
  • Weights are self-hosted: pass modelPath: "/models/" to serve them from your own site, or model with a Hugging Face repo id.

Specifications

Package
runonweb/emoji
License
MIT
Download
~4 MB
Quantization
q8 on WASM
Backend
WASM only
Input
Text

Get started with runonweb/emoji

pnpm add runonweb
runonweb/emojits
import { Emojifier } from 'runonweb/emoji'

// 3.9 MB, served from your own /models/ folder
const emojifier = new Emojifier({ modelPath: '/models/' })
await emojifier.load()

const { text, emojis } = await emojifier.emojify('I love pizza and my dog')
// text   "🍕❤️🐶"
// emojis ["🍕", "❤️", "🐶"]

emojifier.dispose()

Same shape everywhere: construct, load(), run, dispose(). Pass onProgressto show download progress on first use.

Questions about Emojify

Does Emojify run on device?

Yes. Weights download once and stay in the browser. Nothing is sent to a server.

What does Emojify cost?

Nothing. runonweb is free and MIT-licensed, with no device limits, tokens or sign-in.

Which browsers support Emojify?

Any modern browser with WebAssembly. This model does not use WebGPU yet: it fails at session creation in ONNX Runtime Web, so runonweb pins it to WASM.

Can I use a different model with runonweb/emoji?

Yes. See each module’s docs for the options it accepts (model, size, language…). Check the license and test both backends before shipping.