分类
工具

Centos 8 安装 Nvidia 显卡驱动

查看显卡

 lspci | grep -i vga

我的显卡是

00:10.0 VGA compatible controller: NVIDIA Corporation GA106 [GeForce RTX 3060] (rev a1)

下载显卡驱动

去 Nvidia 官网下载(以3060为例,可以在官网找到各个显卡型号的驱动)

wget https://us.download.nvidia.com/XFree86/Linux-x86_64/525.60.11/NVIDIA-Linux-x86_64-525.60.11.run

安装依赖

我一般安装开发工具集成,这样可以省很多时间。

dnf groupinstall "Development Tools"
dnf install libglvnd-devel elfutils-libelf-devel

禁止默认显卡驱动

grub2-editenv - set "$(grub2-editenv - list | grep kernelopts) nouveau.modeset=0"

查看禁止是否生效

输入可以看到显卡驱动类型

lspci -k | grep -EA3 'VGA|3D|Display'

查看地 nouveau 是否禁止

grub2-editenv - list | grep kernelopts

重启

reboot

安装内核开发文件

dnf install kernel-headers
dnf install kernel-devel
dnf distro-sync

查看内核开发文件是否生效

rpm -qa | grep -E "kernel-devel|kernel-headers"

更新依赖

dnf distro-sync

安装驱动

sh NVIDIA-Linux-x86_64-525.60.11.run

注意

  1. 显卡驱动和 CUDA 是两个不同的包,安装了显卡驱动就要以用显卡了。
  2. CUDA 是一个基于显卡的计算库。
  3. 如果是通过 conda ,可以不安装CUDA,通过 conda 也可以安装CUDA。

参考

How to install the NVIDIA drivers on CentOS 8 – Linux Tutorials – Learn Linux Configuration

ERROR: Unable to find the kernel source tree for the currently running kernel – CentOS / RHEL / AlmaLinux – Linux Tutorials – Learn Linux Configuration

分类
深度学习

简单理解 Stable Diffusion 和 代码实现

Stable Diffusion 的论文我粗看了一下,并没有完整的去看所有的数学推导,知道大概的过程后,随手找了几个科普性质的文章,最后又找了几段代码,Stable Diffusion 是好几个技术拼在一起,包括 openai 的 CLIP,U-NET等。

我的学习目标

我学习这些的目标可以拆解如下。

  1. 会用,利用开源的模型,可以自己运行起来。
  2. 明白其原理,大致的搞明白其原理,但是不会去纠小细节。
  3. 了解其各个参数的作用和用法。
  4. 找其原理实现的代码,把代码跑起来。
  5. 怎么样把模型服务化,做到高可用。

怎么用 stable diffusion 的文章一大把,讲其原理的视频和文章相对少一些,但是也是有的,推荐 beginners-guide-to-diffusion-models 这个文章解决的比较清楚,并且作者是还画了图,看完后你大概知道什么是 step,什么是 CFG,什么是调度器之类的了。

代码实现发现 fast.ai 有一个课程,讲解了基本的原理,并且实现了相应的代码,Stable Diffusion Deep Dive,他的整个代码也都可以看一看diffusion-nbs

视频推荐

20221219BziuVD
这个是 fat.ia 相关的视频,在 Stable Diffusion 方面介绍的较详细 https://www.youtube.com/@howardjeremyp/videos

Stable Diffusion 视频推荐

https://www.youtube.com/watch?v=1CIpzeNxIhU&t=242s&ab_channel=Computerphile

分类
Stable Diffusion

openai CLIP 库实现图片搜索

在看 stable diffusion 代码的时候,发现基本上都会用一个库 CLIP,是 openai 开源出来的, openai/CLIP: Contrastive Language-Image Pretraining 可以把图像和文本转换到一个向量空间,最简单的应用是可以用文本搜索图片,像 stable diffusion 这种生成模型,其实就是好几种技术拼接在一起,才会有这样的效果。

openia

图片搜索

Search photos on Unsplash using natural language 实现了文字到图片的搜索,原理非常简单,把要搜索的图片都转换面向量,把要搜索的文字也转换成向量,直接到这些向量就相似度就可以。

