Flame-Code-VLM

GitHub
559 48 较难 1 次阅读 2天前Apache-2.0图像数据工具Agent开发框架其他语言模型
AI 解读 由 AI 自动生成,仅供参考

Flame-Code-VLM 是一款开源的多模态人工智能系统,专为将 UI 设计稿直接转化为高质量的 React 代码而打造。它旨在解决当前主流大模型(如 GPT-4o)在前端开发中的痛点:生成的代码往往过于静态,缺乏模块化、可复用性及动态交互能力,难以满足现代工程化标准。

通过融合视觉语言建模与自动化数据合成技术,Flame-Code-VLM 能够理解设计意图并输出符合最佳实践的结构化组件代码。其核心亮点在于构建了一套独特的自动化数据合成流水线,利用“进化式”、“瀑布模型”及“增量开发”等多种策略,生成了大规模、高保真的图像 - 代码配对数据集,显著提升了模型对视觉细节的理解与逻辑推理能力。此外,项目还配备了涵盖语法精度、功能正确性及视觉一致性的全方位评估体系,确保产出代码的真实可用性。

这款工具非常适合前端开发者、UI 设计师以及从事多模态大模型研究的研究人员使用。开发者可利用它加速从设计到原型的转化过程,减少重复编码工作;设计师能更直观地验证设计方案的可行性;研究人员则可借助其开放的数据管道与训练框架,探索前端代码生成领域的前沿技术。虽然目前主要优化于 React 生态,但其方法论具备良好的扩展性,为未来适配 Vue、Angular 等框架奠定了基础。

使用场景

某电商初创团队的设计师刚在 Figma 中完成了一套包含复杂交互逻辑的“商品详情页”高保真原型,急需将其转化为可投入生产的 React 代码以赶上下周的产品上线。

没有 Flame-Code-VLM 时

  • 人工还原耗时漫长:前端工程师需对着设计图手动编写 JSX 结构和 CSS 样式,将静态图片转为代码通常需要数天时间。
  • 代码缺乏复用性:直接生成的代码往往是“一次性”的硬编码,缺乏组件化思维,难以在后续页面中重复利用。
  • 动态行为缺失:通用大模型生成的代码多为静态展示,无法自动实现轮播图切换、库存动态更新等关键交互逻辑。
  • 视觉还原度低:人工编码或普通工具生成的界面常出现间距偏差、字体不一致等问题,需反复调整才能对齐设计稿。

使用 Flame-Code-VLM 后

  • 秒级生成高质量代码:Flame-Code-VLM 直接读取设计截图,利用其视觉语言建模能力,瞬间输出结构完整、语法精准的 React 组件代码。
  • 原生支持组件化架构:得益于针对 React 的深度训练,生成的代码自动拆分为独立的子组件,天然具备高复用性和可维护性。
  • 智能实现动态交互:工具能理解界面逻辑,自动补全状态管理和事件处理函数,让生成的页面不仅“长得像”,而且“动得对”。
  • 像素级视觉一致性:通过自动化数据合成训练,Flame-Code-VLM 确保了输出代码在布局、色彩和细节上与原始设计稿高度一致,几乎无需二次微调。

Flame-Code-VLM 将原本需要数天的“设计转代码”流程压缩至分钟级,真正打通了从创意原型到生产级前端代码的最后一公里。

运行环境要求

操作系统
  • 未说明
GPU

未说明 (模型基于 Siglip Vision Encoder 和 Deepseek Coder,通常训练/推理需要 NVIDIA GPU,但 README 未明确具体型号或显存要求)

内存

未说明

依赖
notes1. 项目依赖 Conda 管理 Python 环境(需运行 'conda env create -f environment.yml')。2. 数据渲染和处理流程需要 Node.js 环境(需运行 'npm install')。3. 模型架构基于 LLaVA-NeXT 修改,连接了 Siglip 视觉编码器和 Deepseek Coder 模型。4. 数据合成 pipeline 依赖 DeepSeek API (V2/V3) 进行数据集构建。5. 评估环节包含自动化测试脚本以验证功能正确性和视觉一致性。
python3.x (通过 conda environment.yml 安装,具体版本未在文本中列出)
conda (environment.yml)
node/npm
Siglip Vision Encoder
Deepseek Coder
LLaVA-VL/LLaVA-NeXT (修改版)
Flame-Code-VLM hero image

快速开始

Flame:通过数据合成推进前端开发中的视觉-语言模型

English | 中文

简介

像GPT-4o这样的最先进模型虽然在生成网页代码方面非常强大,但却无法满足现代前端(FE)工作流的动态需求。它们生成的代码往往是静态的,缺乏模块化、可重用性和动态行为等关键特性,而这些特性对于构建可扩展的交互式用户界面至关重要。这导致生成的代码效率低下且不兼容,偏离了最佳开发实践。

