comfyUI + animateDiff video2video AI视频生成工作流介绍及实例

原文:comfyUI + animateDiff video2video AI视频生成工作流介绍及实例 - 知乎

目录

收起

前言

准备工作环境

comfyUI相关及介绍

comfyUI安装

生成第一个视频

进一步生成更多视频

注意事项

保存为不同的格式

视频宽高设置

种子值设置

提示词与负向提示词

节点变换提示词

controlnet权重控制

总结

参考

前言

最近一段时间,使用stable diffusion + animateDiff生成视频非常热门,但普通用户想要在自己电脑上成功生成一段视频并不容易。本文将介绍如何加载comfyUI + animateDiff的工作流,并生成相关的视频。在本文中,主要有以下几个部分:

  • 设置视频工作环境
  • 生成第一个视频
  • 进一步生成更多视频
  • 注意事项介绍

准备工作环境

comfyUI相关及介绍

comfyUI是一个节点式和流式的灵活的自定义工作流的AI画图软件。使用comfyUI可以方便地进行文生图、图生图、图放大、inpaint 修图、加载controlnet控制图生成等等,同时也可以加载如本文下面提供的工作流来生成视频。 相较于其他AI绘图软件,在视频生成时,comfyUI有更高的效率和更好的效果,因此,视频生成使用comfyUI是一个不错选择。

comfyUI安装

具体可参考comfyUI 页面介绍,安装python环境后一步步安装相关依赖,最终完成comfyUI的安装。相关过程需要对python语言及pip安装有一定的了解。具体安装步骤本文不再详细介绍,如有需要您可以自行搜索解决。如果您的电脑上安装好了comfyUI,那么可以进入下一步加载工作流及视频,开始生成。

如果您是普通用户,不想自己一步步的安装python环境及相关软件,那么您可以从tensorbee 官网下载安装tensorbee, 也可直接点击 下载链接 进行下载。tensorbee安装好后,在tensorbee 中点击下载它的 AnimateComfy, tensorbee将会为您配置好comfyUI的工作环境,和本文的使用的工作流,您只需要点击生成,即可生成第一个视频。

生成第一个视频

第一个待生成视频的原始视频为:

00:02

我们的目标是让AI学习该视频中的手势动作,生成一个新的视频。

为此,我们需要使用以下工作流

comfyUI animatediff vid2vid工作流

注意:如果您是tensorbee用户,只需要点击右侧的 Queue Prompt开始生成即可。可跳过这一节的加载工作流等内容。

您可以下载以下图片,然后使用comfyUI右侧的load按钮加载该图片,加载上面的工作流。

含工作流的图片

加载成功后。使用右侧的manager安装工作流对应缺失的节点并多次重启,使工作流能正常加载。

非tensorbee的用户,请自行下载工作流中相关的模型:

aniverse 模型

animatediff 1.5模型

lcm_sd1.5_lora: latent-consistency/lcm-lora-sdv1-5 放到loras目录

将以上模型及lora放到comfyUI对应的目录,即可开始生成第一个视频。

工作流中其他controlnet相关的模型,comfyUI应该可以自行下载。

在3070ti的机器上,大约3分钟后,就能够完成生成。生成的视频如下:

00:02

进一步生成更多视频

由于该工作流使用了最新的清华出品的Latent Consistency Models技术,采样环节只需六步即可生成对应的视频,同样两秒左右的视频,使用20步采样,在3070ti的机器上,原来需要8分钟,使用了LCM lora后仅需要3分钟,如果重复生成,则需要的时间更短。因此,使用该工作流,可以尝试制作长视频。

由于视频加载器目前设置帧数最大1200,如果每秒12帧,则最长可生成100秒的视频,博主使用以下88秒的视频进行测试。

01:24

最终生成以下视频:

01:28

在3070ti的机器上,用时1小时,相对于其他的方式。生成视频的速度还是相当快的。

注意事项

保存为不同的格式

在video combine组件的格式设置区,可修改视频的输出格式,当前默认为mp4,您可以修改为gif、webp等便于您分享。

视频格式修改

视频宽高设置

在左上角的输入区,您需要按原始视频的比例设置视频的宽度和高度。注意,最好其中的一个数值保持为512,改变另一个数值,使生成的视频与原始视频的比例一致。