讓AI幫你穿搭!用CLIP實作一個時尚穿搭資料庫 (aif.tw)

openai CLIP
分类
建筑

勒·柯布西耶谈住宅

最近在读勒·柯布西耶走向新建筑,在谈到住宅时,有下面的一些描述,并且写了一个住宅指南,我也很喜欢这种风格,他有很多代表作,Villa Savoye 在住宅方面非常有代表性。Le Corbusier 作品集欣赏

萨伏伊别墅:走向新建筑 对 Savoye 有具体的介绍。

20221217ODTZp4

上图是用 stable diffusion 生成的, prompt 为 ‘villa by Le Corbusier ‘

住宅指南

  1. 需要一间向南的浴室,家里最大的房间之一,像旧式的沙龙。一面墙全是玻璃窗,如果可能,通向一个日光浴阳台;有瓷便器、浴缸、淋浴、体育锻炼用具。
  2. 相邻房间:化妆室,你在那儿穿脱衣服。不要在卧室里脱衣服,这既不卫生又会搞得乱糟糟。化妆室里要有柜子放内衣和外套,不高于1.50米,有抽屉、挂衣处,等等。
  3. 要有一间大厅代替所有的沙龙。
  4. 在卧室里、大厅里和餐厅里要有空白墙面。用壁橱代替昂贵的、占据许多地方的、需要维修的家具。
  5. 去掉仿石的抹灰和菱形拼花门,它们意味着虚假的风格。
  6. 如果可能,把厨房放在顶楼里,以避免油烟气味。
  7. 向房东提出,为补偿仿石抹灰和糊纸墙,他要给你装上隐蔽的或散光的电灯。
  8. 要真空吸尘器。
  9. 要买实用的家具,绝不可买装饰性家具。请你到古老的府邸里去看大贵人们的低级趣味。
  10. 在墙上只挂少量的画,只挂好画。没有画,就买画的复制品。
  11. 把你的收藏品放在抽屉里或柜子里。要深深地尊重真正的艺术品。
  12. 留声机和钢琴使你正确地理解巴赫的赋格曲,并使你避开音乐厅、感冒、演员们的狂热。
  13. 每个房间的窗子都要有换气扇。
  14. 告诉你的孩子,只有光线充足、地板和墙面都干干净净的房子才能居住。为保持地板干净,你不要用独立的家具和东方地毯。
  15. 向房东要一间汽车房,也可存放自行车和摩托车。
  16. 楼上要有家务室,不要把家务室放在顶楼里。

基本公理:

椅子是做来给人坐的。

有教堂里用的只值5法郎的草编椅子,有值1000法郎的马伯尔式扶手椅,也有莫理斯式的椅子,椅背可以分级放倒,有活动的木板可以放书、放咖啡杯,可以拉长开来搁伸直的脚,可以用摇柄把椅背放到午睡或工作的最合适的位置,有利于健康,舒服,恰到好处。你的安乐椅,你的路易十六式的椭圆形双人沙发,用锦缎垫子垫得松松软软的,它们是用来坐人的机器吗?说句知心话,你还是在你的俱乐部里、你的银行里或者你的办公室里更舒服一些。

电力提供光明

有隐蔽的灯,也有散光的和聚光的灯。我们可以像在白昼一样看东西,我们眼睛再也不出毛病。一只100支光的灯泡重50克,但你的有铜质或木质大圆盘的吊灯有100公斤重,如此之大,竟至于塞满了房间,由于苍蝇在上面拉屎,它的清洁工作极其困难。到了晚上,它们很伤眼睛。

窗子的用处是透光,向外观望

卧车车厢的窗子可以密闭,可以自由开启;现代化的咖啡馆的窗子很大,可以密闭,也可以用摇柄把它降到地下去,完全敞开;餐车的窗子有软百叶,可以开开来通一点风,通许多风或者完全不通风;大块平板玻璃代替了瓶子底式的玻璃和镶嵌玻璃;有一种可以转动的百叶窗,它的叶片可以一点一点地放下来,用它们间距的变化控制光线的进入。但建筑师还是采用凡尔赛式的,贡比埃尼式的,路易第十、第X、第Y式的关不严的窗子,它们装着小块玻璃,开关困难,百叶窗在外面,如果晚上下雨,为了去拉它们,人们就要挨淋。

