【使用AI自动生成建筑立面】

使用AI自动生成建筑立面

  • 概述
    • 硬件要求
    • 软件安装
    • 注意事项

概述

本文描述的是使用最近大火的stable diffusion神经网络的迁移学习模型ControlNet自动生成建筑立面。
项目网站:https://github.com/lllyasviel/ControlNet

硬件要求

显卡:目前测试用机为NVIDIA显卡,显存运行时使用了18G左右,低于此显存的显卡是否能正常运行没有测试过。

软件安装

本文仅介绍了使用Anaconda在windows环境下进行安装,Anaconda是管理一系列安装依赖软件包的工具:

  1. Anaconda安装

点击链接 https://www.anaconda.com/ 进入网站首页,点击正中间绿色按钮Download(for windows)即可下载,下载后双击进行安装,全部选择默认就行。

  1. 为本项目创建单独的Anaconda运行环境

安装anaconda后,会在开始程序中多出一个Anaconda Prompt程序,点击这个程序运行,会开启一个类似CMD的终端窗口,该窗口命令行以**(base)**开头,代表程序自动安装了一个默认运行环境,我们需要创建一个新环境,使用下述命令:

  • 先下载ControlNet项目文件包,点击下载地址https://github.com/lllyasviel/ControlNet/archive/refs/heads/main.zip
  • 解压缩到任意目录,记住目录位置,比如D:/ControlNet-main
  • 解压缩后,在解压缩目录中可以看到一个叫environment.yaml的文件,待会创建项目运行环境需要访问这个文件
  • 回到刚才打开的Anaconda Prompt窗口,先切换到项目解压缩目录所在硬盘,比如cd D:,再进入项目目录,比如cd D:/ControlNet-main
  • 进入项目解压缩目录后,可以运行Anaconda窗口命令创建本项目环境了,在窗口中输入运行命令conda env create -f environment.yaml,此时Anaconda根据刚才解压缩的environment.yaml自动创建了一个新的运行环境(时间会比较长,遇到网络连接中断的请自己百度:切换anaconda镜像源
  • 安装完之后,在窗口中输入conda info --env,该命令用于查看已经安装的不同环境,此时显示中应该有名为control字样的新环境出现在列表中。
  • 接下来我们需要激活这个环境才能运行项目,输入命令conda activate control,此时命令行左侧的(base)应该切换成了(control)
  1. 下载项目已经训练好的神经网络模型文件

模型文件在https://huggingface.co/lllyasviel/ControlNet/tree/main,下载时注意,网页中annotator文件夹下的文件,全部下载到本地刚刚解压缩的项目目录的annotator\ckpts文件夹下,网页中models文件夹下的文件,全部下载到项目目录的models文件夹中,没看懂的可以参考https://github.com/lllyasviel/ControlNet页面帮助。用线条生成建筑外观的应用,不用下载models所有文件,仅下载control_sd15_mlsd.pth就能运行。

  1. 修改项目代码
  • 修改本地电脑浏览器地址。用记事本打开项目根目录下的gradio_hough2image.py文件,最后一行改为block.launch(server_name=‘localhost’),这行代码原来写的引号中地址为0.0.0.0,经测试无法正常运行,改为localhost后就可以了,保存修改后的文件(覆盖原来的文件,注意存为py后缀,不要默认保存成了txt文件)。
  1. 运行项目
  • 用Anaconda Prompt窗口进入项目文件夹根目录,比如cd D:\ControlNet-main,(没有激活control环境的参考上面的环境激活方式:conda activate control),输入运行指令python gradio_hough2image.py,窗口中会出现Running on local URL: http://localhost:7860的链接,ctrl-左键点击这个链接,会自动用浏览器打开软件界面。

注意事项

浏览器界面参数行images初始设置为1(每次运行仅输出一个立面效果图),如果增大的话容易出现显存溢出导致无法运行,请适度增加,如果崩溃,请从6开始重新运行。其他玩法请参考本文第一行提供的项目页面帮助。有其他问题请在评论区留言。

你可能感兴趣的:(python,windows,开发语言)