AI艺术家Ask AI for ART警告!本文内训练生成照片仅为交流技术前沿和探讨教育运用,不得做为商场用途。运用深度合成技术存在必定侵权危害,本文仅为分享技术发展,并不鼓励基于真人创立形象设计,危害后果请自动承担。(此前,本篇教程广受欢迎,但咱们认识到其中对以上关键问题无强调!于是咱们宁愿删除它,这次重发,咱们着重强调了以上运用规则,期盼大众都能自律,互联网不是法外之地,深度学习一样如此)~
固定的名人形象,是你起始体系化创作的第1个门槛——几乎所有故事性的创作,都会需要你有相对固定的名人形象。能够自己训练固定形象,是本地开源的stable diffusion最实用和强大的功能之一。
是的,只要玩AIGC,训练形象模型是从浅尝辄止到生产力应用的第1步,它很重要,同期它亦是一个标准的简单的深度学习过程,针对非常多无接触过它的人来讲,深度学习这个高挑上名词可能就把大众吓住了。然则,它真的真的无那样难!请各位重视,咱们这篇教程不是一篇深度学习的入门课,而是一篇learn by doing,顺带着让你首度直面深度学习的训练课程。日前,中文网络还比较少这类文档,咱们这篇文档结合了自己的经验,亦更新了最新的Lora模型和custom-diffusion办法的有些经验。但总体来讲,咱们对新技术还在摸索周期,本教程可能会存在必定的纰漏。 概念说明首要,咱们先介绍下在stable diffusion体系日前常用的形象训练模式。它们分别是: 嵌入embeddingDreambooth模型超网络hypernetworkDreambooth LoRA模型。每一个模式都有自己优点和缺点:嵌入的主要优点是它们的灵活性和小尺寸。嵌入是一个 仅有几KB+ 的文件(是的,它非常小),训练用时亦不算多,能够应用于运用相同基本模型(一般是基本SD1.4\1.5模型)的任何模型。但它的缺点是,它实质上并不是“真正训练”了一个形象,而是经过深度学习找到了和你想要的形象一致的角色形象特征参数,经过这个小模型保留下来。这寓意着,倘若原模型里面这方面的训练缺失的,其实你很难经过嵌入让它“学会”。DB模型是一个 2GB 以上的文件,它的本质是先复制了源模型,在源模型的基本上做了微调(fine tunning)并独立形成为了一个新模型,在它的基本上能够做任何事情。缺点是,训练它需要海量 VRAM,亦可能花费海量的时间,虽然日前10-12G显存的消费级显卡亦能跑,但耗时很久且文件体积很大。倘若你只是需要一个或数个名人的形象,其实它并不是最优的训练方法选取。超网络hypernetwork是一个 80MB 以上的文件,位置于模型之上,能够学习基本模型中不存在的新事物。它相对容易训练,运用上亦和嵌入但通常来讲更适合做为微调风格的附加模型来运用。在其他模型中运用时一般不如嵌入灵活。LoRA(低阶适应)是一个 36MB 以上的文件,在训练办法上和DB基本一致,但因为体积小,对显存的需要降低了,使得非常多8G显存乃至6G显存的显卡亦能参与训练,大幅降低了入门门槛。在功能上LoRA与超网络非常类似。然则,它对名人形象的训练非常灵活,非常多形象能够脱离原模型嵌入其他模型运用。
上面这个图,是国外网站解释以上四种训练差别的示意图,大众能够仔细瞧瞧,理解其中的差异。
在春节时期,Adobe这个全世界图像软件巨头亦和清华大学一块发布了基于嵌入的新改良办法custom-diffusion,看起来像是嵌入模型+Lora的模式,这个本艺术家今天起始测试,效果咱们后面聊。
此刻咱们先从最基本的嵌入模型起始讲,为何先从嵌入讲呢?由于它最简单又最基础,有非常多新伴侣上来就和我讲要DB(dreambooth),dreambooth效果当然好,但它并不是最有效率的,我还是意见大众循序渐进把握四种区别的训练技能。
嵌入模型训练(Embedding Training)
第1步:整理数据集
数据集是你要训练的名人的素材,亦便是照片、照片等。做为原始数据,数据集是最重要的!!倘若数据集很糟糕,AI的学习亦不会有好的结果。
因此呢,你必须保证图像质量高(不模糊、无颗粒感、无失帧等),同期最好有必定的数量。你的照片应该有非常多变化——地点、灯光、衣服、表情、活动等。运用数量更多的多样化图像寓意着以更长的训练时间为代价得到更高的准确性——倘若你不想你的角色形象仅有一两种生硬表情的话。
通常来讲,咱们意见初学者运用 10 张人像作为起步,以减少训练时间,但倘若你是老手,能够把人像增多到30-50张。那样你能够训练出一个几乎百分百还原真实角色的嵌入模型。
做为示例,咱们给大众展示上面这一组刘天王的数据集,这一组是不是好的数据集呢?并不完全是,由于14张照片里面大部分是半身像,对面部的特写并不够。
从理论上讲,人类非常善于识别人脸,而 AI 则否则。咱们需要给 AI 尽可能学习准确面部的最佳机会,因此,一半以上的数据集应该是高质量的脸部特写,其余的是上半身和全身照片,以捉捕她们的服装风格、姿势和体型等信息。
幸好,日前训练嵌入对照片的分辨率需求并不很高,大部分嵌入的训练数据标准是512*512,因此呢,咱们能够很容易的运用各样改图工具调节照片,对面部进行特写。咱们通常意见60%头像+30%半身像+10%全身像。当然,这并不是硬性需求。
Birme这个在线剪裁工具是日前最好用的一个在线工具,况且它实质上并无上传照片到网上,不消怕素材泄密,所有剪裁都是基于浏览器脚本实现的,非常举荐大众运用。
裁剪好了照片,而后便是起始创建嵌入概念。
这个Name,便是你要给角色命名,例如咱们能够输入andylau,但重视,日前不支持中文。
初始化文本,其实亦便是归类,例如andylau是一个男人,那样你能够输入man,亦能够输入male。
每一个token的向量数:这个通常初学者很难理解,但实质上便是你要给andylau这个概念注入的概念层数,例如andylau,他能够包含 man, chinese,singer,actor。占用了4个单词位,这便是4个vectors。这般通常你能够把这个数值调为比4大的数值容纳更加多的概念。
接下来,便是图像预处理,基于webui,这都是自动化操作。
处理完这些,就能够进入真正的训练环节了。
训练环节之中,设置好学习率,批量体积和梯度累积步数,设置好模板,就能够起始训练。
到了这个环节,这儿基本上便是深度学习的范畴了。
亦正是在这儿,怎么训练最有效率?怎么训练才可训练好?这些问题,起始变得玄学起来。
上周谷歌团队公开的调优手册里面写到:在所有类型的设备学习问题中,无优化器是“最好的”,亦便是说,不存在固定的完美的训练参数。
大众有兴趣能够去自动阅读:https://github.com/google-research/tuning_playbook
简要来讲,训练批量体积,学习率(超参数)之间有繁杂的函数关联性关系,而训练批量对大都数人来讲,受限于硬件尤其是显存体积。
通常教程里面亦会告诉你,素材样本规模应该>=批量体积*梯度累积步数
因此,一个确定性的流程大致如下(参考谷歌调优手册):
上面这段大众可能看懵了,下面举个例子:
例如说咱们运用30张刘天王的照片进行训练,根据10G显存规模显卡的训练,批量体积能够有10和6两个选取,对应的梯度累积步数则是3和5。
通常而言,在6*5这个组合下,咱们能够设置0.005的默认学习率,跑个600-1000步瞧瞧效果。亦能够设置递减的学习率,例如 0.2:50,0.1:100,0.05:200,0.005:500。这意思是用0.2学习率先跑50步,而后用0.1学习率跑到100步,以此类推。
但倘若批量体积设为1,则每批只训练1张图,那样步数可能需要跑到6000步以上,显然这是比较低效率的。
但区别的批次体积分别对应的最优学习率是未知的。乃至,有可能由于上面说到的数据质量的差异,引起类似规模的训练,亦并不可应用一样的参数去学习。
这背面,就完全需要经验累积和有效总结了。
embedding的效果参考:
然则,咱们亦要指出,embedding的效果有必定的限制,例如以上效果是基于SD1.5模型生成的。
换成PHOTOREAL2.0模型,很显著,名人五官的细微处出现了变化。这是因为主模型切换带来的变化。亦便是说,embedding在区别模型之间,并不可100%完美通用,这是由于embedding的技术特征决定的。
关于嵌入模型的基本训练教程就写到这儿,本文长达3000字,欢迎大众转发点赞,在下一篇咱们会讲一讲学习率的选取和实例测试的状况。后面咱们会更新其他训练模式的教程和心得。
注:本文内训练生成照片仅为交流技术前沿和探讨教育运用,不做为商场用途。运用深度合成技术存在必定侵权危害,危害后果请自动承担。 AI绘画教程系列AI绘画入门教程基本篇(5)磨刀不误砍柴工!运用XYZ表格快速认识你手头的模型到底好欠好用
AI绘画入门教程基本篇(4) -1秒都不浪费!采样办法和步数的最优选取
AI绘画入门教程基本篇(3) -SDWEBUI的基本功能,你都会用了吗?
AI绘画入门教程基本篇(2) 怎样写出好的prompt,有些技巧和原则
AI绘画入门基本篇(1)本地安装STABLE DIFFUSION教程及答疑
|