CoDeF|无闪烁视频AI风格转换

开源免费CoDeF视频风格转换项目最新非常火爆,但是国内并没有相关的技术教程,国外也没有!该项目可以让你快速将一个视频风格转换为另一个视频,配置过程又臭又长,如嫌麻烦,建议直接下载虚拟镜像,一键启动。

CoDeF|无闪烁视频AI风格转换

开源免费CoDeF视频风格转换项目最新非常火爆,但是国内并没有相关的技术教程,国外也没有!站长本身对于Linux系统还算了解,但是对于WSL安装Ubuntu并整理成适合每个人的电脑去安装,这是一件非常费时费力的事情,期间踩坑无数。该项目可以让你快速将一个视频风格转换为另一个视频,配置过程又臭又长,如果嫌麻烦,建议直接下载虚拟机镜像,一键启动。

CoDeF|无闪烁视频AI风格转换

项目仓库

GitHub:qiuyu96/CoDeF

环境警告

本项目必须使用Linux系统安装部署,暂不支持Windows系统安装使用,但Windows内置WSL子系统功能,通过该功能可以快速部署一个支持本机GPU运算的Linux子系统。

Ubuntu属于Linux系统的一个分支,你可以理解为安卓系统中被各个手机厂商高度定制的UI系统,而Ubuntu是Linux较为成熟的一个分支。

为方便大家自行搭建或快速使用,本站提供两种方式给大家。

  • 根据教程,自行搭建Linux的Ubuntu系统,自行安装项目的相应环境依赖以及模型,需要魔法网络。
  • 根据教程,快速倒入本店所提供的WSL子系统镜像,可以免安装各种依赖,方便快捷,无网络要求。

以上两种方式任选其一即可,无需两个全部安装。

系统要求

该代码库在以下环境下进行了测试:

  • Ubuntu 20.04
  • Python 3.10
  • PyTorch 2.0.0
  • PyTorch Lightning 2.0.2
  • 1个显存在10GB以上的NVIDIA GPU和CUDA

自行部署

此部分教程需要自己掌握关于Linux的基础知识,需要魔法网络环境正常,否则困难重重。

系统安装

在安装项目之前,我们需要一个Windows的子系统,用来运行Ubuntu,如果你还未安装部署Ubuntu,可以参阅如下文章。

Conda

在你已经安装Ubuntu系统后,我们还需要安装Conda,用来管理Python多版本等功能,关于Conda的安装可参考如下文章。

CUDA

关于CUDA的安装方式一定要严格根据本站所提供的教程安装配置,否则必报错。

基础准备

为保持与本站命令的一致性,现在关闭所有你之前所有CMD窗口,重新打开一个CMD窗口,执行如下命令。

首先,在CMD中执行如下命令进入WSL子系统。

wsl

默认情况下你所进入的可能并不是用户的主目录,可能是root目录,建议将项目安装在用户的主目录下,执行如下命令进入用户主目录。

cd ~用户名

注意将用户名替换为你安装时所创建的用户名,比如本站的Ubuntu用户名openai_wiki,那么本站在执行时的完整命令为cd ~openai_wiki

上一步切换目录,而不是切换用户,为保证Conda可以正常使用,所以我们还需要切换用户为你的实际用户名

su 用户名

执行如上代码后需要输入密码,例如本站的完整命令为su openai_wiki,然后输入密码即可完成用户切换操作。

项目部署

此时我们终于可以进行项目安装啦,执行如下命令,拉取该项目的Github仓库文件,将其下载至用户主目录文件夹内。

git clone https://github.com/qiuyu96/CoDeF.git

终端中执行如下命令,强制切换至CoDeF的项目目录。

cd CoDeF

执行如下命令,创建Conda虚拟环境,方便后续Python环境的安装。

conda create -y -n CoDeF python=3.10

激活已创建的Conda环境,这样可以将我们后续所需要的所有环境依赖都安装至此环境下。

conda activate CoDeF

执行如下代码,安装PyTorch相关组件。

conda install -y pytorch==2.0.0 torchvision==0.15.0 torchaudio==2.0.0 pytorch-cuda=11.8 -c pytorch -c nvidia

执行如下代码,安装Pytorch-Lightning

pip install pytorch-lightning==2.0.2

执行如下代码,安装FFMPEG,这是处理视频的主要工具。

sudo apt-get -y install ffmpeg

