草履虫也能学会!家友带你玩转基于苹果芯片的“AI 绘图”

本文共 3000 字,预计阅读时间 10 分钟。

本文所用模型下载:

- iCloud 点此下载

- 阿里云盘 点此下载

有任何问题欢迎在评论区反馈!

铺路1. 写在前面

今日凌晨,“苹果 AI 发布会” WWDC2024 正式开幕,众多AI 模型正式走进苹果设备。但也许很多家友不知道,早在 2022 年,知名“文生图”大模型 Stable Diffusion 已被苹果纳入 CoreML 框架中,因而可以在大部分搭载 NPU 的苹果芯片上运行( 见我上一篇文章 )。

苹果宣布适配 Stable Diffusion

无论 WWDC2024 有何创新,有一点我能确定:在“AI 绘图”方面,Stable Diffusion (SD) 仍会是版本答案。在现有法规约束下,只有 SD 这种免费、本地、个人主导的运作方式,才能发挥 AI 的全部实力。

Stable Diffusion 官方网站

废话不多说,本文想传达的事只有一件:如何在 iPhone、iPad、Mac 上部署完整版 SD,并快速输出满足“个人需求”的高质量图片。时至 2024 年,SD 所覆盖的“需求”可能超乎你想象:

- 智能消除、智能扩图等“AI 手机”常见宣传点

通过 iPad Pro M4 生成

- 将模糊的图片变清晰

通过 iPad Pro M4 生成

- 将特定图案融入图片

由 iPad Pro M4 生成

- 把你喜欢的演员(或自己)作为照片主角

由 iPad Pro M4 生成

- 使用小众的风格进行创作(我不是福瑞控)

由 iPad Pro M4 生成

这些功能看似“成本不低”,其实,只要是 A12 即以上的苹果芯片都能运行(当然,越好的芯片速度越快),且不花一分钱。这个周末,是时候让你设备里的“神经引擎”产出点价值了!

神经引擎首次出现于 A11 芯片

铺路2. 一键安装 Stable Diffusion

得益于苹果官方对 SD 的适配,以及开发者们的不懈努力,App Store 里的 AI 绘图软件已有不少。但目前只有一款 App 整合了 SD 的全部功能,并且操作逻辑简单明了,它就是“Draw Things”(真心安利)。这是一款苹果全平台通用软件,安装好后,你距离出图只剩一步之遥。

Draw Things 软件

为方便后续理解,我在此阐明几个关键概念:

1. Draw Things 这个软件只是 SD 的“图形界面”。它就好比没装 App 的 iOS,本身并没有“绘画”能力;

软件界面介绍

2. SD 是一种“AI 画图”的方法。我们当然可以用这套方法自己训练“模型”,但更多时候,我们会直接下载训练好的“模型”来绘图,正如下载 App 一样;

3. “模型”有大、小两种类型,分别称为 Checkpoint 和 LoRA。本教程不深入探究 LoRA,因为在用法层面,两者区别不大;

SD 模型介绍

4. 有了“模型”,我们就能在 Draw Things 中将“文字”转变成“图像”。但“文字”的描述能力是有限的,我们为了让图像高度契合需求,我们还会使用名为 ControlNet 的“补丁”。

ControlNet 插件介绍

首先,请下载名为“RealiticVision_V51hyper_8bit”的模型(资源在本文开头)。这是一个专攻“写实”风格的模型。

Realistic Vision 官方网页

然后,打开 Draw Things,点击“模型”,在弹出菜单中点击“管理“,继续点击“导入模型”。接着,点击“已下载文件”,并在弹出的资源管理器中,找到下载好的模型。请不要更改该页面中的默认设置。最后,点击底部的“导入模型”,便大功告成。

铺路3. 生成你的第一张 AI 图片

用 SD 生图时,你既可以告诉“模型”画面中应该出现什么(正面提示词),也可以指出应该避免什么(负面提示词)。文字描述越具体,输出图片越漂亮。

遗憾的是,大部分“模型”仅支持英语,但我不会英语,这该怎么办?别担心,苹果自带的翻译功能可以派上用场。

