AIGC专栏8——EasyPhoto 视频领域拓展-让AIGC肖像动起来
AIGC专栏8——EasyPhoto 视频领域初拓展-让AIGC肖像动起来
- 学习前言
- 源码下载地址
- 技术原理储备
- Video Inference 功能说明 & 效果展示
- 1、Text2Video功能说明
- a、实现原理简介
- b、文到视频UI介绍
- c、结果展示
- 2、Image2Video功能说明
- a、实现原理简介
- i、单图模式
- ii、首尾图模式
- b、图到视频UI
- c、结果展示
- 3、Video2Video功能说明
- a、原理与功能
- b、视频到视频UI
- c、结果展示
- 分支安装
- 1、已安装EasyPhoto
- 2、未安装EasyPhoto
学习前言
图像的AI写真是AI人像的初步应用,如何让图像动起来,形成一段视频,是AI写真领域的重要应用方向拓展。
文生视频,图生视频与视频转视频,是AI写真视频的3个方向。
源码下载地址
WebUI插件版本:https://github.com/aigc-apps/sd-webui-EasyPhoto
Diffusers版本:https://github.com/aigc-apps/EasyPhoto
麻烦各位朋友点个Star,这对我来讲还是很重要的!
技术原理储备
近年来,Stable Diffusion的开源使得更多非专业作画的用户也能通过简单的文字提示生成非常高质量的图片内容(动漫、真人、场景)。但静态图像的表达能力总是有限的,如果能直接文生动画、动图,那么Stable Diffusion的应用领域将大大增长。
随着Lora与Dreambooth的普及,人们定制化模型的能力越来越强,如果可以有一个类似于Controlnet的即用插件,那么模型便有了定制生成动画的能力。
而AnimateDiff则是这样一种可以即插即用的插件,作者提出了一种将任何定制化文生图模型拓展用于动画生成的框架,可以在保持原有定制化模型画面质量的基础上,生成相应的动画片段。
为了避免破坏原始文生图微调模型的生成能力,AnimateDiff在文生图模型中插入了一个动作建模模块,并从视频数据中学习动作先验。因为只是一个模块的插入(类似于Controlnet),加入了先验知识,其实并不改变原有的Stable Diffusion结构,所以AnimateDiff的拓展性非常强!
其实就是在Stable Diffusion的每层后面,新加上一层用于batch批次之间的理解动作信息。
因此,我们选择AnimateDiff作为EasyPhoto视频领域拓展的应用技术,让AIGC肖像成功动起来。
Video Inference 功能说明 & 效果展示
在EasyPhoto完成基于人像Lora训练后,如何使用EasyPhoto完成以下的几种功能:
- Text2Video :使用指定user_id + 描述文本,进行具有指定人脸的视频生成
- Image2Video :使用指定user_id + 模板图片 + 描述, 进行人脸图片的动态视频生成。
- Video2Video :使用指定user_id 完成视频人像编辑。
1、Text2Video功能说明
a、实现原理简介
- 在Text2Video功能中,我们首先自选的SD模型 + AnimateDiff设置的mm_sd_v15_v2.ckpt(Animate运动先验模型;默认选取,无需自己选择),以及用户设定的prompt,生成一段顺滑的带有人脸的视频。
- 在生成的视频上逐帧进行EasyPhoto的前处理,然后对视频使用(EasyPhoto选择的SD模型 + AnimateDiff + User-Lora)进行视频片段上的人脸重绘,用于生成指定ID足够相似的顺滑的人脸。
- 在重绘后的结果上,逐帧进行EasyPhoto的后处理,提升人脸的美观度和全局的和谐程度。
b、文到视频UI介绍
c、结果展示
下面的文到视频采用的参数是:
- Stable Diffusion Model:majicmixRealistic_v7;
- seed=12345;
- max_frame=32;
- fps=8。
图中模特为 师兄亲信。
GIF | prompt |
---|---|
![]() | upper-body, look at viewer, 1girl, wear white dress, besides lake, smiles, Autumn Atmosphere, black eyes, black hair, (cowbody shot, realistic), daytime, f32 |
![]() | upper-body, look at viewer, 1girl, wear white dress, In the room, luxurious lighting, laser light effects, black eyes, black hair, (cowbody shot, realistic), daytime, f32 |
![]() | upper-body, look at viewer, 1girl, wear white dress, black eyes, black hair, Sitting by the edge of the grass, warm sunlight, half-body, illuminated,(cowbody shot, realistic), daytime, f32 |
2、Image2Video功能说明
a、实现原理简介
i、单图模式
- 用户会输入一张图作为封面图,该封面图会通过VAE映射到隐空间,与img2img的步骤类似,我们会对隐空间的特征进行一部分加噪。
- 为了让图像 更能动起来 并且 动的更流畅,然后我们会按照一定系数加上一个随机噪声,构成初始化的潜变量。
- 最后结合文本prompt监督,生成Image2Video的视频。
在这里我们使用了两次加噪:
- 如img2img的加噪,这个是为了让图像可以走正常的生图流程,只有在加了噪声后,模型 才有能力发生变化 与 结合prompt 进行生成;
- 按照一定系数加上一个随机噪声,这个 随机噪声 是 符合正态分布 的;这次 加噪声 是为了生成的视频更流畅。
ii、首尾图模式
- 用户会输入两张图作为封面图和尾图,该封面图和尾图会通过VAE映射到隐空间;
- 我们修改了隐向量的初始化,利用首图和尾图的隐向量 插值 构成的 [init_latent, … ,end_latent]作为初始化。从而能生成连贯的从初始图到输出图的变化视频,
b、图到视频UI
c、结果展示
图中模特为 师兄亲信。
first | end | GIF | prompt |
---|---|---|---|
![]() | ![]() | ![]() | 1girl,elegent,smiles,shininglight |
![]() | ![]() | ![]() | 1girl,elegent,smiles,from elegent to spotlight, dark to shining |
3、Video2Video功能说明
a、原理与功能
- 在视频上逐帧进行EasyPhoto的前处理,然后对视频使用(EasyPhoto选择的SD模型 + AnimateDiff + User-Lora)进行视频片段上的人脸重绘,用于生成指定ID足够相似的顺滑的人脸。
- 在重绘后的结果上,逐帧进行EasyPhoto的后处理,提升人脸的美观度和全局的和谐程度。
b、视频到视频UI
c、结果展示
图中模特为 师兄亲信。
GIF | src | link |
---|---|---|
![]() | ![]() | 原视频链接 |
![]() | ![]() | 原视频链接 |
分支安装
当前尚未与main合并,需要从分支上进行安装。
1、已安装EasyPhoto
如您已经下载并体验了EasyPhoto插件的人脸版本(main),您可进入EasyPhoto 安装目录进行分支的切换来使用(或者备份原来文件夹,然后走未安装的方案重装):
进入EasyPhoto插件所在目录
git branch -a
git fetch origin
git checkout -b feature/keyframe_video remotes/origin/feature/keyframe_video
2、未安装EasyPhoto
从WebUI 的网址下载安装。
或者手动下载 EasyPhoto feature/keyframe_video 代码文件包放置到相关文件夹。
相关文章:

