本文为AI方向小白记录暑期参加魔搭夏令营-AIGC文生图方向的Task 01
报名赛事链接:可图Kolors-LoRA风格故事挑战赛_创新应用大赛_天池大赛-阿里云天池的赛制
欢迎所有小白,大神前来交流学习。
一.问题的提出与思考
1.1 发现问题
在Task 1中我顺利的使用baseline生成出了自己的文生图,但是对于生成出来的文生图的结果,我却不是特别满意,有一些图片与我预想中生成的图片不一样。
Task 1中我生成的不符合预想的图片在生成这个图片的过程中,我的脑海中浮现的是五个意气风发的少年站在盛大的舞台上,无比荣耀,无比享受着来之不易的胜利,但是由于我的描述抑或是这方面的样本数量不是太多,导致生成这张图片不尽人意,这个奖杯这么小,并且最左边的选手还多了一根手指。这实在是让我难以接受,于是,我想怎么能准确无误的描述,怎么能生成AI更理解的语言呢?
并且,在Task 1中,我只是按照提示跑完了代码,生成了我自己的第一份文生图,但是,我并没有真正理解代码的真正含义,但是光是看这几百行的代码就已经让我这个小白打退堂鼓了,更别说要去理解所有代码,同时对于我们这种I人,向别人提问更是要鼓足所有勇气,有什么办法,能让我们更快的了解一行行代码的意思,更好的完成我们的工作呢?
在接下来的探索中,我们一步步找出答案。
二.AI生图初探索
2.1 了解AI生图历史
(1)20世纪70年 AARON AI绘画问世
20世纪70年 AARON AI绘画问世最早的AI绘画追溯到20世纪70年代,艺术家哈罗德·科恩(Harold Cohen)发明了AARON,AARON最大的一个特点就是通过机械臂输出作画的,当然这套机器的背后也是通过计算机程序围绕规则和算法驱动的,下面为大家展示一些AARON绘画的作品:
图片风格有点像我上小学那会儿学科课本上的插画样式带点抽象风格,90年代的”AARON”已经能够使用多种颜色进行绘画,并在三维空间中创作,AARON的迭代改进持续了几十年,直到今天它还仍然在创作。
2006年, 出现了一个类似ARRON的电脑绘画产品 The Painting Fool. 它是伦敦大学金史密斯 学院的计算机创作学教授Colton的作品,它可以观察照片, 提取照片里的块颜色信息, 使用现实中的绘画材料如油漆, 粉彩或者和铅笔等进行创作,Painting Fool作品如下:
Painting Fool作品以上都是属于“古典”的AI绘图模型,我们现代的AI绘画属于基于深度神经网络基础上产生的,最早也要追溯到2012年吴恩达训练出的能生成“猫脸”的模型
(2)2012年模糊的猫脸
2012年,谷歌的吴恩达和Jeff Dean使用深度学习模型,基于大量猫脸图片训练出了一个能够生成模糊猫脸的模型,这标志着AI绘画的一个重要起点,他们使用了他们使用了1.6万个CPU核心和来自YouTube的一千万张猫脸图片,进行了为期3天的训练,成功训练出了一个能够生成模糊猫脸的深度神经网络模型,通过模型生成的猫脸图像参照下面这张图:
吴恩达于2012年生成的猫脸图
尽管生成的图像质量并不高,但这个实验标志着深度学习在图像生成领域的一个重大进步。它证明了深度学习模型能够学习到图像的复杂特征,并用于生成新的图像内容。这个实验使用了卷积神经网络(CNN),这是一种特别适用于图像识别和处理的深度学习架构。
(3)2014年生成式对抗网络(GAN)
2014年,加拿大蒙特利尔大学Ian Goodfellow等人提出的生成对抗网络算法为AI绘画带来了新的发展,它本质上是通过生成器和判别器的对抗过程来生成图像,下面详细介绍它的训练原理:
上述图中有两个模型:生成器和判别器,这两个模型分别都有一个目标,对于生成器来说,它的目的是让自己生成的图能够骗过判别器,让它认为这张图就是原始数据库中的真实图片而非模型生成的,这种情况下输出结果越趋近于1(1为真)就能说明生成模型效果越好;对于判断器来说,它的目的是有效地辨别出生成器生成的图片,这种情况下输出结果越趋近于0(0为假)就能说明判别模型效果越好;这样的话就形成了所谓的对抗(GAN),一个想让生成结果更趋向于1,一个想让生成的结果更趋向于0,生成的结果数值会给到两个模型和训练目标比对(一个目标是0,一个目标是1)后分别进行Fine tune(优化模型参数);那什么情况下算是训练好了呢?这里就有一个纳什均衡的概念,就是说当输出的结果无限趋近于0.5,0和1的中间值那么就算是把这个生成器训练完了。这个时候生成器生成的图片效果无限逼近于原始图了。
我们现在熟知的Midjourney底层就是基于GAN模型。
(4)2015年 谷歌的Deep Dream
2015年,谷歌推出了”深梦”(Deep Dream)图像生成工具,尽管它更像是一个高级滤镜,但它也标志着AI绘画技术的进步,我们可以先看一下Deep Dream生图的效果:
上面那排是原始训练的数据集,下面那排是Deep Dream 生成的像梦境般的迷幻图。
Deep Dream原理:
假设输入图像是X,这个输入图像可以是随机噪音,也可以是一个图像。把这个图像输入到卷积神经网络中,它输出的结果是各个类别的概率,这里卷积神经网络就是一个分类机器,怎样得到Deep Dream图像呢?需要指定一个标签。比如想要生成海星状的图像,就需要把目标标签指定为海星,然后通过海星和预测结果的类别之间的误差,反向传播到输入图像,去优化输入的图像X,如果优化后的X通过卷积神经网络后得到的海星标签的概率很高,那么就得到了类似海星的图像。
注意:这里调整的是输入图像的像素值而不是卷积神经网络。在Deep Dream项目中,用到的卷积神经网络的参数是固定的,调整的仅是输入的图像。
无论是14年的GAN还是15年的DeepDream都还没有实现文字->图片,直到2021年Open AI推出的生图模型DALL-E的诞生。
(5)2021年 OpenAI 推出 DALL-E
DALL- E模型的革命性的意义是实现了文字->图片的生成模式,相当于用户输入prompt给DALL-E,DALL-E就能生成文字对应的图片,DALL-E截止目前已经更新到了第三个版本,每个版本使用的模型可以说差别都挺大的,这个三个版本涉及到的主要模型如下:
DALL-E 1
时间: 2021年1月
模型基础: GPT-3(Transformer) + VAE(自分编码器)
DALL-E 2
时间: 2022年4月
模型基础: CLIP(视觉语言预训练模型) + Diffusion(扩散模型)
DALL-E 3
时间: 2023年10月
模型基础:CLIP + VAE + Diffusion(扩散模型)
上述涉及的模型比较多,但我们可以将其进行归类,一类是图像描述生成模型(将用户的Prompt转换成生图模型理解的描述),例如:GPT-3(Transformer)、CLIP(视觉语言预训练模型);另外一类是图像生成,模型 VAE(自分编码器)、Diffusion(扩散模型)。
2.2认识新伙伴吧!
在我们小白面对大量代码时 我们可以借助现在强大的AI工具来帮我们分析代码,让我们可以
通义千问大语言模型来告诉大家如何借助AI智能助手帮我们阅读代码。工欲善其事必先利其器,现在让我们请出今天的主角,通义千问(点击直达)。
在task1的任务中, 我们拿到baseline文件后, 根据教程指示顺畅通关, 似乎没有什么问题。但是可能有些同学看到这个baseline的代码会一脸懵,就很想知道某一个模块、某一行究竟是干啥的,下面我们就借助前面讲到的通义千问来精读这个代码。
首先我们来直观感知下这个文生图代码的框架结构:
我们向通义千问抛出我们想要问的问题,例如,我想要问Task 1中的代码的主体框架:
通义千问很好的做出了回答:
我们在生成文生图的过程中,很有可能不知道怎么更精准的描述我们想生成的图片,使用通义千问来帮我们表诉出我们想要生成的图片,毕竟AI更懂AI嘛,通义千问也可以帮助我们更好的生成我们想要生成的图片,例如,我还想要生成一个小红帽的故事:
我们给通义千问我们想要的提示词:
你是一个文生图专家,我们现在要做一个实战项目,就是要编排一个文生图话剧
话剧由8张场景图片生成,你需要输出每张图片的生图提示词
具体的场景图片
1、狼外婆在敲门
2、女孩来门前查看
3、女孩看见外婆露出了狼的尾巴
4、女孩来到窗边呼救
5、猎人听到了呼救
6、猎人来对付狼外婆
7、猎人打赢了狼外婆
8、女孩终于和真外婆团聚了
生图提示词要求
1、风格为童话风
2、根据场景确定是使用全身还是上半身
3、人物描述
4、场景描述
5、做啥事情
例子:
童话风,一只伪装成人类的狼,正在敲门,狡猾,披着红色头巾,穿着黑色大衣,全身
稍等片刻,通义千问就可以给出我们想要的提示词:
最后,结合AI内容,自己在AI结果上做一些调整,最终整理出来,把最佳的词语填到baseline中,我们就可以得到更理想的图片:
在通义千问的帮助下,我们成功生成了更好的画面,在以后的学习中,通义千问将会成为我得力的帮手。
总结
### 文章总结:AI文生图小白暑期夏令营体验记本文记录了一位AI方向小白在暑期参加魔搭夏令营中“AIGC文生图方向”的Task 01学习与探索经历。文章首先从任务的实际操作出发,提出了在基线模型生成文生图过程中遇到的问题,如生成图片与预期不符、代码理解困难等,进而展开了深入的思考与解决途径探索。
#### 问题发现与反思
- **生成图片不满意**:任务一中生成的图片不符合预期,例如画面细节不准确、人物形象扭曲。
- **代码理解困扰**:面对大量代码,难以理解其具体含义和功能,影响了进一步的学习和工作效率。
#### AI生图技术初探
1. **历史回顾**
- **AARON AI绘画**(70年代):最早通过机械臂和程序驱动的AI绘画系统,具有开创性。
- **模糊猫脸实验**(2012年):谷歌利用深度学习训练出可生成模糊猫脸的模型,标志着深度学习在图像生成领域的起步。
- **生成式对抗网络(GAN)**(2014年)**:通过生成器和判别器的对抗过程实现图像生成,显著提升图像质量。
- **谷歌Deep Dream**(2015年):虽然主要是图像修改工具,但也展示了AI在图像变换方面的潜力。
- **OpenAI DALL-E**(2021年):实现了文字到图片的生成,标志着AIGC技术的重大突破。
2. **现代工具助力**
- **介绍通义千问**:利用AI智能助手通义千问辅助阅读和理解代码,解决小白面对复杂代码时的困扰。
- **生图提示词优化**:通过通义千问的帮助,能更精准地描述生成图片的需求,提高生成质量。例如,在小红帽故事场景中,通过详细的描述和提示词,成功生成了更符合预期的文生图。
#### 总结与展望
通过Task 01的实践与反思,作者不仅掌握了AI文生图的基本操作,还通过查阅历史、利用现代工具等方式,有效解决了初期遇到的难题。未来,在继续深入学习和探索AI技术的过程中,通义千问将成为不可或缺的得力助手,助力作者更好地完成文生图任务及其他AI项目。