执行如下命令,安装该项目的相关模块依赖库。

pip install -r requirements.txt

除以上内容之外,我们还需要安装一个名为Tiny-CUDA-NN的PyTroch扩展。

pip install git+https://github.com/NVlabs/tiny-cuda-nn/#subdirectory=bindings/torch

至此,手动安装部署Ubutun环境下的开源项目教程完成,请直接跳转至模型下载部分。

自动部署

此部分教程需要自己掌握关于Linux的基础知识,无需魔法网络环境,可以让你快速运行开源项目。

镜像下载

本站已经将该项目除模型文件的所有依赖全部打包,为什么不将模型文件一起打包?

因为开源AI项目的模型文件较大,如果将模型文件一起打包,可能整个系统镜像的文件尺寸高达几十上百个GB,而且自行部署自动部署需要的模型都是一样的,站长的电脑上传两遍模型会造成严重的带宽占用,网盘空间占用等问题。故此,模型需要大家单独下载,然后手动放置在项目内,大家可以放心,模型安装部分非常简单,和Windows是一样的。

CoDeF

提取密码 解压密码 文件大小 21.59GB 文件格式 TAR 资源价格 免费 下载次数 0

系统安装

在你已经下载完成本站所提供的系统镜向之后,你需要根据下面这篇文章,准备WSL的相关组件,了解Liunx的相关知识。

在完成上面文章内容操作之后,请关闭你当前的所有已打开的CMD窗口,然后按下键盘上的Win键+R键后,在弹出的新窗口内输入CMD并按下回车键,在CMD窗口中按顺序执行如下的每一条命令

如果你的系统镜像文件路径与教程中的一致,可以执行如下命令,自动导入Ubuntu系统镜像。

wsl --import CoDeF D:\openai.wiki\WSL D:\openai.wiki\WSL\CoDeF.tar

在CMD中执行如下命令,进入WSL子系统。

wsl -d CoDeF

默认情况下你所进入的可能并不是用户的主目录,而是root目录,执行如下命令进入用户主目录下的项目目录。

cd ~openai_wiki/CoDeF

注意:本站所提供的所有Ubuntu系统镜像,用户名用户密码root密码全部为openai_wiki

上一步是切换目录,而不是切换用户,为保证Conda可以正常使用,所以我们还需要切换用户为你的实际用户名。

su openai_wiki

执行如上代码后需要输入密码,密码输入openai_wiki即可完成用户切换操作。

激活已创建的Conda环境,否则无法运行项目。

conda activate CoDeF

素材|模型下载

素材|官方下载

官方默认自带一些素材,为了减小体积,还提供了一些额外素材,将文件下载后解压至CoDeF根目录下即可。

模型|官方下载

模型名称配置文件下载地址
beauty_0configs/beauty_0/base.yamlGoogle drive link
beauty_1configs/beauty_1/base.yamlGoogle drive link
white_smokeconfigs/white_smoke/base.yamlGoogle drive link
lemon_hitconfigs/lemon_hit/base.yamlGoogle drive link
scene_0configs/scene_0/base.yamlGoogle drive link

模型存储路径格式如下:

CoDeF
│
└─── ckpts/all_sequences
    │
    └─── NAME1
        │
        └─── EXP_NAME (base)
            │
            └─── NAME1.ckpt
    │
    └─── NAME2
        │
        └─── EXP_NAME (base)
            │
            └─── NAME2.ckpt
    |
    └─── ...

素材&模型|网盘下载

关于此项目的模型和素材,本站已为您下载并整理好。如果你不方便通过官网下载,可以使用本站所提供的网盘下载地址。

CoDeF_Model

提取密码 解压密码 文件大小 6.85GB 文件格式 ZIP 资源价格 免费 下载次数 0

WSL系统目录我们是可以直接在Windows资源管理器中查看的,在CMD中执行如下命令,这将会自动弹出WSL系统的文件目录,

start \\wsl$

这将会自动弹出Windows的资源管理器,你将会看到如下内容:

  • 如果你是通过自行安装方式部署,那么可以访问名为Ubuntu的文件夹。
    • 将你下载后的模型压缩包解压,移动至.\home\你的用户名\CoDeF目录下。
  • 如果你是通过自动安装方式导入的系统,那么可访问名为CoDeF的文件夹。
    • 将你下载后的模型压缩包解压,移动至.\home\openai_wiki\CoDeF目录下。

运行方式