宽高设置

种子值设置

目前工作流的种子值设置为固定,如果您需要多次尝试更好的效果,可将种子值为为随机。

种子值设置

提示词与负向提示词

您可以提示词区调整提示词及负向提示词,注意提示词最后最好加上一个逗号,以便与下面的节点变换提示词控制更好的组合。

提示词设置

节点变换提示词

在此输入框中,可设置开始帧数及对应的场景。比如下面的分别设置了0和16帧时开始使用不同的场景。

节点变换控制

注意,上面的输入框中必须使用英文的引号、冒号及逗号。同时,最重要的是,最后一行不能有逗号,其他的行必须要有逗号。

controlnet权重控制

当前工作流中,controlnet的权限设置为0.5,该值最好设置在0.3~0.6之间,不要太大,否则会影响视频的生成效果。

总结

此工作流主要的流程是提取原始视频的人体关节图,以控制AI生成视频中对应的动作。视频中的其他内容由提示词控制生成。

因此,您如果旁通上面的controlNet节点,该工作流就自然变成一个文生视频的工作流。

参考

How does AnimateDiff Prompt Travel work?

latent-consistency-model

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

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

相关文章

计算机毕业设计------企业ERP报销管理系统、

项目介绍 本项目分为前台和后台,用户有员工和管理员 员工主要功能有注册登录、查看公告、申请报销、个人信息修改等; 管理员主要功能登录登出、个人中心管理、员工管理、部门管理、报销种类管理、报销信息管理、系统管理等。 环境需要 1.运行环境&…

Rust学习:HelloWorld

Rust学习:HelloWorld HelloWorldRust语言简介主要特点先看程序分析程序 HelloWorld Rust语言简介 Rust是一种系统编程语言,旨在提供内存安全、并发性和性能。它由Mozilla Research开发,旨在解决C和C语言中的一些关键问题,特别是…

ESP8266 TCP/串口透传

简介 先在PC上做测试, 使用串口软件对ESP8266 模块进行设置, 使用网络助手软件与串口软件进行自由收发设置 ATRST ## 复位 ATCWMODE_DEF1 ## 设置为Station模式 ATCWJAP_DEF“路由器wifi名称”,“路由器wifi密码” ## 设置ESP连接的路由器名称密码 ATCIPSTART“TCP”,“192.1…

防止头文件重复包含

1. 使用#ifndef 这种方式是可跨平台的 #ifndef _TESTLIB1_ /*这种是跨平台的*/ #define _TESTLIB1_int sum(int a, int b); int sub(int a, int b);#endif // !TESTLIB12.使用#pragma once 使用之后,表示该文件只会被编译一次,但是只能在vs和vc等IDE使用。不具备跨平台。 注意:…

系统架构设计师教程(九)软件可靠性基础知识

软件可靠性基础知识 9.1 软件可靠性基本概念9.1.1 软件可靠性定义9.1.2 软件可靠性的定量描述9.1.3 可靠性目标9.1.4 可靠性测试的意义9.1.5 广义的可靠性测试与狭义的可靠性测试 9.2 软件可靠性建模9.2.1 影响软件可靠性的因素9.2.2 软件可靠性的建模方法9.2.3 软件的可靠性模…

15个热门的开源数据可视化项目

数据可视化(即 BI仪表盘)是图形表示的数据。它涉及产生将表示的数据之间的关系传达给图像查看者的图像。这种通信是通过在可视化过程中使用图形标记和数据值之间的系统映射来实现的。该映射建立了如何在视觉上表示数据值,确定图形标记的属性(例如大小或颜色)如何以及在多大程…

Appium安装及配置

一、前置说明 Appium 是一个用于自动化移动应用程序的开源测试框架,它支持 Android 和 iOS,同时支持使用多种编程语言(如 Java、Python、JavaScript 等)进行测试脚本的编写。 二、操作步骤 1. 安装Node.js Appium Server 由 n…

前端学习——指令

vue作为前端框架,为了简化或实现一些特定功能,提供了很多指令,那什么是指令呢? 所谓的指令就是能够完成特定功能的一些vue语法,比如属性绑定指令v-bind,事件绑定指令v-on,循环指令v-for等。在v…

