Como o Forgemoji funciona
Cada emoji gerado pelo Forgemoji passa pelo mesmo pipeline de cinco etapas, não importa se você usa o modo simples de "escolher dois emojis" ou o modo foto-para-emoji. O processo todo leva de 10 a 20 segundos, com a maior parte gasta esperando uma única chamada de geração de imagem.
Somos deliberadamente transparentes sobre como funciona, porque o modelo não é mágica. A maioria das falhas é previsível uma vez que você sabe o que o pipeline está fazendo, e quando você sabe disso, a escolha certa de prompt é óbvia.
O pipeline, passo a passo
- Montagem do prompt
Dois emojis são passados para um construtor de prompts. O construtor busca o nome curto oficial Unicode de cada emoji e compõe um único prompt em inglês que combina os dois. Se você trocou o idioma de entrada no seletor, o prompt é traduzido primeiro por uma pequena tabela interna (sem chamada de LLM).
- Geração de imagem
O prompt vai para um modelo de texto para imagem. A saída é 1024×1024. Rodamos um modelo primário e um secundário com roteamento por prompt; não expomos qual modelo atendeu uma requisição específica.
- Remoção de fundo
Um modelo rembg separado remove o fundo. O passo rembg roda em um worker GPU independente, então se sobrepõe com a próxima requisição.
- Redimensionamento e formato
O 1024×1024 transparente e limpo é redimensionado para 256×256 com reamostragem Lanczos. O PNG de 256×256 é o que a maioria das plataformas de chat esperam para emojis personalizados.
- Animação opcional
Se você ativou a exportação animada, o PNG de 256×256 passa por um pequeno modelo de síntese de movimento que produz um loop de 24 quadros a 12 fps. Suportamos 6 estilos: bob, sway, sparkle, glow, wiggle e pulse. A animação adiciona 8-12 segundos ao tempo base de geração.
Por baixo dos panos
Mais alguns detalhes fáceis de pular mas que importam para entender o que o pipeline faz e o que não faz. Se você só se importa com o fluxo geral, a seção anterior é suficiente. Se quiser entender os modos de falha (que é a única forma de escolher bons prompts), leia esta seção. Mais contexto na página about.
O modelo de texto para imagem não é um mecanismo de busca. Ele não "sabe" o que é 🐱 + 🌈 recuperando uma imagem, ele amostra pixels condicionado pelo prompt. Duas requisições idênticas produzem saídas diferentes porque a semente de ruído latente é diferente.
O modelo rembg foi treinado em imagens naturais. Funciona em emojis estilo kawaii porque eles têm silhuetas bem definidas, mas não é perfeito: contornos muito finos às vezes são parcialmente comidos. Se vir um halo semitransparente estranho, regenere.
O pipeline roda como uma sequência de workers GPU independentes. Não há fila de lotes no caminho do usuário, cada requisição recebe uma alocação nova. O worker rembg é o gargalo nas horas de pico.
Não armazenamos o emoji gerado. A imagem volta para o seu navegador como um PNG codificado em base64 dentro da resposta JSON. O prompt original e a saída do modelo são registrados por 30 dias para detecção de abuso e depois apagados.
O tráfego do plano gratuito e do Pro compartilham o mesmo pool de GPU. Pro é mais rápido na prática em horário de pico só porque nós descartamos a carga do gratuito primeiro quando a fila acumula.
A UI do seletor não faz parte do pipeline de geração. Roda inteiramente no seu navegador, persiste as últimas 50 gerações no localStorage e envia o par escolhido para a API.
Dicas para resultados melhores
- Escolha o segundo emoji com cuidado. O primeiro emoji é o "sujeito", define o formato do corpo, a cor dominante e o rosto. O segundo é o "modificador", contribui com traços pequenos (chapéu, acessório, padrão). Pares em que os dois pesam igual tendem a sair embaçados.
- Evite pares abstratos ou contraditórios. 🌀 + 💎 ou 📜 + 🚀, o modelo não vai saber qual traço enfatizar, então o resultado vai parecer uma média borrada. Se o par soa como uma piada ruim, o modelo vira uma imagem ruim.
- Regenere agressivamente. A 4ª ou 5ª tentativa no mesmo par costuma ser a melhor. A aleatoriedade do modelo é uma feature, não um bug. Trate as 2-3 primeiras gerações como aquecimento.
- Use o modo foto para emojis de rosto. O estilo 🧑 + 📸 é no que o seletor é melhor. Coisas como 🦄 + 🌈 também são fortes porque ambos têm referências kawaii bem definidas nos dados de treino.
Limitações conhecidas
A maior limitação é a renderização de texto. O modelo não soletra palavras, então um par que inclua 🔤 ou 🅰️ vai produzir formas que vagamente parecem letras mas não são legíveis.
Modificadores de tom de pele (variantes da escala Fitzpatrick) não são tratados. O modelo escolhe o tom que o prior latente dele preferir, e você não consegue influenciar pelo seletor.
Bandeiras de países (🏳️🌈 etc.) também não são tratadas. Tentamos workarounds do lado do prompt e todos produziam resultados piores do que simplesmente não gerar.
Uma nota para engenheiros
engineerNoteP1
Atualmente não publicamos um SDK. O endpoint é pequeno o bastante para ser chamado diretamente com fetch. Vamos publicar um quando a API estabilizar.
Privacidade e dados
O pipeline não grava seu emoji em disco. O prompt que você enviou e a resposta são registrados separadamente por 30 dias, depois apagados. As regras completas de tratamento de dados estão na política de privacidade.
A equipe editorial da Forgemoji·Engenharia e pipeline
Revisado em 2 de maio de 2026
Como escrevemos isto: Esta página documenta o pipeline v2 em maio de 2026. Versões anteriores do pipeline (Qwen-Image-2510 + rembg-1.4) se comportavam de forma diferente em bordas finas e não estão mais em produção. Atualizamos esta página quando o pipeline muda, não em um cronograma fixo.
Fontes: Documentação interna do pipeline e changelog.