前言
大家可能了解过AnimateDiff开源项目,可以生成AI动图,但是时间短,质量不高。
目前有个新项目animatediff-cli-prompt-travel优化了这些问题,甚至也有能力抗衡Runway和PikaLab的AI动画效果。
目前有两种用法:
可以根据多个参考图并追加关键词描述,用生成AI视频,
也可以根据1个视频做参考, 结合ControlNet,进行视频风格转换
不同的ControlNet组合以及结合Lora和提示词,可以出不同的效果。
由于各平台针对于这个项目的教程内容很少,而且这个项目还没有SD插件,我这边自己摸索总结了相关教程,分享给大家(可用直接看上面B站视频教程)
Part1 项目简介
项目背景
这个项目是由ebsynth utility的SD插件作者基于animatediff项目技术基础做的一套工作流优化和整合的扩展项目,这个项目是独立部署,独立运行的。
作者在原本animatediff生成GIF的技术基础上进行改良处理,可以生成更长时间的内容,并且能够加入ControlNet和提示词控制,让视频更加可控。
项目优势
1)视频生成时人物一致性较高,且可控,据说动画模型后续可以自己训练。
2)视频转绘时人物和环境融入很自然。
项目要求
1)要有一定代码基础:项目目前没有UI界面,部署和运行都需要进行代码层级编辑和配置,需要至少一点点的代码基础。
2)硬件要求高:目前这个项目建议显卡的显存为12GB以上。
3)要有稳定的科学上网方式和流量,项目运行过程中需要连接外部下载资源,而且后续运行也会访问一些配置文件。
4)要有耐心,这个项目在运行过程中可能会有各种报错和问题需要耐心处理,当然我已经尽量把我遇到的一些问题找出并规避了。
项目地址:
https://github.com/s9roll7/animatediff-cli-prompt-travel
【如果你认为这个项目太负责,也可以体验animatediff项目】
AnimateDiff-SD插件地址:https://github.com/ArtVentureX/comfyui-animatediff
animatediff-ComfyUI地址:https://github.com/comfyanonymous/ComfyUI
Part2 项目配置
环境及工具准备
1)python 3.10.x (如果你有秋叶启动器自带的python也可以)
2) git客户端 (下载地址:https://git-scm.com/) 下载后按照默认配置进行下一步,一步步安装即可.
安装环境验证
安装后,ctrl+R 然后输入cmd运行,然后输入下列命令验证:
git --version 命令查看git安装情况
python --version命令查看python安装情况
如果没有返回版本号,则看下一页问题检查
检查系统变量是否正确配置
如果没有正确返回版本,请检查系统变量中path 是否设置好(python,python\Script,Git\cmd)
一般安装项目时,变量会自动配置好,如果没有,则手动找到项目对应路径,然后配置好。
1)找到系统变量配置窗口: 我的电脑->右键属性->高级系统配置->环境变量
2)编辑系统变量:下面的框系统变量->双击Path->在编辑框里点新建->将你的路径复制进去
例如我的路径如下:
E:\02-AI_Draw\01-SD-software\novelai-webui\sd-webui-aki-v4.4\python
E:\02-AI_Draw\01-SD-software\novelai-webui\sd-webui-aki-v4.4\python\Scripts
C:\Program Files\Git\cmd
项目拷贝
前置说明
由于项目拷贝配置时,会有一些问题,可以先看下面问题,然后再去进行配置。
1)可以在自己指定好的文件夹中,shift+鼠标右键,选择在powershell中运行,然后进行git clone项目。(此时需要访问外网)
2)如果项目无法用git clone创建,可以直接去Github上下载项目,并解压到目标文件夹 https://github.com/s9roll7/animatediff-cli-prompt-travel
3)执行pip install操作时报错,subprocess-exited-with-error。
可以执行 pip install --upgrade setuptools 升级setuptools 库,如果仍不行,则pip install 后追加--no-build-isolation执行
例如:python -m pip install --no-build-isolation -e .
Animatediff-cli-prompt-travel项目配置过程(Powershell中运行举例)
#拷贝项目
git clone https://github.com/s9roll7/animatediff-cli-prompt-travel.git
#进入项目文件夹
cd animatediff-cli-prompt-travel
#构建运行环境和依赖
python -m venv venv
venv\Scripts\activate.bat
python -m pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
python -m pip install -e .
python -m pip install xformers
# 如果需要视频转绘,则可以用下面命令安装依赖
python -m pip install -e .[stylize]
# 如果需要DWpose这种预处理器处理openpose,则可以用下面命令安装依赖((DWPose更能处理复杂的动作)
python -m pip install -e .[dwpose]
-----------subprocess-exited-with-error异常配置替换------
python -m pip install -e . 可替换命令 python -m pip install --no-build-isolation -e .
python -m pip install -e .[stylize] 可替换命令 python -m pip install --no-build-isolation -e .[stylize]
python -m pip install -e .[dwpose] 可替换命令 python -m pip install --no-build-isolation -e .[dwpose]
(注意!!由于文本编辑器问题,上述的--no-build-isolation 命令中 no前面有2个 -
Part3 模板文件准备
1) 下载animatediff的动画模板文件
将模板放入到项目对应motion-module目录下(无目录时自己创建)
animatediff-cli-prompt-travel-main\data\models\motion-module\
模板下载地址:https://huggingface.co/guoyww/animatediff/tree/main
(3个模板选择一个即可,可以选择mm_sd_v15_v2.ckpt或mm_sd_v14.ckpt, 不建议水印明显的mm_sd_v15)
2)SD大模型和Lora模型
找一些Stable Diffusion的大模型和Lora模型,放到项目对应SD目录下
animatediff-cli-prompt-travel-main\data\models\sd\
目前模型的路径建议在animatediff-cli-prompt-travel-main\data的子目录内,不然会提示错误
3)项目运行依赖和模型
由于项目运行过程中会自动下载各种依赖和模型
我整理了一些下载好的资料,这样可以省去你的下载过程。 这些文件需要在你部署完项目后,放到这个文件路径下 animatediff-cli-prompt-travel-main\data\models
百度网盘下载:
链接:https://pan.baidu.com/s/1fHjOwtjzjjG6EmGnEZavmg 提取码:7aai
Part4 使用方法
Animatediff-cli-prompt-travel项目有2种使用方法
1)参考图视频生成:类似Runway或Pika,即Animatediff的基础用法,根据参考图片(1张或多张)来生成视频或GIF图或视频。
2)视频风格转换:相当于视频重绘,基于某个视频,转换风格。
使用方法-json配置文件说明
由于上述两种方法都依赖于配置文件来配置,简单了解下配置文件prompt_travel.json的相关配置说明
模板引用配置
"path": 对应的SD大模型路径
"motion_module": 对应animatediff的动画算法模型
"lora_map": 对应SD的lora模型路径
其他Seed,steps,guidance_scale,clip_skip配置同SD基本配置。
Prompt配置
"head_prompt": 是通用初始正向提示词。
"prompt_map": 是可以配置不同关键帧的提示词。
"tail_prompt": 是通用补充在最后的正向提示词。
"n_prompt": 反向提示词 (最终某帧的正向提示词是:head_prompt+prompt_map+tail_prompt组成)
其他图片控制配置
"ip_adapter_map":Ip adapter的图片地址 "controlnet_map": Contorlnet的参考图的整体目录地址 "upscale_config": Tile方法尺寸放大配置
output输出格式配置
"format":输出格式配置,可以是gif/mp4/webp格式。
"fps": 则是输出帧率
使用方法1 参考图视频生成
基本工作流说明
项目配置过程(Powershell中运行举例)
(在animatediff-cli-prompt-travel项目根目录中shift+鼠标右键,选择在powershell中运行)
venv\Scripts\activate.bat
# 下列参数含义为以prompt_travel.json的配置参数,生成图片或视频,宽256 高384 总帧数128 帧率16
animatediff generate -c config/prompts/prompt_travel.json -W 256 -H 384 -L 128 -C 16
# 会在项目根目录/output目录下生成项目目录
-------------------------------------
# 如果需要生成的视频放大处理,则可以使用tile放大 (放大时可以配置强度:tile, line anime, ip2p, ref)
# 下面这个命令,可与将原本256X384尺寸的图或视频放大为512X768尺寸,斜体部分换成你的项目路径。
animatediff tile-upscale PATH_TO_TARGET_FRAME_DIRECTORY -c config/prompts/prompt_travel.json -W 512
# 方法方式2 (smoother than tile-upscale) animatediff refine PATH_TO_TARGET_FRAME_DIRECTORY -W 768
# 如果首次生成内容不满意,可以额外调整关键词和prompt后再次生成视频.
animatediff refine PATH_TO_TARGET_FRAME_DIRECTORY -c config/prompts/some_minor_changed.json
个人配置-参考图视频生成
venv\Scripts\activate.bat
#下面这个命令可以不需要,但如果你运行生成报错,则建议每次运行再输入下这个命令。
python -m pip install --no-build-isolation -e .
animatediff generate -c config/prompts/test1.json -W 256 -H 384 -L 128 -C 16
#图片放大为512尺寸 (绿色部分为之前生成的输出目录)
animatediff tile-upscale output/2023-09-22T23-38-34-sample-majicmixrealistic_v6 -c config/prompts/prompt_travel.json -W 512
使用方法2 视频风格转换
基本工作流说明
项目配置参数(Powershell中运行举例)
(在animatediff-cli-prompt-travel项目根目录中shift+鼠标右键,选择在powershell中运行)
venv\Scripts\activate.bat
#需要视频风格化,需要保证安装了[stylize]依赖,如果下述命令报错,则用python -m pip install --no-build-isolation -e .[stylize]
python -m pip install -e .[stylize]
# 通过源视频来生成配置目录(这一步默认会8fps方式生成图片,可以追加参数转为15fps: -f 15)
animatediff stylize create-config YOUR_SRC_MOVIE_FILE.mp4
# 生成测试用视频(仅跑前16帧)
animatediff stylize generate STYLYZE_DIR -L 16
# 生成测试用视频(仅跑从200帧开始的16帧)
animatediff stylize generate STYLYZE_DIR -L 16 -FO 200
# 正常生成完整视频
animatediff stylize generate STYLYZE_DIR
个人实际操作配置-视频转绘用法
venv\Scripts\activate.bat
python -m pip install --no-build-isolation -e .[stylize]
animatediff stylize create-config data\video.mp4 -f 15
#修改生成目录的json配置文件
#先测试验证,生成前15帧的视频
animatediff stylize generate stylize\carnimeanime_v10-lineart-tilecolor -L 15
#测试有问题,则修改json配置后,继续上一步操作。
#测试完成没问题,直接完整输出
animatediff stylize generate stylize\carnimeanime_v10-lineart-tilecolor
最后,有问题可以来群里交流沟通:306177490