专栏|还在自己画IP?仅用10张图片,还你一个百变小鹿IP形象!

学·专栏|还在自己画IP?仅用10张图片,还你一个百变小鹿IP形象! - 图1

之所以我们能利用Stable Diffusion亦或者是Midjourney来生成千变万化的图片,这都得益于背后AI模型与算法的配合,通过训练让计算机学会自然语言和图形的对应关系,从而实现文生图、图生图等能力。那么AI之前没学过的内容(如公司或机构的原创IP、场景、元素等设计)我们是不是可以通过二次训练让AI学习掌握,之后通过自然语言描述就能实现百变设计呢?接下来我将以小鹿LoRA模型为例,详解AI图形模型的训练方法。

00.

前言

AIGC模型概念

在开始正式的训练之前,我们先回顾一下基础的AI模型概念。这次LoRA训练所有内容都是基于“Stability AI”这家公司所开源的AI模型“Stable Diffusion”,自一年前来从SD1.5版本迭代到SD2.1版本,目前市面上流行的SD风格化模型,基本上都是基于这两款原始模型训练而来的;就在不久前其开源了最新的SDXL模型,这次迭代可以说是一次革命性的,其模型的参数量是V1.0版本的十倍达到了百亿级[1]!

学·专栏|还在自己画IP?仅用10张图片,还你一个百变小鹿IP形象! - 图2

SDXL的难度更低效果更好!

SDXL不仅扩大了参数量而且质量也得到了大幅提升,模型学习的每张图的像素达到了1024*1024,较与之前两个版本的源模型相比,其使用难度更低,效果更好,对描述词的包容度也非常的高[1],之前我们写描述词时,除了准确描述我们需要生成的主题外,还需要大量的晦涩的咒语来提升产出质量,现在使用SDXL不仅不需要这些额外的词,而且能通过自然语言的句式来完成高质量的产出。

学·专栏|还在自己画IP?仅用10张图片,还你一个百变小鹿IP形象! - 图3

XIAOLU_LoRA Baes SDXL

SDXL产出的图像会具有更多的细节,这是归功于其创新的“Refiner”结构[1],这次开源出来的模型包含了两个部分,一个是基础模型另一个是优化器及“Refiner”,两个模型共达到了13G;其工作原理是用基础模型出图后再用“Refiner”模型精加工,使细节水平得到了飞跃。最后其基本具备了写字的能力,可以直接让其在画面中生成文字设计,这将有助于AI在更多场景下的创新应用。

学·专栏|还在自己画IP?仅用10张图片,还你一个百变小鹿IP形象! - 图4

为什么我要在这着重介绍这款模型呢?因为最终的小鹿LoRA模型是基于SDXL这款源模型训练而来的,其之后的使用也需要遵循SDXL的出图流程,且二次训练的模型在各个原始模型间是不兼容的。

*关于SDXL更多内容可阅读官方文档:https://stability.ai/blog/stable-diffusion-sdxl-1-announcement

*SD WebUI的更新方法(以适配SDXL):https://bigcokeee.notion.site/SD-WebUI-a6687598c6b84e8abba46ffb598d3e4d?pvs=4

为什么我们选择训练LoRA模型?

学·专栏|还在自己画IP?仅用10张图片,还你一个百变小鹿IP形象! - 图5

最后我们还需要弄清楚一张AI图片的生成是由哪些因素决定的,首先“小鹿”是阿里健康设计的原创IP形象,即使学习了100亿张图像的SDXL的模型也无法直接生成“小鹿”这种专属的IP,那么我们如何让AI理解“小鹿”的形象呢?这就需要我们训练LoRA这种特征模型来帮助基础大模型掌握“小鹿”的形象特征。 接下来我们将正式进入到小鹿LoRA模型训练的步骤详解:

01.

LoRA模型训练SOP

学·专栏|还在自己画IP?仅用10张图片,还你一个百变小鹿IP形象! - 图6

首先,LoRA模型的训练可以大致归为三个部分及:前期准备、AI的学习过程和模型的产出。 具体来说,在前期准备中我们需要准备训练的原始素材,一般简单的主体需要至少15张图片,而复杂的主体需要至少100张图片。在图片预处理中我们需要整理学习集、计算训练步数、用“tag”来对每张图片进行描述。在AI学习过程中,需要确认学习的底模调整学习参数,以及分析学习的结果数据来帮助对比反复调整参数,筛选出最佳的学习模型,最终产出LoRA模型。

02.

LoRA模型训练详解

流程化解析小鹿LoRA模型训练的工作流

