Datawhale X 魔搭 AI夏令营第四期 魔搭-AIGC方向 task02笔记
从零入门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的无限可能!我们下期再见
相关文章:

Datawhale X 魔搭 AI夏令营第四期 魔搭-AIGC方向 task02笔记
从零入门AI生图原理&实践 是 Datawhale 2024 年 AI 夏令营第四期的学习活动(“AIGC”方向),基于魔搭社区“可图Kolors-LoRA风格故事挑战赛”开展的实践学习。 Datawhale官方的Task2链接:Task02 往期Task1链接:Ta…...

多模态大语言模型的免训练视觉提示学习 ControlMLLM
ControlMLLM: Training-Free Visual Prompt Learning for Multimodal Large Language Models github paper 在本研究中,提出了一种无需进行训练的方法,通过可学习的潜变量优化将视觉提示注入到多模态大型语言模型(MLLMs)中。 在…...

Oracle|DM 常用|不常用 SQL大口袋
目录 一、前言 二、SQL写法 1、sql获取某一条数据中的前一条和后一条 2、实现like多个值的查询(Oracle和dm支持,MySQL未试过) 3、start with connect by prior 使用方法 4、用hextoraw解决select、update、delete语句执行慢 5、ORA-00…...

嵌入式软件--模电基础 DAY 1
C语言的学习告一段落了,要多多注意复习回顾,温故而知新,学习的过程就是与遗忘作斗争。接下来就是嵌入式学习中硬件电路方面的知识了。 一、电学基础 1.电流 电流(Current)是电荷在单位时间内通过导体横截面的流动量…...

【Nacos无压力源码领读】(二) 集成 LoadBalancer 与 OpenFeign
上一篇文章中, 详细介绍了 Nacos 注册中心的原理, 相信看完后, 大家应该完全掌握了 Nacos 客户端是如何自动进行服务注册的, 以及 Nacos 客户端是如何订阅服务实例信息的, 以及 Nacos 服务器是如何处理客户端的注册和订阅请求的; 本文承上启下, 在订阅服务实例的基础上, 介绍如…...

《投资的原理》阅读笔记二——价值投资真是王者吗?
《投资的原理》的第二章是《史记货殖列传里的八大投资金句》,作者在这一章里宣扬的主要观点是价值投资才是稳妥的投资之路。但我觉得作者讲述的很多例子,包括经典的“两个金条放在一起,你告诉我那根是高尚的”,更多的应该体现在“…...

SSH、FTP、SFTP相关协议详解
一、SSH 1、定义 SSH(Secure Shell)是一种网络协议,用于加密方式远程登录到另一台计算机上,并执行命令或程序。SSH由IETF的网络小组(Network Working Group)所制定,是建立在应用层基础上的安全…...

