Category: AI/ML/DL/CV/NLP/RL/Robotics/BigModels/AIGC
-
AIGC体验7-Stable Diffusion使用技巧之ControlNet模型的使用2
上篇短文向大家部分的介绍了ControlNet的使用示例,在Stable Diffusion的使用过程中,基础模型对于图像生成的质量的影响是挺关键的。在上篇介绍的短文中,我们使用了v1-5-pruned-emaonly这个模型,而在本文的示例中,我们将选择AnythingV5V3_v5PrtRE这个模型,从使用体验来说,该模型在生成人物方面的性能要明显优于v1-5-pruned-emaonly模型。相关的模型链接可以参考引文。 ControlNet还有更多的用法,读者可以进一步自行去尝试和积累经验,关于提示词的写法等还有不少的trick去在实践中模型和进一步总结,后续有相关的心得再去继续在这里分享。
-
AIGC体验6-Stable Diffusion使用技巧之ControlNet模型的使用1
在文生图的应用中,用户经常会对生成的图形有特殊的要求,如局部重绘,满足边缘或深度条件,模糊变清晰,黑白变彩色,人体特定姿势(pose)等等。这篇短文将向大家介绍基于Stable Diffusion的ControlNet实现图像可控生成的几个示例,更加完整的介绍可以参考相关文献(这篇短文基于stable diffusion 1.5版本,具体可以使用引文3中给出的notebook)。 现有的stable diffusion的基础模型在人物生成上效果不是特别好,这篇短文暂时没有演示可控人物生成的效果,更多的场景会在后面的短文中进一步补充,欢迎大家关注,并提出意见建议。 References
-
AIGC体验5-Stable Diffusion使用技巧之LoRA模型的使用
Stable Diffusion(SD)是开源的文生图大模型,随着相关技术的发展,已经迭代了多个版本(关于版本间不同的特性可以搜索查询,这里以1.5版本为例进行介绍,如和其兼容的lora模型比较多),并且其支持多种可控图像生成技巧,这篇短文将要向大家介绍相关的Stable Diffusion的使用技巧,不足支持欢迎读者提出意见建议并予以补充。 首先我们采用webui的方式使用比较便捷,参考文献1即为我们的Stable Diffusion V2.1版本的webui的jupyter notebook代码链接。具体使用可以在本地或colab里边。这篇短文将介绍SD的一般用法和基于LoRA模型的风格化用法。 一、一般用法:这里没有特别要强调说明的地方,主要是要写好提示词。这里举一个示例,提示词为:Two yellow orioles sing amid the green willows. 效果图为: 二、LoRA模型,lora模型是一种小模型技术,其显著的优点表现在:1、LoRA 通过低秩适应方法在较少的参数增加下微调大模型,资源消耗较少。2、在特定任务或小数据集上快速适应大模型,提升生成质量或特定任务的表现。3、LoRA模型可以作为额外模块加载到现有大模型中,灵活性高。使用LoRA模型的方法如下,1、首先,下载LoRA模型,如参考文献1所示;2、将下载的模型拷贝到lora的模型目录,如/content/stable-diffusion-webui/models/Lora,然后更新webui加载最新加入的lora模型(设置扫描lora模型路径),提示词为:Two yellow orioles sing amid the green willows. SONG DYNASTY FLOWER AND BIRD PAINTING如下图所示。 其中该界面的操作流程为:settings–>additional networks–>Extra paths to scan for LoRA models(设置为/content/stable-diffusion-webui/models/Lora)–>apply settings–>Reload UI。在上面的图中,我们用到了一个LoRA模型,具体可以参考引文1。 下一篇相关文章将介绍ControlNet的相关用法,欢迎读者继续关注,提出问题和意见建议。 References
-
AIGC体验4-midjourney中人物一致性的实现
在一般的电影和短视频中,一般的都存在的多个镜头(storyboard),为了保证镜头切换的时候的人物的一致性,需要文生图模型对此有较好的支持,否则在文生图的自动生成的场景中就会存在着不满足分镜头设计的需求,大模型的可用性就会受到交大影响。 今天向大家介绍midjourney中怎么实现人物一致性,主要通过一个实例向大家做演示介绍。 首先,我们通过提示词生成一个人物的不同角度的4张图片,提示词如下: 根据上述提示词生成的图片效果为: 将图像保存到本地,然后通过工具裁剪成4个小的图片,然后点击下图中左下脚的“+”号按钮在弹出的菜单中选择“上传文件”,将上面裁剪的4个图片上传后,将其链接保存下来(通过点击放大每个图片然后鼠标右键图片上方获取图片链接,供四个链接)。 然后用/prefer option set命令来进行设置风格一致性,具体的指令形如下面截图: 然后,就可以指定以该”littleboy”的option来生成人物一致性的场景了。具体的示例指令为: 最终的效果为: 后面有机会将继续向大家介绍关于图像视频多媒体方面的大模型应用的一些技巧。欢迎感兴趣的读者关注并提出问题一起来商议探讨共同提高。
-
AIGC体验3-用Fliki+大模型制作短视频
前面两篇短文向大家简要介绍了midjourney来进行绘图,今天向大家简要介绍一个支持在线的短视频制作的工具Fliki,不足之处欢迎大家批评指正并予以补充。 Fliki的官网为Fliki – Turn text into videos with AI voices, 其主要是根据故事分镜头来制作短视频,分镜头(storyboard)是影视制作中的术语,大概是一个连续的镜头来描述一个场景(如长镜头,宽镜头,远镜头等)。这方面经验也不是很足,以后有机会再补充相关细节。 首先我们用大模型(ChatGPT,通义千问,文心一言等)生成故事的分镜头脚本描述,也可以自己去描写。这里我们以登鹳雀楼为例,自己写的一个简单的分镜头场景描述来进行说明(暂时没有用到大模型来生成场景描述),用的是通义万象来生活场景图。 基于上述场景文字生成的图片后,我们就可以再Fliki中去生成这首小诗的短视频了,具体方法为下面的截图演示: 有必要对语音进行优化,可以考虑借助第三方语音合成平台生成整个的语音放到common sense的场景中去(最上方)。然后在每个分场景中去掉voiceover的layer。基本设置好后,就可以export然后就download了(注:为了去除水印,需要upgrade成会员) 更多的经验会在后续继续向大家介绍。 References
-
AIGC体验2-midjourney使用配置对生成的图片进行约束和限制
上篇短文主要向大家介绍了midjourney的基本使用,在文生图的时候,有时作者期望有更多的控制条件,比如生成图片的大小和横竖比,生成图片的风格等。 首先可以通过命令/settings进行相关版本,以及模式的设置,输出结果为如下图示,具体关于这些模式的含义可以参考引文,这里不做赘述。 下面主要介绍一个使用一些约束和控制的示例 输出的结果如下图所示 点击“U4”后显示结果为: 加上图片风格和长宽比之后的示例如下: 点击“U4”后显示结果为: 后面将继续介绍相关使用的一些技能点。欢迎读者反馈意见和建议。 Reference
-
AIGC体验1-midjourney的初步使用
midjourney在图片生成方向上有较高的质量,这篇博客简要记录一下其初步的使用方法。欢迎读者给出意见和建议,以及补充相关的说明。 注册后(注册过程忽略),可以建立自己的频道,方法如下几个图示。 然后就可以在对应的服务器里用相关命令生成图片了,这里举个示例,假设提示词为“Bright forest, little bunny Lily in front of home, sunlight shining on the grass”,则生成后的效果如下图所示: 具体后面更多的使用经验将在后续的体验过程中进一步加以记录。 References
-
八段锦视频分享
中华传统文化源远流长,中医,中国传统儒释道哲学思想还有中国武术。 今天分享一段八段锦,感觉挺好的,全身都能够锻炼得到,中国武术刚柔相济,是强身健体的很好的“保健操”。视频分享见参考引文。 最近深度学习和大模型相关技术又有新进展,1为Alapha Fold3,2为GPT-4o(“o”代表“omni”,全方位,全部的意思)。后面打算学习一下大模型相关的技术原理,并撰写相关的技术系列文章,为大模型相关基础技术普及出一点力,为国产大模型的技术突破提供几米阳光和几滴雨露。欢迎读者提供相关素材和意见建议。 Reference
-
Policy Gradient算法原理简介-强化学习技术系列3
前面的相关文章,介绍了基于价值函数的强化学习算法(MDP和Q-Learning),在强化学习中,除了基于值函数的方法,还有一支非常经典的方法,那就是基于策略(policy-based)的方法。这篇文章将向大家介绍相关的算法思想,不正确或需要修正的地方欢迎大家批评指正。 在前面介绍的Q-Learning算法中,会采用一定的随机策略去选择action(epsilon greedy),一开始会让Agent更偏向于探索Explore,并不是哪一个Action带来的Value最大就执行该Action,选择Action时具有一定的随机性,目的是为了覆盖更多的Action,尝试每一种可能性。等训练很多轮以后各种State下的各种Action基本尝试完以后,我们这时候会大幅降低探索的比例,尽量让Agent更偏向于利用Exploit,哪一个Action返回的Value最大,就选择哪一个Action。 在策略梯度中,Agent一般称为Actor,策略pi通常用一个神经网络来表示,一般神经网络的输出为动作的概率(如softmax)。智能体会自动的探索不同的状态和trajectory(通过随机采样的机制进行实现。如一个policy在某种状态下输出action1的概率为60%,输出action2的概率为40%,则智能体自然而然会更多采样到action1,但也会常采样到action2)。policy gradient还有”No more perceptual aliasing”和”Effective in high-dimensional action spaces“这样的优势, 从初始状态出发,到任务的结束,被称为一个完整的episode(剧集)。这样,一个有T个时刻的eposide,Actor不断与环境交互,形成如下的序列τ: 具体的公式推导可以参考引文1,最后的梯度求解公式如下: 关于其公式的推导可以参考引文1,这里就不做赘述。需要说明和强调的是 对代码有几处说明一下:1、loss为负值,求最小,即为正值最大化,2,采用了Mento Carlo采样的思想,每次训练数据基于一个episode,从开始状态直至完成done;3、当前的某个时刻的R为从当前到最后状态r的一个折扣和,具体可以参考链接7中的实现。 实验中用到了GYM,强化学习算法工具包,可以提供强化学习算法的模拟环境,从而为测试和验证强化学习算法提供了方便。 References
-
Q-learning算法基本原理-强化学习技术系列2
在之前的关于马尔可夫决策过程的相关文章中,价值函数一般是某一状态下后续执行行为序列(特定策略)所获得的价值期望。价值函数可以是状态价值函数或动作价值函数,状态价值函数通常用V(s)来表示,而动作价值函数一般用Q(s,a)来表示,其含义为在特定状态下采取动作a来表示后续的价值期望。其表示更加灵活(因为只有状态的价值函数是针对特定策略的,而Q函数多了a这个维度表达能力就更强了),在许多强化学习算法中,特别是基于动作的方法(如Q-learning和Deep Q-Networks),Q函数是中心概念。 下面是Q-learning算法的基本思路解释: Q-learning的Q值更新规则通常使用了贝尔曼方程的近似形式,即将当前状态的Q值更新为当前奖励加上未来最大Q值的折扣后的值。这样可以不断地迭代更新Q值,逐步逼近最优的Q函数,从而学习到最优的策略。Q-learning的算法流程伪代码如下图所示。 对上述公式的解释如下: 一般情况下,可以设置为LMS loss:其中error为下面的表达式。 其中,在实际训练中,为了保持训练网络的稳定性,在训练过程中用到了两个网络,具体的过程可以参考引文3。 Q-learning的深度学习版本为DQN,原理基本差不多,不过Q函数不再以表格来表示,而是用神经网络的结构来表示,这样可以建模状态数很多的情况。 References