为了克服这些局限性,我们引入了一个综合框架,包括数据合成流水线、模型训练流程和评估套件,形成了一个用于前端代码生成的完全集成的视觉-语言模型(VLM)解决方案。利用这个框架,我们结合Siglip视觉编码器和Deepseek编码器模型来生成React代码,开发出了具有多模态专长的前端语言助手Flame。

在开发用于前端开发的强大大规模VLM时,主要挑战之一是缺乏高质量的图像-文本数据。为了解决这个问题,我们提出了一种自动化的数据合成流水线,能够提取、渲染并标注自包含的前端代码片段。该流水线确保生成大量、多样化且高保真的数据集,既可以产生单张图像输入,也可以生成多张图像输入,并附带详细的图像描述,以提升视觉链式思维(CoT)推理能力。在此过程中,我们利用DeepSeek的API整合了DeepSeek V2和V3模型来进行数据集构建。

为了评估Flame的性能,我们建立了一个全面的评估套件,用于衡量三个关键因素:生成代码的语法精确性、功能正确性和视觉一致性。这确保了Flame生成的代码符合实际开发标准。

目前,该框架专为基于React的开发设计和优化,充分利用其组件化架构来生成结构化、可重用的UI组件。然而,这种方法和流水线具有高度的可扩展性,只需进行少量修改即可适配其他前端框架,如Vue和Angular。

本仓库提供了Flame的数据准备流水线、模型训练流程和评估套件的完整实现,使其成为推动多模态前端代码生成研究的宝贵资源。

特性

image not found

  • 综合数据准备流水线:该仓库包含用于提取、合成和构建多模态数据集的脚本和工具,采用了三种不同的数据合成方法:
    • 基于演进的合成
    • 基于瀑布模型的合成
    • 增量式开发合成
  • 端到端训练流水线:实现了Flame的三阶段训练策略,包括:
    • 使用公开数据集进行视觉编码器预训练
    • 使用合成数据集进行图像布局解读训练
    • 针对图像到代码生成的完整指令调优
  • React代码生成评估流水线:该仓库提供:
    • Flame-React-Eval基准测试数据集
    • 用于功能正确性和视觉保真度评估的自动化测试脚本
    • 使用渲染输出的余弦相似度实现pass@k评估指标 支持多图像输入:该模型和流水线可以通过处理多个版本的设计原型图,并相应更新生成的代码,从而实现UI的迭代优化。

本仓库提供了所有必要的脚本、模型和评估工具,以便重现我们的实验,并进一步扩展Flame以开展多模态前端代码生成的研究。

安装

请按照以下步骤进行安装:

  1. 克隆仓库:
    git clone 
    
  2. 进入项目目录:
    cd Flame
    
  3. 创建conda环境:
    conda env create -f environment.yml
    conda activate flame
    
  4. 安装node依赖:
    npm install
    

使用

数据准备

数据准备流程包含三个主要步骤:

1. 生成自包含的组件代码片段

要从 GitHub 上的仓库中生成自包含的组件代码片段,可以运行以下命令:

bash scripts/collect_gh_code_run.sh

collect_gh_code.sh 脚本中,包含了收集仓库、提取组件以及提取代码中使用的图片这三个步骤。你可以根据需求在脚本中指定参数:

echo "步骤1:收集仓库..."
python3 -B data_collect/repo_collector/collect_info.py \
  --language '目标语言' \
  --start_date '目标起始日期,格式为“YYYY-MM-DD”' \
  --end_date '目标结束日期,格式为“YYYY-MM-DD”' \
  --per_page '每页通过 GitHub API 克隆的仓库数量' \
  --sleep_time '每次请求 GitHub API 之间的休眠时间' \
  --star '目标仓库的最小星数' \
  --time_range '时间范围' \
  --kw '关键词' \
  --output_repo_path '存储仓库的输出目录' &

echo "步骤2:收集组件..."
python3 -B data_collect/component_collector/distiller/distiller_cls.py \
  --threads 'N' \
  --repo_path '已下载仓库的目录' \
  --output_path '存储生成的自包含组件代码片段的输出目录' &

echo "步骤3:提取代码中使用的图片..."
node data_collect/component_collector/distiller/img_distiller.js \
  '已下载仓库的目录' \
  '已下载仓库的组件代码片段目录' &

2. 将代码片段渲染为图片

要将代码片段渲染为图片,首先需要指定参数:

CODE_DIR='已下载仓库的组件代码片段目录'
SCREENSHOT_DIR="存储渲染后图片的输出目录"

然后运行以下命令:

bash scripts/renderer_run.sh

3. 生成代码片段的指令

