deepfacelab中文网

 找回密码
 立即注册(仅限QQ邮箱)
查看: 1026|回复: 6

【更新】在Kaggle上运行Merger

[复制链接]

1

主题

221

帖子

2082

积分

初级丹圣

Rank: 8Rank: 8

积分
2082
 楼主| 发表于 2022-4-8 16:37:37 | 显示全部楼层 |阅读模式
星级打分
  • 1
  • 2
  • 3
  • 4
  • 5
平均分:NAN  参与人数:0  我的评分:未评
本帖最后由 此昵称已存在 于 2022-4-8 22:05 编辑

前几天挂了一晚的Kaggle训练模型,一大早就打包下载下来准备在本地合成,结果是合成阶段差点把我本地磁盘给爆满,电脑都快给卡死在命令行那(没钱买硬盘...)于是我就想能不能把DFL的部分脚本也搬到Kaggle上去做,在云端全处理完,最后打包下载到本地,这样就省的大量切图文件冗余在自己电脑中占用空间。

( 这个贴子部分内容如果看不懂,请转战论坛精品贴的Kaggle使用教程:传送门 )


训练模型代码

训练模型代码


我们在Kaggle上训练模型,其实是在notebook里敲打如上代码来执行训练的命令,在本地就体现为执行bat脚本,其实原理都是一样的,只要你知道DFL训练模型的执行代码,把DFl项目部署到本地的Vscode或者其他Python编译器里也照样能跑。


image.png



但是呢,Kaggle平台有个缺点就是不能与控制台交互(也可能是我没找到方法),换句话说,Kaggle不能像在本地运行train SAEHD.bat那样可以在cmd中自由控制,所以得预先让程序知道我们想要的训练参数,并按照流程执行下去。

关于Training的方法大家可以去原教程贴学习,这里我就只说怎么去Merger了。


1. 替换掉项目里的data_dst文件夹(非必须)

准备好要合成的dst文件,文件夹里一定要包括没有切脸的视频帧,合成需要。


2. kaggle新增合成参数数据集

就像上文说的,我们要事先准备好程序运行下去的参数,为了方便使用,我建议是在kaggle项目里添加一个数据集,日后也可以根据需求而更改,如下图。

image.png



3.合成参数修改(重点)


PS:以下四个文件最好都从Kaggle上部署的DFL项目里下载,修改后再上传,本地的DFL和GitHub上的DFL版本可能不一样,会导致意料外的错误

MergerConfig.py文件位于DFL的merger文件夹下,主要是更改合成参数,随便用一个python编辑器打开此文件,并ctrl+F搜索ask_settings定位

由于考虑到篇幅过大,下面我就把文件修改前后的地方用截图的方式展示,有代码注释

修改前:

image.png


image.png


image.png

修改后:

image.png


image.png


image.png


Merger.py文件位于DFL的mainscripts文件夹下,主要更改cpu线程数,随便用一个python编辑器打开此文件,并定位到下图位置

修改前:

image.png

修改后:

image.png

PS:cpu线程数量可酌情给,大家看情况设置,我比较懒,没有去实验线程数上下限


下面是分两种方法设置,二选一即可:

main.py位于DFL的根目录下,主要是决定合成阶段是用CPU还是GPU,当然我们这里选择GPU会快很多,随便用一个python编辑器打开此文件,并定位到下图位置,找到force_gpu_idxs

修改前:

image.png

修改后:

image.png

(该方法由贴子地板楼层用户deeplovelyf提供)

nn.py位于DFL的根目录/core/leras/ 下,这里对其进行修改也是为了选择GPU,随便用一个python编辑器打开此文件,并定位到下图位置

image.png

(如果有多个GPU,可以自行修改,格式切记是    '0~9')


4. 合成参数上传

因为GPU选择有两种方法,我这里就多一步上传的代码,在notebook里新建code cell,然后输入即可,main.py和nn.py二选一即可


image.png


5.合成

如果是按第2步创建的数据集,可以直接在notebook里新建code cell,然后输入下面的代码


image.png


方法代码:

!python main.py merge --input-dir /kaggle/working/workspace/data_dst --output-dir /kaggle/working/workspace/data_dst/merged

--output-mask-dir /kaggle/working/workspace/data_dst/merged_mask --aligned-dir /kaggle/working/workspace/data_dst/aligned

--force-model-name DFD224F

--model-dir /kaggle/working/workspace/model --model SAEHD

--force-gpu-idxs 0

方法代码:

!python main.py merge --input-dir /kaggle/working/workspace/data_dst --output-dir /kaggle/working/workspace/data_dst/merged

--output-mask-dir /kaggle/working/workspace/data_dst/merged_mask --aligned-dir /kaggle/working/workspace/data_dst/aligned

--force-model-name DFD224F

--model-dir /kaggle/working/workspace/model --model SAEHD

(为了版面格式,我手动回车了)

我这里也只是个参考,如果有路径问题,自己想办法解决一下

--force-model-name后面加上模型的名称

--force-gpu-idxs后面跟上GPU的序号

顺便说下方法一和二的区别:

方法一是只修改了main.py中的process_merger部分,可以使用--force-gpu-idxs命令来强迫合成阶段所选的GPU,对于DFL其他部分没啥影响;

方法二修改的是接口内部的参数,可能会影响到其他功能的使用,大概就是有出现"Which GPU indexes to choose?"选择的bat脚本(苦笑)

所以还是建议选择方法一比较好吧。


回复

使用道具 举报

22

主题

154

帖子

932

积分

高级丹师

Rank: 5Rank: 5

积分
932
发表于 2022-4-8 17:49:37 | 显示全部楼层
还是要用gpu跑合成 kaggle的cpu只有2核 慢的可怜
main.py里改下
                      force_gpu_idxs          = [ int(x) for x in arguments.force_gpu_idxs.split(',') ] if arguments.force_gpu_idxs is not None else None,
就可以开gpu了
回复 支持 1 反对 0

使用道具 举报

22

主题

501

帖子

5821

积分

高级丹圣

Rank: 13Rank: 13Rank: 13Rank: 13

积分
5821
发表于 2022-4-8 17:08:24 | 显示全部楼层
技术贴 点个赞
回复 支持 反对

使用道具 举报

43

主题

2026

帖子

1万

积分

高级丹圣

Rank: 13Rank: 13Rank: 13Rank: 13

积分
11522
发表于 2022-4-8 17:08:55 | 显示全部楼层
感谢分享,需要学习下
回复 支持 反对

使用道具 举报

22

主题

154

帖子

932

积分

高级丹师

Rank: 5Rank: 5

积分
932
发表于 2022-4-8 17:51:18 | 显示全部楼层
deeplovelyf 发表于 2022-4-8 17:49
还是要用gpu跑合成 kaggle的cpu只有2核 慢的可怜
main.py里改下
                      force_gpu_idxs     ...

而且kaggle硬盘小的可怜 一定要改merger输出的图片格式为jpg 否则没法玩
https://www.dfldata.xyz/forum.ph ... &extra=page%3D1
回复 支持 反对

使用道具 举报

3

主题

201

帖子

1422

积分

禁止访问

积分
1422
发表于 2022-4-8 17:55:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

3

主题

175

帖子

1688

积分

初级丹圣

Rank: 8Rank: 8

积分
1688
发表于 2022-4-9 21:24:24 | 显示全部楼层
楼主厉害,我也准备整一下python了。
回复 支持 反对

使用道具 举报

QQ|Archiver|手机版|deepfacelab中文网 |网站地图

GMT+8, 2024-9-21 13:45 , Processed in 0.125311 second(s), 12 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表