FaceChain是一个可以用来打造个人数字形象的深度学习模型工具

FaceChain是一个可以用来打造个人数字形象的深度学习模型工具。用户仅需要提供最低三张照片即可获得独属于自己的个人形象数字替身。FaceChain支持在gradio的界面中使用模型训练和推理能力,也支持资深开发者使用python脚本进行训练推理。同时,FaceChain欢迎开发者对本Repo进行继续开发和贡献。

您也可以在ModelScope创空间中直接体验这项技术而无需安装任何软件。

FaceChain的模型由ModelScope开源模型社区提供支持。

环境准备

兼容性验证

FaceChain是一个组合模型,使用了包括pytorch和tensorflow在内的机器学习框架,以下是已经验证过的主要环境依赖:

  • python环境: py3.8, py3.10
  • pytorch版本: torch2.0.0, torch2.0.1
  • tensorflow版本: 2.7.0, tensorflow-cpu
  • CUDA版本: 11.7
  • CUDNN版本: 8+
  • 操作系统版本: Ubuntu 20.04, CentOS 7.9
  • GPU型号: Nvidia-A10 24G

资源占用

  • GPU: 显存占用约19G
  • 磁盘: 推荐预留50GB以上的存储空间

安装指南

支持以下几种安装方式,任选其一:

    1. 使用ModelScope提供的notebook环境【推荐】

      ModelScope(魔搭社区)提供给新用户初始的免费计算资源,参考ModelScope Notebook

      如果初始免费计算资源无法满足要求,您还可以从上述页面开通付费流程,以便创建一个准备就绪的ModelScope(GPU) DSW镜像实例。

      Notebook环境使用简单,您只需要按以下步骤操作(注意:目前暂不提供永久存储,实例重启后数据会丢失):

# Step1: 我的notebook -> PAI-DSW -> GPU环境
# Step2: 打开Terminal,将github代码clone到本地GIT_LFS_SKIP_SMUDGE=1 git clone https://github.com/modelscope/facechain.git
# Step3: 进入Notebook cell,执行:import osos.chdir('/mnt/workspace/facechain')    # 注意替换成上述clone后的代码文件夹主路径print(os.getcwd())
!pip3 install gradio!python3 app.py
# Step4: 点击生成的URL即可访问web页面,上传照片开始训练和预测
  1. docker镜像

    如果您熟悉docker,可以使用我们提供的docker镜像,其包含了模型依赖的所有组件,无需复杂的环境安装:

    conda create -n facechain python=3.8    # 已验证环境:3.8 和 3.10conda activate facechain
    pip3 install -r requirements.txtpip3 install -U openmim mim install mmcv-full==1.7.0
    # 进入facechain文件夹,执行:python3 app.py
    # 最后点击log中生成的URL即可访问页面。

备注:app服务成功启动后,在log中访问页面URL,进入”形象定制“tab页,点击“选择图片上传”,并最少选1张包含人脸的图片;点击“开始训练”即可训练模型。训练完成后日志中会有对应展示,之后切换到“形象体验”标签页点击“开始推理”即可生成属于自己的数字形象。

脚本运行

如果不想启动服务,而是直接在命令行进行开发调试等工作,FaceChain也支持在python环境中直接运行脚本进行训练和推理。在克隆后的文件夹中直接运行如下命令来进行训练:

PYTHONPATH=. sh train_lora.sh "ly261666/cv_portrait_model" "v2.0" "film/film" "./imgs" "./processed" "./output"

参数含义:

ly261666/cv_portrait_model: ModelScope模型仓库的stable diffusion基模型,该模型会用于训练,可以不修改v2.0: 该基模型的版本号,可以不修改film/film: 该基模型包含了多个不同风格的子目录,其中使用了film/film目录中的风格模型,可以不修改./imgs: 本参数需要用实际值替换,本参数是一个本地文件目录,包含了用来训练和生成的原始照片./processed: 预处理之后的图片文件夹,这个参数需要在推理中被传入相同的值,可以不修改./output: 训练生成保存模型weights的文件夹,可以不修改

等待5-20分钟即可训练完成。用户也可以调节其他训练超参数,训练支持的超参数可以查看train_lora.sh的配置,或者facechain/train_text_to_image_lora.py中的完整超参数列表。

进行推理时,请编辑run_inference.py中的代码:

 

# 填入上述的预处理之后的图片文件夹,需要和训练时相同processed_dir = './processed'# 推理生成的图片数量num_generate = 5# 训练时使用的stable diffusion基模型,可以不修改base_model = 'ly261666/cv_portrait_model'# 该基模型的版本号,可以不修改revision = 'v2.0'# 该基模型包含了多个不同风格的子目录,其中使用了film/film目录中的风格模型,可以不修改base_model_sub_dir = 'film/film'# 训练生成保存模型weights的文件夹,需要保证和训练时相同train_output_dir = './output'# 指定一个保存生成的图片的文件夹,本参数可以根据需要修改output_dir = './generated'

之后执行:

python run_inference.py

算法介绍

