デザイン画像を手打ちでマークアップする時間を、AIに任せられます。

この記事では、スクリーンショットやFigmaデザイン、画面録画からフロントエンドのコードを生成するオープンソース「Screenshot to Code」の機能と使い方を解説します。

この記事でわかること

  • Screenshot to Codeが解決する課題と対応スタック
  • Gemini・GPT・Claudeを切り替えて使う方法
  • セルフホストと公式ホスト版の違い
  • 画面録画からプロトタイプを作る仕組み

Screenshot to Codeとは

https://github.com/abi/screenshot-to-code

Screenshot to Codeは、UIのスクリーンショットやモックアップ、Figmaデザイン、画面録画をAIで解析し、動くフロントエンドコードに変換するツールです。GitHubリポジトリはMITライセンスで公開されており、2026年6月時点でスター数は7万3000超です。2023年11月に公開され、フロントエンド開発の入り口を短縮するOSSとして注目を集めています。

公式のホスト版は screenshottocode.com から利用できます。APIキーの設定なしで試せる一方、カスタマイズや自社環境での運用にはGitHub版のセルフホストが向いています。

どんな課題を解決するか

デザインから実装へ移るとき、最初のマークアップ作業がボトルネックになりやすいです。レイアウトの骨組み、配色、コンポーネントの配置を一から書くと、実装の大半が「見た目の再現」に費やされます。

Screenshot to Codeは、ビジョン対応の大規模言語モデル(LLM)に画像を渡し、HTMLやReactなどのコードを生成します。生成結果はブラウザ上でプレビューでき、自然言語での修正指示にも対応します。デザインの初稿を素早くコードに落とし込み、人間がロジックや細部を詰める流れに使えます。

対応スタックと入力形式

READMEに記載された対応スタックは次のとおりです。

  • HTML + Tailwind
  • HTML + CSS
  • React + Tailwind
  • Vue + Tailwind
  • Bootstrap
  • Ionic + Tailwind

入力はスクリーンショットやモックアップ画像に加え、Figmaデザインの取り込みにも対応しています。さらに、Webサイトの操作を録画した動画をアップロードし、動くプロトタイプへ変換する機能も備えています。静止画では拾えない画面遷移や操作の流れを、コードのたたき台にできます。

対応AIモデルとGeminiの強み

コード生成には複数のAIモデルを使えます。READMEでは次のモデルがデフォルトとして挙げられています。

  • Gemini 3 Flash Preview、Gemini 3.1 Pro Preview
  • GPT-5.5、GPT-5.4 Mini
  • Claude Opus 4.6、Claude Opus 4.8

OpenAI、Anthropic、Googleのいずれか1つ以上のAPIキーが必要です。複数のキーを登録すると、同じ入力に対して異なるモデルの結果を並べて比較できます。

READMEではGeminiの利用を強く推奨しています。理由は2つあります。1つ目は、コード生成の精度が高い点です。2つ目は、スクリーンショット内のロゴや画像をGeminiが抽出し、生成コードに実素材として再利用する機能です。架空のプレースホルダー画像ではなく、元デザインに近い見た目を保ちやすくなります。画面録画モードの利用にもGeminiキーが必要です。

画像の編集や背景除去にはReplicateのAPIキーが推奨されています。REPLICATE_API_KEYを設定すると、画像生成や背景除去ツールが使えます。

セルフホストの手順

ローカル実行はReact/ViteのフロントエンドとFastAPIのバックエンドで構成されています。バックエンドはPoetryで依存関係を管理し、フロントエンドはYarnで起動します。

バックエンドの.envにAPIキーを設定します。

OPENAI_API_KEY=sk-your-key
ANTHROPIC_API_KEY=your-key
GEMINI_API_KEY=your-key
REPLICATE_API_KEY=r8_your-key

バックエンドはポート7001、フロントエンドはポート5173で動作します。Docker Composeでの一括起動にも対応しており、ルートディレクトリで.envを置いてdocker-compose upするだけで試せます。

フロントエンドの設定画面(歯車アイコン)からもOpenAI、Anthropic、Geminiのキーを登録できます。Replicateキーはバックエンドの.envでのみ設定可能です。

スクリーンショットプレビュー機能

バックエンドにChromium(Playwright)をインストールすると、スクリーンショットプレビュー機能が有効になります。AIが生成したページをヘッドレスブラウザで描画し、見た目を自己検証します。Chromiumが未インストールの場合はこの機能がスキップされますが、コード生成自体は動作します。設定画面でプレビュー機能の有効/無効を確認できます。

ホスト版とセルフホストの使い分け

方式 向いている用途
ホスト版(screenshottocode.com) すぐ試したい、APIキーを自分で用意したくない
セルフホスト(GitHub版) 自社APIキーで運用したい、カスタマイズや貢献をしたい

ホスト版はセットアップ不要で手軽です。一方、セルフホスト版はAPIキーの管理を自分で行う代わりに、モデルの選択やプライバシーの制御がしやすくなります。社内デザインを外部サービスに送りたくないチームには、セルフホストが現実的な選択肢です。

v0やClaudeとの違い

UI画像からコードを生成するツールは他にもあります。Vercelのv0はチャットベースでUIコンポーネントを生成するサービスで、Screenshot to Codeは画像やFigma、画面録画を直接入力源にする点が異なります。Claude単体でもスクリーンショットからコードを書けますが、Screenshot to Codeは複数モデルの並列比較、スタック選択、プレビュー、画面録画対応を1つのUIにまとめています。

いずれもプロダクション品質のコードをそのまま出力するわけではありません。生成結果はたたき台として使い、状態管理やアクセシビリティ、パフォーマンスの調整は開発者が行う前提です。

使うときの注意点

生成コードの品質は入力画像の解像度やモデル選択に左右されます。READMEではOllamaなどのローカルモデルにも対応していますが、品質が低いため非推奨と明記されています。精度を重視するならGemini 3系かClaude Opus 4.8を選ぶのが妥当です。

画面録画からの変換は実験的な機能です。複雑なインタラクションやデータ連携までは再現できない場合があります。単一画面のレイアウト再現と、操作フローの大まかな再現で期待値を分けて使うと効果的です。

デザインの初稿をコードに落とし込む作業を大幅に短縮できるツールです。スクリーンショット1枚からReactやVueのコンポーネントを試し、複数モデルの出力を比較しながら最適なたたき台を選べます。フロントエンド開発の入り口を速くしたいチームに試す価値があります。