接下来我将流程化解析小鹿LoRA模型训练的工作流以及每一步的注意事项。

学·专栏|还在自己画IP?仅用10张图片,还你一个百变小鹿IP形象! - 图7

*工作流将在绿色框中列出,注意事项将在黄色框中列出

Step1. 前期准备

首先在前期准备中,❶新建一个学习集里面包含了:“image”、“log”、“model”三个文件夹;❷在“image”文件夹中需要确认训练步数,也可以对图像做拆分训练(建更多的子文件夹如❸);Tips:每个文件夹的名称格式必须为训练步数+下划线+自定义名称。一般来说二次元图像10-16步/张图,写实人物17-35步/张图,场景一般需要50步/张图以上的训练。

学·专栏|还在自己画IP?仅用10张图片,还你一个百变小鹿IP形象! - 图8

Step2. SD预处理图像

接下我们需要对图像做预处理,这里用到了SD的训练模块;首先,❶“资源目录”输入原始图片文件夹路径,“目标目录”输入刚刚我们新建的带有训练步数的文件夹路径。❷保持原始尺寸。❸点选“创建镜像副本”;Tips:在之前的训练流程中我提到了,即使简单主体也需要15张以上的原始素材。但是我们这次只有10张图片,所以通过镜像副本这个巧妙的办法就可以把10张图片变为20张,让AI从不同的角度来学习原始图像达到以极少的素材完成LoRA模型的训练(不是标题党哦~)。❹勾选“使用Deepbooru添加说明”及以词组的形式生成描述词。

学·专栏|还在自己画IP?仅用10张图片,还你一个百变小鹿IP形象! - 图9

Step3. 图像预处理打tag

在实际的操作过程中,发现SD反推出来的描述词基本是不可用的,这也进一步说明AI对小鹿这个IP形象是完全没有认知的。所以需要重新撰写了每张图片的描述词从整体开始描述: 首先,❶我会告诉AI这是一个3D渲染的IP形象;Tips:加入“触发词”(这一步非常关键),触发词是用来调用LoRA特征的关键因素之一,这里我用小鹿的拼音“XIAOLU”作为触发词;❷对小鹿的服饰做了描述:“一个白大褂和绿色的领带还带着一个听诊器”。❸对小鹿的面部特征做了详细的描述及:“面朝左侧,眼睛和嘴巴睁开着在笑着”。❹之后是手部特征,“左手抬起来在打招呼,右手摆向后方”。❺最后原始素材都是透明背景,但是AI是无法学习透明背景的,所以将png转为jpg格式,并对空白的背景做了相应的描述。 依照以上方式,对每张图片进行详细的描述,描述的越详细LoRA模型就越精细,且可个性化调控的部分就越多。

学·专栏|还在自己画IP?仅用10张图片,还你一个百变小鹿IP形象! - 图10

Step4. 部署和运行kohya_SS AI模型调惨的WebUI

完成了前期的图片预处理后,我们就可以正式的进入到AI的学习过程中;这里我们需要通过“Koya_SS”[6]可视化的工具与AI算法进行交互。部署的过程和运行我这里就不展开了,基本是与”SD WebUI”部署和运行的方式一致。

学·专栏|还在自己画IP?仅用10张图片,还你一个百变小鹿IP形象! - 图11

*“Kohya_SS”的部署运行方法:https://bigcokeee.notion.site/Kohya_SS-db935802b467407fb416d5f13c77b975?pvs=4

Step5. 选择底模&模型类型

进入到Koya SS界面后, ❶可以看到顶部包含了“Dreambooth”就是Checkpoint大模型的训练模块和LoRA的训练模块,以及后面的模型融合模块。今天我们主要讲的是LoRA的训练模块; ❷选择训练的底模,选择“custom”选项我们能自定义底模的路径;这里我使用的是之前提到的最新的SDXL的源模型,链接完路径后我们需要勾选上后两个选项(如下图❹❺)。

学·专栏|还在自己画IP?仅用10张图片,还你一个百变小鹿IP形象! - 图12

Step6. 选择底模&模型类型

❶进入“Folders”模块,需要链接前期准备阶段的文件夹路径: ❷“Image folder”:就是我们的原始素材和描述文本, ❸“output folder”:就是完成训练后LoRA的保存地址, ❹“Logging folder”:是保存的AI学习过程中的日志数据方便我们监看学习过程和反复调整参数。 ❺我们需要取一个模型的名称;Tips:该名称必须是英文且不能有空格,可以用下划线来连接。

