Deepseek ArtifactsDeepseek Artifacts
スクリーンショット→コード · 図解ガイド

スクリーンショットをコードに変換するAIを無料で:オープンソース変換ツールとDeepSeek視覚モデルの2ルート

1枚のデザイン画像を動くコードにする方法は2つあります。MITライセンスの abi/screenshot-to-code をDockerで立てる(モデルのAPIキーは1個でOK)、または画像をDeepSeekに渡してHTML1ファイルに再現させる。全15ステップ、記述はすべてリポジトリのソースと api-docs.deepseek.com に照合済みです。

結論から

  • ソフトは無料、トークンは無料ではない。abi/screenshot-to-code はMITライセンスで自前運用に費用はかかりませんが、OpenAI / Anthropic / Gemini のいずれかのAPIキーが1つ必要で、料金はそのプロバイダーへトークン単位で支払います。
  • DeepSeekはこのツールの選択肢に入っていません。READMEの既定モデルは Gemini 3 Flash / 3.1 Pro、GPT-5.5 / 5.4 Mini、Claude Opus 4.6 / 4.8 で、リポジトリ内を "deepseek" で検索すると該当ゼロです。
  • DeepSeekで画像を読めるモデルは deepseek-flash です。公式価格表のVision欄は flash にチェック、deepseek-v4-pro は「Not supported」。画像は base64 / 公開URL / Files API の file_id の3通りで送れます。
  • どちらのルートも終点は同じ——ダブルクリックで開けるHTML1ファイル。DeepSeek公表のFlash単価なら、スクショ1枚+マークアップ数千トークンは1セントにも届きません。

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

チャンネル:Fahd Mirza9:38

開く

DeepSeek R1 Coding — Testing Screenshot to Code Conversion

チャンネル:United Top Tech3:06

開く

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

ドキュメント:github.com/abi/screenshot-to-codeDocs

開く

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

ドキュメント:api-docs.deepseek.comDocs

開く

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

ドキュメント:api-docs.deepseek.comDocs

開く

画像は2本のクリーンな画面録画(カメラ叠加なし、焼き込み字幕なし)から抽出。対応スタック、必要なキー、Dockerコマンド、DeepSeekの画像制限は、abi/screenshot-to-code のREADME・ソースファイル・api-docs.deepseek.com に照合しました。

スクリーンショットは録画チャンネルにクレジットを付け、各ステップを該当タイムスタンプへディープリンクしています。2本とも現在のDeepSeekモデル名より前の収録なので、画面の古いラベルと本文が食い違う場合は公式ドキュメントを優先しています。

全15ステップ:スクショ1枚から動くページまで

まず1枚のスクショから

  1. 1

    再現したいUI部分を切り出す

    画像はなんでも構いません——ツール自身のデモはYouTubeチャンネルページ、後述のDeepSeekルートは log.PNG に保存した68KBのログイン画面モックアップです。スクショは文章の指定より強い。余白・色・階層がもう決まっているので、モデルは「作る」のではなく「読む」だけで済みます。気になるコンポーネントだけ切り出してください。画面全体だと、あとで消す枠にトークンを払うことになります。

    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
    出発点。PNG保存済みのログインカード。まだ何も変換していません。1:02 から見る
  2. 2

    ツールを開き、4つの入力経路を確認する

    ローカルに立てると http://localhost:5173 に、アップロード枠プラス3つの近道が並びます。Record Screen(動いているサイトを録画)、Enter URL と Capture(URLをツール側でスクショ)、Import from Code(既存HTMLを貼って編集を続ける)。Generating のドロップダウンで出力スタックを選びます——HTML + Tailwind、HTML + CSS、React + Tailwind、Vue + Tailwind、Bootstrap、Ionic + Tailwind。アカウント登録は不要で、アプリは自分のモデルプロバイダーに直接話しかけます。

    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
    セルフホスト版の顔ぶれ。ドロップゾーン、画面録画、URL撮像、コード取り込み。4:00 から見る

