ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

FaceFusion 执行线程计数:1 到 32 之间该选多少?

FaceFusion 执行线程计数:1 到 32 之间该选多少? FaceFusion 执行线程计数1 到 32 之间该选多少【免费下载链接】facefusionIndustry leading face manipulation platform项目地址: https://gitcode.com/GitHub_Trending/fa/facefusionFaceFusion 执行线程计数execution thread count是处理慢、崩溃、内存溢出这类问题最常见的调节项。这篇文章先讲清楚这个参数控制什么、取值范围是多少再给出按硬件配置选线程数的具体建议。这个参数到底在控制什么执行线程计数决定 FaceFusion 用多少个并行任务同时处理画面。处理视频时程序把帧切分开交给线程池并行执行检测、替换、增强这些步骤处理逻辑大致就是下面这种形式with ThreadPoolExecutor(max_workers state_manager.get_item(execution_thread_count)) as executor:线程越多同一时刻往前推进的帧就越多总耗时通常越短。但它不是越大越好。每个线程都要占内存推理会话和中间结果也需要额外空间线程数超过 CPU 实际能同时跑的任务数之后系统开始频繁切换上下文速度反而下降严重时直接内存溢出。所以这个参数同时牵动速度和稳定性得按硬件来定。范围、步长与默认值三个数字讲清取值范围定义在 facefusion/choices.py 中execution_thread_count_range : Sequence[int] create_int_range(1, 32, 1)三个数字最小 1最大 32步长 1也就是说只能取整数值。界面里的滑块由 facefusion/uis/components/execution_thread_count.py 创建范围上下限直接取自上面这组数字。拖动滑块后数值写入状态管理器并保存到 facefusion.ini下次启动自动沿用。如果从没手动设置过命令行默认值是 8。按你的硬件选线程数低配机器2~4 起步判断依据物理核心数 4 个以内或内存 8GB 以下。推荐区间2~4。这类机器先保证不崩速度慢一些可以接受。线程数每往上加 1就先用一小段素材试跑确认内存平稳再考虑继续加。中配主力机核心数一半起调判断依据8 核左右、16GB 以上内存、带独立显卡。推荐区间4~8其中 8 是命令行默认值也是多数机器的平衡点。先按物理核心数的一半设置跑完一个完整任务确认内存还有余量再往上加。按任务类型微调判断依据不同处理器吃内存的程度不一样。人脸检测、标注类任务 2~4 就够face_swapper 这类替换任务给 4~8frame_enhancer 这类增强任务可以放到 8~12。同一台机器切换任务时顺手把滑块调回对应区间即可。调完不对劲按症状排查崩溃或内存溢出三步排查症状任务跑到一半闪退或系统提示内存不足。最可能原因线程数超出了 CPU 和内存的承载量。操作先把线程数减半重跑。分辨率过高叠加高线程。操作把输出缩放降回 1再试一次。后台程序占用内存。操作关掉其他吃内存的应用单独跑一次做对照。速度没提升的三个可能症状线程从 4 加到 12耗时几乎不变。瓶颈在 GPU 推理线程再多也没用。操作确认执行后端选了 cuda、directml 之类的加速项而不是只跑 CPU。磁盘 I/O 成了短板。操作源文件和输出放在同一块 SSD 上避免走网络盘。硬件已到极限。操作把线程数退回能跑稳的最大值不必再纠结。从哪一步开始试建议从物理核心数的一半开始4 核设 28 核设 4。跑完一个完整任务记下耗时和内存占用再每次加 2 试一轮。对比两轮结果就能看到收益拐点停在提升明显且内存平稳的位置即可。这个值会写进配置自动保存不用每次重调。后续版本有可能根据任务和系统状态自动调节线程数到时你手动试出来的经验刚好可以用来校验自动结果靠不靠谱。【免费下载链接】facefusionIndustry leading face manipulation platform项目地址: https://gitcode.com/GitHub_Trending/fa/facefusion创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表