学·专栏|还在自己画IP?仅用10张图片,还你一个百变小鹿IP形象! - 图13

Step7. “Parameters”参数

接下来,我们进入到正式的调参环节,这里我只对必选项做详细的说明: ❶“LoRA type”我们选择常规项,这有利于我们之后LoRA模型融合的兼容性。 ❷选择同时学习图片的张数,张数越多训练越快但精细度越低,这里一般保持1就可以了。❸选择训练轮数 ❹选择每轮保存的数量,这里我训练的8轮每轮保存一个模型,最后会产出8个LoRA模型。❺填入之前标注文件格式“.txt”。 ❻训练和保存的精度选择“fp16”。 ❼填入电脑的CPU的核心数。 ❽优化器选择“W8bit”。 ❾“LR warmup”设置学习预热百分比。 ❿学习模型选择“cosine with restars”,这里的学习率在后面一步我会讲到。

学·专栏|还在自己画IP?仅用10张图片,还你一个百变小鹿IP形象! - 图14

*AI学习算法:可视化图表选择最佳学习算法

下图是一些学习算法的可视化图表,可以看到不同算法里学习率随着学习步数的变化。如果一直保持高的学习率会导致LoRA模型训练过拟合,而较低的学习率则会造成欠拟合,这里我最推荐使用“cosine with restars”这个学习算法(如下图红框所示)。

学·专栏|还在自己画IP?仅用10张图片,还你一个百变小鹿IP形象! - 图15

Step8. 学习图片尺寸、学习率、图片裁切和精细度

❶设置学习图片的尺寸,这里设置保持和底模一致及SDXL的“1024*1024”。❷勾选“裁切”选项,AI会根据图片内容裁切到上述的尺寸。❸文本学习率和❹特征学习率设置,一般文本学习率是特征学习率的1/2或者1/10。这里也可以用科学计数法来表示1e-5也等于0.00005。❺模型精细度选择,二次元一般设置在64以上,写实照片设置在128以上,场景模型在256以上。❻Network Alpha与前者模型精细度保持一致。

学·专栏|还在自己画IP?仅用10张图片,还你一个百变小鹿IP形象! - 图16

*“Text Encoder learning rate”:把打tag的关键词转换为AI可理解的模型

Step9. Advanced:高级选项(如配置不够的可选项)

❶进入到高级设置模块; ❷如果运行的电脑配置不够可以勾选下面的三个选项,来提升训练速度。

学·专栏|还在自己画IP?仅用10张图片,还你一个百变小鹿IP形象! - 图17

这样我们全部的参数就调整完了!!

Step10. 最后开始训练前Print检查参数

在最后的开始训练前,我们可以先点击“Print”(如下图❶),检查训练参数设置;中可以看到我们有20张原始素材、每张图片训练22步,一轮训练就是440步;我们一共训练8轮,每轮保存一个模型,那么总步数就是440*8就是3520步,以及预热总步数是528步(如下图“Tips”所示)。

学·专栏|还在自己画IP?仅用10张图片,还你一个百变小鹿IP形象! - 图18

*漫长的AI学习过程:近22个小时… …

点击开始训练后就是漫长的等待,由于SDXL底膜的参数量庞大,完成8轮训练,总耗时需要近22个小时(如下图❶所示),是之前SD1.5的十倍左右;在后台的代码里我们能看到,每轮训练的损失值(如下图❷所示),是AI对我们模型参数和素材的评分;Tips:一般保持在0.1左右比较好,但也不是绝对,最后是否采用该LoRA还是得看实际的出图对比来确认最终的版本。

学·专栏|还在自己画IP?仅用10张图片,还你一个百变小鹿IP形象! - 图19

*LOG数据板:根据数据反馈多版本迭代

点击log看板按钮,就可以看到实时的学习数据,对比不同学习参数反馈的数据,可以帮我们做出及时调整,和对比选出最佳的LoRA模型;如下图右下红框学习率曲线图与上述选择的“cosine with restars”学习算法一致。

学·专栏|还在自己画IP?仅用10张图片,还你一个百变小鹿IP形象! - 图20

如何选出最佳LoRA版本呢?

在这次小鹿IP训练过程中,我一共训练了6个版本共42个LoRA模型,前4个版本是用SD1.5和SD2.1作为底模训练的,后两个版本是SDXL作为底模训练的;这么多版本的模型我们怎样选出最理想的LoRA呢?

学·专栏|还在自己画IP?仅用10张图片,还你一个百变小鹿IP形象! - 图21

Plan A:SDxypolt多版本对比

