当前位置: 首页 > news >正文

哪些网站做外贸免费网站安全软件大全

哪些网站做外贸,免费网站安全软件大全,做游戏排行榜的网站模板,东莞疫情最新消息 今天FaceFusion源码框架解读 我的视频讲解:FaceFusion入门教学 FaceFusion官网 FaceFusion是一款开源的AI换脸工具,一款非常好用的换脸工具,操作简单,上手容易。 Facefusion:GitHub - facefusion/facefusion: Next gene…

FaceFusion源码框架解读

我的视频讲解:FaceFusion入门教学

FaceFusion官网

FaceFusion是一款开源的AI换脸工具,一款非常好用的换脸工具,操作简单,上手容易。
Facefusion:GitHub - facefusion/facefusion: Next generation face swapper and enhancer
Facefusion官方教程:Introduction - FaceFusion

云端部署FaceFusion

自己没有好的算力,推荐用 众聚云,有windows桌面,方便操作。

众聚云网址:GPULab算力云-Ai算力租赁/GPU服务器租赁/远程显卡租赁/CPU租赁

开启部署环境:快速部署GPU Cloud 云主机

文末加V,可以领取优惠券。
在这里插入图片描述

源码

整个代码,整体分为以下3个部门做解读

  • 界面交互-事件绑定
  • 算法处理模块
  • 业务-算法处理层

大方向

  • 每个控件都是全局的
  • 控件对应的值,也设计成了全局的
  • 代码有3个core.py, core的代码是作为代码上下文沟通的桥梁,这个设计很nice,值得学习
  • 有Python实现多态的味道,要实现的函数,作者还做了自检
  • 主程序core - 界面core - 算法core重点关注这三个文件的交互, 有Get到些东西

界面交互-事件绑定

uis

3个layout,不同处理功能。
在这里插入图片描述
在benchmark.py,default.py,webcam.py中, 要做的事情 就是控件布局。

重要文件:facefusion\uis\core.py
core核心思想:中间桥梁-接口

UI_LAYOUT_METHODS =\
['pre_check','pre_render','render','listen','run'
]def load_ui_layout_module(ui_layout : str) -> Any:try:ui_layout_module = importlib.import_module('facefusion.uis.layouts.' + ui_layout)for method_name in UI_LAYOUT_METHODS:if not hasattr(ui_layout_module, method_name):raise NotImplementedErrorexcept ModuleNotFoundError as exception:logger.error(wording.get('ui_layout_not_loaded').format(ui_layout = ui_layout), __name__.upper())logger.debug(exception.msg, __name__.upper())sys.exit(1)except NotImplementedError:logger.error(wording.get('ui_layout_not_implemented').format(ui_layout = ui_layout), __name__.upper())sys.exit(1)return ui_layout_module

这个片段的代码,比较有意思,首先layout[benchmark.py,default.py,webcam.py]中要实现的函数:5个函数

UI_LAYOUT_METHODS =\
['pre_check','pre_render','render','listen','run'
]

在layout[benchmark.py,default.py,webcam.py]中,代表着3个不同的layout,里面都要实现上面5个函数,因为作者想动态加载界面,有点C++多态的味道。

函数 load_ui_layout_module,也就是动态加载界面,主程序通过core.py, 去构建UI。也就是说core是uis模块与外界沟通的接口,桥梁。
作者挺喜欢的设计方式,下文会再次用到这样的设计。

也就是:
uis-core的代码,就是 uis构建的逻辑,外部只需要关心core的代码,内部的代码不用考虑。

components

定义组件,如果你想添加自己的组件,就放到下面,然后在layouts中,使用你添加的组件
在这里插入图片描述
在components中,每一个components都要定义两个函数

  • render()渲染
  • listen() 监听

render() 构建界面控件。全部的控件都定义成了全局的,因为某一个控件变化时,需要根据控件名称去更新对应的控件。

listen() 控件和响应事件绑定。

这页面,从控件的定义, 布局,事件绑定代码规划的很清晰。 后期再添加新功能时,只需要按套路往里面写就可以,代码不会乱。

算法处理模块

在这里插入图片描述
六个文件,六个功能

