游戏建筑资产AI生成管线:从立面截图到45度等轴组件
项目简介
游戏建筑资产AI生成管线是一个基于Python和多模态大语言模型(VLM)的自动化工作流,能够将任意角度的建筑截图转换为游戏可用的45度等轴建筑组件。
项目背景
在游戏开发中,建筑资产制作是一项耗时的工作。传统流程需要美术人员手动绘制每个组件,效率低下。本项目利用AI技术,实现了从建筑照片到游戏资产的自动化转换,大幅提升了资产生产效率。
核心特性
- 🏗️ 智能立面标准化:任意透视角度 → 正交正视图
- 🔍 精确组件识别:VLM自动识别建筑组件(窗户、门、屋顶等)
- ✅ 多阶段质检:代码规则 + VLM双重校验
- 🎨 四宫格生成:2x2网格批量生成45度等轴视图
- 🔧 靶向修复:智能识别并修复识别错误
技术架构
整体流程
┌─────────────────────────────────────────────────────────────────┐
│ 游戏建筑资产AI生成管线 │
├─────────────────────────────────────────────────────────────────┤
│ Phase 1: 立面标准化 │
│ 输入:任意透视建筑截图 │
│ 输出:纯白背景正交正视图 + 建筑描述JSON │
├─────────────────────────────────────────────────────────────────┤
│ Phase 2: 组件识别 │
│ 输入:正交图 │
│ 输出:组件清单 + 裁剪图 + 楼层区域图 │
├─────────────────────────────────────────────────────────────────┤
│ Phase 2.5: VLM质检 │
│ 输入:组件清单 + 正交图 │
│ 输出:质量评分 + 问题清单 │
├─────────────────────────────────────────────────────────────────┤
│ Phase 2.6: 靶向修复 │
│ 输入:质检报告 + 组件清单 │
│ 输出:修复后的组件清单 │
├─────────────────────────────────────────────────────────────────┤
│ Phase 3: 四宫格生成 │
│ 输入:组件清单 + 裁剪图 │
│ 输出:2x2四宫格45度等轴视图 │
├─────────────────────────────────────────────────────────────────┤
│ Phase 4: 四宫格裁剪 │
│ 输入:四宫格图片 │
│ 输出:单个组件图片 │
└─────────────────────────────────────────────────────────────────┘
技术栈
| 类别 | 技术 | 用途 |
|---|---|---|
| VLM | Qwen3.5-Omni-Plus | 图像分析、组件识别 |
| 图像生成 | DALL-E 3 | 正交图生成 |
| 图像编辑 | Qwen-Image-2.0-Pro | 四宫格生成 |
| 质检VLM | Gemini-3.1-Flash-Lite | 质量检查 |
| 框架 | Python + LangGraph | 工作流编排 |
核心技术详解
1. Phase 1:立面标准化
将任意透视角度的建筑截图转换为正交正视图:
ANALYZE_PROMPT = """You are an expert architectural draftsman. Analyze this building screenshot and return a PRECISE geometric description in JSON format.
{
"perspective_type": "one-point / two-point / three-point / front-view / bird-eye / unknown",
"building_style": "architectural style in 2-3 words",
"total_floors": "exact number of floors",
"width_height_ratio": "approximate width:height ratio",
"roof": { "type": "...", "color": "...", "details": "..." },
"facade": { "material": "...", "main_color": "...", "accent_color": "..." },
"windows": { "count_per_floor": "...", "arrangement": "...", "style": "..." },
"door": { "position": "...", "style": "...", "color": "..." },
"decorative_elements": ["list every visible decorative element"],
...
}"""
输出:纯白背景、无阴影的正面正视图 + 建筑描述JSON
2. Phase 2:组件识别
使用VLM识别建筑组件,输出结构化的组件清单:
识别的组件类型:
roof/roof_slope:屋顶facade:墙面面板window:窗户door:门balcony:阳台canopy:遮阳篷shopfront:商铺橱窗molding:装饰线脚steps:台阶chimney:烟囱parapet:女儿墙
输出结构:
{
"components": [
{
"id": "comp_001",
"type": "window",
"bbox": [100, 200, 300, 400],
"reusable_group": "window_standard",
"generation_prompt": "单个白色木质窗户,45度等轴游戏建筑资产"
}
],
"reusable_groups": {
"window_standard": {
"count": 9,
"representative": "comp_001",
"all_instances": ["comp_001", "comp_002", ...]
}
},
"floor_zones": [
{
"zone_id": 0,
"type": "roof",
"y_range": [0, 150],
"components": ["comp_001"]
}
]
}
3. Phase 2.5:VLM质检
使用独立的质检VLM对识别结果进行质量检查:
质检维度:
- 完整性:是否有遗漏的组件
- 拆分精细度:是否有过度合并
- 分组合理性:reusable_group是否正确
- 类型正确性:组件类型标注是否准确
评分机制:
- 80分以上:Pass(通过)
- 60-79分:Conditional_Pass(有条件通过)
- 60分以下:Refine(需要修复)
4. Phase 2.6:靶向修复
基于质检报告,使用代码规则进行零成本修复:
# 拆分规则:合并过度的组件自动拆分
MERGE_SPLIT_RULES = {
("canopy", "shopfront"): {"split": "horizontal", "ratio": 0.35},
("window", "balcony"): {"split": "horizontal", "ratio": 0.75},
("window", "flower_box"): {"split": "horizontal", "ratio": 0.85},
}
# 关键词 → 组件类型映射
KEYWORD_TO_TYPE = {
"遮阳篷": "canopy", "雨棚": "canopy",
"橱窗": "shopfront", "商铺": "shopfront",
"阳台": "balcony", "栏杆": "balcony",
"花箱": "flower_box", "花台": "flower_box",
}
修复策略:
merged_components:代码规则拆分(零VLM成本)missing_components:标记警告grouping_issues:标记警告(后续向量模型处理)type_errors:标记警告
5. Phase 3:四宫格生成
将识别的组件生成2x2四宫格45度等轴视图:
PROMPT_TEMPLATE = """参考建筑立面图,生成2x2四宫格模块拆分正交视图。
【视角要求】
固定视角:每个组件都必须从"正面偏左侧45度"观察,看到正面和左侧两个面。
所有四个格子的视角方向完全一致,禁止出现朝右的组件。
等轴测投影,无透视变形。
【构图要求】
- 纯白背景
- 四个格子均匀分布,格子间有清晰分割线
- 组件居中展示,占格子85%以上空间
【四个组件】
{components}
【风格要求】
- 哥特风格游戏资产:干净边缘,扁平着色
- 组件结构完整,可独立作为模块使用
- 同一建筑风格,与参考图一致"""
6. Phase 4:四宫格裁剪
将四宫格图片裁剪为单个组件图片:
# 四宫格裁剪位置
CROP_POSITIONS = [
(0, 0), # 左上
(1, 0), # 右上
(0, 1), # 左下
(1, 1), # 右下
]
提示词优化实践
问题发现
在项目开发过程中,我们发现并解决了多个提示词问题:
| 问题 | 类别 | 解决方案 |
|---|---|---|
| 3m×3m网格规则VLM无法理解 | 规则设计 | 改用"按窗间墙自然分段" |
| "同种窗户只识别1个"与代码需求矛盾 | 规则冲突 | 改为"每个实例都单独识别" |
| 未提供图片尺寸信息 | 信息缺失 | 动态注入图片尺寸 |
| type列表不完整 | 类型覆盖 | 补充steps/canopy等类型 |
| decoration类型太笼统 | 输出问题 | 细分为尖顶/壁灯/植物等 |
优化原则
- 可操作性:规则必须是VLM能理解和执行的
- 一致性:提示词和代码逻辑必须一致
- 完整性:提供所有必要的上下文信息
- 精确性:避免模糊和歧义的描述
使用指南
环境准备
# 克隆项目
git clone https://github.com/your-username/workflowTest.git
# 安装依赖
pip install -r requirements.txt
配置API
编辑 config.py:
# VLM 视觉模型
VLM_API_URL = "https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions"
VLM_API_KEY = "your-api-key"
VLM_MODEL = "qwen3.5-omni-plus"
# 图像生成模型
IMAGE_GEN_API_URL = "https://api.302.ai/v1/images/generations"
IMAGE_GEN_API_KEY = "your-api-key"
IMAGE_GEN_MODEL = "dall-e-3"
# 图像编辑模型
IMAGE_EDIT_API_URL = "https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation"
IMAGE_EDIT_API_KEY = "your-api-key"
IMAGE_EDIT_MODEL = "qwen-image-2.0-pro"
# 质检VLM
CHECKER_VLM_API_URL = "https://api.302.ai/v1/chat/completions"
CHECKER_VLM_API_KEY = "your-api-key"
CHECKER_VLM_MODEL = "gemini-3.1-flash-lite-preview"
运行流程
# Phase 1: 立面标准化
python phase1_standardize.py
# Phase 2: 组件识别
python phase2_module_recognition.py
# Phase 2.5: VLM质检
python phase25_quality_check.py
# Phase 2.6: 靶向修复(如果质检发现问题)
python phase26_calibration_repair.py
# Phase 3: 四宫格生成
python phase3_quadrant_generation.py
# Phase 4: 四宫格裁剪
python phase4_crop_quadrant.py
输出结构
output/
├── phase1/ # 正交图 + 建筑描述
│ ├── building_001.png
│ └── building_001_analysis.json
├── phase2/ # 组件清单 + 裁剪图
│ ├── manifest.json
│ └── components/
│ ├── comp_001_window.png
│ ├── comp_002_door.png
│ └── ...
├── phase25/ # 质检报告
│ └── quality_report_01.json
├── phase3_quadrant/ # 四宫格图片
│ ├── batch_001.png
│ └── manifest.json
└── phase4_cropped/ # 单个组件图片
├── window_001.png
├── door_001.png
└── ...
技术亮点
1. 多阶段质检机制
项目采用代码规则 + VLM双重质检:
- 代码规则:检查bbox边界、字段完整性、数量合理性
- VLM质检:视觉检查完整性、拆分精细度、分组合理性
2. 靶向修复策略
针对质检发现的问题,采用靶向修复而非全量重跑:
- 代码可修复的问题:自动拆分、类型映射
- 需要VLM的问题:标记警告,后续处理
- 大幅降低API调用成本
3. 可复用组件分组
通过reusable_group机制,实现组件去重和批量生成:
- 相同外观的组件归为一组
- 只生成一次四宫格
- 通过裁剪复用到多个位置
4. 动态提示词注入
根据图片尺寸、Phase 1描述等信息动态构建提示词:
- 注入图片尺寸,提升bbox精度
- 注入建筑描述,提升识别准确度
- 注入已知组件,保持一致性
实际演示
演示案例:哥特风格建筑
以下展示一个完整的建筑资产生成流程,从输入截图到最终输出。
Step 1: 输入 - 建筑截图