首先,请在正面提示词的输入框中写上“一个正在湖边漫步的美丽女子”。然后,选中这段文字,点击弹出菜单中的“翻译”,进一步点击“使用译文替换”。

接着,请将下面这串英文复制、粘贴到“正面提示词”中:

“RAW photo, dslr, high quality, 8k uhd”

上面这些词语是开发者提供的“万金油”提示词。你可以理解为给“模型”说些好话,让它更卖力的干活。

类似的,请将下面这串英文复制、粘贴到“负面提示词”中:

“(deformed iris, deformed pupils, semi-realistic, cgi, 3d, render, sketch, cartoon, drawing, anime), text, cropped, out of frame, worst quality, low quality, jpeg artifacts, ugly, duplicate, morbid, mutilated, extra fingers, mutated hands, poorly drawn hands, poorly drawn face, mutation, deformed, blurry, dehydrated, bad anatomy, bad proportions, extra limbs, cloned face, disfigured, gross proportions, malformed limbs, missing arms, missing legs, extra arms, extra legs, fused fingers, too many fingers, long neck”

这些词语是各种不好的形容词,相当于告诫“模型”不要犯了以上错误。

负面提示词能避免模型输出怪异图片

如此,我们就把图片的“内容”给确定好了。接下来,我们还要告诉“模型”作画的步骤,也就是设置参数。

首先,我们要确定图片的尺寸。分辨率越高,画面细节越多,但绘图时间也越长。家友们可以从“正常”开始尝试。图片比例选择照片常用的“3:4”。

然后,我们只能给“模型”有限的绘画机会,即“步数”。一个顶尖的模型,就算只给一次机会,也能输出高质量图片。本次使用的“Realistic Vision”需要 5 步,即先画出一张草稿,再在草稿基础上修改 4 次。请注意,过多的步数无法增加细节,只是徒增时间。

接着,我们要告诉“模型”它有多少自由发挥的空间,即“文本指导”。这个数值过高、过低都会导致“模型”画不出好图,我们只需使用开发者推荐的参数即可,也就是“2.0”。

最后,我们要给“模型”分配一种画笔,即“采样器”。每个“模型”擅长的画笔都有区别,效果最好的画笔,开发者同样会告诉我们,此处为“DPM++ SDE Karras“。

万事俱备,只欠“生图”。点击“生成”按钮,画布中便会出现进度条,以及你设置的参数。稍作等待后,你就得到了一张 AI 图片。我的 iPad Pro M4 仅需 3 秒,你呢?

铺路4. 提升 AI 图片质量

如果你严格按照上述教程设置参数,想必你得到的照片并不“美丽”:细节模糊、场景单调、人物背对镜头,等等。别着急,这是 AI 绘图的必要流程:先用低质量图片确定参数的可靠性,再一口气生成高质量图片。

未经雕琢的 AI 图片

首先,我们需要提供更多照片的细节,即更详细的“正面提示词”。请将“万金油”以外的部分替换成:

“一个正在湖边漫步的美丽女性,欧洲人,20岁,金色长发,穿着白色连衣裙,看着照相机,山峦背景,肖像,特写,柔和光照,景深效果”

记得把上述文本翻译成英文哦。

更换提示词后,新生成的图片是不是观感好了许多?一般而言,我们对图片主体的文字描述遵循以下原则:

接着,设备性能较强的家友可以将图片尺寸从“正常”提升到“大”。请注意,改变画布后,务必点击App 右下角的按钮,清空画布,以防进入“以图生图”模式。

如果您的设备在尝试高分辨率图片时效率很低,别气馁,我们还有别的办法扩大尺寸。你只需选择一个“放大器”,如“Real-ESRGAN X4+”,就能将图片放大四倍。“放大器”的效果虽不如提升分辨率,但也比原版清晰不少。

至此,我们可以生成最终的版本了。我一般会在提升分辨率的同时,开启“放大器”。这虽然要等待更长时间,但成片质量对得起耗时。点击 App 右上角的按钮,即可将图片保存至相册。

5. 对图片内容进行精确调整

上述流程虽然能输出“美图”,但我们真正需要的图片往往更复杂。比如,我希望照片中的人物能举起左手,但右手下垂,这种没有特定“名称”的姿势是很难通过“提示词”来生成的。如果“模型”能长眼睛,我亲自给它演示这个姿势,那该多方便!于是就有了 ControlNet。

