我们之所以有很多痛苦,其实不是因为,你真实生活当中的痛苦,而是因为你觉得自己不好,你在怪自己。
大家好,我是柒八九。
许久未更文了,不知道是否有些许的想念啊。最近,在忙公司的事情。然后,很多更文都属于头脑风暴阶段。但是呢,这篇文章本来打算上周发布的,但是思来想去,还是做了一些内容的变更。
然后,还有一件事需要告知大家,我 {又双叒叕|yòu,shuāng,ruò,zhuó}打算新开辟一个系列文章 -- AI模型
。 但是,大家不要担心,不是啥高大上的东西,不会做一些AI模型训练的(后期如果有机会,也不是不可以尝试一下,本事我也是在自我进化中...)都是一些大家都能上手实践的。
同时,最近也会在规划,自己搭建一个国内版本的ChatGPT
问答网站和小程序和AI
集合。这也是近期的一个规划。
但是,大家放心,咱们的主业还是偏向前端
/Rust
。毕竟,只有解决了温饱问题,才可以考虑更高级的享受。
碎碎念
但凡,混迹于互联网的Coder
,在最近的1-2个月内,都主动或者被动的听过ChatGPT/AutoGPT/Midjourney/Stable-Diffusion
等五花八门的AI
产品和模型。 本着,对技术的敏感度,同时公司业务也有AI相关的业务和场景。所以,在工作和业余时间也在逐步的使用相关的AI产品。
同时就在上周,很有幸,被腾讯云开发者开了白名单。
然后在文章列表中,一眼就相中利用AIGC:从0搭一个图文视频生成网站,准备转载。本着,这么好的东西,不自己亲手搭建一个,那不是很 {暴殄天物|bào tiǎn tiān wù}。所以,就按照上文的步骤进行搭建。但是,在搭建的时候,愈发感觉不对劲。后来才发现stable-diffusion
的安装分系统环境。上文中提到的是Windows
的安装步骤,而我本地环境的是Mac
(非M1版本)。所以,这本就是南辕北辙
的,它无论如何都无法达到自己想要的效果。
同时,在原文中,他过多的省略了很多安装步骤和必要的解释。(这里不是说原文写的不好,可能自己的水平没有达到那个水平),所以在安装步骤搭建起来,感觉很生硬。同时,由于涉及到其他的语言概念(python
等)和安装方式。也会让平时不咋接触这些语言的开发者,望而却步。
所以,本着好东西要分享的态度,今天这篇文章。我们来仔细讲讲 如何在Mac环境下,stable-diffusion搭建一个图文网站。
这里先放几张,利用SD
在本地生成的图片。是不是很哇噻。(放心,只要跟着这个教程走,你也可以生成属于你的好看的图片)
你能所学到的知识点
- 啥是
AIGC
推荐阅读指数 ⭐️⭐️⭐️⭐️- 何为
StableDiffusion
推荐阅读指数 ⭐️⭐️⭐️⭐️- 项目启动(很重要) 推荐阅读指数 ⭐️⭐️⭐️⭐️⭐️
- 下载插件(也很重要)推荐阅读指数 ⭐️⭐️⭐️⭐️⭐️
- 生成图片(最后但非常重要)推荐阅读指数 ⭐️⭐️⭐️⭐️⭐️
好了,天不早了,干点正事哇。
啥是AIGC
AIGC
指的是“Artificial Intelligence Generated Content”,也就是“人工智能生成内容”。
“人工智能生成内容”是指利用人工智能技术生成文本、图像、音频等各种形式的内容。这些内容通常是基于大规模数据训练的深度学习模型
生成的,比如自然语言处理模型、图像生成模型和语音合成模型等。人工智能生成内容在许多领域都有广泛的应用,比如语言翻译、音乐生成、虚拟现实和广告营销等。
常见的AIGC应用方向
现在市面上常见的AIGC应用有很多,以下是一些常见的应用以及使用的模型或技术:
文本生成
自然语言处理技术被广泛应用于文本生成任务中,常见的模型包括:
- {语言模型|Language Model}:用于生成符合语言规则的句子或段落。
- {翻译模型|Translation Model}:用于翻译不同语言的文本。
- {对话模型|Dialog Model}:用于生成符合上下文语境的对话。
- {摘要模型|Summarization Model}:用于生成文本的概括或摘要。
- {生成式模型|Generative Model}:用于生成新的文本,例如GPT系列模型。
市面上比较常用的产品如下。其实还有很多,记住搞定最头部的几个产品。
然后,针对AI
编程,其中Tabnine
强烈推荐。最近在用这个,感觉太好用了。
图像生成
深度学习技术在图像生成领域也得到了广泛的应用,常见的模型包括:
- {对抗生成网络|Generative Adversarial Networks},:(
GANs
)利用两个神经网络进行博弈的方式生成逼真的图像。 - {变分自编码器|Variational Autoencoder}(
VAE
):用于将图像编码为潜在向量并通过解码器生成逼真的图像。 - {流模型|Flow-based Model}:用于对图像的像素进行建模,然后从建模分布中采样生成图像。
音频生成
在音频生成领域,常见的模型包括:
- {自回归模型|Autoregressive Model}:用于预测下一个音频样本。
- {流模型|Flow-based Model}:用于对音频信号建模,然后从建模分布中采样生成音频。
WaveNet
:一种基于深度卷积神经网络的语音合成模型,可以生成逼真的语音。
何为Stable Diffusion
Stable Diffusion
,通常是指一种用于文本到图像合成的深度学习模型,它可以在给定文本描述的情况下生成高质量、多样化的图像。
具体来说,Stable Diffusion
是一个基于流程的生成模型,它在潜在空间中使用扩散过程来生成图像。在训练过程中,模型通过随机抽样生成中间图像序列
,然后根据这些中间图像生成最终的输出图像。这个生成过程是由一个潜在向量和一个标准正态分布组成的,这两个分布相加后经过一个可逆的非线性变换得到最终的图像。
Stable Diffusion
的优势在于它能够生成高质量、多样化的图像,并且可以在给定的文本描述下生成与之相关的图像。这使得它在计算机视觉、虚拟现实、游戏开发等领域具有广泛的应用。同时,它也为图像编辑和处理任务提供了新的可能性,例如物体移除和图像修补等任务。
总的来说,
Stable Diffusion
是一种有前途的文本到图像合成方法,有潜力在计算机视觉、虚拟现实和创意艺术等广泛领域中发挥作用。
后期,我们会有两篇专门针对
Stable Diffusion
的介绍文章。已经在规划中....
项目启动
这里我们参考Stable Diffusion
官网的配置流程。
但是,别看就这么点东西,但是里面的坑还是不少,所以,我就带着大家一起搭建网站。
这里有几点需要说明,因为这也算是一个科普文章,为了让大部分人,甚至是非科班的人,也可以搭建成功,有些大家可能感觉到很习以为常的概念也会有简单的介绍和讲解。
1.安装Homebrew
何为Homebrew
Homebrew
是一款 macOS
平台上的包管理器,可以帮助用户方便地安装和管理各种开源软件和工具。它的作用类似于 Linux
系统上的 apt-get
或者 yum
包管理器。如果熟悉前端开发的同学,你可以将它比做npm/yarn/PNPM
。
使用 Homebrew
,用户可以通过命令行界面快速地安装、更新和卸载各种软件,也可以管理软件包的版本,同时还可以解决各种依赖关系。例如,用户可以使用 Homebrew
安装 Git
、Node.js
、Python
等常用的开发工具和软件。
安装Homebrew
以下是在 macOS
上安装和使用 Homebrew
的步骤:
-
打开
macOS
终端应用程序,可以通过按下Command+Space
,然后输入Terminal
来搜索并打开终端。 -
在终端中运行以下命令,安装
Homebrew
:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
但是,在国内安装Homebrew
的时候,因为网络原因,所以这个官方命令很大可能是失败的。很快就能看到下面的提示信息
curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused
我们可以切换为国内源
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
-
在安装过程中,
Homebrew
会要求用户输入管理员密码,以便进行必要的系统权限操作。安装完成后,Homebrew
会自动添加一些必要的路径到系统的环境变量中。 -
安装完成后,可以通过运行
brew doctor
命令来检查安装是否正确。如果有任何警告或错误信息,可以根据提示进行修改。
如果上述步骤还是不成功,请私聊博主。我是你值得信赖的后盾。
2.下载对应的包
对应官网的第二步。
在第一步配置成功的基础上,将如下命令复制到终端,然后进行下载。
brew install cmake protobuf rust python@3.10 git wget
当然,如果你电脑中已经配置过上面的某些库,也可以将其从中删除掉。比方说,大家在项目开发中,都用git
,那就没有必要在将git
写入。同理,其他库也是如此。
然后,这一步是自动的,不需要你做其他的操作。
这里,我们从上帝视角来看看为什么要指定一些包。因为,这是在后期启动项目时,需要用到的工具。
我们直接从代码角度看。(因为,我已经把项目下载下来了,所以我就直接按照代码讲解了)
针对macOS
用户来讲,我们后期启动项目的文件就是webui.sh
文件。它会先从./webui-macos-env.sh
中获取自定义的参数,这个我们后面讲。
然后,在下面有一个bash
语法。
if [[ -z "${python_cmd}" ]]
then
python_cmd="python3"
fi
这段代码是一个 Bash
脚本中的条件语句
,主要作用是检查变量 python_cmd
是否为空值,如果是空值则将其赋值为字符串 "python3"
。
具体来说,[[ -z "${python_cmd}" ]]
是一个条件判断语句,其中 [[
和 ]]
是 Bash
的条件测试语法,-z
表示测试一个字符串是否为空。 ${python_cmd}
是一个变量,${}
用来引用变量。
因此,整个语句的意思是:如果 python_cmd
变量的值为空字符串,则执行后续的命令将其赋值为 "python3"
。如果 python_cmd
已经有了值,则不会执行条件语句中的命令。
3. 从github上下载对应的项目
找一个合适的文件目录,然后下载对应的项目。
这里就不在过多解释了哈。
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
4. 下载和安装对应的模型
这里不是最重要的点,但是很麻烦,因为无论是官网还是Hugging Face
中提供的模型,不仅动辄4-5G,而且你下载的时候,还需要指定的