[Datawhale X 魔搭 AI夏令营]
从零入门AI生图原理&实践学习笔记task01
学习教程:Datawhale (linklearner.com)
赛事官网:可图Kolors-LoRA风格故事挑战赛 · 魔搭社区 (modelscope.cn)
1. 文生图的历史
- 早期探索(20世纪60年代-20世纪90年代):文生图的概念最早出现于计算机视觉和图像处理的早期研究中。早期的图像生成技术主要依赖于规则和模板匹配,通过预定义的规则将文本转换为简单的图形。然而,由于计算能力和算法的限制,这一阶段的技术能力非常有限,生成的图像质量较低,应用场景也非常有限。
- 基于统计模型的方法(2000年代):进入2000年代,随着统计模型和机器学习技术的发展,文生图技术开始得到更多关注。研究者们开始利用概率图模型和统计语言模型来生成图像。尽管这一阶段的技术在生成图像的多样性和质量上有了一定提升,但由于模型的复杂性和计算资源的限制,生成的图像仍然较为粗糙,不够逼真。
- 深度学习的崛起(2010年代):2010年代是文生图技术发展的一个重要转折点。随着深度学习,尤其是卷积神经网络(CNN)和生成对抗网络(GAN)的发展,文生图技术取得了突破性进展。2014年,Goodfellow等人提出的GAN模型通过生成器和判别器的对抗训练,极大地提升了图像生成的质量。随后,各类变种GAN模型被提出,如DCGAN、Pix2Pix等,使得文生图技术在生成逼真图像方面达到了前所未有的高度。
- 大规模预训练模型(2020年代):进入2020年代,大规模预训练模型如OpenAI的CLIP、DALL-E以及Stable Diffusion等的出现,标志着文生图技术进入了一个新的时代。CLIP通过大规模的文本和图像配对数据训练,能够理解和生成高度一致的文本和图像;DALL-E和Stable Diffusion进一步提升了生成图像的创意和细节表现能力,使得通过简单的文本描述生成高质量、复杂图像成为可能。这些技术的应用范围从艺术创作、广告设计到辅助医疗诊断,展现了广泛的商业价值和社会影响力。
2.文生图基础知识
文生图主要以SD系列基础模型为主,以及在其基础上微调的lora模型和人物基础模型等。
- 提示词:很重要,一般写法:主体描述,细节描述,修饰词,艺术风格,艺术家;
- Lora:Stable Diffusion中的Lora(LoRA)模型是一种轻量级的微调方法,它代表了“Low-Rank Adaptation”,即低秩适应。Lora不是指单一的具体模型,而是指一类通过特定微调技术应用于基础模型的扩展应用。在Stable Diffusion这一文本到图像合成模型的框架下,Lora被用来对预训练好的大模型进行针对性优化,以实现对特定主题、风格或任务的精细化控制。
- ComfyUI:ComfyUI 是一个工作流工具,主要用于简化和优化 AI 模型的配置和训练过程。通过直观的界面和集成的功能,用户可以轻松地进行模型微调、数据预处理、图像生成等任务,从而提高工作效率和生成效果。在ComfyUI平台的前端页面上,用户可以基于节点/流程图的界面设计并执行AIGC文生图或者文生视频的pipeline。
- 参考图控制:ControlNet是一种用于精确控制图像生成过程的技术组件。它是一个附加到预训练的扩散模型(如Stable Diffusion模型)上的可训练神经网络模块。扩散模型通常用于从随机噪声逐渐生成图像的过程,而ControlNet的作用在于引入额外的控制信号,使得用户能够更具体地指导图像生成的各个方面(如姿势关键点、分割图、深度图、颜色等)。
3.开始学习task01
step1:环境构筑
- 开通阿里云PAI-DSW试用,链接:https://free.aliyun.com/?productCode=learn
- 在魔搭社区进行授权,链接:https://www.modelscope.cn/my/mynotebook/authorization
- 报名赛事:赛事链接:https://tianchi.aliyun.com/competition/entrance/532254
step2:在魔搭社区创建PAI实例
- 由于上一步授权失败,到阿里云控制台创建 & 打开实例,创建实例完成
- 待启动完成后,点击打开即可
step3 baseline
- 下载baseline文件
- 点击打开终端(terminal)
git lfs install
git clone https://www.modelscope.cn/datasets/maochase/kolors.git
复制代码,enter运行
- 完成后,左侧会多出一个kolors文件夹
- 双击进入文件夹
- 双击进入baseline.ipynb文件,如下
-
执行第一步的安装代码框,代码框左上角有执行按键
-
等待执行完毕后,重启kernel
-
再继续刚才的代码块下,依次运行每一个代码块
-
也可以点击上方按钮一键运行
-
运行结果如下
-
也可以点击上方按钮一键运行
[外链图片转存中…(img-2YsWvx9F-1723344397069)]
- 运行结果如下