在以后每次运行该项目时,只需要先进入WSL系统,切换用户,切换目录,然后激活我们所创建的Conda虚拟Python环境,最后运行启动文件即可。

运行一个CMD窗口,执行如下命令进入WSL系统。

wsl -d CoDeF

在终端中执行如下命令,强制切换至项目目录文件夹。

cd ~openai_wiki/CoDeF

上一步是切换目录,而不是切换用户,为保证Conda可以正常使用,所以我们还需要切换用户为你的实际用户名。(如果是自行部署,请将openai_wiki修改为你自己所设置的用户名)

su openai_wiki

激活已创建的Conda环境,这样才可以正常使用该项目,否则将会自动调用系统中的默认Python。

conda activate CoDeF

执行如下代码,运行推理脚本。

./scripts/test_multi.sh

自定义素材

虽然官方提供了一些素材,但是如果你想用自己的视频跑出效果,那么需要对视频进行处理。

我们使用SAM-Track来分割视频序列。一旦您获得了Mask文件,请将它们放在all_sequences/{YOUR_SEQUENCE_NAME}/{YOUR_SEQUENCE_NAME}_masks文件夹中。接下来,执行以下命令:

cd data_preprocessing
python preproc_mask.py

我们使用RAFT提取视频序列的光流。要开始,请按照此处提供的说明下载他们的预训练模型。下载后,请将模型放在data_preprocessing/RAFT/models文件夹中。之后,您可以执行以下命令:

cd data_preprocessing/RAFT
./run_raft.sh

请记住在data_preprocessing/preproc_mask.pydata_preprocessing/RAFT/run_raft.sh中都更新序列名称和根目录。

在获得文件后,请按照以下方式组织您自己的数据:

CoDeF
│
└─── all_sequences
    │
    └─── NAME1
           └─ NAME1
           └─ NAME1_masks_0 (optional)
           └─ NAME1_masks_1 (optional)
           └─ NAME1_flow (optional)
           └─ NAME1_flow_confidence (optional)
    │
    └─── NAME2
           └─ NAME2
           └─ NAME2_masks_0 (optional)
           └─ NAME2_masks_1 (optional)
           └─ NAME2_flow (optional)
           └─ NAME2_flow_confidence (optional)
    │
    └─── ...

使用教程

在完成上面的所有操作之后,我们此时已经可以正常使用该项目啦。

WSL系统目录我们是可以直接在Windows资源管理器中查看的,在CMD中执行如下命令,这将会自动弹出WSL系统的脚本目录,

start \\wsl$\CoDeF\home\openai_wiki\CoDeF\scripts

在这个文件夹中,找到名为train_multi.sh的文件,用代码编辑器打开,你将会看到如下内容。

GPUS=0

NAME=scene_0
EXP_NAME=base

ROOT_DIRECTORY="all_sequences/$NAME/$NAME"
MODEL_SAVE_PATH="ckpts/all_sequences/$NAME"
LOG_SAVE_PATH="logs/all_sequences/$NAME"

MASK_DIRECTORY="all_sequences/$NAME/${NAME}_masks_0 all_sequences/$NAME/${NAME}_masks_1"
FLOW_DIRECTORY="all_sequences/$NAME/${NAME}_flow"

python train.py --root_dir $ROOT_DIRECTORY \
                --model_save_path $MODEL_SAVE_PATH \
                --log_save_path $LOG_SAVE_PATH  \
                --mask_dir $MASK_DIRECTORY \
                --flow_dir $FLOW_DIRECTORY \
                --gpus $GPUS \
                --encode_w --annealed \
                --config configs/${NAME}/${EXP_NAME}.yaml \
                --exp_name ${EXP_NAME}

默认情况下,如果你已经正确配置模型与素材,执行该脚本即可出图,自动合成视频啦。

如果你想自定义一些素材,或者使用其它素材,那么需要在这里修改NAMEEXP_NAME的参数即可。

效果示例

总结

效果还算不错,就是配置过程繁琐,可能大家看着感觉挺简单的,但是踩坑的过程经常会一个问题卡好几天,之前有一些开源项目站长无论如何都无法在Windows中复现部署,而不得不放弃。

以后无法通过Windows安装部署的项目,都会通过WSL虚拟机的形式打包后分发给大家,如果哪里有写不明白的地方,可以在评论区提出相关问题。