在 Draw Things 的下拉菜单中,你会看到一大堆 ControlNet。它们能让 AI 理解“图片”的某种特征,进而把这种特征放进成片里。在上面的例子中,我使用 Pose 这个 ControlNet 提取了模特的“姿势”,于是成片中的人物也有了相似的“姿势”。

简而言之,ControlNet 允许我们用“文字”和“图片”共同指导“模型”。我们需要学习的只有两件事:

1. 每个 ControlNet 能识别“图片”中的何种元素?

2. 在 Draw Things 软件中,“图片”应该如何发给 ControlNet?

太阳5.1 识别“周围”

- 名称:Inpainting (SD v1.x, ControlNet 1.1)

- 参考用途:AI 消除、AI 扩图、局部绘图

Inpainting 可谓最常用的 ControlNet。它能根据图片中的既有内容,推断出“相邻”内容。这么说有点抽象,但实践起来很简单。

首先,请设置好以下参数:

- 正面提示词:“万金油”组合

- 负面提示词:无

- 尺寸:正常,1:1

- 步数、文字指导、采样器:同前

- 放大器:禁用

接着,点击 App 右下角的按钮,将“示例图片”导入画布中。将图片中的路人移动到画布的中央,再使用“橡皮”工具,擦除“示例图片”中的路人。

点击“生成”,全新的、不包含路人的图片,就会填充到窟窿里,并且会与“既有内容”呈现自然的连接。这就完成了“AI 消除”。

类似的,请创建一个新画布,重新导入“示例图片”。这次,请将画布尺寸改为“大,3:4”,并启用“Real-ESRGAN X4+”放大器,然后将图片缩小到画布中央。

点击“生成”,基于“示例图片”的新内容就会填充到上、下的大窟窿里,让本来“横向”的照片变为“竖向”。这就完成了“AI 扩图”。

聪明的家友大概会想到:上面的例子中,因为我们没有在“提示词”中包含具体事物,所以生成的图像完全由 ControlNet 掌控,也就变成了“补足空缺”。倘若我们更改提示词,比如,写上“正午的太阳”,并且把窟窿留在“天空中”,那输出的图片就会变成:

这就是“局部绘图”。

太阳5.2 识别“图案”

- 名称:QR Code (SD v1.x, ControlNet Monster 2.0)

- 参考用途:图片融合

所谓图片中的“图案”,你可以理解为“轮廓”或“剪影”。比如,本文开头展示的某明星的融合图片,“模型”保留了明星的背影,但不影响图片的真正主体。显然,这种抽象的需求即使用“图片”也很难让“模型”理解,因此,我们要用到名为“涂鸦”的衍生物。

我们以融合“IT 之家 Logo”为例。点击画布右下角的按钮,选择“加载图层”,再选择“涂鸦”,最后点击“从照片中获取涂鸦”,此时导入的 IT 之家 Logo 会自动变成“涂鸦”。

其余参数请设置为:

- 正面提示词1:“万金油”组合

- 正面提示词2:绿色的山峦,蓝天白云

- 负面提示词:“万金油”组合

- 尺寸:大,1:1

- 步数、文字指导、采样器:同前

- 放大器:Real-ESRGAN X4+

此时生成的图片中,既有我们提示词中的景物,又能隐约看出“IT之家”四个字,是不是很奇妙?如果想让“图案”变得更加明显,我们可以提高 ControlNet 的权重至 120%。再次输出的图片中,“IT 之家”就很容易辨认了。

希望大家能把创作出的有趣图片发在评论区!

太阳5.3 识别“面部”

- 名称:IP Adapter Full Face (SD v1.x)

- 参考用途:AI 换脸

顾名思义,这个 ControlNet 能从“图片”中提取面部特征,进而让成片中的人物拥有你所需要的“脸”。事实上,IP Adapter 能识别的特征远不止“面部”,而是广泛的“材质”。本入门教程暂不讨论这些内容。