绘画是画出来给人欣赏的

拉斐尔、安格尔和毕加索是为了给人欣赏才画画的。如果嫌拉斐尔、安格尔和毕加索的画过于昂贵,照片复制品却很便宜。为了在一张画前欣赏它,应该把它挂在好地方,气氛安静。古典绘画的真正收藏家把画放在柜子里,想看哪一幅才把那幅挂在墙上,但你的墙却像集邮册,尽是些不值钱的邮票。

住宅是造起来住人的

老实说,现代男士在家里烦闷得要死,他到俱乐部去。现代女士在她的小客厅之外觉得烦闷,她们去赴下午茶会。现代男士女士在家里烦闷,就出去跳舞。但低微的人们没有俱乐部,晚上聚在吊灯下,不敢在他们的家具形成的迷宫里走动,这些家具占了所有的地方,它们是他们的全部财产和他们的骄傲。
老实说,现代男士在家里烦闷得要死,他到俱乐部去。现代女士在她的小客厅之外觉得烦闷,她们去赴下午茶会。现代男士女士在家里烦闷,就出去跳舞。但低微的人们没有俱乐部,晚上聚在吊灯下,不敢在他们的家具形成的迷宫里走动,这些家具占了所有的地方,它们是他们的全部财产和他们的骄傲。

反酗酒协会,人口增殖协会,应该向建筑师们发出呼吁;他们应该印刷《住宅指南》,把它分发给家庭主妇们,并敦促巴黎美术学院的教授们辞职。

分类
有意思的项目

图片删除文字

把文字从图片上删除,原理是非常简单的,就是先 OCR,找到文字的坐标,然后再生成一个 mask,把文字罩住就可以,今天看到一个开源项目,叫做 GitHub – iuliaturc/detextify: Remove text from AI-generated images ,他的做法是用 Stable Diffusion 这样的模型去生成图,然后用这个图去罩住那块文字。

效果

复制前
移除文字

问题

对中文的图片支持不好,要调用第三方 OCR 来处理中文,最多能删除 5 个 textbox(字块)。

想法

基于这种思路,把各个 AI 的能力整合到一起,就可以实现一些复杂的能力,如可以实现图片到图片的翻译。

分类
深度学习

Stable Diffusion Anything

Linaqruf/anything-v3.0 · Hugging Face 是一个动漫风格的模型,可以 txt-to-image ,也支持 image-to-image。

Anything Taylor Swift
原图

注意事项

image to image

  • 图片的比重一定要占到 45% 以上,才会让生成的图片和原图相似。
  • 如果图片的比重超过 80% ,生成的图片和原图基本上不太相似,可能差别非常大。
  • 原图不能太大,分辨率太高,1024×1024 以上,计算非常慢,在生成之前,最好对原图进行调整。
分类
Stable Diffusion

什么是 Latent Space

最近在看 Stable Diffussion 的相关原理性的知识,遇到一个 Laten Space 的概念,发现有人写一个文章,非常形像的解释的了什么叫做 Latent Space ,他有什么用?还有代码怎么样去实现之类的思路,非常值得推荐一读。

也让我形像的理解了 Autoencoders 的思路,Understanding Latent Space in Machine Learning | by Ekin Tiu | Towards Data Science

Latent Space

什么是Latent Space?

如果我必须用一句话来描述Latent Space,数据压缩的表示方法

举例

下面这个例子非常形像化的去理解 Latent Space,就是对这些对象提取重要的特征,相似对象的特征应该更加接近,比如下图中的几个椅子的特征和桌子的特征肯定不一样,几个椅子的特征更加相似,因此可以去掉一些椅子多余的特征,如颜色,只保留重要的一些特征。

