AnimateDiff搭配Stable diffution制作AI视频

话不多说,先看视频 

1. AnimateDiff的技术原理

AnimateDiff可以搭配扩散模型算法(Stable Diffusion)来生成高质量的动态视频,其中动态模型(Motion Models)用来实时跟踪人物的动作以及画面的改变。我们使用 AnimaeDiff 实现时间一致性,使用ControlNet复制参考视频的运动,然后改变不同时间点的提示prompt,打造多种场景再组合成视频。它克服了 AnimateDiff 运动不佳的弱点,并保持了较高的帧间一致性。工作流程文件执行的操作为1.将视频作为输入。2.将OpenPose预处理器应用于视频帧以提取人体姿势。3.将AnimateDiff运动模型和ControlNet Openpose 控制模型应用于每个帧。4.支持提示行进,为不同的帧指定不同的提示。5.保存最终视频。

2.软件安装

我们使用ComfyUI来搭配AnimateDiff做视频转视频的工作流,软件地址如下:ComfyUI:https://github.com/comfyanonymous/ComfyUIAnimateDiff:https://github.com/guoyww/AnimateDiff

3.ComfyUI AnimateDiff视频转视频工作流

步骤1:加载工作流程文件。直接把下面这张图拖入ComfyUI界面,它会自动载入工作流,或者下载这个工作流的JSON文件,在ComfyUI里面载入文件信息。

cd9fa8d852276e35d12a672f8adc05c8.jpeg

步骤 2:安装缺少的节点第一次载入这个工作流之后,ComfyUI可能会提示有node组件未被发现,我们需要通过ComfyUI manager安装,它会自动找到缺失的组件并下载安装(!!需要网络通畅)。

38ba7388ed0e747ce8902cd78fee02af.jpeg

efbb682a600eff97e1b39ae3006e9acd.jpeg

重新启动 ComfyUI 并单击队列提示。如果不再看到 ComfyUI 提示缺少节点,则可以继续执行下一步。步骤 3:下载checkpoint 模型下载模型DreamShaper 8。将safetensors文件放入文件夹ComfyUI > models > checkpoints中。刷新浏览器标签页。 找到节点“Load Checkpoint”。

f2bf9f1b6080c245dbd19b810b1473f9.jpeg

点击ckpt_name下拉菜单,选择dreamshaper_8模型。当然,你也可以使用不同的模型。

步骤4:选择 VAE。下载Stability AI发布的VAE 。将文件放入文件夹ComfyUI > models > vae中。刷新浏览器页面。在“加载 VAE”节点中,选择刚刚下载的文件。

49a0b3cff2d6d9bebfaefd21fda0df47.jpeg

步骤5:下载AnimateDiff动态特征模型下载mm_sd_v15_v2.ckpt,放到ComfyUI > custom_nodes > ComfyUI-AnimateDiff-Evolved > models文件夹。刷新页面在AnimateDiff Loader里,可以选择我们需要的动态特征模型

9632ebc7bc175525df4bb585cfbea860.jpeg

步骤6:选择Openpose ControlNet模型下载openpose ControlNet 模型。将文件放入ComfyUI > models > controlnet中。刷新 ComfyUI 页面。在加载 ControlNet 模型(高级)中,在下拉菜单中选择control_v11p_sd15_openpose.pth 。

1fdeb2a62e991fda9f8df0e85eccac1a.jpeg

步骤7:在加载视频(上传)节点中,单击视频并选择刚刚下载的视频。

f7ed2bcb5f20cf502087310d97735ba9.jpeg

步骤8:生成视频可以点击Queue Prompt开始生成视频了视频生成的大部分时间都集中在KSampler这个组件里,在生成过程中上面有一个进度条

4. 调优

4.1生成不同的视频。更改种子值以生成不同的视频。

76c0b3ac89e556269b3dfc1942251606.jpeg

4.2 更改提示前缀和提示行即可更改主题和背景。

bcd3cb5093b3382b66ffb03e7f4b1f65.jpeg

6333b486206f27e65a19ba449c1036e6.jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/190341.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于和声算法优化概率神经网络PNN的分类预测 - 附代码

