FaceFusion 离线部署一次讲透3步搞定模型拉取与哈希校验【免费下载链接】facefusionIndustry leading face manipulation platform项目地址: https://gitcode.com/GitHub_Trending/fa/facefusion当你在内网机器上敲下python facefusion.py run等了几十秒进度条却卡着不动——FaceFusion 的模型下载自带「提供商自动切换 crc32 哈希校验」多数时候只需要把force-download一条命令用对。本文以换脸face_swapper场景为例把离线部署的路径一次走完。快速跑通如果还没拿到代码先执行git clone https://gitcode.com/GitHub_Trending/fa/facefusion然后进入项目根目录需要 Python 3.10且curl、ffmpeg、ffprobe在 PATH 里pip install -r requirements.txt python facefusion.py force-download --download-scope lite python facefusion.py run -s source.jpg -t target.mp4 -o result.mp4三步结束。force-download预拉 lite 模型集run时若当前参数还需要其他模型会走同一套下载流程自动补齐输出写到result.mp4。判定标准.assets/models/下出现.onnx且每个都带.hash文件、输出视频能正常播放就算跑通了。分场景实操下载源在代码里叫 provider内置两个拉取路径和兜底方式不一样Provider拉取路径特点github官方 Release 文件能直连时稳定快速huggingface模型仓库内置镜像兜底主站不通时自动切到镜像默认顺序是github→huggingface代码逐个 ping 通哪个用哪个普通网络不用手动干预。外网可用但不稳force-download 一次拉全完整拉取python facefusion.py force-download --download-scope full环境里 github 完全不通时把提供商钉死省掉无效的 pingpython facefusion.py force-download --download-providers huggingface --download-scope full下载底层是 curl带了 5 次重试和断点续传中途中断后重跑同一条命令接着传即可。验证是否成功日志结尾一串 validating source succeeded且.assets/models/里每个.onnx旁边都有.hash。拉全之后要搬去完全无网络的环境用的就是下面这条路。内网无外网时整搬 .assets/models 并校验哈希在联网机器先跑完python facefusion.py force-download --download-scope full。打包项目时连隐藏目录.assets一起带过去——它是最容易漏的东西。目标机器上用项目自带的校验函数验完整性python -c from pathlib import Path; from facefusion.hash_helper import validate_hash; bad[str(p) for p in Path(.assets/models).glob(*.onnx) if not validate_hash(str(p))]; print(bad or 全部通过)判定标准输出全部通过且之后run不再发起任何网络请求。要是只想先快速验证一次换脸效果不想等全部文件还有更轻的路径。磁盘紧张时用 lite 快速起步、事后补 full--download-scope默认就是lite只拉最常用的模型子集换脸开箱即用具体包含哪些以实际版本为准。之后想启用其他模型时把 scope 切成full重跑即可校验通过的文件直接跳过只补缺失的。别试all、common之类的写法——这个版本的 scope 只认lite/full传别的直接 invalid choice。判定标准force-download 快速退出.assets/models/里的文件正好是当前参数需要的子集。原理 60 秒每个用模型的模块face_detector、face_recognizer、face_swapper 等处理器都会注册一份模型清单每个模型带两条信息远程 URL 和本地路径.assets/models/模型名.onnx。force-download运行时先拉全部.hash文件再逐个处理模型本地文件大小和远端 Content-Length 对不上就用 curl 断点续传补全下完后按 facefusion/hash_helper.py 做 crc32 比对注意不是 sha256不一致就自动删掉重下。运行时 onnxruntime 只加载当前参数真正用到的那一个 onnx盘上放多少都不影响内存。设计意图就是把下载做成「幂等 可续传」无论中断多少次重跑都能收敛到正确状态。落盘结构很简单唯一的坑是.assets是隐藏目录项目根目录/ ├── facefusion.py # 入口 ├── facefusion.ini # 配置含 [download] 段 ├── facefusion/ # 核心源码包 └── .assets/models/ # 模型存放处隐藏目录搬迁必须带上 ├── inswapper_128.onnx ├── inswapper_128.onnx.hash # crc32 校验值 └── ...踩坑与绕过 ⚠️force-download 卡在第一个提供商上很久原因provider 按列表顺序挑选第一个不通会耗掉连接超时。修复python facefusion.py force-download --download-providers huggingface日志出现 validating source failed原因上次下载中断导致文件不完整crc32 对不上。修复重跑python facefusion.py force-download程序会自动删除损坏文件重新拉取。--download-scope all报 invalid choice原因scope 只支持lite/full不少旧博客的参数写法在这版本里已经失效。修复改用--download-scope full别照抄。搬完目录后模型被重新下载原因.assets是隐藏目录cp、git默认容易漏模型路径是相对源码包位置解析的目录不在就回源下载。修复rsync -a src/ dst/整目录同步。生产环境加固 定时哈希巡检挂到 cron月度跑一次输出 OK 或列出坏文件。python -c from pathlib import Path; from facefusion.hash_helper import validate_hash; bad[str(p) for p in Path(.assets/models).glob(*.onnx) if not validate_hash(str(p))]; print(bad or OK)把下载策略钉进 facefusion.ini避免命令行参数临时性漂移。[download] download_providers huggingface download_scope full离线部署包.assets和代码一起打包目标机器零网络依赖交付前先du -sh .assets/models估好体积。在线还是离线FaceFusion 模型下载的关键就是「提供商兜底 哈希校验」。参数细节可继续翻 facefusion/download.py 的源码。【免费下载链接】facefusionIndustry leading face manipulation platform项目地址: https://gitcode.com/GitHub_Trending/fa/facefusion创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?