Step 2: Phase 1 输出 - 正交正视图
输出说明:VLM分析建筑透视类型,生成纯白背景的正交正视图

生成的建筑描述JSON:
{
"perspective_type": "two-point",
"building_style": "Gothic Revival",
"total_floors": 3,
"roof": { "type": "gable", "color": "dark gray" },
"facade": { "material": "stone", "main_color": "beige" },
"windows": { "count_per_floor": 4, "style": "arched" }
}
Step 3: Phase 2 输出 - 组件识别结果
输出说明:VLM识别建筑组件,标注bbox和类型

识别统计:
| 组件类型 | 数量 | 示例 |
|---|---|---|
| window | 12 | 标准窗户、拱形窗户 |
| door | 1 | 正门 |
| balcony | 3 | 铁艺阳台 |
| roof | 1 | 人字屋顶 |
| facade | 4 | 墙面面板 |
| canopy | 2 | 遮阳篷 |
Step 4: Phase 2.5 输出 - 质检报告
输出说明:VLM对识别结果进行质量检查
质检评分:85/100 ✅ Pass
| 维度 | 评分 | 说明 |
|---|---|---|
| 完整性 | 90 | 所有主要组件已识别 |
| 拆分精细度 | 85 | 无过度合并 |
| 分组合理性 | 80 | reusable_group划分正确 |
| 类型正确性 | 85 | 组件类型标注准确 |
发现的问题:
- ⚠️ comp_015: "decoration"类型过于笼统,可能是壁灯
- ⚠️ comp_008: bbox与相邻组件有轻微重叠
Step 5: Phase 3 输出 - 四宫格生成
输出说明:将组件生成2x2四宫格45度等轴视图