AIGC专栏8——EasyPhoto 视频领域拓展-让AIGC肖像动起来
AIGC专栏8——EasyPhoto 视频领域初拓展-让AIGC肖像动起来 学习前言源码下载地址技术原理储备Video Inference 功能说明 & 效果展示1、Text2Video功能说明a、实现原理简介b、文到视频UI介绍c、结果展示 2、Image2Video功能说明a、实现原理简介i、单图模式ii、首尾图模式 b、…...

C++ RBTree 理论
目录 这个性质可以总结为 红黑树的最短最长路径 红黑树的路径范围 code 结构 搞颜色 类 插入 插入逻辑 新插入节点 思考:2. 检测新节点插入后,红黑树的性质是否造到破坏? 解决方法 变色 旋转变色 第三种情况,如果根…...

制作这种在线宣传画册,可轻松收获客户!
制作企业宣传画册,首先要了解企业制作宣传画册的需求以及展示方向,如今互联网时代,宣传画册的制作也应该要创新,而制作一本在线电子宣传画册用于线上宣传是非常有必要的。如何制作呢? 我们 可以使用FLBOOK平台在线制作…...

数据结构 | 图
最小生成树算法 Prime算法 算法思路:从已选顶点所关联的未选边中找出权重最小的边,并且生成树不存在环。 其中,已选顶点是构成最小生成树的结点,未选边是不属于生成树中的边。 例子: 第一步: 假设我们从顶…...