我们以《如懿传》的女主(周迅)为例。点击画布右下角的按钮,选择“加载图层”,再选择“创意板”,最后点击“从照片中获取创意板”。只有导入“创意板”的图片才会被 IP Adapter 作为输入。

其余参数请设置为:

- 正面提示词1:“万金油”组合

- 正面提示词2:一个正在湖边漫步的美丽女性,亚洲人,穿着白色连衣裙,看着照相机,山峦背景,肖像,特写,柔和光照,景深效果

- 负面提示词:“万金油”组合

- 尺寸:大,3:4

- 步数、文字指导、采样器:同前

- 放大器:Real-ESRGAN X4+

在“生成”前,我们还需要调节一个特殊参数,即“创意板”中所示的“百分比”。百分比越高,面部特征就越还原,但也会导致成片不自然。我习惯从 50% 开始,慢慢向上尝试。

尽管 IP Adapter 操作简单,有几个易错之处还请注意:

1. 导入“创意板”的图片,如果不使用菜单中的“删除创意板”是无法清除的;

2. 往“创意板”中导入多张图片并不能提供“更多特征”,而是会触发“特征融合”。

太阳5.4 识别“细节”

- 名称:Tile (SD v1.x, ControlNet 1.1)

- 参考用途:超清图片

严格来讲,Tile 并不是识别“图片”,而是把图片分割成小块后输入给“模型”。但为了方便理解,你可以把 Tile 看作提取了图片的“细节”,进而让生成的图片能在保持原图内容的基础上,重绘出了全新的细节。

我们以一张褪色的老照片为例。请点击 App 右下角的按钮,将“示例图片”导入画布。

其余参数请设置为:

- 正面提示词:“万金油”组合

- 负面提示词:无

- 尺寸:大,3:4 (即图片的比例)

- 步数、文字指导、采样器:同前

- 放大器:Real-ESRGAN X4+

点击“生成”,我们就可以得到一张较为清晰的新照片。

不难发现,生成的图片有明显瑕疵,本该是“帽子”的部分变成了“头发”,本该是“衣服”的部分变成了“皮肤”。这就需要我们进一步明确细节。

请将下列词语补充到“正面提示词”中:

“老人,带着帽子,穿着衬衫,肖像”

此时生成的图片是不是合理多了?

铺路6. 大胆使用 AI 创作

常有人说:AI 绘图毁灭了人类的创造力。然而 AI 并非“一站式”出图的傻瓜式工具,相反,Stable Diffusion 拥有大量可调参数,它的自由度并不比用笔作画低。通过奇思妙想的参数组合,SD 的实用性早已超越“文生图”的范畴。

比如,借助 AI 的力量,我们是否能将老式黑白照片变成“高清彩色照片”?

就在刚刚,我们已经知道,Tile ControlNet 可以将模糊的照片变清晰。而单靠 Tile 显然没法完成照片着色。如果能只保留图片内容,而舍弃颜色信息,再让“模型”进行重绘,就好了!

于是,我们自然而然地想到,可以先把照片转换成无颜色的“深度图”,再用“深度图”指导“模型”生图。

这次,我们虽然得到了一张彩色照片,但由于“深度图”对人物面部特征的保留度有限,新照片中的老人明显与原图不同。我们是否能进一步告诉“模型”老人的长相?

这正好是 IP Adapter Full Face 的专长。通过同时使用 Depth Map 和 IP Adapter 两个 ControlNet,我们最终得到了想要的成片。

可别小看了这简单几步操作,如果你能把老照片修复流程完全掌握,开个网店接单也不是问题。

铺路7. 结语

在“生成式 AI”的时代浪潮中,平心而论,唯一能抓住我内心的应用,只有 AI 绘图。以 chatGPT 为代表的语言模型虽然能像人一样“说话”,但其输出的“文字”终究不如“图片”那般鲜活、直观。

但“图片”的丰富性却很容易给 AI 招来麻烦。前不久的“华为 AI 涉黄门”就是很好的例子。

此时,“端侧运行”和“开源精神”便成了 AI 的护身符。尽管全功能的 Stable Diffusion 因为参数众多而让人望而却步,通过本教程,我希望各位家友能重新审视手头的设备和 AI 模型,千万不要白白放着触手可及的算力,而去感叹“限制太多”。