随笔

搭建一个 AIGC 文生图应用

自从文生图出现后,一直想把博客的封面用 AI 生成,但是大部分的技术博客或者心情之类的博客用图片描述起来比较抽象,不能简单的提炼内容来生成图片。

基于以上原因,所以迟迟没动手,最近看机会也有点厌烦了,所以就做了个小玩具来玩一玩文生图。

本地搭建有两种方式,第一种直接用 python 调用即可,第二种就是找现成的工具使用,比如 StabilityMatrix,我这里选择使用现成工具,因为工具可以比较方便的管理导入的模型,而且也已经提供好统一的 API 接口,比较方便。

安装过程中会让选择需要的 UI 界面,我选择是 Stable Diffusion WebUI,安装完成后,在模型浏览器下载需要的模型即可,CivitAI 里面很多都是经过微调训练过的模型,可以根据需要点击导入即可,这里我选的是 Flux 模型。
model select.jpg

模型浏览器可能经常看到 Lora 这个单词,其实是 LoRA(Low-Rank Adaptation of LLMs),就是经过针对性微调的模型,比如上图中第一个模型就是针对人像进行了针对性训练。

启动后进入使用界面,简单输入 Prompt 点击 Generate 就可以开始自由玩耍啦。
model generate.jpg

Negative prompt 感觉是个有点歧义的说法,其实功能是需要排除的提示词,比如 prompt 是 “small dog”,但是不像生成泰迪,就可以在 native prompt 输入 teddy 来避免生成泰迪狗。

因为模型训练的时候一般是拿低分辨率图片来进行训练的,所以直接生成高分辨率可能会存在问题,而且对生成的性能要求也会高很多,所以一般是生成图片后再去单独提高分辨率,有点像 arm 芯片针对视频解码集成的 h.265 解码芯片。这里 UI 中的 Hires.fix 就是修复分辨率的作用,但是使用下来也是会对性能有较大的需求。

另外就是模型导入选择时也要注意 fpXX 这个属性,比如用 MBP M2 Pro 只能跑 fp8 的模型, fp32 就跑不了,这个数字代表的意思可以简单理解为数字越高生成的图片越好越精细,更高的得上 Nvidia 的显卡来跑任务。

Prompt 输入 beach at night 就生成了下面的图,简单拿来做博客的封面应该绰绰有余了,虽然可能是无关题意的图片。
00002577820438 1.jpg

通过内部 API 调用搭建了一个 AIGC 网站,想着可以拿来做些实验玩玩,目前处理节点用的自己的一台电脑,大概 40s 左右可以出一张图,模型用的是 Flux.1 Dev fp8 模型,有兴趣的可以点进去玩玩。
site2.jpgsite1.jpg

本文链接:https://note.lilonghe.net/post/try-locally-aigc-text-to-img.html

-- EOF --