File size: 7,780 Bytes
2181670 bd7463f 2181670 bd7463f 2181670 bd7463f |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 |
---
title: AiRoom
app_file: app.py
sdk: gradio
sdk_version: 5.20.1
---
# AiRoom - AI辅助室内设计工具
## 项目简介
AiRoom是一个基于AI技术的室内设计辅助工具,通过结合ControlNet和Stable Diffusion模型,实现对室内场景的全局风格调整和局部区域风格定制。该工具提供了直观的交互式界面,使用户能够轻松地对室内设计进行创意探索和风格转换,并支持相似图像搜索功能,帮助用户发现灵感。
## 功能特点
- **全局风格调整**:使用ControlNet保持原始空间布局的同时,通过Stable Diffusion调整整体风格
- **局部风格调整**:针对特定区域(如墙壁、地板、家具等)进行风格定制,保持其他区域不变
- **相似图像搜索**:基于CLIP和FAISS实现的高效图像相似性搜索,帮助用户发现相似设计方案
- **交互式界面**:基于Gradio构建的用户友好界面,支持实时预览和参数调整
- **多方案生成**:每次生成多个设计方案供用户选择,以2x2网格形式展示
- **区域智能识别**:自动分析图像中的不同功能区域,无需手动标注
## 安装说明
### 环境要求
- Python 3.8+
- CUDA支持的GPU (推荐8GB+显存)
### 安装步骤
1. 克隆本仓库到本地:
```bash
git clone https://github.com/yourusername/AiRoom.git
cd AiRoom
```
2. 创建并激活虚拟环境(推荐):
```bash
# 使用Conda创建虚拟环境
conda create -n Airoom python=3.10
conda activate Airoom
# 或使用venv创建虚拟环境
python -m venv Airoom
# Windows激活
Airoom\Scripts\activate
# Linux/Mac激活
source Airoom/bin/activate
```
3. 安装依赖包:
```bash
# 安装PyTorch(根据您的CUDA版本选择适当的命令)
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
# 安装项目依赖
pip install -r requirements.txt
```
4. 下载必要资源:
```bash
python download_resources.py
```
## 使用指南
1. 启动应用:
```bash
python app.py
```
2. 在浏览器中访问显示的本地URL(通常为 http://127.0.0.1:7860)
3. 使用流程:
- 首先点击"加载模型"按钮,等待所有模型加载完成
- 选择功能模式(通过顶部选项卡:全局风格调整、局部风格调整或相似图像搜索)
- 上传室内场景图片或使用示例图片
- 点击"分析图像结构"按钮处理输入图像
- 根据需要调整参数
- 点击"生成设计方案"按钮创建新设计
- 从生成的多个设计方案中选择喜欢的结果
- 可选择保存设计方案供后续参考或搜索
## 功能详解
### 全局风格调整
全局风格调整功能允许用户保持原始空间布局的同时,改变整个场景的设计风格。用户可以:
- 输入详细的风格描述提示词(可从预设列表中选择或自定义)
- 选择房间类型(卧室、客厅、厨房等)
- 选择风格主题(现代、北欧、工业风等)
- 调整推理步数(影响生成质量和时间)
- 调整引导比例(影响生成结果对提示词的遵循程度)
- 同时生成4个不同的设计方案进行比较
- 选择并保存喜欢的设计方案
工作原理:
- 使用MLSD检测器提取房间的线条结构,生成控制图像
- ControlNet确保生成的图像保持原始空间布局和结构
- Stable Diffusion根据提示词和控制图像生成符合要求的设计风格
### 局部风格调整
局部风格调整功能允许用户针对场景中的特定区域进行风格定制,而保持其他区域不变。用户可以:
- 从下拉菜单中选择要调整的区域(墙壁、地板、家具等)
- 查看所选区域的掩码预览(红色半透明覆盖显示选中区域)
- 输入针对该区域的风格描述提示词
- 调整区域变化的强度和细节
- 生成保持整体结构的局部风格变化
工作原理:
- 使用Mask2Former模型进行语义分割,识别图像中的不同功能区域
- 将识别的区域转换为掩码,供用户选择
- 结合ControlNet和Stable Diffusion Inpainting进行局部区域的风格调整
- 保持未选中区域不变,只修改选中区域的风格
### 相似图像搜索
相似图像搜索功能利用CLIP模型和FAISS索引,帮助用户查找与参考图像风格相似的设计方案。用户可以:
- 上传参考图像
- 设置搜索结果数量(2-8个)
- 查看以2x2网格布局展示的相似图像结果
- 查看每个结果的相似度百分比
- 通过"重建图像索引"按钮更新索引,包含新生成的设计方案
工作原理:
- 使用CLIP模型提取图像的语义特征向量
- FAISS索引存储所有已生成设计方案的特征向量
- 搜索时计算查询图像与索引中所有图像的余弦相似度
- 返回相似度最高的图像作为结果
## 项目结构
- `app.py`:主应用程序,包含Gradio界面和核心功能实现(全局风格调整、局部风格调整、相似图像搜索)
- `download_resources.py`:下载必要模型和资源的工具脚本
- `requirements.txt`:项目依赖列表
- `resources/`:存放模型、图像和标签数据的目录
- `models/`:存储AI模型(Mask2Former、ControlNet、Stable Diffusion等)
- `images/`:存储示例和生成的图像
- `labels/`:存储标签数据(如ADE20K数据集标签)
- `output/`:存储生成的设计方案
- `global_style/`:全局风格调整生成的图像
- `local_style/`:局部风格调整生成的图像
- `features/`:存储图像特征和索引文件(用于相似图像搜索)
- `image_features.index`:FAISS索引文件
- `image_metadata.pkl`:图像元数据文件
## 技术实现
项目使用了多种先进的AI模型和技术:
- **Mask2Former**:用于场景语义分割,识别不同功能区域(如墙壁、地板、家具等)
- **ControlNet (MLSD)**:保持原始场景的结构和布局,通过线条检测提供控制指导
- **Stable Diffusion**:生成符合提示词描述的图像内容
- **Stable Diffusion Inpainting**:针对特定区域进行图像修复和风格转换
- **CLIP**:提取图像特征,用于相似性搜索和语义理解
- **FAISS**:高效的向量相似性搜索库,支持大规模图像检索
- **Gradio**:构建直观的用户界面,支持交互式操作和实时预览
- **PyTorch**:深度学习框架,支持GPU加速的模型推理
模型加载策略:
- 使用`torch.float16`精度减少内存占用
- 实现模型CPU卸载以优化内存使用
- 支持xformers内存优化(如果安装)
- 从本地缓存加载模型,避免重复下载
## 注意事项
- 首次运行时需要下载较大的模型文件(约10GB),请确保有足够的磁盘空间和稳定的网络连接
- 生成过程可能需要较长时间,取决于您的硬件配置(推荐使用NVIDIA GPU)
- 为获得最佳效果,建议使用清晰的室内场景照片作为输入
- 相似图像搜索功能需要先生成并保存一些设计方案才能有效工作
- 调整推理步数可以平衡生成质量和速度,通常20-30步可以获得不错的结果
- 调整引导比例可以控制生成结果的创意程度,较高的值(7-9)会更严格遵循提示词
## 许可证
[在此添加您的许可证信息]
## 致谢
本项目基于以下开源项目和模型:
- [Hugging Face Diffusers](https://github.com/huggingface/diffusers)
- [ControlNet](https://github.com/lllyasviel/ControlNet)
- [Mask2Former](https://github.com/facebookresearch/Mask2Former)
- [CLIP](https://github.com/openai/CLIP)
- [FAISS](https://github.com/facebookresearch/faiss)
- [Gradio](https://github.com/gradio-app/gradio)
## 联系方式
[在此添加您的联系信息]
|