Captura de tela → código · Guia ilustrado

Screenshot to code com IA grátis: o conversor open source e o caminho do DeepSeek Vision

Dois caminhos para transformar uma captura de tela em código que roda de verdade: instalar o abi/screenshot-to-code (licença MIT) com Docker e uma única chave de modelo, ou anexar a imagem ao DeepSeek e pedir que ele a reconstrua como um só arquivo HTML. 15 passos, cada afirmação conferida no repositório e no api-docs.deepseek.com.

O resumo

  • O software é grátis, os tokens não. O abi/screenshot-to-code é MIT e não custa nada rodar por conta própria, mas exige pelo menos uma chave de modelo —OpenAI, Anthropic ou Gemini—, cobrada por token por esse provedor.
  • DeepSeek não está entre os modelos dele. A lista padrão do README traz Gemini 3 Flash / 3.1 Pro, GPT-5.5 / 5.4 Mini e Claude Opus 4.6 / 4.8, e a string "deepseek" não aparece em nenhum arquivo do repositório.
  • O modelo que enxerga no DeepSeek é o deepseek-flash: na tabela de preços oficial, a linha Vision mostra ✓ no flash e "Not supported" no deepseek-v4-pro. As imagens entram em base64, por URL pública ou por file_id da Files API.
  • Os dois caminhos terminam do mesmo jeito: um arquivo HTML que você abre com dois cliques. Pelas tarifas Flash publicadas, uma captura mais alguns milhares de tokens de marcação saem por bem menos de um centavo de dólar.

Install Screenshot-to-Code Locally — Convert Screenshot to Functional Code

Canal:Fahd Mirza9:38

Abrir

DeepSeek R1 Coding — Testing Screenshot to Code Conversion

Canal:United Top Tech3:06

Abrir

abi/screenshot-to-code README — supported stacks, required keys, Docker

Docs:github.com/abi/screenshot-to-codeDocs

Abrir

DeepSeek API Docs — Vision (base64, external URL, Files API)

Docs:api-docs.deepseek.comDocs

Abrir

DeepSeek API Docs — Models & Pricing (the Vision row)

Docs:api-docs.deepseek.comDocs

Abrir

As imagens vêm de duas gravações de tela limpas (sem câmera embutida, sem legenda queimada); as stacks suportadas, as chaves exigidas, os comandos do Docker e os limites de imagem do DeepSeek foram conferidos no README do abi/screenshot-to-code, nos arquivos-fonte e no api-docs.deepseek.com.

As capturas dão crédito aos canais que gravaram e cada passo aponta para o timestamp exato. As duas gravações são anteriores aos nomes de modelo atuais do DeepSeek: quando um quadro mostra um rótulo antigo, o texto segue a documentação oficial.

Os 15 passos, de uma captura a uma página que abre

Comece por uma captura

  1. 1

    Capture o trecho de interface que quer reconstruir

    Qualquer imagem parada serve — a demo da própria ferramenta usa uma página de canal do YouTube, e o caminho DeepSeek aqui embaixo usa um mockup de login de 68 KB salvo como log.PNG. Uma captura ganha de um briefing escrito porque espaçamento, cor e hierarquia já estão decididos: o modelo lê em vez de inventar. Recorte só o componente que importa; tela cheia queima token em moldura que você vai apagar depois.

    Login form mockup saved as log.PNG and opened in the Windows Photos app, the kind of flat design screenshot you hand to an AI model to have rebuilt
    O ponto de partida: um cartão de login salvo em PNG, nada convertido ainda.Ver em 1:02
  2. 2

    Abra o conversor e veja as quatro entradas possíveis

    Depois da instalação local, http://localhost:5173 entrega uma caixa de upload e três atalhos: Record Screen (gravar um site no ar), Enter URL com Capture (a ferramenta captura uma URL sozinha) e Import from Code (colar HTML existente para continuar editando). O dropdown Generating escolhe a stack —HTML + Tailwind, HTML + CSS, React + Tailwind, Vue + Tailwind, Bootstrap ou Ionic + Tailwind—. Nenhuma conta entra na história; o app fala direto com o seu provedor de modelo.

    Screenshot to Code running on localhost:5173 with HTML + Tailwind selected and all four input paths visible: the drag and drop box, Record Screen, Enter URL with Capture, and Import from Code
    A porta de entrada da versão self-hosted: zona de arraste, gravação de tela, captura por URL e importação de código.Ver em 4:00