基于和声算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于和声算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于和声优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要:针对PNN神经网络的光滑…

【开源】基于JAVA的快递管理系统

项目编号: S 007 ,文末获取源码。 \color{red}{项目编号:S007,文末获取源码。} 项目编号:S007,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容2.1 数据中心模块2.2 快递类型模块2.3 快…

CTFhub-RCE-综合过滤练习

%0a、%0d、%0D%0A burp 抓包 修改请求为 POST /?127.0.0.1%0als 列出当前目录 返回包 http://challenge-135e46015a30567b.sandbox.ctfhub.com:10800/?ip127.0.0.1%0acd%09*here%0ac%27a%27t%09* _311632412323588.php

【自用总结】正项级数审敛法的总结

注:收敛半径的求法就是lim n->∞ |an1/an| ρ,而ρ1/R,最基本的不能忘。 比较判别法:从某项起,该级数后面的项均小于等于另一级数,则敛散性可进行一定的比较 可以看到,比较判别法实际上比较…

调整COSWriter解决X-easypdf / PDFBOX生成大量数据时OOM问题

背景 业务需要生成一个15W数据左右的PDF交易报表。希望我们写在一个文件里&#xff0c;不拆分成多个PDF文件。 使用的技术组件 <dependency><groupId>wiki.xsx</groupId><artifactId>x-easypdf-pdfbox</artifactId><version>2.11.10<…

Linux通过端口号找到对应的服务及其安装位置

Linux服务器中&#xff0c;通过端口号找到对应的服务及其安装位置&#xff0c;需要两步操作&#xff0c;如下&#xff1a; 第一步&#xff1a;根据端口号&#xff0c;确定对应的进程号&#xff08;以redis服务为例&#xff09; netstat -antup|grep 6379第二步&#xff1a;通…

Zabbix5.0部署

环境 主机名 IP 类型server01192.168.134.165zabbix-serverserver02 192.168.134.166zabbix-agent 官方部署文档 1 .安装yum源 [rootserver01 ~]# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-rel…

cp: can‘t stat ‘/usr/share/zoneinfo/Asia/Shanghai‘: No such file or directory

目录 问题描述问题分析解决方案容器时区验证 问题描述 使用下面的 Dockerfile 为 youlai-boot 项目制作镜像设置容器时区报错。 # 基础镜像 FROM openjdk:17-jdk-alpine # 时区修改 RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \&& echo Asia/Sha…

JVM:字节码文件,类的生命周期,类加载器

JVM&#xff1a;字节码文件&#xff0c;类的生命周期&#xff0c;类加载器 为什么要学这门课程 1. 初识JVM1.1. 什么是JVM1.2. JVM的功能1.3. 常见的JVM 2. 字节码文件详解2.1. Java虚拟机的组成2.2. 字节码文件的组成2.2.1. 以正确的姿势打开文…

需求管理>需求的变更流程

1.需求的变更流程 一个大型软件系统的需求总是有变化的。为了降低项目开发的风险&#xff0c;需要一个好的变更控制过程。如下图所示为需求变更管理过程。 在需求管理过程中需求的变更是受严格管控的&#xff0c;其流程为&#xff1a; 1、问题分析和变更描述。这是识别和分析需…

进阶理解:leetcode115.不同的子序列(细节深度)

这道题是困难题&#xff0c;本章是针对于动态规划解决&#xff0c;对于思路进行一个全面透彻的讲解&#xff0c;但是并不是对于基础讲解思路&#xff0c;而是渗透到递推式和dp填数的详解&#xff0c;如果有读者不清楚基本的解题思路&#xff0c;请看我的这篇文章算法训练营DAY5…

【LeetCode刷题-滑动窗口】--992.K个不同整数的子数组

992.K个不同整数的子数组 思路&#xff1a; class Solution {public int subarraysWithKDistinct(int[] nums, int k) {return atMostKDistinct(nums,k) - atMostKDistinct(nums,k-1);}//最多包含K个不同整数的子区间个数private int atMostKDistinct(int[] a,int k){int len …