要为代码片段生成指令,首先需要指定参数:

INST_PATH="存储最终多模态数据的输出目录"
nohup python -B -u data_collect/component_collector/describer/gen_inst.py \
  --screenshot_path '渲染后的图片目录' \
  --code_path '已下载仓库的组件代码片段目录' \
  --inst_path $INST_PATH \
  --ori_img_path $INST_PATH/ori_images \
  --cropped_img_path $INST_PATH/cropped_images >log/batch_inst.log 2>&1 &

然后运行以下命令:

bash scripts/gen_inst.sh

数据合成

要使用瀑布模型方法合成数据,首先需要在 run_batch_variation_no_code.sh 脚本中指定参数:

nohup python3 -B -u data_collect/component_collector/variater/variation_waterfall_no_code.py \
    --iter_num='# 次迭代整个工程过程' \
    --max_system_infer='# 开始时推断的系统数量' \
    --screenshot_path='收集到的组件代码片段截图目录' \
    --repo_path='收集到的仓库目录' \
    --variation_path='保存合成代码片段的输出目录'>log/comp_variation_waterfall.log 2>&1 &

然后运行以下命令:

bash scripts/run_batch_variation_no_code.sh

若要使用增量开发方法合成数据,首先需要在 run_batch_variation_with_code.sh 脚本中指定参数:

nohup python3 -B -u data_collect/component_collector/variater/variation_waterfall_with_init_code.py \
    --iter_num='# 次迭代整个工程过程' \
    --screenshot_path='收集到的组件代码片段截图目录' \
    --repo_path='收集到的仓库目录' \
    --variation_path='保存合成代码片段的输出目录'>log/comp_variation_waterfall_with_init_code.log 2>&1 &

然后运行以下命令:

bash scripts/run_batch_variation_with_code.sh

建模与训练

我们通过一个两层的 MLP 将 Siglip 视觉编码器和 deepseek-coder 模型连接起来,构建了 Flame 模型。该仓库包含基于 LLaVA-VL/LLaVA-NeXT https://github.com/LLaVA-VL/LLaVA-NeXT 的修改版建模实现(Flame-Code-VLM/model)。使用时,只需将原仓库中的相应代码文件替换为此仓库中的文件即可。

评估

要评估模型,首先可以使用以下命令让模型生成代码:

代码生成完成后,可以通过先在 batch_eval_renderer.sh 脚本中指定参数来渲染这些代码并获取截图:

GEN_CODE_DIR="<生成代码的目录>"
SCREENSHOT_DIR="<保存截图的目录>"

然后运行以下命令:

bash scripts/batch_eval_renderer_run.sh

最后,通过在 eval_score.sh 中添加你的模型名称来计算 pass@k 分数:

MODEL_NAMES=("待评估的模型名称")

然后运行:

bash scripts/eval_score_run.sh

数据集

我们开源了使用数据收集和合成方法构建的数据集,以及用于评估的测试数据集:

模型

对比研究

以下是 GPT-4o 和 Flame 生成的代码片段对比示例:

GPT 示例
目标页面截图(左)和 GPT-4o 生成的代码(右)
Flame 示例
Flame 生成的代码,包括样式代码(左)、组件代码(中)和渲染结果(右)。

案例研究

Flame 生成代码的测试页面及渲染结果示例:

测试图片 使用 Flame 生成的代码的渲染结果截图

贡献

我们欢迎开源社区为改进 Flame 的数据集、模型和评估流程做出贡献。如果您有兴趣参与贡献,请按照以下步骤操作:

  1. 克隆仓库并创建分支。
  2. 为您的更改创建一个新分支。
  3. 提交包含清晰修改说明的拉取请求。

许可证

Flame 采用 Apache 2.0 许可证发布。更多详情请参阅 LICENSE 文件。

致谢

本项目受到大型视觉-语言模型及自动化前端开发领域最新进展的启发。我们感谢开源社区以及先前在视觉-语言建模和自动化代码生成方面的研究工作所作出的贡献。

引用

如果 Flame 对您的研究有所帮助,请引用以下文献:

@article{ge2025advancing,
  title={通过数据合成推进视觉-语言模型在前端开发中的应用},
  author={Ge, Tong 和 Liu, Yashu 和 Ye, Jieping 和 Li, Tianyi 和 Wang, Chao},
  journal={arXiv 预印本 arXiv:2503.01619},
  year={2025}
}

常见问题

相似工具推荐

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|今天
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

139k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

107.7k|★★☆☆☆|2天前
开发框架图像Agent

NextChat

NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。

87.6k|★★☆☆☆|今天
开发框架语言模型

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85k|★★☆☆☆|今天
图像数据工具视频

ragflow

RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。

77.1k|★★★☆☆|昨天
Agent图像开发框架