無料のOSS変換ツールを入れる

  1. 3

    入れる前にホストを確認

    このアプリはReact/ViteフロントエンドとFastAPIバックエンドの構成で、Dockerルートなら動くDocker Engineが要ります。Fahd Mirza さんは先に cat /etc/*release でマシンを確認しています——ここでの出力は Ubuntu 22.04.4 LTS。以降のコマンドは POSIX シェルと docker compose が前提だからです。macOS でも Windows でも、Docker Desktop が動いていれば同じように使えます。

    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
    2秒の環境確認。Ubuntu 22.04.4 LTS、後ろでDocker Desktopが稼働中。2:12 から見る
  2. 4

    リポジトリをcloneし、backend/.env にキーを1個書く

    git clone https://github.com/abi/screenshot-to-code を実行してcdし、composeが読む .env にキーを書きます。READMEの例そのものが echo "OPENAI_API_KEY=sk-your-key" > .env です。開始だけなら1キーで十分。READMEが認めるのは OpenAI / Anthropic / Gemini の3つで、増やすほどアプリは毎回より強いモデルの組み合わせを選べるようになります。DeepSeekはこの表にありません。理由はFAQの質問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
    READMEどおりのプレースホルダーキーを、バックエンドが起動時に読むファイルへ。2:55 から見る
  3. 5

    コンテナ2つを1コマンドでビルド&起動

    リポジトリ直下で docker compose up -d --build。ベースイメージを取得し、バックエンドにPoetry、フロントにyarn依存を入れ、両方をバックグラウンドで生かしたままにします。キャッシュがゼロなら数分。composeファイルはバックエンドを7001、フロントを5173に写します。READMEは「この方法は開発用ではなく実行用」と注意しています。ファイルを編集しても再ビルドされません。

    Command line at the root of the screenshot-to-code repository with docker compose up -d --build typed out and ready to start
    インストール全体が1コマンド。-d 付きなのでターミナルを閉じても動きます。3:25 から見る
  4. 6

    フロントとバックエンドのビルドログを見る

    失敗したときに役立つのがこのログです。backend 2/7 RUN pip install "poetry==1.4.1" と frontend 4/5 RUN yarn install の2層が、プロキシ配下や閉じたネットワークで一番折れます。ここで止まったら、直すのはアプリではなくDockerのDNSかnpmミラーであることが多い。最後の層が終われば 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
    ビルド開始20秒。両イメージとも依存インストールの層を通過済み。3:45 から見る

変換・保存・作り込み

  1. 7

    スクショをドロップする

    破線の枠にドラッグ、またはクリックしてピッカーを開くと、画像が左レールに ORIGINAL SCREENSHOT として残り、以降の改版すべてで参照として使われます。ダークかライトかは歯車アイコンの中の好みで、機能差はありません。その歯車ダイアログでもキーを貼れます(.env を編集しなくて済む)。READMEによると、ここで設定したキーはブラウザ内にのみ保存され、.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
    同じアプリのダークテーマ。ファイルを待つだけで、ドロップゾーンがUIのほぼ全部です。4:45 から見る
  2. 8

    生成して、バリアントを比べる

    このアプリは1つのプロンプトで複数モデルを走らせるので、「最初の1件を押しつけられる」のではなく「結果を選べ」ます。Option 1 と Option 2 は同じスクショに対するタブで、何個出るかは backend/config.py の NUM_VARIANTS 次第——画像入力が4、動画入力が2です。コードは生成されながらサイドバーに流れ込むので、方向違いなら Cancel で止められます。実行はすべて Versions に残るため、遠慮なく試せます。

    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
    同一スクショの2バリアントが生成中。下に元画像が貼り付けられています。5:00 から見る
  3. 9

    Desktop / Mobile / Code の3通りで見る

    プレビュー欄の上に3つのスイッチ——Desktop、Mobile、Code——があり、受け渡しで本当に使うのは Code です。コピー生のマークアップがここに出ます。Reset はその実行を捨て、Download は書き出し、バリアントの下には Update(別の指示を出す)、Regenerate(同じ指示を再実行)、Select and update(変えたい範囲を枠で選ぶ)が並びます。ここでスクショ変換は「デモ」から「編集ループ」に変わります。

    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
    再現されたページと、そこへ作り込むための操作群。5:20 から見る
  4. 10

    マークアップを普通の .html として保存する

    Code タブからコードをコピーしてファイルに貼る——ここでは mycode フォルダの test.html——それでビルド工程は終わりです。出力は自己完結したHTML+Tailwindクラスなので、パッケージ導入も開発サーバーも要りません。実コンポーネントツリーに入れるなら、React や Vue のファイルに貼ってクラス名をそちらに合わせます。

    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
    1ファイル3.1kB。右クリックしてFirefoxで開いたところ。5:40 から見る
  5. 11

    ローカルから開き、何が生き残ったか点検する

    ファイルシステムから直接読み込めば、バックエンド無しで動くことが確かめられます。次に ORIGINAL SCREENSHOT のサムネイルと正直に比べましょう。レイアウト、タイポの階層、余白はたいてい良く再現します。近似になるのはサードパーティのロゴと写真で、だからこそREADMEはGeminiキーを強く勧めています(アセット抽出=スクショ内の実画像を再利用する役割)、そしてReplicateキーも(画像生成と背景除去のため)。足りないものは作り直しではなく、追加の指示で足します。

    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
    ローカルファイルのまま動いた変換結果。バナーもチャンネルヘッダーも再構築されています。6:12 から見る
  6. 12

    再生成ではなく、追加指示で仕上げる

    バリアント下の欄に変更点を書きます——ここでの指示は「change the background color to deep blue」。アプリは新しいページではなく新しいバージョンを作るので、Versions には Create v1 と v2 が並んで残ります。「Include screenshot of current version?」にチェックを入れると現在の描画も一緒に送られ、微調整が汎用レイアウトへ逆戻りするのを防げます。このループがあるから、入れる価値があります。

    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
    指示1通で変更版がv2として保存され、v1もワンクリックで戻せます。6:45 から見る

ルートB:DeepSeekに画像を見せる

  1. 13

    ルートB:スクショをDeepSeekに渡す

    何も立てたくないなら、DeepSeekのチャット製品が直接画像を受け取ります。クリップから log.PNG を足すと、composer に68.14KBの添付として表示され、指示は1文で「give me html and css code for this image in a single html file」。この録画のチップは DeepThink (R1) と表示していますが、ピッカーのラベルは解説より速く変わるので、名前ではなく仕組みを信用してください。戻ってくるのは、貼って開ける1ファイルです。

    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
    DeepSeekのチャットにスクショを添付し、下に「HTML1ファイルで」と入力した状態。1:22 から見る
  2. 14

    コードより先に、計画を読む

    思考パネルが「モデルが本当に画像を見たか」の判別箇所です。Login 見出し、User Name と Password のラベル、入力欄、Submit ボタンを1つずつ挙げ、そのうえで flexbox に justify-content と align-items の中央寄せ、高さを100vh にする、と決めています。再現が崩れたらここを見る。ラベルを飛ばしたモデルは、ラベルのないフォームを返してきます。展開して、説明がずれていたらスクショを切り直して送り直してください。

    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
    10秒の思考。再現する要素を順番に名前上げしています。1:45 から見る
  3. 15

    プレビューしたら、コードを取り出す

    DeepSeekは自分の回答をプレビューモーダルで描画します——ラベル上置き・入力2つ・全幅の青いSubmitボタンで再構築されたログインカードで、下部に「AI-generated, for reference only」。複製ではなく簡略版で、モックのグラデーション滲みとフィールドのアイコンは消えています。HTMLをコピーして index.html として保存し、開けばよい。手順10・11と同じです。はっきり書いておくと、DeepSeekのチャット製品とAPIはどちらも画像を受け取りますが、テキスト専用の生成器——当サイトのartifact生成器も含めて——は受け取りません。あの類では画像を見せると期待せず、UIを文章で指定してください。

    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
    DeepSeekプレビュー内の再構築カード。続ければ作れる水準で、簡略化もされているので要確認です。2:48 から見る

スクショ→コードとDeepSeek視覚モデルのFAQ

続けて読む