当前位置:首页 > 技术分析 > 正文内容

Screenshot to Code:把设计图直接转成代码

ruisui881个月前 (03-30)技术分析13

AI 的不断进化给代码开发带来了革命性的效率提升,同时大大降低了编程开发的门槛。

给出一张设计图,甚至只是一张网站的截图,就能一键生成对应的前端代码,这在以前是仿佛天方夜谭一般。但如今在 AI 大模型的加持下,这一切都有可能成为现实。

Screenshot-to-Code 项目借助 LLM 的强大能力,为人们提供了一种前端开发的全新可能。


简介

Screenshot-to-Code 是一个能够将截图、线框图以及 Figma 设计转换为可用代码的工具,代码仓库位于
https://github.com/abi/screenshot-to-code。该项目支持 Claude Sonnet 3.5、
GPT-4o、Gemini 2.0 Flash 等模型,并利用 DALL-E 3 或 Flux Schnell 进行图像生成。

Screenshot-to-Code 涵盖了多种前端技术栈,包括 HTML + Tailwind、HTML + CSS、React + Tailwind、Vue + Tailwind、Bootstrap、Ionic + Tailwind 以及 SVG 等。此外,该项目还增加了对视频 / 屏幕录制转换为功能原型的实验性功能的支持,为开发者提供了更多的可能性。


使用

Screenshot-to-Code 可以在本地运行,应用由一个 React/Vite 的前端和一个 FastAPI 后端组成。运行应用需要 API Key,可以提供能访问 GPT-4 的 OpenAI 的 API Key。对于使用 Ollama 开源模型的,也可以改变环境变量来实现,把以下命令加入到 backend/.env 中:

export OPENAI_BASE_URL="http://localhost:11434/v1"
export OPENAI_API_KEY=fake-key

然后创建模型的别名给 Screenshot-to-Code 使用:

for model in \
   claude-3-5-sonnet-20240620 \
   gpt-4o-2024-05-13 \
   gpt-4-turbo-2024-04-09 \
   gpt_4_vision \
   claude_3_sonnet; do
   ollama cp x/llama3.2-vision $model
done

可以把 x/llama3.2-vision 修改为任意的本地模型使用。


配置 Key 或模型后,运行后端。后端是 Python 的 FastAPI,可以使用 poetry 进行启动:

cd backend
echo "OPENAI_API_KEY=sk-your-key" > .env
echo "ANTHROPIC_API_KEY=your-key" > .env
poetry install
poetry shell
poetry run uvicorn main:app --reload --port 7001

后端运行起来后,再运行前端,使用 yarn:

cd frontend
yarn
yarn dev

前后端都运行起来后,在浏览器访问 http://localhost:5173,就能使用该工具了。

如果需要进行 Debug,则可以使用 mock 模式了避免对 GPT 模型的调用:

MOCK=true poetry run uvicorn main:app --reload --port 7001

如果想要更为独立的部署,也可以使用 Docker:

echo "OPENAI_API_KEY=sk-your-key" > .env
docker-compose up -d --build


工具使用简单,只需上传一张网站的截图,或者录制一段网页的使用视频,然后选择所需的前端技术栈,以及使用的 LLM 模型,点击 “Generate”,稍等片刻,就能产出所需的前端代码,能几乎完美复刻原有的网页。


总结

Screenshot-to-Code 项目为前端开发提供了一种高效、便捷的代码生成方式,大大减少了开发者手动编写代码的工作量,更为没有太多前端开发经验的人们大大降低了开发门槛,使网页开发变得不再遥不可及。

Screenshot-to-Code 不仅适用于个人开发者快速实现原型,也适用于企业团队提高开发效率。在未来,随着 AI 技术的不断发展,Screenshot-to-Code 有望在更多领域得到应用,为网页前端开发带来更多的便利和创新。

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/3162.html

标签: vite svg
分享给朋友:

“Screenshot to Code:把设计图直接转成代码” 的相关文章

79.idea中git合并分支操作分享

文章目录前言1.fetch的操作2.合并最新代码到当前的开发分支3.解决冲突4.分支合并:5.完成代码合并总结前言git的操作在日产的工作中也非常重要,团队化的代码管理,每次如果代码被别人覆盖或者自己的代码不能提交到服务器那是灾难性的结果,本篇进行一篇分享来总结下idea中git的操作帮助java开...

Gitlab+Jenkins通过钩子实现自动部署web项目,图文详细教程

扩展参考:Jenkins+Gitlab通过脚本自动部署回滚web项目至集群 一:基础环境介绍及准备1):Gitlab服务器:ubuntu 192.168.152.131 ---参考搭建:Linux安装gitlab,docker安装gitlab教程2):Jenkins服务器:ubunu 192.168...

Java教程:gitlab-使用入门

1 导读本教程主要讲解了GitLab在项目的环境搭建和基本的使用,可以帮助大家在企业中能够自主搭建GitLab服务,并且可以GitLab中的组、权限、项目自主操作GitLab简介GitLab环境搭建GitLab基本使用(组、权限、用户、项目)2 GitLab简介GitLab是整个DevOps生命周期...

面试被逼疯:聊聊Python Import System?

面试官一个小时逼疯面试者:聊聊Python Import System?对于每一位Python开发者来说,import这个关键字是再熟悉不过了,无论是我们引用官方库还是三方库,都可以通过import xxx的形式来导入。可能很多人认为这只是Python的一个最基础的常识之一,似乎没有可以扩展的点了,...

Vue实战篇|使用路由管理用户权限(动态路由)

权限控制是后台管理系统比较常见的需求,如果我们需要对某些页面的添加权限控制的话,那我们可以在路由管理中的权限做一些校验,没有通过权限校验的给出相应的提示或者直接跳转到报错页面。跟着我一起来学vue实战篇路由管理权限吧!权限校验函数getCurrentAuthority()函数用于获取当前用户权限,一...

尤雨溪:Vue 2生命周期已正式结束,开发团队应迁移至最新版本

IT之家 1 月 2 日消息,Vue.js 作者尤雨溪发文声称,Vue 2 已于 2023 年 12 月 31 日结束生命周期(EOL),目前 Vue 2 已经无法接收到新功能及修复补丁,还在使用 Vue 2 的开发团队应迁移至最新的 Vue 3 版本。据悉,Vue 2.0 最初发布于 2016 年...