【笔记】windows+pytorch:部署一下stable diffusion和NeRF

之前都是 *nix 环境使用 pytorch,这次尝试了一下windows。
我们来部署下流行性高的stable diffusion和我觉得实用性比stable diffusion高多了的NeRF

Stable Diffusion

其实,我也不知道要写啥,都是按照步骤做就好了,后面等有时间了我们来写写如何训练模型吧……

https://stability.ai/stable-diffusion/
https://github.com/Stability-AI/StableDiffusion

一般,我们不用直接去捣鼓这个模型和一堆脚本,人家有webui,可以启动网页版啊…所以国内有很多就是基于这个网页版,然后再把最重要的一步Hugging Face上的模型搬运过来…我估计在国内架一个Hugging Face CDN最近会很吃香啊,随便搜索了下,bing上还是有的…

是的,最近都不怎么用Google了,Bing已经不错了…有事就问搭载GPT-4的Coplit…
扯了这么多,用得比较多得webui的github:

https://github.com/AUTOMATIC1111/stable-diffusion-webui

看了一下,github上发布目前最新的已经只有source code了;
然而,如果你不想费周折去在windows上配置python+git,那么就直接

https://github.com/AUTOMATIC1111/stable-diffusion-webui/releases/tag/v1.0.0-pre
https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Install-and-Run-on-NVidia-GPUs
其他诸如AMD GPU、MacOSX、Docker可以看这里
https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki

把 sd.webui.zip 下载下来,解压,运行 update.bat 再 run.bat 其实就可以用了…
btw,我得windows机器是Nvida 3070,所以先去官网安装Cuda驱动,3GB,啊既然提到了GB,准备好30GB再来运行stable diffusion哦…

首先如果你 run.bat 失败了很多次,我们来看看一些可行得解决方案:

  • 一个是这个pytorch,直接pip install得话只有400kb,查阅了网上得资料,打开cmd然后cd到stable diffusion webui的解压后的文件夹下,预先可以:
call enviroment.bat
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -f https://download.pytorch.org/whl/torch_stable.html

使用后就是飞一般的速度,据说有人是40MB/s,作为穷人的我还没那么非,10MB/s,几分钟就把这个2.6GB的pytorch搞定了…

  • 刚才说了Hugging Face CDN,去bing上看下国内的镜像,然后下载对应model文件好了;如果更方便,就是用在 C:\Windows\System32\drivers\etc 里用管理员权限编辑 huggingface.co 指像本地127.0.0.1的nginx,在nginx把huggingface接上国内镜像站就好了;哦不用这么麻烦,如果人家没用复杂的配置,直接ping拿到镜像站的ip然后直接hosts里指定就好了…嗯,基础模型也就将近4GB吧…

如果你得模型下了一半,网络挂了,最好得办法就是把下载一半的文件干掉,重新 run.bat 一下…

我们来看一下,界面其实一目了然,输入一些文字,然后"Generate"就可以出图了。
在这里插入图片描述这里我们可以玩一下controlNet,画一个简笔画,让它生成图片。
在这里插入图片描述 补充下,这里controlNet实际是一个插件

https://github.com/Mikubill/sd-webui-controlnet.git

按照它的github去操作就好了,这个的模型文件还是有点大的,因为分了不同的模块,Hugging Face上是每个模块都是1.45GB的pth模型参数文件…也就十几个吧…之后大家有兴趣,还可以自己去查LoRA插件的使用…估计网上教程漫天飞舞了…

NeRF

NeRF这个东西本身还是蛮有意思的…拍摄一系列的物体照片,通过神经网络,计算光场,相当于空间里某个点xyz上颜色的概率…就是如何让罗马在3天之内建成,可以通过在罗马拍照取样,然后计算建模生成整个3D场景;或者说我们想要3D打印一个手办,把现有的手办拍点照片,就可以生成数字化文件,直接再去打印去…

官方网址是

https://nerf.studio/

里面的过程也很详细…
首先我们可以学习上面的sd webui,里面有一些脚本配置环境,比如 environment.bat 配置了python在哪里;为了不污染各个python环境,我们可以把python的zip包下载下来后,然后安装个pip,sd webui里也有 get-pip.py 可以用。之后 pip install virtualenv把virtualenv安装好,这样用 python -m virtualenv xxxx就可以创建一个相对独立的python运行环境了;之后就是把 enviroment.bat 复制过来,把路径配置成我们virtualenv生成的python路径。按照stable diffusion描述的一些方法可以安装好另一套pytorch,这样就可以安装NeRF studio了:pip install nerfstudio

安装完成以后,按照教程

  • 下载样例照片 ns-download-data nerfstudio --capture-name=poster
  • 使用照片训练模型 ns-train nerfacto --data data/nerfstudio/poster

嗯,训练速度么,3070要训练30k epoch大概2h(tiny-cuda-nn没安装的情况);使用官方的链接可以看到结果,但是官方给的链接是官网的地址打开连接上本地的websocket服务端…我想纯local怎么呢…反正人家官网地址viewer是static的,直接把html css js都dump一下下载到本地就好了,就可以纯本地看结果了…