在前四个版本中,我用到了“Additional Networks”插件和xy脚本自动化的方式,来对比不同LoRA在不同权重下的出图质量,如下图红框所示。

学·专栏|还在自己画IP?仅用10张图片,还你一个百变小鹿IP形象! - 图22

XYplot脚本自动化:多版本对比

这是前几个版本LoRA模型与权重对比的xy轴图,可以看到用SD1.5和2.1底模训练出来的模型质量并不高,所以前面几个版本模型就废弃了

学·专栏|还在自己画IP?仅用10张图片,还你一个百变小鹿IP形象! - 图23

Plan B:ComfyUI(更专业的AI控制工具)工作流

由于SDXL的工作流还暂不支持Add Networks插件,我们这里可以用更专业Comfy UI,一个基于工作流与AI模型交互的界面,这个工具可以帮我们从最底层的算法逻辑来调用AI模型。

学·专栏|还在自己画IP?仅用10张图片,还你一个百变小鹿IP形象! - 图24

XIAOLU_V6模型对比:XIAOLU_LoRA_V6_1-7 xy plot

最后,下图是小鹿LoRA第6版的7个模型的权重对比图,这里LoRA模型的权重越高代表着与原始训练集越接近;经过对比小鹿V6版的6号模型,权重在0.6-1之间都与原始训练集非常接近,所以选择它为最终的小鹿LoRA模型(如下图红框所示)。

学·专栏|还在自己画IP?仅用10张图片,还你一个百变小鹿IP形象! - 图25

这样完整的小鹿LoRA训练工作流程就全部结束了!!

03.

小鹿LoRA模型应用

未来可能:AI课海报实例

接下来,我以这次AI课的海报制作为例,聊一聊小鹿LoRA模型的应用和未来的可能; 在之前的文本标签词里我们对小鹿的每个部分都打了tag,那么就意味着在文生图中调用小鹿LoRA并替换这些tag就能让小鹿穿着不同的服饰,做出不同的造型,和融入在不同的背景中。 为了展现这次分享的主题“百变小鹿IP”和传递“AI魔法”的概念,我在文生图中我写入了“穿着魔法斗篷拿着魔法棒的小鹿”,以及为了视觉更突出,加入了“强烈的光效”和“深色的背景环境”的描述词(如下图“Prompt”所示)。

学·专栏|还在自己画IP?仅用10张图片,还你一个百变小鹿IP形象! - 图26

XIAOLU_LoRA_V6.6:txt2img

下图是在不断调整提示词过程中生成的小鹿IP图像,可以看到小鹿可以很好的融合到任何环境中,以及摆出不同的造型,穿着不同的服饰,拿着不同的道具,所以小鹿LoRA配合SDXL基础模型就实现了百变小鹿IP形象!

学·专栏|还在自己画IP?仅用10张图片,还你一个百变小鹿IP形象! - 图27

最终选择了下图的小鹿手拿魔法棒身披红色斗篷,以及强烈氛围光效的这张图作为“AI LoRA训练课”海报的主视觉(如下图右侧所示)。

学·专栏|还在自己画IP?仅用10张图片,还你一个百变小鹿IP形象! - 图28

无限可能

有了这样一个小鹿IP形象LoRA,再通过云端部署SD,LoRA模型便能在团队内共享使用,无论是设计师亦或其他专业的同学都能通过文本描述直接生成任意造型的小鹿形象,这无不大大提升了IP形象的产出效率和扩展IP形象的设计边界。

学·专栏|还在自己画IP?仅用10张图片,还你一个百变小鹿IP形象! - 图29

为什么说“只有想象不到的,没有生成不了的”呢?首先“没有生成不了的”,任何一个新的视觉化的概念或者原创IP(如系列LOGO、游戏场景、直播礼品元素等设计)只要将其正确的交给AI学习,AI都能学会并且还可以举一反三;而“只有想象不到的”呢在目前阶段AI仍是一个提效的工具,最终AI如何产生它的价值还得是看我们各位设计师的主观能动性,所以我们也不要担心哪天我们就被AI所取代了,我们要做的就是不断的开拓我们的眼界,接受它学习它应用它,让AI能为我们所用!!

学·专栏|还在自己画IP?仅用10张图片,还你一个百变小鹿IP形象! - 图30

[1] Stability AI. ‘Announcing SDXL 1.0’. 26 Jul 2023. https://stability.ai/blog/stable-diffusion-sdxl-1-announcement

- END -学·专栏|还在自己画IP?仅用10张图片,还你一个百变小鹿IP形象! - 图31