face_debugger.py 调试功能
face_enhancer.py 人脸增强功能
face_swapper.py 换脸功能
frame_colorizer.py 帧的颜色功能
frame_enhancer.py 帧的增强功能
lip_syncer.py 嘴唇同步功能

这部分的代码,有一定的统一性,他们都要实现以下方法:

FRAME_PROCESSORS_METHODS =\
['get_frame_processor','clear_frame_processor','get_options','set_options','register_args','apply_args','pre_check','post_check','pre_process','post_process','get_reference_frame','process_frame','process_frames','process_image','process_video'
]

这些方法,将会在业务处理的core中,被动态的调用,类似于C++中的多态。
这里面的函数,只是一个封装,具体的业务处理代码,作者放在了外部:
在这里插入图片描述

也就是processors中的处理器,会调用外部的具体业务处理代码,完成事件处理。

重要文件:facefusion\processors\frame\core.py
core核心思想:中间桥梁-接口,这里再次用到这样的思想,去构建代码。


def load_frame_processor_module(frame_processor : str) -> Any:try:frame_processor_module = importlib.import_module('facefusion.processors.frame.modules.' + frame_processor)for method_name in FRAME_PROCESSORS_METHODS:if not hasattr(frame_processor_module, method_name):raise NotImplementedErrorexcept ModuleNotFoundError as exception:logger.error(wording.get('frame_processor_not_loaded').format(frame_processor = frame_processor), __name__.upper())logger.debug(exception.msg, __name__.upper())sys.exit(1)except NotImplementedError:logger.error(wording.get('frame_processor_not_implemented').format(frame_processor = frame_processor), __name__.upper())sys.exit(1)return frame_processor_module

在使用六个功能时,根据“模块名称”去导入,同时,还要检查方法是否实现,这个思路平时写代码用的少,在这里学习到了,真的有点 Python的多态感。

这里的设计有点意思,上面我们提到的六个功能,在对外别的代码被调用时,不能直接引用过去,而是通过 facefusion\processors\frame\core.py中的函数load_frame_processor_module导入。

也就是说 你在全部的代码中是看不到:import facefusion.processors.modules.xxx的代码的。

这里有学到一个点,通过core,统一对外提供功能接口。


加群交流,备注:进AIGC群
在这里插入图片描述

http://www.ds6.com.cn/news/6564.html

相关文章:

  • 郑州企业网站排名优化域名注册官网
  • javaweb做网站的优点搜索引擎优化包括哪些
  • 现在还有企业做网站的吗百度的搜索引擎优化
  • 哪里有做空包网站的aso排名优化知识
  • 怎样做网站国外房管局备案查询网站
  • 织梦模板网站好吗宁波网站推广优化公司怎么样
  • 网站开发 实时更新百度官方官网
  • 网站由哪些部分组成大数据精准营销
  • 松原做网站seo技术培训广东
  • 超市网站开发建设建议重庆自动seo
  • 设置一个好的网站导航栏最近的新闻大事20条
  • Vs做的网站调试时如何适应网页百度热议
  • 地下城钓鱼网站怎么做2021百度热搜年度榜
  • 宝塔配置wordpress主题seo诊断分析在线工具
  • 杭州做网站的科技公司百度seo技术
  • 无锡建网站电话提升神马seo关键词自然排名
  • 设计素材免费下载网站有哪些百度移动排名优化软件
  • 广西建设厅办事大厅网站淘宝指数查询官网手机版
  • 深圳网站建设加q479185700友情链接又称
  • 网站建设需求调研计划表百度学术论文官网入口
  • 越南做购物网站网店推广营销方案
  • 如何仿制手机版网站seo范畴
  • 域名 和网站有什么区别吗东莞做网络推广的公司
  • 企业网站哪个好网站域名解析
  • 广州网站建设定制哪家口碑好黑帽seo技术有哪些
  • 做策划有帮助的网站网络推广的手段
  • 自己做网站 怎么赚钱提升seo排名平台
  • 美容行业培训网站建设网络推广员工作内容
  • mysol做的选课网站网店运营培训哪里好
  • 网站开发如何修改字体公司营销网站建设