如果我们看这副图像,四张椅子和一张桌子,我们很容易说这四张椅子图像最相似,而桌子与任何一张椅子图像的差异最大。

202212146uQ4Kq

但是,是什么让这两张椅子的图像“更相似”?椅子具有明显的特征(即靠背、无抽屉、腿之间的连接)。通过学习边缘、角度等方面的模式,我们的模型都可以“理解”这些。

因此,随着维数的减少,每个图像(即椅子颜色)不同的“无关”信息从我们的潜空间(Latent Space)表示中“移除”,因为只有每个图像最重要的特征存储在潜在空间表示中。

结果,当我们降低维度时,两把椅子的表示

变得不那么明显而更相似。如果我们想象它们在空间中,它们会“更靠近”在一起。

怎么样对 Latent Space 进行可视化

Latent space visualization — Deep Learning bits #2 | HackerNoon 做了一个 Latent Space 的可视化,非常方便理解生成的逻辑。

分类
未分类

Stable Diffusion API 使用

stablediffusionapi

是一个 SaaS 服务,特点是支持各种主流的 Stable Diffusion 模型,根据调用次数收费,响应速度在 2- 6 秒左右, $149 美元的套餐不限制次数(没有验证),支持 Dreambooth。
Stable Diffusion And Dreambooth API – Generate and Finetune Dreambooth Stable Diffusion using API (stablediffusionapi.com)

stable diffusion  api
支持的模型

replicate

Replicate – Run open-source machine learning models with a cloud API 支持自己 deploy 服务,价格较实惠,但是我没有找到我想用的模型。

replicate 价格

dreamstudio

dreamstudioStability AI 的产品,10 美元默认可以产生 5,000 张照片,但是可选择的模型相对较少。

dreamstudio

midjourney

Billing and Licensing – Midjourney Documentation (gitbook.io) 价格相对较贵,可选择的模型少。

midjourney 价格
分类
有意思的项目

Ray 框架推荐

在找一个框架,可以方便的训练,调优,服务化的框架,找来找去,发现 Welcome to the Ray documentation — Ray 2.1.0 这个框架基本上能满足我的需求,查了一下,发现很多大公司在用,国外的 openai,shopify 之类的。

项目地址

GitHub – ray-project/ray: Ray is a unified framework for scaling AI and Python applications. Ray consists of a core distributed runtime and a toolkit of libraries (Ray AIR) for accelerating ML workloads.

分类
有意思的项目 深度学习

用 Dreambooth 生成自己的肖像

最近AI 生成 avatar 或者 portrait 特别火,火到什么程度呢?有人用这个一天挣了 100 万美元,我也一直很喜欢生成头像,这种生成的技术叫做 Dreambooth,应该是 Google 发布的一论文,然后有人把它实现了。

Dreambooth
20221210Q3OTIm

生成步骤

准确照片

要拍 20 张左右的照片,如果是肖像生成, iphone 有人像模式,用这种方式拍出来的效果最好,20 张照片应该从人脸的各个角度进行拍摄。

准备训练

用上面拍的 20 张照片进行训练,训练时间在不同的 GPU 上差距很大,不太推荐在 T4 上面去训练,推荐 A100,显存至少要 20 G 以上。

生成

训练完成就可以根据 prompt 去生成,用什么样的 prompt 非常有技巧,推荐一个参考网站。 PromptHero – Search prompts for Stable Diffusion, DALL-E & Midjourney

论文

[2208.12242] DreamBooth: Fine Tuning Text-to-Image Diffusion Models for Subject-Driven Generation (arxiv.org)

代码实现

GitHub – XavierXiao/Dreambooth-Stable-Diffusion: Implementation of Dreambooth (https://arxiv.org/abs/2208.12242) with Stable Diffusion

diffusers/examples/dreambooth at main · ShivamShrirao/diffusers · GitHub

huggingface 也有训练的代码,和相关的参数,并且还总结了各种经验。

Training Stable Diffusion with Dreambooth using Diffusers (huggingface.co)

diffusers/examples/dreambooth at main · huggingface/diffusers · GitHub

湘ICP备2020020034号-1