四宫格说明:
- 视角:正面偏左侧45度,看到正面和左侧两个面
- 背景:纯白
- 风格:哥特风格游戏资产,干净边缘,扁平着色
Step 6: Phase 4 输出 - 单个组件
输出说明:将四宫格裁剪为单个组件图片


最终输出文件夹结构:
output/phase4_cropped/
├── window_standard_001.png # 标准窗户
├── window_arched_001.png # 拱形窗户
├── door_main_001.png # 正门
├── balcony_iron_001.png # 铁艺阳台
├── canopy_shop_001.png # 商铺遮阳篷
├── roof_gable_001.png # 人字屋顶
└── facade_panel_001.png # 墙面面板
效果对比
| 阶段 | 输入 | 输出 | 处理时间 |
|---|---|---|---|
| Phase 1 | 透视截图 | 正交图 | ~30秒 |
| Phase 2 | 正交图 | 组件清单 | ~45秒 |
| Phase 2.5 | 组件清单 | 质检报告 | ~15秒 |
| Phase 3 | 组件图 | 四宫格 | ~60秒/批 |
| Phase 4 | 四宫格 | 单个组件 | <1秒 |
总处理时间:约3-5分钟/建筑(取决于组件数量)
项目对比
| 特性 | 传统流程 | AI管线 |
|---|---|---|
| 组件识别 | 人工标注 | VLM自动识别 |
| 质量检查 | 人工审核 | 代码+VLM双重校验 |
| 资产生成 | 手动绘制 | AI批量生成 |
| 处理时间 | 数小时/建筑 | 数分钟/建筑 |
| 一致性 | 依赖人工经验 | 规则化保证 |
未来规划
短期目标
- 引入向量模型做组件校准
- 优化Phase 2提示词(300行精简)
- 支持更多建筑风格
- 添加Web界面
长期目标
- 支持3D模型生成
- 集成ComfyUI工作流
- 实现分布式处理
- 开源社区建设
- Agent化流程
总结
游戏建筑资产AI生成管线通过集成多模态大语言模型,实现了从建筑截图到游戏资产的自动化转换。项目的核心创新在于:
- 多阶段处理:标准化 → 识别 → 质检 → 修复 → 生成 → 裁剪
- 双重质检:代码规则 + VLM视觉检查
- 靶向修复:零成本代码修复 + 标记式警告
- 可复用分组:组件去重,批量生成
如果你对游戏资产制作、计算机视觉、或者AI工作流感兴趣,欢迎关注和交流!
项目地址:https://github.com/Lastcloud-AC/BuildingPix
相关技术:Python, VLM, DALL-E 3, Qwen, LangGraph, 计算机视觉
标签:#游戏开发 #AI #VLM #建筑资产 #自动化 #计算机视觉
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)