ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

FaceFusion 模型下载全挂?4 步手动拉取 + CRC32 校验实操

FaceFusion 模型下载全挂?4 步手动拉取 + CRC32 校验实操 FaceFusion 模型下载全挂4 步手动拉取 CRC32 校验实操【免费下载链接】facefusionIndustry leading face manipulation platform项目地址: https://gitcode.com/GitHub_Trending/fa/facefusion先看到那个失败现场你敲下python facefusion.py headless-run还没吐第一帧日志里就飘出一行validating source failed。重跑、清缓存、再跑同一个文件反复下载、反复失败。原因通常只有两种文件只下了一半或者哈希对不上。这篇文章把 FaceFusion 的 force-download 链路拆开教你手动补拉单个模型并用项目自己的 CRC32 机制做闭环验证。把 force-download 的链路拆开看每个节点为什么存在处理器模块在create_static_model_set里声明自己依赖的模型force-download 汇总后按先哈希、后源文件的顺序处理。哈希文件是模型的身份证8 位 CRC32 值先落地才能校验。download.py里硬编码了--retry 5和--connect-timeout 5并且对比本地大小与远端 Content-Length只有本地更小才启动 curl配合--continue-at -实现断点续传。三个可直接控制的参数定义见facefusion/program.py字段取值影响--download-providersgithub huggingface默认双开/ 可只留一个每个 provider 的候选地址会逐个发 HEAD 探测首个可达者胜出huggingface 内置 hf-mirror.com 备援受限网络下更稳--download-scopelite默认/fulllite 只拉各模块默认模型子集full 拉全部可选模型--log-levelinfo默认/debug成功一行行打日志用的是 debug 级别默认 info 下你只看得见失败动手修4 步拉回可用模型步骤 1确认环境依赖齐了这一步在做什么确认 Python 与三个外部命令齐全。python --version which curl ffmpeg ffprobe预期看到什么输出Python 版本不低于 3.10core.py的pre_check硬性检查低于直接退出which对 curl、ffmpeg、ffprobe 各打出一行绝对路径。三者任一缺失force-download 都跑不起来。步骤 2整仓拉取full 范围加 debug 日志这一步在做什么用 full 范围一次性拉全模型。# scope 默认 liteproviders 默认 github huggingface # 内网环境可只留 huggingface自带镜像备援 python facefusion.py force-download --download-scope full --log-level debug预期看到什么输出每个文件一条下载进度随后按文件打印判定行。debug 级别下关键日志形如日志行含义validating hash succeeded: xxx.hash哈希文件校验通过validating source succeeded: xxx.onnx模型文件 CRC32 校验通过deleting corrupt source模型损坏文件已被程序删除需要重下全部跑完后退出码为 0任一文件校验失败会打印validating ... failed并以退出码 1 终止。步骤 3单文件补拉curl 断点续传这一步在做什么手动补拉那个反复失败的模型。先确认落盘路径和下载地址模板ls .assets/models/ grep -n https facefusion/choices.py预期看到什么输出.assets/models/下每个.onnx都有同名.hash伴随如retinaface_10g.onnx/retinaface_10g.hashgrep 打出两个 provider 的候选基础地址取其一赋给BASE_URL。然后补拉# 路径模板取自 choices.py 的 path 字段base_name 为 models-3.0.0 # --continue-at - 保留断点中断后原命令重跑即续传 curl --location --silent --retry 5 --connect-timeout 5 \ --create-dirs --continue-at - \ --output .assets/models/retinaface_10g.onnx \ ${BASE_URL}/facefusion/facefusion-assets/releases/download/models-3.0.0/retinaface_10g.onnx.hash文件用同一命令补拉只需把文件名里的.onnx换成.hash。步骤 4起主流程确认模型被消费这一步在做什么起 Web 界面确认模型可加载。python facefusion.py run预期看到什么输出界面正常打开人脸检测器下拉框有可选项处理首帧时不再触发下载进度条。用 CRC32 闭环验证结果优先用项目自带校验重跑一次 force-download。已通过校验的文件满足本地大小不小于远端会被直接跳过只重新下载失败项。python facefusion.py force-download --download-scope full echo $?输出为0表示全部通过非0表示仍有文件校验失败日志里定位到文件名后回到步骤 3。完全离线、不想再碰网络时用下面脚本独立验证.hash存的是 8 位十六进制 CRC32与hash_helper.py的create_hash同算法for f in .assets/models/*.onnx; do h${f%.onnx}.hash [ -f $h ] || { echo MISSING_HASH $f; continue; } actual$(python -c import zlib,sys;print(format(zlib.crc32(open(sys.argv[1],rb).read()),08x)) $f) [ $actual $(cat $h) ] echo PASS $f || echo FAIL $f done全行PASS即模型目录健康。出现FAIL代表文件损坏或半截重跑步骤 3 对应文件MISSING_HASH代表.hash缺失先补哈希再验。卡住时按现象速查现象force-download 直接报依赖错误退出。 最可能原因curl、ffmpeg、ffprobe 之一不在 PATH。 定位命令which curl ffmpeg ffprobe补装缺的那个。现象进度条转几秒就停随后validating source failed。 最可能原因网络中断文件只下了一半损坏文件已被程序删除。 定位命令ls -l .assets/models/看文件是否缺失或大小异常再走步骤 3 续传。现象整体长时间无响应随后超时退出。 最可能原因首选 provider 不可达备援也被拦。 定位命令python facefusion.py force-download --download-providers huggingface --log-level debug强制走单一 provider。现象某个.hash反复validating hash failed。 最可能原因哈希文件本身拉坏了内容已非 8 位 CRC32。 定位命令cat .assets/models/retinaface_10g.hash核对内容异常则按步骤 3 重拉该哈希。收尾对照勾一遍curl、ffmpeg、ffprobe 全部在 PATHPython 不低于 3.10force-download --download-scope full退出码为 0日志无validating ... failed.assets/models/里每个.onnx都有同名.hash离线 CRC32 脚本对全部文件输出 PASSrun或headless-run能加载模型完成处理不再触发下载想精确控制只拉某个处理器需要的模型去对应模块查它的create_static_model_set例如grep -n onnx facefusion/processors/modules/face_swapper/__init__.py。【免费下载链接】facefusionIndustry leading face manipulation platform项目地址: https://gitcode.com/GitHub_Trending/fa/facefusion创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表