[文件读取]shopxo 文件读取(CNVD-2021-15822)
1.1漏洞描述 漏洞编号CNVD-2021-15822漏洞类型文件读取漏洞等级⭐⭐漏洞环境VULFOCUS攻击方式 描述: ShopXO是一套开源的企业级开源电子商务系统。 ShopXO存在任意文件读取漏洞,攻击者可利用该漏洞获取敏感信息。 1.2漏洞等级 高危 1.3影响版本 ShopXO 1.4漏洞复现…...
zookeeper应用之分布式锁
在分布式系统中多个服务需要竞争同一个资源时就需要分布式锁,这里使用zookeeper的临时顺序节点来实现分布式锁。 在节点X下创建临时顺序节点,getChildren()获取节点X的所有子节点,判断当前节点是否是第一个子节点,如果是就获取锁…...
20. 机器学习——PCA 与 LDA
机器学习面试题汇总与解析——PCA 与 LDA 本章讲解知识点 什么是数据降维PCA本专栏适合于Python已经入门的学生或人士,有一定的编程基础。 本专栏适合于算法工程师、机器学习、图像处理求职的学生或人士。 本专栏针对面试题答案进行了优化,尽量做到好记、言简意赅。这才是一…...
深度学习准召
准确率(Precision)和召回率(Recall)是两个用来评价一个模型的好坏的指标,它们有不同的意义: 准确率(Precision):准确率是在所有被模型判断为正例的样本中,有…...
AtCoder ABC154
C - Distinct or Not 签到题,注意大小写和以前的不一样 D - Dice in Line 签到题2,用个窗口即可 E - Almost Everywhere Zero 数位DP(搜索)的例题 pos表示当前搜索到的位置(开始为0,结束为n) …...
可以非常明显地感受到,一场有关直播带货的暗流正在涌动
虽然有关直播带货的争论依然还在持续,但是,我们依然无法否认今年的双十一依然是直播带货的高光时刻。无论是以淘宝、京东和拼多多为代表的传统电商平台,还是以抖音、快手为代表的新电商平台,几乎都将今年双十一的重心放在了直播带…...
C++中的四种构造函数
在C中,有几种不同类型的构造函数,基于它们的特性和用途,可以将它们分类为以下四种: 默认构造函数(Default Constructor): 如果没有为类定义任何构造函数,编译器将为其提供一个默认构造函数。这种…...
通过反射获取某个对象属性是否存在,并获取对象值
SneakyThrowspublic static void main(String[] args) {User user new User("张三", 10);// 获取指定属性名的值String propertyName "name2";Field[] fields user.getClass().getDeclaredFields();// 输出属性名Boolean flag false;for (Field field …...
【MySQL】存储过程与函数
一、存储过程 1、什么是存储过程 它是一组经过预先编译的SQL的封装它被存储在MySQL服务器上,当需要执行它时,客户端只需要向服务器发出调用命令,就可以把这一系列预先存储好的SQL语句全部执行 2、存储过程的优缺点 优点 简化操作…...
【数学】Pair of Topics—CF1324D
Pair of Topics—CF1324D 思路 很明显,需要对 a i a j > b i b j a_i a_j > b_i b_j aiaj>bibj 化简: a i − b i > b j − a j a_i - b_i > b_j - a_j ai−bi>bj−aj a i − b i > − ( a j − b j ) a_…...

Qt文档阅读笔记-Fetch More Example解析
Fetch More Example这个例子说明了如何在视图模型上添加记录。 这个例子由一个对话框组成,在Directory的输入框中,可输入路径信息。应用程序会载入路径信息的文件信息等。不需要按回车键就能搜索。 当有大量数据时,需要对视图模型进行批量增…...
QtC++与QTableView详解
介绍 QTableView 是 Qt 框架中用于显示表格数据的视图控件,它是 QAbstractItemView 类的子类。QTableView 通常与 QStandardItemModel 或者自定义的数据模型一起使用,用于展示二维表格型数据。以下是对 QTableView 的详细讲解和在 Qt 中的作用ÿ…...
HG/T 6002-2022 氟树脂粉末涂料检测
氟树脂粉末涂料是指以三氟氯乙烯-乙烯基醚、四氟乙烯-乙烯基醚等交联型氟树脂或聚偏二氟乙烯PVDF树脂为主要成膜物质,可加入颜料、填料、助剂、固化剂等制成的粉末涂料,主要用于铝型材、幕墙金属板、家电等表面的装饰和保护。 HG/T 6002-2022 氟树脂粉末…...
【java】idea可以连接但看不到database相关的files
问题 idea右侧有database工具栏,但点击没有在recent files看到数据库相关文件 问题排查 点击 help-> show log in explorer查看日志 发现显示 2023-11-13 10:28:09,694 [1244376] INFO - #c.i.c.ComponentStoreImpl - Saving appDebuggerSettings took 22…...

信驰达科技加入车联网联盟(CCC),推进数字钥匙发展与应用
CCC)的会员。 图 1 深圳信驰达正式成为车联网联盟(CCC)会员 车联网联盟(CCC)是一个跨行业组织,致力于推动智能手机与汽车连接解决方案的技术发展。CCC涵盖了全球汽车和智能手机行业的大部分企业,拥有150多家成员公司。CCC成员公司包括智能手机和汽车制造…...
p9 Eureka-搭建eureka服务
1.在user-service项目引入spring-cloud-starter-netflix-eureka-client的依赖 <dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId></depen…...

网络编程(Modbus进阶)
思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

华为云AI开发平台ModelArts
华为云ModelArts:重塑AI开发流程的“智能引擎”与“创新加速器”! 在人工智能浪潮席卷全球的2025年,企业拥抱AI的意愿空前高涨,但技术门槛高、流程复杂、资源投入巨大的现实,却让许多创新构想止步于实验室。数据科学家…...
SkyWalking 10.2.0 SWCK 配置过程
SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外,K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案,全安装在K8S群集中。 具体可参…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...
椭圆曲线密码学(ECC)
一、ECC算法概述 椭圆曲线密码学(Elliptic Curve Cryptography)是基于椭圆曲线数学理论的公钥密码系统,由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA,ECC在相同安全强度下密钥更短(256位ECC ≈ 3072位RSA…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

无法与IP建立连接,未能下载VSCode服务器
如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...

关于nvm与node.js
1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...

【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例
文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...