训练完成以后,可以通过webui生成一下导出point cloud的命令,在cmd里运行,比如

ns-export poisson--load-config outputs\poster\nerfacto\2023-11-29_141945\config.yml--output-dir exports/mesh/--target-num-faces 50000--num-pixels-per-side 2048--normal-method open3d--num-points 1000000--remove-outliers True--use-bounding-box True--bounding-box-min -1 -1 -1--bounding-box-max 1 1 1

就可以导出 obj mlt ply 文件了,这个文件找一个阅读软件观看好了…

在这里插入图片描述
这个生成的文件其实就可以导入3D软件里编辑了,修修边,调整一下,其实可以去3D打印了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/231851.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

防火墙之iptables

iptables概述 1.Linux 系统的防火墙 :IP信息包过滤系统,它实际上由两个组件netfilter 和 iptables组成。 2.主要工作在网络层,针对IP数据包。体现在对包内的IP地址、端口、协议等信息的处理上。 -netfilter/iptables关系: netfil…

【C++】单链表——单链表的基本操作

1、单链表的定义 由于顺序表的插入删除操作需要移动大量的元素,影响了运行效率,因此引入了线性表的链式存储——单链表。单链表通过一组任意的存储单元来存储线性表中的数据元素,不需要使用地址连续的存储单元,因此它不要求在逻辑…

运维知识点-openResty

openResty 企业级实战——畅购商城SpringCloud-网站首页高可用解决方案-openRestynginxlua——实现广告缓存测试企业级实战——畅购商城SpringCloud-网站首页高可用解决方案-openRestynginxlua——OpenResty 企业级实战——畅购商城SpringCloud-网站首页高可用解决方案-openRes…

基于深度学习的表情动作单元识别综述

论文标题:基于深度学习的表情动作单元识别综述 作者:邵志文1,2,周 勇1,2,谭 鑫3,马利庄3,4,刘 兵1,2,姚 睿1,2 发表日期&#xff1a…

idea不需安装插件,自动生成mybatis-plus对应的实体类entity,带注解@TableName、@TableId、@TableField

目录 1、修改Generate poJOs.groovy文件 2、idea中连接数据库 3、生成entity代码 4、查看生成的实体类 1、修改Generate poJOs.groovy文件 在项目下方点击Scratches and Consoles→ Extensions→ Database Tools and SQL箭头→schema→ Generate POJOs.groovy 替换为以下文…

504. 七进制数

这篇文章会收录到 : 算法通关第十三关-青铜挑战数学基础问题-CSDN博客 七进制数 描述 : 给定一个整数 num,将其转化为 7 进制,并以字符串形式输出。 题目 : LeetCode 504. 七进制数 : 504. 七进制数 分析 : 我们先通过二进制想一下7进制数的变化特…

爬虫代理技术与构建本地代理池的实践

爬虫中代理的使用: 什么是代理 代理服务器 代理服务器的作用 就是用来转发请求和响应 在爬虫中为何需要使用代理? 隐藏真实IP地址:当进行爬取时,爬虫程序会发送大量的请求到目标网站。如果每个请求都使用相同的IP地址&#xff…

HotSpot 虚拟机中的对象

1、对象的创建 Java 是一门面向对象的编程语言,程序运行过程中无时无刻都有对象被创建出来。在语言层面上,创建对象通常仅仅是一个 new 关键字,而虚拟机中,对象(仅限于普通 Java 对象,不包括数组和 Class …

手写VUE后台管理系统5 - 整合状态管理组件pinia

整合状态管理组件 安装整合创建实例挂载使用 pinia 是一个拥有组合式 API 的 Vue 状态管理库。 pinia 官方文档:https://pinia.vuejs.org/zh/introduction.html 安装 yarn add pinia整合 所有与状态相关的文件都放置于项目 src/store 目录下,方便管理 在…

基于卷积神经网络的人体行为识别系统开发与设计

摘 要 基于卷积神经网络的人体行为识别的开发与设计 摘要:随着计算机领域不断的创新、其它行业对计算机的应用需求的提高以及社会对解放劳动力的迫切,人机交互成为人们关注的问题。深度学习的出现帮助了人们实现人机交互,而卷积神经网络是其…

自动化测试框架搭建步骤教程

说起自动化测试,我想大家都会有个疑问,要不要做自动化测试? 自动化测试给我们带来的收益是否会超出在建设时所投入的成本,这个嘛别说是我,即便是高手也很难回答,自动化测试的初衷是美好的,而测试…

福德植保无人机:农业科技的新篇章

一、引言随着科技的不断发展,无人机技术在许多领域中都得到了广泛的应用。近年来,福德植保无人机在农业领域大放异彩,成为了现代化农业的重要一环。本篇文章将为您详细介绍福德植保无人机的优势、特点以及未来发展趋势。 二、福德植保无人机的…