AI中的强化学习是怎么做的呢?

1. 什么是强化学习 其他许多机器学习算法中学习器都是学得怎样做,而强化学习(Reinforcement Learning, RL)是在尝试的过程中学习到在特定的情境下选择哪种行动可以得到最大的回报。在很多场景中,当前的行动不仅会影响当前的rewar…

软文营销的重要性,媒介盒子为你解答

信息茧房环立且用户注意力稀缺的时代下,品牌方唯有在内容上精耕细作才能吸引用户。软文营销能够帮助公司吸引流量,建立与消费者的信任联系,同时增加转化并产生更多的业务。接下来媒介盒子就和大家聊聊:软文营销的重要性。 一、 可…

BDD - Python Behave 入门

BDD - Python Behave 入门 Behave 是什么Behave 的主要特点和组成部分Behave 实践安装 BehaveBehave 项目目录结构创建项目创建 Feature 文件创建步骤定义文件 执行用例执行全部用例执行部分用例 生成报告生成 Json report生成 HTML 报告生成 Junit report生成 Cucumber report…

老师的责任和义务

作为一名老师,我们的责任和义务是重大的。在教育领域,我们扮演着至关重要的角色,肩负着培养下一代人才的重任。下面,我将以知乎的口吻,从几个方面谈谈老师的责任和义务。 确保学生获得高质量的教育。这包括制定合理的教…

广州华锐互动:船舶安全事故3D虚拟还原系统模拟海上事故发生,帮助员工提高安全意识

随着科技的不断发展,人们对于安全问题的关注度越来越高。在船舶行业中,由于船舶的特殊性和复杂性,船舶事故的发生往往会造成严重的人员伤亡和财产损失。为此,船舶安全事故3D虚拟还原系统应运而生,为船舶安全管理和培训…

GPTs | Actions应用案例

上篇文章说道,如何使用创建的GPTs通过API接口去获取外部的一些信息,然后把获取的外部信息返回给ChatGPT让它加工出来,回答你的问题,今天我们就来做一个通俗易懂的小案例,让大家来初步了解一下它的使用法! …

其实,BI数据分析远比你想象的简单

BI数据分析远比你想象中的简单。以前的数据分析要IT取数开发报表,现在的BI数据分析,业务人自己就能在平台上精准取数并开发报表,甚至奥威BI大数据分析工具还能提供标准化BI方案,0开发,开箱即得百张BI报表,完…

Go语言基础:深入理解结构体

Go语言基础:深入理解结构体 引言:Go语言与结构体的重要性结构体的定义与声明结构体与方法结构体的嵌入与匿名字段结构体的继承与多态性结构体与性能优化结论:结构体在Go中的应用场景 引言:Go语言与结构体的重要性 在当今迅速发展…

FreeRTOS之任务状态查询

1、相关API函数的使用 uxTaskPriorityGet(Task1Task_Handler);//传入task1的任务句柄,获取任务优先级 vTaskPrioritySet(Task1Task_Handler,30);//改变任务优先级 task_num uxTaskGetNumberOfTasks();//获取任务数量 #include "sys.h" #include "delay.h"…

mysql SQL执行超时问题

show variables like max_execution_time 使用这个命令查看了,没有设置sql执行超时时间,那么大概率问题就出在阿里的Druid数据库连接池出了问题 尝试着socketTimeout由60000毫秒改成10000毫秒,果然执行了十几秒就超时报错了 socketTime…

BWS2000倾角传感器c++测试代码_时间延迟与时间同步问题【3】

详见昨天做的测试代码,代码网址:BWS2000倾角传感器c测试代码【2】-CSDN博客文章浏览阅读268次,点赞7次,收藏8次。倾角传感器测试与编写思路https://blog.csdn.net/m0_47489229/article/details/135128748 问题一:新的…

NVIDIA NCCL 源码学习(十二)- double binary tree

上节我们以ring allreduce为例看到了集合通信的过程,但是随着训练任务中使用的gpu个数的扩展,ring allreduce的延迟会线性增长,为了解决这个问题,NCCL引入了tree算法,即double binary tree。 double binary tree 朴素…