基本原理

个人写真模型的能力来源于Stable Diffusion模型的文生图功能,输入一段文本或一系列提示词,输出对应的图像。我们考虑影响个人写真生成效果的主要因素:写真风格信息,以及用户人物信息。为此,我们分别使用线下训练的风格LoRA模型和线上训练的人脸LoRA模型以学习上述信息。LoRA是一种具有较少可训练参数的微调模型,在Stable Diffusion中,可以通过对少量输入图像进行文生图训练的方式将输入图像的信息注入到LoRA模型中。因此,个人写真模型的能力分为训练与推断两个阶段,训练阶段生成用于微调Stable Diffusion模型的图像与文本标签数据,得到人脸LoRA模型;推断阶段基于人脸LoRA模型和风格LoRA模型生成个人写真图像。

输入:用户上传的包含清晰人脸区域的图像

输出:人脸LoRA模型

描述:首先,我们分别使用基于朝向判断的图像旋转模型,以及基于人脸检测和关键点模型的人脸精细化旋转方法处理用户上传图像,得到包含正向人脸的图像;接下来,我们使用人体解析模型和人像美肤模型,以获得高质量的人脸训练图像;随后,我们使用人脸属性模型和文本标注模型,结合标签后处理方法,产生训练图像的精细化标签;最后,我们使用上述图像和标签数据微调Stable Diffusion模型得到人脸LoRA模型。

推断阶段

输入:训练阶段用户上传图像,预设的用于生成个人写真的输入提示词

输出:个人写真图像

描述:首先,我们将人脸LoRA模型和风格LoRA模型的权重融合到Stable Diffusion模型中;接下来,我们使用Stable Diffusion模型的文生图功能,基于预设的输入提示词初步生成个人写真图像;随后,我们使用人脸融合模型进一步改善上述写真图像的人脸细节,其中用于融合的模板人脸通过人脸质量评估模型在训练图像中挑选;最后,我们使用人脸识别模型计算生成的写真图像与模板人脸的相似度,以此对写真图像进行排序,并输出排名靠前的个人写真图像作为最终输出结果。

项目链接

https://github.com/modelscope/facechain

原创文章,作者:校长,如若转载,请注明出处:https://www.yundongfang.com/Yun267416.html

(0)
打赏 微信扫一扫不于多少! 微信扫一扫不于多少! 支付宝扫一扫礼轻情意重 支付宝扫一扫礼轻情意重
上一篇 2023年11月23日
下一篇 2023年11月23日

