Screenshot → Code · Bebilderte Anleitung

Screenshot zu Code KI kostenlos: der Open-Source-Konverter und der DeepSeek-Weg

Zwei Wege, aus einem Design-Screenshot lauffähigen Code zu machen: das MIT-lizenzierte abi/screenshot-to-code per Docker aufsetzen (ein Modelschlüssel genügt) — oder das Bild an DeepSeek hängen und als einzelne HTML-Datei nachbauen lassen. 15 Schritte, jede Aussage gegen Repository-Quelltext und api-docs.deepseek.com geprüft.

Die Kurzfassung

  • Die Software ist kostenlos, die Tokens nicht. abi/screenshot-to-code steht unter MIT und kostet im Eigenbetrieb nichts — man braucht aber mindestens einen Modelschlüssel von OpenAI, Anthropic oder Gemini, und der wird pro Token berechnet.
  • DeepSeek ist dort kein wählbares Modell. Die Default-Liste im README führt Gemini 3 Flash / 3.1 Pro, GPT-5.5 / 5.4 Mini und Claude Opus 4.6 / 4.8, und eine Suche nach "deepseek" im Repository liefert null Treffer.
  • DeepSeeks Sehmodell ist deepseek-flash: In der offiziellen Preistabelle steht bei Vision für flash ein ✓, für deepseek-v4-pro "Not supported". Bilder gehen als base64, als öffentliche URL oder als Files-API-file_id.
  • Beide Wege enden gleich — mit einer einzelnen HTML-Datei, die man per Doppelklick öffnet. Nach den veröffentlichten Flash-Preisen kostet ein Screenshot plus ein paar tausend Tokens Markup deutlich unter einem US-Cent.

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

Kanal:Fahd Mirza9:38

Öffnen

DeepSeek R1 Coding — Testing Screenshot to Code Conversion

Kanal:United Top Tech3:06

Öffnen

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

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

Öffnen

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

Doku:api-docs.deepseek.comDocs

Öffnen

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

Doku:api-docs.deepseek.comDocs

Öffnen

Die Frames stammen aus zwei sauberen Bildschirmaufnahmen (keine Kameraeinblendungen, keine eingebrannten Untertitel); unterstützte Stacks, nötige Schlüssel, Docker-Befehle und DeepSeeks Bildgrenzwerte sind gegen das abi/screenshot-to-code-README, dessen Quelldateien und api-docs.deepseek.com abgeglichen.

Screenshots werden den aufnehmenden Kanälen zugeschrieben, jeder Schritt verlinkt tief auf den exakten Zeitpunkt. Beide Aufnahmen entstanden vor den heutigen DeepSeek-Modellnamen; wo ein Frame ein älteres Label zeigt, folgt der Text der offiziellen Dokumentation.

Alle 15 Schritte: vom Screenshot zur laufenden Seite

Am Anfang steht ein Screenshot

  1. 1

    Den UI-Ausschnitt abgreifen, der nachgebaut werden soll

    Es funktioniert mit jedem stehenden Bild — die Demo des Konverters nutzt eine YouTube-Kanalseite, der DeepSeek-Weg unten ein 68 KB starkes Login-Mockup als log.PNG. Ein Screenshot schlägt jede schriftliche Beschreibung, weil Abstände, Farben und Hierarchie bereits entschieden sind: Das Modell liest sie ab, statt sie zu erfinden. Schneide nur die Komponente aus, um die es geht — ein ganzer Bildschirm verballert Tokens an Blende, die du später löschst.

    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
    Der Ausgangspunkt: ein als PNG gespeichertes Login-Card-Mockup, noch nichts umgewandelt.Ansehen bei 1:02
  2. 2

    Den Konverter öffnen und die vier Eingangswege sehen

    Nach der lokalen Installation zeigt http://localhost:5173 einen Upload-Block und drei Abkürzungen: Record Screen (ein Clip einer laufenden Seite), Enter URL plus Capture (der Konverter fotografiert eine URL selbst) und Import from Code (bestehendes HTML zum Weiterbearbeiten einfügen). Im Generating-Dropdown steht der Stack — HTML + Tailwind, HTML + CSS, React + Tailwind, Vue + Tailwind, Bootstrap oder Ionic + Tailwind. Ein Konto ist nicht im Spiel; die App redet direkt mit deinem Modellanbieter.

    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
    Die Eingangshalle der Selbstbau-Version: Dropzone, Bildschirmaufnahme, URL-Erfassung und Code-Import.Ansehen bei 4:00

