ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

FaceFusion 离线部署:内网手动放模型完整清单

2026/10/3 8:36:08 拓冰建站 浏览量
FaceFusion 离线部署:内网手动放模型完整清单 FaceFusion 离线部署内网手动放模型完整清单【免费下载链接】facefusionIndustry leading face manipulation platform项目地址: https://gitcode.com/GitHub_Trending/fa/facefusion内网机器跑 FaceFusion进度条卡在模型下载上动不了不用和防火墙死磕这个项目的所有模型都平铺在根目录的.assets/models/下把.onnx文件和同名.hash校验文件放对位置断网也能跑。本文给出手动放置模型的目录结构、文件清单与 CRC32 校验脚本适合内网部署、模型下载失败后手动补救两种场景。结论离线部署只需放对一批配对文件离线部署的本质是一句话程序启动时会逐一核对本地文件核对通过就完全不碰网络。你要做的只有两件事把模型文件.onnx和配对的.hash校验文件放进.assets/models/确认每个文件的 CRC32 值与.hash里记录的 8 位字符串一致。两件事都满足后即使机器完全断网人脸交换、增强、年龄修改等功能的模型加载照常进行。一分钟看懂 FaceFusion 的 CRC32 哈希校验CRC32 是一种校验和算法把整个文件的字节流压缩成 8 位十六进制串任何一个字节变化结果都会跟着变。FaceFusion 用它做完整性把关实现在 hash_helper.pycreate_hash用zlib.crc32计算文件内容格式化成 8 位十六进制字符串validate_hash读取同目录下同名的.hash文本文件与刚算出的值做精确比较.hash文件缺失时直接判定失败。下载侧逻辑在 download.pyconditional_download_hashes先把各.hash文件拉齐conditional_download_sources再逐个校验.onnx。校验不通过的文件会被主动删除日志出现 deleting corrupt source后重新下载所以缓存里不会留着半坏文件。底层用 curl 拉取5 秒超时、最多重试 5 次——这套重试在内网环境下救不了场所以才需要手动放置模型。下载前核对模型文件清单与版本批次模型按版本批次组织代码里的 base_name 就是批次名例如models-3.0.0、models-3.4.0。每个功能模块引用哪一批次的哪个文件源码写得明明白白face_recognizer.py 中resolve_download_url(models-3.0.0, arcface_w600k_r50.hash)一行就交代了文件归属和落地路径。想拿全量清单在仓库里全局搜resolve_download_url即可每个模块要用的文件都会列出来。下载源有两家github 与 huggingface优先顺序由 facefusion.ini 的[download]段download_providers配置download_scope则控制下载范围。下面是核心功能对应的模型清单版本批次模型文件体积约对应功能models-3.0.0arcface_w600k_r50.onnx92 MB人脸识别身份特征models-3.0.0scrfd_2.5g.onnx2.5 MB人脸检测models-3.0.0bisenet_resnet_34.onnx15 MB人脸解析 / 区域分割models-3.1.0xseg_1.onnx9.5 MB人脸遮挡检测models-3.3.0nsfw_1.onnx45 MB内容安全分析models-3.4.0yunet_2023_mar.onnx1.8 MB人脸检测轻量每行都要配一个同名.hash如arcface_w600k_r50.hash6 个功能点共 12 个文件。还要用人脸交换的话从 models-3.0.0 批次补一份inswapper_128.onnx及配对.hash。 手动放置模型的正确目录结构目录结构只有一层.assets/models/位于项目根目录、与facefusion.py同级源码中统一写作相对路径../.assets/models/。所有批次的文件平铺在这一层不按功能分子目录——放错层级是校验失败的头号原因。在联网机器上按批次取回文件后放进目标目录# 1. 在项目根目录facefusion.py 同级创建模型目录 mkdir -p .assets/models # 2. 成对文件放入 models/例如人脸识别的 arcface # arcface_w600k_r50.onnx 与 arcface_w600k_r50.hash # 3. 其余批次models-3.1.0 ~ models-3.4.0文件同样平铺于此放置后的目标结构两个硬性细节文件名必须与清单逐字符一致含点和数字.hash内容是单独一行的 8 位十六进制不带多余换行。下载后用一条脚本跑通 CRC32 哈希校验.hash文件本质是一行文本不联网也能完成同样的核对——对每个.onnx重算 CRC32 再对比import pathlib import zlib root pathlib.Path(.assets/models) for onnx in root.glob(*.onnx): hash_file onnx.with_name(onnx.name[:-5] .hash) if not hash_file.exists(): print(onnx.name, 缺少配对 .hash) continue expected hash_file.read_text().strip() actual format(zlib.crc32(onnx.read_bytes()), 08x) print(onnx.name, 通过 if expected actual else 不通过)输出全部通过后.assets目录就是一份可长期复用的离线模型仓库整体拷到任何同版本内网机器上都能直接加载。 哈希校验失败的常见原因校验不通过通常不是玄学对照这 4 类原因排查.hash缺失或放错目录validate_hash找不到配对文件时直接返回 False程序会当作文件不存在去重新下载内网环境下就是报错卡死.hash带多余换行程序对.hash内容做精确比较、不做 strip用文本模式另存时多出的换行符会让校验必挂。传输时用二进制模式或确认文件恰好 8 个字符批次混用models-3.0.0 的位置不能拿 models-3.1.0 的文件顶替哈希不同、接口也可能不兼容批次号必须与源码引用一致传输截断断点不完整的.onnx字节数对不上重新传该文件即可不必整库重下。✅ 上线前检查清单.assets/models/与facefusion.py同级所有.onnx、.hash平铺其中每个.onnx都有同名.hash.hash为 8 位十六进制、无多余换行本地校验脚本跑过一遍输出全部通过facefusion.ini的[download] download_providers已按网络环境调整偶尔联网时可自动补全缺失模型首次启动日志中无 deleting corrupt source 字样已把.assets目录纳入备份校验通过的缓存视为不可变资产整机迁移时整目录拷贝即可【免费下载链接】facefusionIndustry leading face manipulation platform项目地址: https://gitcode.com/GitHub_Trending/fa/facefusion创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考