相关推荐

  • 一亿上下文长度的 LLM:LTM-2-Mini

    一亿上下文长度的 LLM:LTM-2-Mini Magic 发布了一个具有 1 亿 Token 上下文的模型 LTM-2-mini。1 亿 Token相当于大约 1000 万行代码…

    工具软件 2024年9月20日
  • Open AI 新的推理模型已经训练完成

    Open AI 新的推理模型已经训练完成 高质量合成数据的重要性再一次被证明。 Open AI 的逻辑是使用一个足够庞大且非常不经济的推理模型(Strawberry)生产优质合成数…

    工具软件 2024年9月20日
  • Fluxgym:FLUX Lora 训练工具

    Fluxgym:FLUX Lora 训练工具 Fluxgym:一个非常简单的傻瓜式 FLUX Lora 训练工具。最低只需要12G显存就可以训练。后端还是用的Kohya脚本。使用方…

    2024年9月20日
  • xAI 发布 Grok-2 系列模型

    xAI 发布 Grok-2 系列模型 老马的 XAI 发布 Grok-2 Beta 版本。在LMSYS的成绩超过了Claude 3.5 Sonnet 和 GPT-4-Turbo。 …

    2024年8月31日
  • Jamba 1.5系列模型:非 Transformer 模型首次追上先进模型

    Jamba 1.5系列模型:非 Transformer 模型首次追上先进模型 AI21 推出了新的 Jamba 1.5 模型家族,包括 Jamba 1.5 Mini 和 Jamba…

    2024年8月31日
  • Ideogram 发布了 2.0 图像生成模型

    Ideogram 发布了 2.0 图像生成模型 图像生成质量大幅提高,产品易用性改善,最强的文字生成能力。尝试了一下发现真的很离谱,不只是文字生成这么简单,可以实现复杂排版搭配色彩…

    2024年8月31日
  • Google Gemini 登陆 Opera,以下是使用方法

    像Microsoft和谷歌这样的大型科技公司正在全力以赴地整合各自的人工智能模型。根据最近的发展,Opera 的 Aria AI 现在可以访问 Google Cloud 的 Gem…

    谷歌Google 2024年5月30日
  • 在 iPhone 上找不到要纠正的红眼:修复

    红眼校正功能可校正 iPhone 中拍摄的照片中的红眼。但是,当板载 AI 无法正确检测到图片中的红眼时,它会显示“没有找到要纠正的红眼”消息。您可以采取一些措施来避免此问题。当您…

    2024年5月29日 苹果Apple
  • Google I/O 发布会的内容

    Google I/O 发布会的内容 Google 紧随 Open AI 开了今年的 I/O 发布会,一个字概括就是全。模型层面所有的指标都在卷,同时也发布了所有现在主流的模型类型。…

    2024年5月20日
  • 关于GPT-4o 模型更新

    关于GPT-4o 模型更新 它可以接受任意组合的文本、音频和图像作为输入,并生成任意组合的文本、音频和图像输出。 它可以在 232 毫秒内响应音频输入,平均为 320 毫秒,这与人…

    工具软件 2024年5月20日
  • DeepSeek 发布 DeepSeek-V2 模型

    DeepSeek 发布 DeepSeek-V2 模型 DeepSeeK 上周发布了DeepSeek-V2模型,将现在优秀 LLM 的价格战又抬上了一个新的高度,百万 Token 输…

    2024年5月20日
  • Indigo关于发布会预测的整理

    Indigo关于发布会预测的整理 GPT-4 的新版应该会按照参数规模不同分化成多个版本,这个和 Claude 还有 Gemini 多版本的逻辑一样; 前两周出现在 llmsys …

    工具软件 2024年5月20日
  • Simulon:混合现实 3D 模型软件

    Simulon:混合现实 3D 模型软件 只需要下载app扫描周围环境,然后选择对应的模型。之后等几分钟就会渲染好跟现实环境融合的MR视频。没有官网只有申请测试的表单。 &nbsp…

    工具软件 2024年5月10日
  • Synthesia:EXPRESS-1 模型驱动的数字人

    Synthesia:EXPRESS-1 模型驱动的数字人 EXPRESS-1 模型驱动,以实现逼真的头像表现。通过训练模型理解我们说什么以及我们如何说的微妙关系,表达力化头像现在可…

    工具软件 2024年5月10日
  • 生数科技发布Vidu 视频生成模型

    生数科技发布Vidu 视频生成模型 生数科技不声不响整了个大活。发布 Vidu 视频生成模型,支持长达 16 秒 1080P 视频直接生成。 从演示视频来看一致性、运动幅度都达到了…

    2024年5月10日
  • Adobe 发布 Firefly Image 3 模型及对应新功能

    Adobe 发布 Firefly Image 3 模型及对应新功能 Adobe 发布了Firefly Image 3模型,Photoshop(测试版)也大规模更新了很多功能。包括文…

    2024年5月10日
  • 微软发布 phi-3-mini 微型模型

    微软发布 phi-3-mini 微型模型 微软发布 phi-3-mini 模型,4 位量化之后可以部署在 iPhone 14 上,只占用 1.8G 内存,每秒输出 12 个 Tok…

    2024年5月10日
  • Mixtral8X22B 模型开源

    Mixtral8X22B 模型开源 Mixtral8X22B在只公布了一个磁力链接之后,又正式发布了模型的技术报告: Mixtral 8x22B是一个稀疏混合专家(SMoE)模型,…

    2024年5月10日
  • Meta 正式发布 Llama3 8B 、 70B 模型

    Meta 正式发布 Llama3 8B 、 70B 模型 Meta 在上周终于发布了 Llama3,目前先发布的是 8B 以及 70B 两个模型,还有多模态以及一个 400B 规模…

    工具软件 2024年5月10日
  • AI画图应用Ideogram发布模型更新

    AI画图应用Ideogram发布模型更新 Ideogram 发布了一大波更新,模型能力再次增强,平时做海报和普通图片挺好用的。 主要升级内容有: 增强的文字渲染和照片写实效果:减少…

    2024年5月10日
  • 谷歌发布了一堆AI能力和升级

    谷歌发布了一堆AI能力和升级 Google Next 2024上周放出了不少狠货,这次 Open AI 没能够压下去热度。 首先是 Gemini Pro 1.5 进行了一大波升级,…

    2024年5月10日
  • Cohere推出了大型语言模型Command R+

    Cohere推出了大型语言模型Command R+ 专为企业级工作负载设计,优化了高级检索增强生成(RAG)功能,以减少错误生成,并支持10种关键语言的多语言覆盖。 详细信息: 在…

    2024年5月10日
  • Open AI 发力模型定制

    Open AI 发力模型定制 OpenAI又有动作了,推出了一系列新功能和程序,让开发者在微调和创建定制模型时有更多的控制权和灵活性。 主要功能包括: 在每个训练周期中保存完整的微…

    2024年5月10日
  • LLM训练器 – 自动从提示进入微调模型

    LLM训练器 – 自动从提示进入微调模型 该项目的目标是探索一种实验性的新流程,以训练一个高性能的任务特定模型。试图抽象出所有的复杂性,使得从想法到性能良好的完全训练模…

    2024年5月10日
  • Jan: 本地LLM聊天软件

    Jan: 本地LLM聊天软件 一个全平台的本地 LLM 聊天软件Jan,支持自动下载模型以及非常详细的设置。懒得配置 Ollama 的可以试试。 除了支持本地模型以外,在线的模型可…

    工具软件 2024年5月10日