Instale o conversor open source gratuito

  1. 3

    Confira a máquina antes de instalar

    O app é um frontend React/Vite com um backend FastAPI, e o caminho do Docker precisa de um Docker Engine funcionando. Fahd Mirza checa primeiro a máquina com cat /etc/*release —aqui Ubuntu 22.04.4 LTS—, porque os comandos seguintes assumem um shell POSIX e docker compose disponível. macOS e Windows servem igual, desde que o Docker Desktop esteja rodando.

    Ubuntu terminal printing cat /etc/*release down to PRETTY_NAME Ubuntu 22.04.4 LTS, the host check to run before installing screenshot-to-code with Docker
    Uma checagem de dois segundos: Ubuntu 22.04.4 LTS com o Docker Desktop por trás.Ver em 2:12
  2. 4

    Clone o repositório e coloque uma chave no backend/.env

    Rode git clone https://github.com/abi/screenshot-to-code, entre na pasta e escreva a chave no arquivo .env que o stack do Compose lê —a linha do README é exatamente echo "OPENAI_API_KEY=sk-your-key" > .env. Uma chave basta para começar; OpenAI, Anthropic e Gemini são as três aceitas, e adicionar mais deixa o app escolher uma combinação de modelos mais forte a cada geração. DeepSeek não está nessa lista, e a pergunta 2 das FAQ explica por que o override de OpenAI Base URL não muda isso.

    Terminal inside the cloned screenshot-to-code folder writing echo OPENAI_API_KEY=sk-your-key into the backend .env file, still holding the placeholder key from the README
    A chave de exemplo do README, escrita no arquivo que o backend carrega ao subir.Ver em 2:55
  3. 5

    Construa e suba os dois contêineres com um comando

    Na raiz do repositório, docker compose up -d --build baixa as imagens base, instala Poetry para o backend e os pacotes yarn para o frontend, e deixa os dois rodando em segundo plano. Com cache vazio espere alguns minutos: o arquivo Compose publica o backend na porta 7001 e o frontend na 5173. O README avisa que esse caminho é para rodar, não para desenvolver — mexer em arquivos não dispara rebuild.

    Command line at the root of the screenshot-to-code repository with docker compose up -d --build typed out and ready to start
    A instalação inteira é um comando; com -d ele fica solto e você pode fechar o terminal.Ver em 3:25
  4. 6

    Acompanhe o build das camadas de backend e frontend

    O log é a parte útil quando algo quebra: backend 2/7 RUN pip install "poetry==1.4.1" e frontend 4/5 RUN yarn install são as camadas que estouram atrás de proxy ou em rede travada. Se parar aí, o conserto quase sempre está no DNS do Docker ou num mirror de npm, não no app. Quando a última camada termina, localhost:5173 começa a responder.

    Docker build log for screenshot-to-code at 20.2 seconds, backend layer 2 of 7 installing poetry 1.4.1 while frontend layer 4 of 5 runs yarn install
    Vinte segundos de build e as duas imagens já passaram das camadas de dependência.Ver em 3:45

Converta, salve, refine

  1. 7

    Arraste a captura para dentro

    Solte o arquivo na caixa tracejada ou clique para abrir o seletor; a imagem aparece na coluna da esquerda como ORIGINAL SCREENSHOT e fica ali como referência para todas as versões seguintes. Claro ou escuro é preferência no ícone de engrenagem, não diferença de funcionamento. É nessa mesma caixa de configuração que você pode colar as chaves sem tocar no .env — o README informa que chaves definidas ali só vivem no seu navegador e sobrepõem a configuração do .env.

    Screenshot to Code switched to dark mode with the dashed Drag and drop a screenshot here box empty and HTML + Tailwind still set as the generating target
    O mesmo app em tema escuro, esperando o arquivo — a zona de arraste é quase toda a interface.Ver em 4:45
  2. 8

    Gere e compare as variantes

    O app roda mais de um modelo por prompt para você escolher um resultado em vez de aceitar o primeiro: Option 1 e Option 2 são abas sobre a mesma captura, e quantas aparecem vem de NUM_VARIANTS em backend/config.py —quatro com entrada de imagem, duas com vídeo. O código entra na barra lateral enquanto é produzido, com um botão Cancel para quando a direção está errada. Cada execução fica guardada em Versions, então experimentar não custa nada.

    Screenshot to Code mid-generation with Option 1 highlighted over Option 2, a Cancel button under the Generating code spinner, and the uploaded page held as ORIGINAL SCREENSHOT above Create v1
    Duas variantes da mesma captura no meio do stream, com o original fixado embaixo.Ver em 5:00
  3. 9

    Três leituras: Desktop, Mobile e Code

    O painel de preview tem três chaves —Desktop, Mobile e Code—, e para entregar o trabalho a que importa é Code, porque mostra o markup bruto que você copia. Reset descarta a execução, Download exporta, e abaixo das variantes ficam Update (mandar outra instrução), Regenerate (repetir a mesma) e Select and update (marcar com um retângulo o trecho a mudar). É aqui que screenshot-to-code deixa de demo e vira um laço de edição.

    Rebuilt channel banner page rendered inside the Screenshot to Code preview pane, with Desktop, Mobile and Code switches top right and Reset, Download, Regenerate and Select and update around it
    A página reconstruída ao lado dos controles para continuar mexendo nela.Ver em 5:20
  4. 10

    Salve o markup como um .html simples

    Copie o código da aba Code para um arquivo —aqui test.html dentro da pasta mycode— e é aí que termina todo o passo de build. A saída é HTML autossuficiente com classes Tailwind, então não há instalação de pacotes nem dev server entre você e a página. Se quiser dentro de uma árvore de componentes de verdade, cole num arquivo React ou Vue e readapte os nomes de classe lá.

    Ubuntu Files window in the mycode folder with a 3.1 kB test.html selected and the right-click menu open on Open With Firefox
    Um arquivo, 3,1 kB, aberto no Firefox pelo botão direito.Ver em 5:40
  5. 11

    Abra do disco e veja o que sobreviveu

    Carregar o arquivo direto do sistema de arquivos prova que o resultado roda sem servidor nenhum. Compare então sem indulgência com a miniatura ORIGINAL SCREENSHOT: layout, hierarquia tipográfica e espaçamento costumam atravessar bem, enquanto logos e fotos de terceiros são o que vira aproximação — exatamente por isso o README recomenda com força uma chave Gemini (ela faz a extração de assets, reaproveitando as imagens reais da captura) e uma chave Replicate (geração de imagem e remoção de fundo). O que faltar é mais uma instrução, não um recomeço.

    The generated markup opened as a plain local file at file:///home/Ubuntu/mycode/test.html, showing the rebuilt HELPING YOU BECOME AI CLOUD ENGINEER page with no server behind it
    A página convertida rodando do sistema de arquivos local, com banner e cabeçalho reconstruídos.Ver em 6:12
  6. 12

    Refine com prompt de atualização, sem regenerar

    Digite a mudança na caixa abaixo das variantes —aqui "change the background color to deep blue"— e o app produz uma versão nova em vez de uma página nova, então Versions guarda as duas: Create v1 e a atualização como v2. Marcar "Include screenshot of current version?" envia também o render atual, que é o que impede um ajuste de escorregar de volta para um layout genérico. Esse laço é o motivo pelo qual instalar vale a pena.

    Screenshot to Code Versions list after one refinement, change the background color to deep blue stored as v2 above Create v1 while new HTML streams into the preview
    Uma instrução depois, o ajuste fica salvo como v2 e v1 continua a um clique.Ver em 6:45

Caminho B: o DeepSeek olha a imagem

  1. 13

    Caminho B: anexe a captura no DeepSeek

    Se você não quiser instalar nada, o DeepSeek recebe a imagem direto no produto de chat: o clipe adiciona o log.PNG, o compositor mostra como anexo de 68,14 KB, e a instrução é uma frase —"give me html and css code for this image in a single html file". O chip desta gravação diz DeepThink (R1); os rótulos do seletor mudam mais rápido que os tutoriais, então confie no mecanismo, não na etiqueta. O que volta é um arquivo que você cola e abre.

    chat.deepseek.com composer holding an attached log.PNG of 68.14KB with the DeepThink chip on and the paperclip button used to add the screenshot
    A captura anexada no chat do DeepSeek, com abaixo o pedido de um único arquivo HTML.Ver em 1:22
  2. 14

    Leia o plano antes do código

    O painel de raciocínio é onde dá para saber se o modelo realmente olhou: ele enumera o título "Login", os rótulos "User Name" e "Password", os campos de entrada e o botão Submit, e então escolhe flexbox com justify-content e align-items centralizados em 100vh de altura. Quando a reconstrução sai errada, é aí que se olha — um modelo que pulou os rótulos devolve um formulário sem rótulos. Expanda, e se a descrição estiver torta, recorte de novo a captura e reenvie.

    DeepSeek Thought for 10 seconds panel working through the attached mockup, naming the Login heading, the User Name and Password labels and the Flexbox centering it plans to write
    Dez segundos de raciocínio: o modelo nomeia cada elemento que pretende reproduzir.Ver em 1:45
  3. 15

    Veja o preview e tire o código

    O DeepSeek renderiza a própria resposta numa modal de preview —o cartão de login reconstruído com rótulos empilhados, dois campos e um Submit azul de largura total, sob o aviso "AI-generated, for reference only". É simplificação, não clone: os halos de degradê e os ícones dos campos do mockup sumiram. Copie o HTML, salve como index.html e abra, exatamente como nos passos 10 e 11. Para ser franco: tanto o chat do DeepSeek quanto a API dele aceitam imagens, mas geradores só de texto —incluindo o gerador de artefatos deste site— não aceitam; nesses, descreva a interface por palavras em vez de esperar que ela veja a sua captura.

    DeepSeek HTML preview modal showing the rebuilt login card with User Name and Password fields and a full-width blue Submit button, captioned AI-generated for reference only
    O cartão reconstruído dentro do preview do DeepSeek: perto o bastante para continuar, simplificado o bastante para conferir.Ver em 2:48

Perguntas sobre screenshot to code e o modelo Vision do DeepSeek

Continue