Windows使用Stable Diffusion进行AI画图(GPU)
引言
https://github.com/CompVis/stable-diffusion
Stable Diffusion is a latent text-to-image diffusion model.
Stable Diffusion是近年来流行的AI生成图片工具,这里尝试在Windows系统电脑上使用GPU进行图片生成。
欢迎订阅公众号, 点击 MinYiLife
https://github.com/CompVis/stable-diffusion
Stable Diffusion is a latent text-to-image diffusion model.
Stable Diffusion是近年来流行的AI生成图片工具,这里尝试在Windows系统电脑上使用GPU进行图片生成。
https://github.com/CompVis/stable-diffusion
Stable Diffusion is a latent text-to-image diffusion model.
Stable Diffusion是近年来流行的AI生成图片工具,这里尝试在Mac电脑(非M1)上使用CPU进行图片生成。
整个安装过程异常崎岖,参考了很多博客文章但大部分都进行不下去,要么是系统本身缺某个软件包或版本不对,要么是Python相关的软件包安装不了。
A Drop-In replacement for CString that builds on the Standard C++ Library's basic_string template
在C++标准库中有一个std::string
字符串类实现,但它的功能简陋一些;而在VC++ MFC中有一个CString
类,提供了丰富的字符串操作接口。
CStdString
是一个类似CString
操作接口的、跨平台的字符串类实现,作者是Joe O'Leary
,使用它只需要包含整个头文件StdString.h
。
Doxygen is the de facto standard tool for generating documentation from annotated C++ sources.
Doxygen
是一个应用广泛支持多种编程语言和多种输出格式的源码文档生成工具,从1.8.0版本开始支持Markdown
语法标记文档。
shred - overwrite a file to hide its contents, and optionally delete it
Overwrite the specified FILE(s) repeatedly, in order to make it harder for even very expensive hardware probing to recover the data.
很多时候删除一个文件,实际上只是在文件系统里面将该文件所在存储位置标记为可用、可覆盖状态,这个时候是可以通过恢复工具来进行恢复的;但如果这块存储位置之后反复被其他内容填充、覆盖的话,恢复的难度就增加了。
shred
工具在coreutils
软件包中,一般Linux系统都自带有这个工具。它通过多次覆盖的方式来删除文件,避免文件被恢复工具重新恢复,达到彻底粉碎的效果。但实际使用中,还是有一些需要注意的地方,并不能保证任何情况下都可以覆盖、删除干净,还是可能被恢复回来。
疫情后第一个春节,西安各大景点的游客人山人海,爱热闹却又怕人多的我就一直在家歇着;元宵夜,当窗外此起彼伏的烟花爆竹声传来时,还是禁不住的又一次想起来了家乡的火把龙。
小时候,只是跟着大人在元宵前一天走路去一个地方看舞龙表演,那是一个在山里的小村子,都是村里的青壮年来进行表演。表演的地方不大,是在一个小河边草地上,据说很久以前这里是有一个龙王庙的。男人们在山下河边放鞭炮,妇女们则带着孩子在远远的山坡上望着,之所以要躲在远远的,绝不仅仅是怕爆竹声,而是怕一种叫“神铳”的东西。所谓的神铳,是手举一根长长的棍子,棍子顶部是一个铁块做成的腔体,腔体填满火药,再用木片夯实,一旦点燃引爆会发出震耳欲聋的声音。
小时候对这种神铳是十分好奇的,因为家人们交代,捡到神铳爆破后散落的木片就会带来好运气;这个木皮有一个专属名字叫“神铳尖”,捡到它不仅会带来好运,把它放到鸡窝里还可以多下鸡蛋。每次我都期望可以捡到一两片神铳尖,但一次都没捡到过。
TensorFlow通过Python接口训练好模型,然后使用C++ API加载.pb模型文件,再对图片进行预测判断,这需要解决几个问题:
根据文档 https://tensorflow.google.cn/install 进行TensorFlow的安装时,要特别注意环境依赖的版本号,如果某个依赖项版本号不一致就会出现问题,比如使用的Python版本、Bazel版本、ProtocolBuffers版本等。
如果是通过Pip安装Python库的形式会容易一些,但如果想从源码编译,尤其是想编译出C/C++ API动态库形式就会比较麻烦,即使编译成功还要避免和其它库出现ABI冲突,参考: https://github.com/rangsimanketkaew/tensorflow-cpp-api 可以节省很多时间。
protobuf(Protocal Buffers)
是广泛使用的序列化、数据交换开源库,在RPC框架brpc、grpc和TensorFlow中都有使用到。
$ apt-get install libprotobuf-dev libprotoc-dev protobuf-compiler
$ protoc --version
libprotoc 3.6.1