
Bob
Bob是一个以AI为先的企业级集成开发环境(IDE),解决这一核心挑战。它不仅是代码助手,更是一个理解完整仓库上下文、协调多个大模型、贯穿软件开发生命周期的现代化引擎。
ScreenCoder 是一个用于前端自动化开发的多模态智能体框架,它能够将 UI 设计图像(如设计草图或界面截图)自动转换为 HTML/CSS 代码。
香港中文大学研究团队近日推出 ScreenCoder —— 一个用于前端自动化开发的多模态智能体框架,能够将任意 UI 截图(如设计稿、原型图或屏幕快照)自动转换为干净、可编辑、生产就绪的 HTML/CSS 代码。

它不仅生成准确的布局结构,还支持后续定制化修改,真正实现“设计即代码”的开发闭环。
ScreenCoder 是一个端到端的 UI 到代码生成系统,目标是弥合设计与开发之间的鸿沟。
只需上传一张界面截图(例如包含按钮、导航栏、卡片布局的设计图),系统即可:
生成的代码具备高保真还原度,支持响应式基础结构,并保留可编辑性,便于开发者进一步调整。
✅ 适用场景:快速原型开发、设计稿落地、教学演示、低代码增强
| 特性 | 说明 |
|---|---|
| 🔍 视觉理解精准 | 基于 UIED 引擎检测按钮、文本框、图标等组件,定位准确 |
| 🧱 布局逻辑清晰 | 将检测结果映射为语义区域(如 header、sidebar、content),构建合理 DOM 结构 |
| 💻 代码质量高 | 生成简洁、带类名和注释的 HTML/CSS,接近人工编写水平 |
| 🖼️ 图像还原完整 | 自动裁剪原始截图中的图像区域,替换占位符,保留真实视觉内容 |
| 🔧 支持多模型后端 | 可切换使用 Doubao、Qwen、GPT、Gemini 等大模型进行推理 |
| ⚙️ 模块化架构 | 各环节解耦,便于调试、替换与二次开发 |
ScreenCoder 采用模块化多代理架构,将整个转换过程拆解为多个可独立运行的步骤:
截图输入
→ UI 元素检测(UIED)
→ 布局块解析(Block Parsing)
→ 语义区域映射(Mapping)
→ HTML 骨架生成(HTML Generator)
→ 图像占位符检测与裁剪
→ 最终图像替换(Image Replacer)
→ 输出完整页面
这种设计确保了每个环节的可控性与可解释性,避免“黑箱生成”。
git clone https://github.com/leigest519/ScreenCoder.git
cd ScreenCoder
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
ScreenCoder 使用大模型进行语义理解与代码生成,支持以下后端:
echo "your-api-key" > doubao_api.txt
(文件名根据所选模型命名:qwen_api.txt、gpt_api.txt、gemini_api.txt)
.gitignore,防止密钥泄露block_parsor.py 和 html_generator.py 中的 MODEL_NAME 变量以切换模型# 1. 检测布局块
python block_parsor.py
# 2. 生成带占位符的初始 HTML
python html_generator.py
# 3. 检测需替换的图像区域
python image_box_detection.py
# 4. 运行 UIED 检测具体 UI 元素
python UIED/run_single.py
# 5. 映射占位符与实际元素
python mapping.py
# 6. 替换占位图为真实裁剪图像
python image_replacer.py
python main.py
输出文件将保存在 output/ 目录下,包含 index.html 和对应的 css/ 与 images/ 资源。

研究团队提供了多个定性案例,展示 ScreenCoder 相比现有方法的优势:

| 输入截图 | 基线方法输出 | ScreenCoder 输出 |
|---|---|---|
| 包含导航栏、轮播图、按钮的网页设计 | 布局错乱,组件缺失 | 结构完整,视觉对齐良好,代码语义清晰 |
✅ 优势体现:
| 文件/目录 | 功能 |
|---|---|
main.py | 主入口脚本,一键完成全流程 |
UIED/ | UI 元素检测引擎,基于深度学习模型 |
run_single.py | 单图运行 UIED 检测 |
block_parsor.py | 解析截图中的大块布局区域 |
html_generator.py | 调用 LLM 生成 HTML/CSS 代码 |
image_replacer.py | 将占位符 div 替换为从原图裁剪的真实图像 |
mapping.py | 对齐检测组件与页面逻辑区域 |
requirements.txt | Python 依赖列表 |
*.api.txt | API 密钥文件(已忽略) |







