从零入门AI生图原理&实践 是 Datawhale 2024 年 AI 夏令营第四期的学习活动("AIGC"方向),基于魔搭社区"可图Kolors-LoRA风格故事挑战赛"开展的实践学习。
Datawhale官方的Task2链接:Task02
往期Task1链接:Task01
【学习者手册】:链接直达
【QA文档】:链接直达
【赛事官网】:链接直达
欢迎感兴趣的同学们加入我们的学习阵营来!
AI生图技术的背景与发展
重要性
AI生图技术,即AI生成图像技术,是人工智能生成内容(AIGC)领域的一个重要组成部分。随着AI技术的不断进步,AIGC已经成为了一个重要的发展趋势,并在多个行业中产生了深远的影响。对于不同的人群而言,了解AI生图技术有着不同的意义:
- 对于普通用户:了解AI生图技术可以帮助他们识别和避免被AI生成的内容所误导,同时也可以利用这些工具来进行简单的创意绘图。
- 对于内容创作者:AI生图工具可以帮助创作者快速提高工作效率,制作出所需的内容。
- 对于技术人员:掌握AI生图技术的能力和玩法有助于针对业务需求进行开发和优化,甚至攻克技术难题。
历史概览
AI生图技术的发展可以追溯到20世纪70年代,艺术家哈罗德·科恩(Harold Cohen)发明的AARON系统是一个早期的尝试,它可以通过机械臂输出绘画作品。进入21世纪,随着深度学习技术的兴起,AI生图技术迎来了突破性进展。
-
2012年:吴恩达等人训练出了第一个能够生成"猫脸"图像的模型,这是使用卷积神经网络(CNN)进行图像生成的里程碑事件。
-
2015年:谷歌推出的"深梦"(Deep Dream)图像生成工具进一步展示了深度学习在图像生成方面的潜力,能够将给定图片转换成极具艺术性的图像。
-
2021年 :OpenAI发布了DALL-E模型,这是一个基于GPT-3语言处理模型的深度学习算法模型,它能够根据文本提示生成多样化的图形设计。DALL-E的出现被视为AI生图技术的一个重大进步,因为它能够生成高质量、多样化的图像,被认为有可能对设计行业产生重大影响。
技术原理
AI生图模型通常是多模态机器学习模型,它们通过深度神经网络学习大量的图像库和文本描述,以建立图像描述和图像特征之间的对应关系。这样的模型能够在接收到文本描述或其他类型的输入时,生成符合语义的图像。
相关知识点
-
恐怖谷效应:这是一个心理学概念,指的是随着仿真人形的仿真度增加,人们对它们的亲和力也随之增加,但当仿真度达到某个阈值时,人们的反应会突然变得负面,产生排斥、恐惧或困惑等情绪。AI生图技术在早期阶段很难被广泛接受,部分原因可能与恐怖谷效应有关。
-
**Deepfake技术:**这是一种使用深度学习算法生成高度逼真的伪造媒体的技术,尤其是在视频和音频方面。虽然这项技术具有潜在的应用价值,但其滥用可能导致严重的伦理和社会问题,例如在政治领域制造假新闻或操纵舆论,以及在经济和法律领域造成误导。
科技是一把双刃剑, deepfake技术日渐成熟,deepfake检测技术也在日益受到重视
技术如若用于邪处,那是极其可怕的。你支持deepfake的研究吗?日益成熟的deepfake是好是坏呢? -
++Kolors(可图)模型(点击即可跳转魔搭模型介绍页)++ 是快手开源的文本到图像生成模型,该模型具有对英语和汉语的深刻理解,并能够生成高质量、逼真的图像。
代码开源链接:https://github.com/Kwai-Kolors/Kolors
模型开源链接:https://modelscope.cn/models/Kwai-Kolors/Kolors
技术报告链接:https://github.com/Kwai-Kolors/Kolors/blob/master/imgs/Kolors_paper.pdf
魔搭研习社最佳实践说明:https://www.modelscope.cn/learn/575?pid=543
-
魔搭平台:这是一个汇集了大量AI模型和资源的平台,用户可以在此平台上学习和探索AI生图技术的最新进展。通过魔搭平台,开发者可以获得最新的模型、工具和教程,从而持续推动AI生图技术的发展。
实践案例与工具
实践案例
AI生图技术已经广泛应用于多个领域,从艺术创作到商业广告,再到教育和娱乐,都有着它的身影。这里有几个典型的实践案例:
- 艺术创作:艺术家们使用AI生图工具来辅助创作,比如生成初步的概念草图或者作为灵感来源。例如,艺术家可以输入一些关键词,AI就会生成与这些关键词相关的图像,这样可以帮助艺术家更快地构思出作品的大致方向。
- 商业广告:广告设计师利用AI生图技术快速生成多种设计方案,以供客户选择。这种方式可以大大提高设计效率,同时也能提供更多样化的设计方案。
- 教育:在教育领域,AI生图技术可以用来创建互动式的学习材料,比如生成与教学内容相关的插图或动画,帮助学生更好地理解和记忆知识点。
- 娱乐:在电影和游戏行业中,AI生图技术可以用于生成背景环境、角色设计等,减少手工制作的时间和成本。
在AI生图兴起的这段时间,其实各行各业都有所涉及,也诞生了许多工具可以帮助我们在日常生活及学习工作的某一些环节。例如前段时间爆火的小说配图抖音就是如此。
工具概述
AI生图技术的背后是一系列先进的工具和技术,这些工具不断发展,使得生成的图像越来越接近真实世界。以下是几个值得关注的工具:
- SCEPTER:这是一个开源的代码仓库,专注于生成模型的训练、微调和推理,涵盖了图像生成、转换和编辑等多个下游任务。SCEPTER整合了社区驱动的实现方法以及阿里巴巴集团同义实验室的专有方法,为研究人员和从业者提供了全面的工具包。
- DALL-E:由OpenAI发布的DALL-E模型,是一个深度学习算法模型,能够根据文本提示生成多样化的图像。它最初基于GPT-3语言处理模型,并经过改进,现在已经发展到了DALL-E 2,生成的图像质量显著提高。
- Diffusion Models:扩散模型是近年来图像生成领域的一个热门话题,它通过逐步添加噪声然后逐步去除噪声的过程来生成图像。这种方法在图像合成方面表现出了卓越的能力。
- GANs (Generative Adversarial Networks):生成对抗网络是AI生图领域最常用的模型之一,它通过两个网络(生成器和判别器)的对抗训练来生成高质量的图像。
AI生图的挑战
AI生图技术虽然取得了巨大的进步,但在实际应用中仍然面临着不少挑战。以下是一些关键的挑战和可能的解决方案:
技术挑战
-
理解语义:尽管AI模型能够根据文本描述生成图像,但它们在理解文本的深层含义和上下文方面仍有局限。例如,模型可能会误解某些比喻或隐喻表达,导致生成的图像与预期不符。为了改善这一点,可以进一步加强模型的语言理解能力,比如引入更多语境丰富的数据进行训练。
-
细节处理:早期的AI生图模型在处理复杂的细节时往往不尽人意,尤其是在描绘人体结构、纹理等方面。随着时间的推移,这一问题得到了一定程度的缓解,但仍然存在。一种可能的解决方案是采用更高分辨率的训练数据,并利用特定领域的知识来优化模型。
-
一致性问题:在生成一系列相关联的图像时,保持图像之间的一致性是一项挑战。例如,在生成连续场景或故事板时,确保角色和环境的一致性至关重要。这可以通过引入条件生成机制和更精细的控制机制来改善。
道德与伦理挑战
-
版权问题:使用AI生图技术生成的艺术作品可能涉及版权问题,特别是在使用现有艺术品作为训练数据的情况下。开发者和用户需要确保遵循相关的法律法规,并尊重原创作者的权利。
-
偏见与歧视:AI模型可能无意中学习到数据中的偏见,导致生成的内容带有偏见或歧视性的特征。为了避免这种情况,重要的是要确保训练数据的多样性和包容性,并且在模型训练过程中采用公平性评估指标。
-
隐私问题:AI生图技术在某些情况下可能会侵犯个人隐私,尤其是在未经同意的情况下使用个人肖像数据。因此,保护个人隐私和数据安全是非常重要的,这也需要通过严格的法律监管和技术手段来实现。
社会挑战
-
就业影响:随着AI生图技术的发展,一些传统的设计和创意行业可能会受到影响。一方面,技术进步可以提高效率,降低成本;另一方面,也可能导致一些岗位的消失。因此,有必要开展技能培训项目,帮助相关人员适应新技术环境。
-
可信度与验证:随着AI生成内容越来越难以与真人创作区分,辨别真伪变得更加困难。这不仅影响到艺术领域的原创性,还可能在其他领域造成信任危机。开发可靠的验证技术和标准变得尤为重要。
-
教育与普及:为了让公众更好地理解AI生图技术及其潜在影响,需要加强教育和普及工作。这有助于提高人们的媒介素养,减少误解和不必要的恐慌。
解决方案与展望
- 技术层面:继续推进算法和模型的创新,如采用更高效的数据增强技术、强化学习策略等,以提高模型的泛化能力和生成质量。
- 伦理指导:建立一套伦理指导原则,确保AI生图技术的健康发展。这包括制定明确的政策来指导数据收集、模型训练和应用部署。
- 公众参与:鼓励公众参与到AI技术的讨论和发展中来,通过举办研讨会、公开讲座等形式增加透明度,增进公众的理解和支持。
- 开源互助:在对AI工具进行开源的同时交流并引导正确的使用观念,并且研究对AI工具害的一面的预防。
通义千问的使用
通义千问是一款强大的AI助手,它不仅可以帮助用户解答各种问题,还能提供编程和技术支持。下面是如何充分利用通义千问的一些思考和建议:
初步了解
-
功能概览:首先,熟悉通义千问的基本功能。它不仅可以回答问题,还能进行编程和技术支持,提供文本创作、信息查询等多种服务。了解这些功能可以帮助我们更好地利用它。
-
自我介绍:通义千问通常会有一个简短的自我介绍,这有助于用户了解它可以做什么。例如,通义千问会强调其在编程方面的强大能力,这对我们使用它来解决问题特别有用。
编程和技术支持
-
代码解析:当遇到难以理解的代码段落时,可以向通义千问求助。它能够帮助我们理解代码的结构和逻辑,甚至可以为我们解释特定行的作用。例如,当我们面对一个复杂的文生图代码时,通义千问可以帮我们逐行解析代码,理解每一部分的功能。
-
实践指导:在进行具体的编程任务时,通义千问可以给出详细的步骤指导。例如,在进行AI生图任务时,通义千问可以告诉我们如何准备数据、如何设置模型参数,以及如何优化生成的图像。
使用技巧
-
清晰表述问题:在向通义千问提问时,确保问题描述得尽可能清楚。这样可以得到更准确的答案。例如,如果我们想要了解某个函数的工作原理,最好提供该函数的完整代码片段以及我们希望了解的具体方面。
-
逐步深入:如果一个问题涉及多个层面,可以考虑分步骤提出问题。先从基本的概念入手,然后逐渐深入到更具体的技术细节。
-
反馈和修正:如果通义千问的回答未能满足需求或者存在误差,可以向它反馈并请求修正。这种互动过程有助于改进答案的质量。
在我们的学习中可以起到的辅助
-
代码架构分析:假设我们有一个文生图的代码基线,通义千问可以帮助我们分析代码的整体架构。例如,它可以帮助识别哪些部分负责数据准备,哪些部分负责模型训练,以及哪些部分负责生成图像。
-
代码逐行解析:对于代码中的具体行,通义千问可以给出详细的解释。例如,如果我们在代码中看到一行涉及到模型预测的部分,通义千问可以解释这一行代码如何调用模型来进行预测,并解释预测结果的含义。
-
实战演练:通义千问还可以帮助我们完成一些实战任务。例如,如果我们正在做一个基于话剧的连环画项目,需要生成一系列相关的图像,通义千问可以提供如何编写合适的提示词的建议,以及如何利用现有的AI工具来生成这些图像。
通过通义千文给我们的提示词进行出图
首先我们将提示词进行替换,并且我自己也对反向提示词进行了拓充。
并且在其中可以看到,我将 torch.manual_seed() 方法进行了注释
torch.manual_seed()是设置CPU生成随机数的种子,方便下次复现实验结果。所以这个方法传参相当于设置了控制了出图。
把这一个方法注释掉就可以取消对种子的控制,做到随机出图
控制seed是为了让小白更容易去上手文生图的过程,容易复现调整,因为实际上可操作的参数还是很多的。在后续的学习会一步一步的拓展知识,跟着我们的学习一步一步来就可以啦,有兴趣也可以额外去学习一下。
下面是我最后出来的结果:
下面这次出图我增加了出图的 steps,让AI渲染的次数更深一些,但需要注意的是,过大的steps也会导致图片变得崩坏,要取适当的参数量。
拓展学习scepter webui
魔搭体验网址:https://www.modelscope.cn/studios/iic/scepter_studio
++魔搭社区++ 提供的体验地址里面缺失了微调模型的功能,如果大家希望能使用secpter完整的功能,我们可以将其私有部署到我们自己的服务器。
**github地址:**https://github.com/modelscope/scepter
可以通过官方readme文件中的教程进行操作,该模块对基础有一定的要求,适合 学有余力 的同学
最后不知道大家是否有注意到,这次笔记的前两张图也是由通义千问生成的呢哈哈!
感谢您的参与,让我们共同探索AI的无限可能!我们下期再见