概述
我希望通过本次夏令营学习一些有关AI生成图原理与实践的知识,在task1中,我跟着datawhale提供的教程(https://linklearner.com/activity/14/10/24)跑了一遍baseline,教程很详细,我运气也比较好,中间没有遇到什么问题。然后我也是第一次使用ai画出了一系列图片,感觉很开心。下面,我简单介绍一下task1的过程(仅供参考)。
背景
这里文生图主要通过SD系列基础模型为主加以在其基础上微调的lora模型。
Stable Diffusion(SD)
查阅网上资料后,SD可以通过文字描述生成图片,这里的文字描述主要分为两组提示符,一组为正向的,另一组为负向的,例如【正向】Beautiful and cute girl, smiling, 16 years old,【负向】low contrast, cropped, missing fingers。然后,SD会生成随机潜在图像,再经过训练去除噪声,最后生成符合描述的图像。这个过程的缺点是耗费的时间与内存比较大,我在baseline的实践中也感受到了这一特点。
lora
lora不是一个具体的模型,而是一个微调技术。这里,lora主要用来对预训练好的大模型进行优化,以实现对特定主题,风格的精细化控制
过程
过程主要就是教程中的步骤,很详细。这里就大概讲一下,具体看教程链接 (https://linklearner.com/activity/14/10/24)中的内容。
平台的选择
由于生成图的过程对于时间与内存的消耗较大,自己pc的算力是远远不够的,所以这里在阿里云中申请了一个PAI-DSW。并且PAI-DSW内置JupyterLab、WebIDE及Terminal,无需任何运维配置即可编写、调试及运行Python代码,使用起来很方便。申请后,创建以一个实例即可。对于实例,我的理解是在服务器上开了一个虚拟机,然后使用者通过ssh等网络协议进行远程控制(自己的猜测)。
baseline的实现
在实例中实现baseline,因为这里的实例使用ubuntu系统,所以如果比较熟悉该系统的话,使用起来比较方便。先下载baseline,然后打开baseline文件,接着安装环境,主要是data-juicer与DiffSynth-Studio,data-juicer用于数据的处理而DiffSynth-Studio用于模型的训练。最后就是运行代码生成图片了,应为我是第一次接触AI相关的代码所以具体的细节并不清楚,只是通过代码中的注释理解到大体分为三个步骤,第一步是将数据(一些图片)进行处理,第二步是将处理后的数据用于模型的训练,最后用训练好的模型进行作画。
结果
训练用了很长时间,但结果挺好的。可能因为我第一次使用,所以觉得很新奇。这里输入的提示符为【正向】二次元,一个紫色短发小女孩,在家中沙发上坐着,双手托腮,很无聊,全身,粉色连衣裙【负向】丑陋,变形,嘈杂,模糊,低对比度。结果(感觉提示符大多达到了,除了无聊体现不出来,感觉可以通过在数据中增加一些无聊的数据进行改善)如下
总结
在task1中,我通过baseline第一次实现了ai作画,感到很激动,也了解了一部分基础知识和大体的流程,但对于细节仍不清楚,并且觉得结果也有一定的不足,希望可以通过后面的学习不断的加深对其的理解。这篇文章中大多为自己的理解,欢迎大家在评论区讨论自己的看法。最后,感谢大家的阅读!