此文章由OpenAI开源维基百科原创发布,如若转载请注明出处:https://openai.wiki/codef.html

(0)
上一篇 2023-08-30 01:35
下一篇 2023-09-02 12:39

相关推荐

  • 低闪烁视频风格转换|Rerender A Video

    目前最新最好用的视频风格转换技术,效果相比于其它免费开源技术来讲,已经算是顶尖的了,Rerender_A_Video对于人物、动物、场景等风格转换效果都是比较可观的。

    2023-09-28
    001.8K
  • VToonify|图片视频动漫化

    VToonify是一个较为新颖且免费开源可生成高质量艺术肖像视频的框架,使用StyleGAN的中分辨率和高分辨率层来渲染艺术肖像,并使用编码器提取的多尺度内容特征来更好地保留帧细节。

    2023-04-03
    0286.5K

回复 小艾

您的邮箱地址不会被公开。 必填项已用 * 标注

评论列表(6条)

  • Petrichor
    Petrichor 2023-08-31 17:06

    老哥好,还是不太懂,我配置完成了,用的其中一个阳历scene_0的train_multi.sh也跑通了,得到了每2000个step存一次的checkpoint,然后呢?如何才能变成视频呢?

  • HawkingEye
    HawkingEye 2023-09-03 10:34

    楼主好,我昨天Linux跑通,总结了一份简明教程,如下

    0.将源视频转换为帧序列并生成遮罩(SAM-Track+模型(groundio+sam_h+deaot)
    输入:源视频拷贝到assets目录,否则报错nonetype has atype,bert模型要联网到HF确认,有一定概率报错,可重试,在WEBUI中分割
    输出:彩色遮罩帧序列,GIF,视频(tracking_results目录)
    输出2:执行preproc_mask.py得到黑底白和白底黑遮罩(results目录)

    1.提取视频帧序列(ffmpeg))
    输入:源视频(.mp4)
    输出:源视频帧序列(%05d.png)

    2.0:训练光流提取模型(可选,默认sintel)
    输入:RAFT数据集
    输出:RAFT模型

    2.1.从帧序列提取光流(RAFT+模型)
    输入:源视频遮罩帧序列(_masks)
    输出:光流遮罩帧信息(numpy–>npy格式)

    3.训练基础模型(train.py)
    输入:源视频帧序列+光流遮罩帧信息
    输出:$EXP_NAME.ckpt(base.ckpt)

    4.重建原视频并生成规范图片(train.py)
    输入:源视频帧序列
    输出:$NAME_$EXP_NAME_raw.mp4(results目录)
    输出2:canonical_0.png

    5.对规范图片进行风格化(SD图生图+controlnet t2ia_style_clipvision)
    输入:canonical_0.png
    输出:image.png,放置到$NAME_control目录中

    6.用规范图片推理所有视频帧并合成风格视频(train.py)
    输入:源视频帧序列+规范帧
    输出:$NAME_$EXP_NAME_transformed.mp4(results目录,名称含有dual的是对比视频)
    整个过程中也就第2步提取光流信息对显卡和显存的要求最高

    • PhiltreX
      PhiltreX 2023-09-03 13:47

      @HawkingEye总结的部分非常详尽,因为站长自身能力和时间的关系,对于每个开源项目的研究也并不是特别通透,感谢补充。

    • 小艾
      小艾 2023-10-25 17:23

      @HawkingEye第三步的基础模型是一定要训练的吗?对于新的视频而言。

  • 求
    2024-06-06 16:46

    用的镜像方式
    在执行最后一步时,报下方错误,求大佬解答
    ./scripts/test_multi.sh
    Traceback (most recent call last): File “/home/openai_wiki/CoDeF/train.py”, line 19, in from models.implicit_model import TranslationField File “/home/openai_wiki/CoDeF/models/implicit_model.py”, line 4, in import tinycudann as tcnn File “/home/openai_wiki/miniconda3/envs/CoDeF/lib/python3.10/site-packages/tinycudann/__init__.py”, line 9, in from tinycudann.modules import free_temporary_memory, NetworkWithInputEncoding, Network, Encoding File “/home/openai_wiki/miniconda3/envs/CoDeF/lib/python3.10/site-packages/tinycudann/modules.py”, line 19, in raise EnvironmentError(“Unknown compute capability. Ensure PyTorch with CUDA support is installed.”) OSError: Unknown compute capability. Ensure PyTorch with CUDA support is installed.

微信