在macOS下,利用AIGC:从0搭一个图文生成网站

lxf2023-12-15 05:00:01

我们之所以有很多痛苦,其实不是因为,你真实生活当中的痛苦,而是因为你觉得自己不好,你在怪自己。

大家好,我是柒八九

许久未更文了,不知道是否有些许的想念啊。最近,在忙公司的事情。然后,很多更文都属于头脑风暴阶段。但是呢,这篇文章本来打算上周发布的,但是思来想去,还是做了一些内容的变更。

然后,还有一件事需要告知大家,我 {又双叒叕|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在本地生成的图片。是不是很哇噻。(放心,只要跟着这个教程走,你也可以生成属于你的好看的图片)

在macOS下,利用AIGC:从0搭一个图文生成网站

在macOS下,利用AIGC:从0搭一个图文生成网站

在macOS下,利用AIGC:从0搭一个图文生成网站

你能所学到的知识点

  1. 啥是AIGC 推荐阅读指数 ⭐️⭐️⭐️⭐️
  2. 何为StableDiffusion 推荐阅读指数 ⭐️⭐️⭐️⭐️
  3. 项目启动(很重要) 推荐阅读指数 ⭐️⭐️⭐️⭐️⭐️
  4. 下载插件(也很重要)推荐阅读指数 ⭐️⭐️⭐️⭐️⭐️
  5. 生成图片(最后但非常重要)推荐阅读指数 ⭐️⭐️⭐️⭐️⭐️

好了,天不早了,干点正事哇。

在macOS下,利用AIGC:从0搭一个图文生成网站


啥是AIGC

AIGC 指的是“Artificial Intelligence Generated Content”,也就是“人工智能生成内容”。

“人工智能生成内容”是指利用人工智能技术生成文本、图像、音频等各种形式的内容。这些内容通常是基于大规模数据训练的深度学习模型生成的,比如自然语言处理模型、图像生成模型和语音合成模型等。人工智能生成内容在许多领域都有广泛的应用,比如语言翻译、音乐生成、虚拟现实和广告营销等。

常见的AIGC应用方向

现在市面上常见的AIGC应用有很多,以下是一些常见的应用以及使用的模型或技术:

文本生成

自然语言处理技术被广泛应用于文本生成任务中,常见的模型包括:

  1. {语言模型|Language Model}:用于生成符合语言规则的句子或段落。
  2. {翻译模型|Translation Model}:用于翻译不同语言的文本。
  3. {对话模型|Dialog Model}:用于生成符合上下文语境的对话。
  4. {摘要模型|Summarization Model}:用于生成文本的概括或摘要。
  5. {生成式模型|Generative Model}:用于生成新的文本,例如GPT系列模型。

市面上比较常用的产品如下。其实还有很多,记住搞定最头部的几个产品。 在macOS下,利用AIGC:从0搭一个图文生成网站

在macOS下,利用AIGC:从0搭一个图文生成网站

然后,针对AI编程,其中Tabnine强烈推荐。最近在用这个,感觉太好用了。

图像生成

深度学习技术在图像生成领域也得到了广泛的应用,常见的模型包括:

  1. {对抗生成网络|Generative Adversarial Networks},:(GANs)利用两个神经网络进行博弈的方式生成逼真的图像。
  2. {变分自编码器|Variational Autoencoder}VAE):用于将图像编码为潜在向量并通过解码器生成逼真的图像。
  3. {流模型|Flow-based Model}:用于对图像的像素进行建模,然后从建模分布中采样生成图像。

在macOS下,利用AIGC:从0搭一个图文生成网站

音频生成

在音频生成领域,常见的模型包括:

  1. {自回归模型|Autoregressive Model}:用于预测下一个音频样本。
  2. {流模型|Flow-based Model}:用于对音频信号建模,然后从建模分布中采样生成音频。
  3. WaveNet:一种基于深度卷积神经网络的语音合成模型,可以生成逼真的语音。

何为Stable Diffusion

Stable Diffusion,通常是指一种用于文本到图像合成的深度学习模型,它可以在给定文本描述的情况下生成高质量、多样化的图像。

具体来说,Stable Diffusion 是一个基于流程的生成模型,它在潜在空间中使用扩散过程来生成图像。在训练过程中,模型通过随机抽样生成中间图像序列,然后根据这些中间图像生成最终的输出图像。这个生成过程是由一个潜在向量和一个标准正态分布组成的,这两个分布相加后经过一个可逆的非线性变换得到最终的图像。

Stable Diffusion 的优势在于它能够生成高质量、多样化的图像,并且可以在给定的文本描述下生成与之相关的图像。这使得它在计算机视觉、虚拟现实、游戏开发等领域具有广泛的应用。同时,它也为图像编辑和处理任务提供了新的可能性,例如物体移除和图像修补等任务。

总的来说,Stable Diffusion 是一种有前途的文本到图像合成方法,有潜力在计算机视觉、虚拟现实和创意艺术等广泛领域中发挥作用。

后期,我们会有两篇专门针对Stable Diffusion介绍文章。已经在规划中....

项目启动

这里我们参考Stable Diffusion官网的配置流程。

在macOS下,利用AIGC:从0搭一个图文生成网站

但是,别看就这么点东西,但是里面的坑还是不少,所以,我就带着大家一起搭建网站。

这里有几点需要说明,因为这也算是一个科普文章,为了让大部分人,甚至是非科班的人,也可以搭建成功,有些大家可能感觉到很习以为常的概念也会有简单的介绍和讲解。

1.安装Homebrew

何为Homebrew

Homebrew 是一款 macOS 平台上的包管理器,可以帮助用户方便地安装和管理各种开源软件和工具。它的作用类似于 Linux 系统上的 apt-get 或者 yum 包管理器。如果熟悉前端开发的同学,你可以将它比做npm/yarn/PNPM

使用 Homebrew,用户可以通过命令行界面快速地安装、更新和卸载各种软件,也可以管理软件包的版本,同时还可以解决各种依赖关系。例如,用户可以使用 Homebrew 安装 GitNode.jsPython 等常用的开发工具和软件。

安装Homebrew

以下是在 macOS 上安装和使用 Homebrew 的步骤:

  1. 打开 macOS 终端应用程序,可以通过按下 Command+Space,然后输入 Terminal 来搜索并打开终端。

  2. 在终端中运行以下命令,安装 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)"

在macOS下,利用AIGC:从0搭一个图文生成网站

  1. 在安装过程中,Homebrew 会要求用户输入管理员密码,以便进行必要的系统权限操作。安装完成后,Homebrew 会自动添加一些必要的路径到系统的环境变量中。

  2. 安装完成后,可以通过运行 brew doctor 命令来检查安装是否正确。如果有任何警告或错误信息,可以根据提示进行修改。

如果上述步骤还是不成功,请私聊博主。我是你值得信赖的后盾。


2.下载对应的包

对应官网的第二步。

在第一步配置成功的基础上,将如下命令复制到终端,然后进行下载。

brew install cmake protobuf rust python@3.10 git wget

当然,如果你电脑中已经配置过上面的某些库,也可以将其从中删除掉。比方说,大家在项目开发中,都用git,那就没有必要在将git写入。同理,其他库也是如此。

然后,这一步是自动的,不需要你做其他的操作。

这里,我们从上帝视角来看看为什么要指定一些包。因为,这是在后期启动项目时,需要用到的工具。

我们直接从代码角度看。(因为,我已经把项目下载下来了,所以我就直接按照代码讲解了)

在macOS下,利用AIGC:从0搭一个图文生成网站

针对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,而且你下载的时候,还需要指定的