ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

FaceFusion 换脸部署指南:3 种网络场景搞定模型下载与离线部署

FaceFusion 换脸部署指南:3 种网络场景搞定模型下载与离线部署

FaceFusion 换脸部署指南:3 种网络场景搞定模型下载与离线部署

【免费下载链接】facefusionIndustry leading face manipulation platform项目地址: https://gitcode.com/GitHub_Trending/fa/facefusion

首次运行python facefusion.py run时,FaceFusion 这款换脸与面部处理平台的终端卡在模型文件下载上,或者你要把它部署到完全不能联外网的内网机器上——问题其实都出在同一处:模型下载与离线部署。本文基于 FaceFusion 3.8.0 的真实命令行,带你走一遍完整流程:先判断自己属于哪种网络场景,再执行对应的下载方法,最后用一张症状速查表和一份部署前检查清单收尾。

先判断你的网络场景,再动手

结论:别急着反复重下,先判定你处于哪种场景。模型源有两个 provider:github与huggingface,其中 huggingface 源在官方不可达时会自动回退到 hf-mirror 镜像,定义见 facefusion/choices.py。

场景判断标准走哪条路
外网稳定force-download 首个文件速度平稳直接 run 自动下载,或提前 force-download
时断时续、速度差下载经常超时、进度条长时间不动依赖断点续传 + 切换 provider + 走代理
完全离线机器访问不了任何外网联网机预下载,整包拷走.assets/

判断最快的方式是直接跑一次最小范围下载:

# 用 lite 范围(体量最小)试下载,看首个文件的速度判断网络是否可用 python facefusion.py force-download --download-scope lite

所有模型都落在.assets/models/目录,每个.onnx模型配一个同名.hash校验文件;facefusion/hash_helper.py 会对文件内容计算 CRC32 并与 hash 文件比对,这是后文一切校验动作的依据。

网络稳定时:自动下载或提前预下载

结论:网络稳就不用折腾,程序在运行前会自动检查并补齐缺失文件。

第一次部署时先装依赖,然后直接跑:

# 获取源码 git clone https://gitcode.com/GitHub_Trending/fa/facefusion # 安装 Python 依赖(conda 环境已激活时可去掉 --skip-conda) python install.py default --skip-conda # 首次运行:自动下载缺失的模型并打开 web 界面 python facefusion.py run

我的建议是网络好的时候仍提前跑一次force-download,把"下载 + 校验"在任务开始前做完,避免跑到一半才暴露网络问题:

# 预下载全部模型(full 为全集;默认值是 lite 子集) python facefusion.py force-download --download-scope full # 查看模型目录的实际占用与文件列表 du -sh .assets/models && ls .assets/models/ | head

也可以把这两项写进 facefusion.ini,之后所有命令都会沿用,不用每次传参:

[download] download_providers = github huggingface download_scope = full

下载反复失败时:换源、续传,别从头来

结论:反复失败的下载,大多数靠切换 provider 加上内置续传就能收尾,不需要推倒重来。

先记住三件事:

  1. 续传是内置的。底层下载命令带--continue-at - --retry 5(见 facefusion/curl_builder.py),中断的半成品会自动从断点继续,不用手动删。
  2. 损坏文件会被自动清理。哈希校验失败时程序会打印deleting_corrupt_source并直接删掉坏文件,下次运行自动重新下载,别急着整体重下。
  3. provider 可以显式指定。默认顺序是先 github 后 huggingface,第一个不可达时手动切换:
# 指定走 huggingface 源下载(官方不可达时会自动回退到 hf-mirror) python facefusion.py force-download --download-providers huggingface --download-scope full # 或者启用代理 export https_proxy=http://127.0.0.1:7890 # 代理生效后重新执行强制下载 python facefusion.py force-download

下载完成后抽查单个文件,确认校验通过:

# 校验单个模型文件,True 正常、False 损坏(文件名按实际替换) python -c "from facefusion.hash_helper import validate_hash; print(validate_hash('.assets/models/yoloface_8n.onnx'))"

机器完全不能联网时:手动部署模型文件

结论:离线机唯一稳妥的办法是把完整的.assets/目录搬过去——程序只在"文件缺失或哈希不匹配"时才尝试联网下载,文件齐了就不碰网络。

三步走:

# 第 1 步:在联网机上下载全集 python facefusion.py force-download --download-scope full # 第 2 步:把模型目录打包 tar -czf facefusion-assets.tar.gz .assets/ # 第 3 步:传到离线机后,解压到 facefusion.py 同级目录 tar -xzf facefusion-assets.tar.gz

之后在离线机直接python facefusion.py run即可。如果只需要少数模型(比如只用 face_swapper),源机上不必下 full,用 lite 即可,但要人工挑文件时记住一条原则:

⚠️.onnx和它对应的.hash必须成对、文件名严格一致。校验逻辑按模型文件名去找 hash 文件,缺一个就会被判为"无效",程序会尝试联网补下——这在离线机上就是直接失败。

症状速查表

症状可能原因该做什么
downloading 进度条卡住、速度极低源站连通性差或限速换--download-providers huggingface,或配代理后重跑
日志出现validating_hash_failed下载中途文件损坏不用手动处理,程序已自动删坏文件,重跑 force-download
同一文件被反复下载对应.hash缺失或文件名对不上检查.assets/models/中 onnx 与 hash 是否成对,再重跑
磁盘写满full 范围模型合计数 GB改用--download-scope lite,用du -sh .assets查看实际占用
这台机器不行、另一台正常网络策略或代理差异先用force-download --download-scope lite单文件验证连通性
运行时报 onnxruntime 相关错误依赖未安装python install.py default --skip-conda

部署前检查清单

交给生产环境或内网部署前,按顺序过完这 5 项:

  • 依赖已装:python install.py default --skip-conda(conda 环境可去掉--skip-conda)
  • force-download --download-scope full完整跑完、退出码为 0
  • .assets/models/下模型文件与.hash校验文件一一对应,无落单文件
  • du -sh .assets确认目标机磁盘剩余空间足够(全集模型合计数 GB)
  • 用最小任务试跑一次:python facefusion.py run -s source.jpg -t target.mp4 -o output.mp4

清单全绿,这套部署就可以放心带到任何网络环境了。

【免费下载链接】facefusionIndustry leading face manipulation platform项目地址: https://gitcode.com/GitHub_Trending/fa/facefusion

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

返回列表