Den kostenlosen Open-Source-Konverter installieren

  1. 3

    Vor der Installation das System prüfen

    Die App besteht aus einem React/Vite-Frontend und einem FastAPI-Backend, und der Docker-Weg braucht eine laufende Docker Engine. Fahd Mirza prüft zuerst mit cat /etc/*release seine Maschine — hier Ubuntu 22.04.4 LTS — weil die folgenden Befehle eine POSIX-Shell und verfügbares docker compose voraussetzen. macOS und Windows funktionieren genauso, solange Docker Desktop läuft.

    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
    Ein Zwei-Sekunden-Check: Ubuntu 22.04.4 LTS, dahinter läuft Docker Desktop.Ansehen bei 2:12
  2. 4

    Repository klonen und einen Schlüssel in backend/.env schreiben

    git clone https://github.com/abi/screenshot-to-code, dann hinein-cd und den Schlüssel in die .env-Datei schreiben, die der Compose-Stack liest — die Zeile aus dem README lautet echo "OPENAI_API_KEY=sk-your-key" > .env. Zum Start genügt ein Schlüssel; OpenAI, Anthropic und Gemini sind die drei, die das README akzeptiert, und mehr Schlüssel erlauben der App, pro Lauf eine stärkere Modelkombination zu wählen. DeepSeek steht auf dieser Liste nicht — warum die Base-URL-Override daran nichts ändert, erklärt FAQ-Frage 2.

    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
    Der Platzhalter-Schlüssel direkt aus dem README, geschrieben in die Datei, die das Backend beim Start lädt.Ansehen bei 2:55
  3. 5

    Beide Container mit einem Befehl bauen und starten

    Im Repository-Root zieht docker compose up -d --build die Basis-Images, installiert Poetry fürs Backend und die yarn-Pakete fürs Frontend und lässt beide im Hintergrund laufen. Bei leerem Cache dauert das ein paar Minuten: Die Compose-Datei mappt das Backend auf Port 7001 und das Frontend auf 5173. Das README warnt, dass dieser Weg zum Ausführen und nicht zum Entwickeln da ist — Dateiänderungen lösen keinen Neuaufbau aus.

    Command line at the root of the screenshot-to-code repository with docker compose up -d --build typed out and ready to start
    Die komplette Installation ist ein Befehl; -d stellt ihn ab, das Terminal kann zu.Ansehen bei 3:25
  4. 6

    Dem Build-Log von Backend und Frontend zusehen

    Das Log ist der nützliche Teil, wenn etwas knallt: backend 2/7 RUN pip install "poetry==1.4.1" und frontend 4/5 RUN yarn install sind die Schichten, die hinter einem Proxy oder in einem abgeschotteten Netz zuerst brechen. Wenn es hier stoppt, liegt die Lösung fast immer am Docker-DNS oder einem npm-Mirror, nicht an der App. Ist die letzte Schicht durch, antwortet localhost:5173.

    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
    Nach 20 Sekunden Build haben beide Images ihre Abhängigkeitsschichten hinter sich.Ansehen bei 3:45

Umwandeln, speichern, nachschärfen

  1. 7

    Den Screenshot hineinziehen

    Datei auf die gestrichelte Box ziehen oder klicken und den Dateiwähler öffnen; das Bild landet als ORIGINAL SCREENSHOT in der linken Leiste und bleibt dort Referenz für jede spätere Version. Dunkel oder hell ist eine Voreinstellung im Zahnrad, kein Funktionsunterschied. In diesem Zahnrad-Dialog kannst du Schlüssel auch einfügen, statt die .env anzufassen — laut README leben dort gesetzte Schlüssel nur im Browser und überschreiben die .env-Konfiguration.

    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
    Dieselbe App im dunklen Theme, wartet auf die Datei — die Dropzone ist praktisch die ganze Oberfläche.Ansehen bei 4:45
  2. 8

    Generieren und die Varianten vergleichen

    Die App lässt pro Prompt mehrere Modelle laufen, damit du ein Ergebnis auswählst, statt das erste zu akzeptieren: Option 1 und Option 2 sind Reiter über demselben Screenshot, und wie viele es sind, steht in NUM_VARIANTS in backend/config.py — vier bei Bild-, zwei bei Videoeingabe. Der Code streamt beim Entstehen in die Seitenleiste, mit einem Cancel-Knopf, falls die Richtung nicht passt. Jeder Lauf bleibt unter Versions erhalten, Experimentieren kostet also nichts.

    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
    Zwei Varianten desselben Screenshots mitten im Stream, darunter festgepinnt das Original.Ansehen bei 5:00
  3. 9

    Drei Ansichten: Desktop, Mobile, Code

    Über dem Vorschaubereich liegen drei Schalter — Desktop, Mobile und Code — und für die Übergabe zählt Code, denn dort steht das rohe Markup zum Kopieren. Reset wirft den Lauf weg, Download exportiert ihn, und unter den Varianten sitzen Update (weitere Anweisung), Regenerate (dieselbe noch einmal) und Select and update (mit einer Box markieren, was sich ändern soll). Hier hört Screenshot-zu-Code auf, eine Demo zu sein, und wird ein Bearbeitungslauf.

    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
    Die nachgebaute Seite neben den Reglern, mit denen man weiter an ihr arbeitet.Ansehen bei 5:20
  4. 10

    Das Markup als einfache .html-Datei speichern

    Den Code aus dem Code-Reiter in eine Datei kopieren — hier test.html im Ordner mycode — und damit besteht der gesamte Buildschnitt daraus. Die Ausgabe ist selbstständiges HTML mit Tailwind-Klassen, zwischen dir und der Seite stehen weder Paketinstallation noch Dev-Server. Wenn es in einen echten Komponentenbaum soll, füge es stattdessen in eine React- oder Vue-Datei ein und ziehe die Klassennamen dort um.

    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
    Eine Datei, 3,1 kB, per Rechtsklick in Firefox geöffnet.Ansehen bei 5:40
  5. 11

    Vom Datenträger öffnen und prüfen, was übrig blieb

    Die Datei direkt aus dem Dateisystem zu laden, beweist, dass das Ergebnis ohne Server läuft. Danach ehrlich gegen das ORIGINAL-SCREENSHOT-Vorschaubild vergleichen: Layout, Typo-Hierarchie und Abstände kommen meist gut rüber, angenähert werden Fremdlogos und Fotos — genau deshalb empfiehlt das README nachdrücklich einen Gemini-Schlüssel (er macht Asset-Extraction, also das Wiederverwenden der echten Bilder aus dem Screenshot) und einen Replicate-Schlüssel (Bildgenerierung und Freistellen). Was fehlt, ist ein Folgebefehl, kein Neustart.

    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
    Die konvertierte Seite läuft vom lokalen Dateisystem, Banner und Kopfzeile sind nachgebaut.Ansehen bei 6:12
  6. 12

    Mit Update-Prompt nachschärfen statt neu generieren

    Die Änderung in das Feld unter den Varianten tippen — hier "change the background color to deep blue" — und die App liefert eine neue Version statt einer neuen Seite, weshalb Versions beide hält: Create v1 und das Update als v2. Wer "Include screenshot of current version?" ankreuzt, schickt die aktuelle Renderung mit — das verhindert, dass eine Nachbesserung in ein generisches Layout zurückdriftet. Dieser Kreislauf ist der Grund, warum sich die Installation lohnt.

    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
    Einen Befehl später liegt die Änderung als v2, v1 bleibt einen Klick entfernt.Ansehen bei 6:45

Weg B: DeepSeek sieht das Bild

  1. 13

    Weg B: den Screenshot an DeepSeek hängen

    Wer nichts aufsetzen will: DeepSeek nimmt das Bild direkt im Chatprodukt — die Büroklammer fügt log.PNG hinzu, der Composer zeigt es als Anhang mit 68,14 KB, und die Anweisung ist ein Satz: "give me html and css code for this image in a single html file". Der Chip in dieser Aufnahme sagt DeepThink (R1); die Labels im Auswahlfeld ändern sich schneller als Tutorials, also vertraue dem Mechanismus, nicht der Beschriftung. Zurück kommt eine Datei, die du einfügen und öffnen kannst.

    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
    Der Screenshot im DeepSeek-Chat angehängt, darunter die Ein-Datei-Anweisung.Ansehen bei 1:22
  2. 14

    Erst den Plan lesen, dann den Code

    Das Thinking-Panel zeigt, ob das Modell wirklich hingeschaut hat: Es zählt die Überschrift "Login" auf, die Labels "User Name" und "Password", die Eingabefelder und den Submit-Knopf und entscheidet sich dann für Flexbox mit zentriertem justify-content und align-items bei 100vh Höhe. Wenn der Nachbau danebengeht, ist das die Stelle zum Hinsehen — ein Modell, das die Labels übersprang, liefert ein Formular ohne sie. Klappe es auf, und wenn die Beschreibung falsch ist, schneide den Screenshot neu und schick ihn nochmal.

    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
    Zehn Sekunden Denken: Das Modell nennt jedes Element, das es nachbauen will.Ansehen bei 1:45
  3. 15

    Vorschauen, dann den Code herausnehmen

    DeepSeek rendert die eigene Antwort in einem Vorschaumodal — die Login-Card mit übereinander gesetzten Labels, zwei Eingaben und einem blau durchgezogenen Submit-Knopf, darunter der Hinweis "AI-generated, for reference only". Es ist eine Vereinfachung, kein Klon: Die Farbverlaufsblasen und Feld-Icons des Mockups sind weg. Kopiere das HTML, speichere es als index.html und öffne es, genau wie in den Schritten 10 und 11. Der Ehrlichkeit halber: Sowohl DeepSeeks Chatprodukt als auch seine API nehmen Bilder, reine Textgeneratoren — inklusive unseres eigenen Artifact-Generators auf dieser Site — tun es nicht, also beschreibe dort die UI in Worten, statt zu erwarten, dass sie deinen Screenshot sieht.

    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
    Die nachgebaute Card in der DeepSeek-Vorschau — nah genug zum Weiterbauen, vereinfacht genug zum Nachprüfen.Ansehen bei 2:48

FAQ: Screenshot zu Code und DeepSeeks Vision-Modell

Weiterlesen