C语言进阶——一文带你深度了解“C语言关键字”(中篇6)
本篇文章记录我学习C语言进阶知识——C语言关键字,旨在记录分享,希望我的分享能带给你不一样的收获! 目录 一、return关键字 二、const 关键字也许该被替换为 readolny (一)、 const 修饰的只读变量 (二…...

自建极简Ethercat主站-第8章 FOE基础功能实现
文章目录 第8章 FOE8.1 FOE简介8.2 FOE 数据结构8.2.1 FOE帧格式8.2.2 FOE请求8.3 数据传输流程8.3.1 读流程8.3.2 写流程8.3.3 忙操作8.3.4 代码示例第8章 FOE 源码地址 8.1 FOE简介 FOE(File Access over Ethercat),用于节点之间的文件传输。协议类似于TFTP协议,感觉…...

SQL Zoo 8.Using Null
以下数据均来自SQL Zoo 1.List the teachers who have NULL for their department.(列出所属部门为NULL的教师) select name from teacher where dept is null 2.Note the INNER JOIN misses the teachers with no department and the departments wit…...

LeetCode274. H 指数
题目链接: 274. H 指数 - 力扣(LeetCode) 思路分析:这个题目可以使用哈希表来以空间换时间,我们设置一个数组v来统计每一个对应的影响因子的文章出现的数量,遍历一遍后,v[i]表示影响因子为i的…...

概述:Dubbo、Nacos、 Zookeeper 等分布式服务协调与治理等技术
目录 1. Dubbo 2. Nacos 3. Zookeeper Dubbo、Nacos、Zookeeper 是分布式服务协调与治理领域中的关键技术,它们在微服务架构和分布式系统中扮演着重要角色。以下是对这些技术的详细介绍: 1. Dubbo 概述: Dubbo 是一个高性能、轻量级的开…...

【LINUX】小工具降耦合,全内核函数插入宏摸索测试中。。
这阵子把这个小工具对外的耦合度降了下, include/linux/printk_self.h r77683962/linux-6.9.0 - Gitee.comhttps://gitee.com/r77683962/linux-6.9.0/blob/master/include/linux/printk_self.h 这个用于初始化打印日志的级别和打印次数: void Param…...

24/8/12算法笔记 复习_线性回归
import numpy as np#导入包 X np.array([[1,1],[2,1]])#构造矩阵 y np.array([14,10])np.linalg.solve(X,y) #linalg是线性代数,用于求解线性方程AX b,solve计算线性代数回归问题X.T#转置 a X.T.dot(X)#矩阵乘法B np.linalg.inv(a)#求逆矩阵from sklearn.linea…...

Linux系统驱动(十四)输入子系统
文章目录 一、输入子系统(一)输入子系统框架结构(二)输入子系统的API 二、实现两个按键的驱动(一)实现思路(二)代码实现 一、输入子系统 在linux系统中使用输入子系统驱动上报鼠标&…...

力扣(2024.08.12)
1. 98:验证二叉搜索树 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class Solution:def isValidBST(self, r…...

最新版的AutoGPT,我搭建好了
最近AutoGPT不是更新了嘛 安装 我按照官方的教程 在本地搭建好了 改动 可见的改动,主要是把原来的纯命令行改成前后端的形式 看下前端界面 界面比较简单,主要分3个大块 监控 第一个是监控 主要是看你在 build 里构建的Agents的运行情况 build 第一个是Ag…...

[SWPUCTF 2021 新生赛]PseudoProtocols(构造伪协议)
打开题目所给的环境我们可以看到这样一句话: 这里我先尝试访问/hint.php ,但是发现什么都没有发生, F12查看源代码也并没有发现什么,到这里来看的话似乎没有思路了,但是这个题的题目已经给了我们很明显的提示ÿ…...

基于STM32开发的智能语音助手系统
目录 引言环境准备工作 硬件准备软件安装与配置系统设计 系统架构硬件连接代码实现 初始化代码控制代码应用场景 智能家居控制个人语音助理常见问题及解决方案 常见问题解决方案结论 1. 引言 随着人工智能技术的发展,智能语音助手已经逐渐进入了人们的日常生活。…...

基于python的图像去雾算法研究系统设计与实现
博主介绍: 大家好,本人精通Java、Python、C#、C、C编程语言,同时也熟练掌握微信小程序、Php和Android等技术,能够为大家提供全方位的技术支持和交流。 我有丰富的成品Java、Python、C#毕设项目经验,能够为学生提供各类…...

自定义 View 可以播放一段视频
请实现一个自定义 View 的核心代码,核心要求可以响应如下事件: // - 要求自定义 View 可以播放一段视频 / - 在 view 左侧区域上下滑动,可以提高减少音量 / / - 在 view 右侧区域上下滑动可以提高减少屏幕亮度 // - 在 view 左右滑动可以…...

LVS负载均衡集群部署之—NAT模式的介绍及搭建步骤
一、环境准备 1.准备三台rhel9服务器 服务器名称 主机名 ip地址备注LVS调度服务器lvs.timinglee.org eth0:172.25.254.100(外网) eth1:192.168.0.100(内网) 关闭selinux和防火墙webserver2网站服务器webserver1.timinglee.orgeth0:192.168.…...

【算法】浅析哈希算法【附代码示例】
哈希算法:数据存储与检索的基石 1. 引言 在计算机科学中,哈希算法是一种用于将数据(如文件、网络地址或数据库记录)转换为固定长度的哈希值的过程。哈希值通常是一个较短的数字或字符串,用于快速检索原始数据或验证数…...

2024.8.12
2024.8.12 【梦最让我费解的地方在于,明明你看不清梦里人们的脸,却清晰地知道他们是谁。】 Monday 七月初九 序理论 最小链覆盖&最长反链长度 我们设定一个二元关系符R和一个集合A 我们设定<A,R>这样一个类群,那么对于任意 a i…...

使用Python解析pdf、docx等格式文件。
针对不同类型的文件,需要采取特定的访问与解析策略来有效获取其中蕴含的知识。下面我们将介绍对于不同数据源数据的获取方式。 1 解析Docx文档 1.1 获取Docx文档中文本 from docx import Document # pip install python-docx # python-docx 0.8.11 filename xx…...

Linux网络通信基础API
这篇文章只有Linux网络通信基础API大参数信息,和返回值,这篇文章并没有这些基础API的参数类型介绍。accept的第二个参数可以查看客户端信息。 创建socket #include <sys/types.h> /* See NOTES */#include <sys/socket.h>int sock…...

Python爬虫:下载4K壁纸
🎁🎁创作不易,关注作者不迷路🎀🎀 目录 🌸完整代码 🌸分析 🎁基本思路 🎁需要的库 🎁提取图片的链接和标题 👓寻找Cookie和User-Agent &…...

2024年【北京市安全员-B证】新版试题及北京市安全员-B证免费试题
题库来源:安全生产模拟考试一点通公众号小程序 2024年【北京市安全员-B证】新版试题及北京市安全员-B证免费试题,包含北京市安全员-B证新版试题答案和解析及北京市安全员-B证免费试题练习。安全生产模拟考试一点通结合国家北京市安全员-B证考试最新大纲…...

python爬取B站视频实验
实验17:爬虫2 文章目录 实验17:爬虫21.实验目标及要求2. 实验主要内容3.实验小结 1.实验目标及要求 (1)掌握有关爬虫的包 (2)掌握爬虫方法 (3)爬取B站卡塔尔世界杯若干视频 2. 实验…...

10步搞定Python爬虫从零到精通!
学习Python网络爬虫可以分为以下几个步骤,每一步都包括必要的细节和示例代码,以帮助你从零开始掌握这一技能。 第一步:理解网络爬虫基础 什么是网络爬虫? 网络爬虫是一种自动化程序,用来从互联网上收集数据.它通过发送 HTTP 请求…...