AI人像动漫(2)

本文涉及的产品
交互式建模 PAI-DSW,5000CU*H 3个月
简介: AI人像动漫

实战教学

1. 搭建创空间应用

上图为创空间页面。

右上角点击创建创空间,进入创建的页面配置。

填入上述配置内容。license可以按自己的需求选择公开或者非公开。接入SDK指如何在前端进行布局的接入,选择默认的Gradio,点击创建创空间。

上图为创建好之后的界面,展示了如何通过git将线上文件copy到本地,以及如何进行代码编辑,将编辑好东西再上传。支持webUI上直接上传。

空间文件已经默认初始化了readme,用户只需要填写入口文件。

关于如何创建,可以访问文档中心-创空间创建和搭建,里面提供了详细的教程,包括入口文件的撰写示例等。

图片输入输出示例代码如上图所示。首先引入Gradio的Python包,可以直接将算法模型封装为webUI的形式。定义了关于图像处理的功能函数,相当于对一张图像旋转45度,声明了关于demo的类,demo的具体内容为:首先初始化gradio的界面,要处理的功能函数是image_mode,输入是一张图像,处理类型为pil的模式。输出为一张image。

demo声明完成之后,启动demo,即可生成上图下方的界面。

接下来,编写入口文件。本示例将采用Notebook编写。

人像动漫画的模型要依托于ModelScope上现有的人像动漫画算法模型,可以直接打开模型库-卡通化专题-模型应用,打开DCT-Net人像卡通化模型的卡片。

模型详情页展示了各种风格的模型,可以点击图片链接直达。下方提供了模型的描述、如何使用、如何进行模型的推理以及相关代码。

点击右上角”Notebook快速开发“,Notebook上已经提供了ModelScope的包,可以直接调用。选择CPU环境。

可以选择Notebook直接进行代码的开发,也可以打开Python的控制台。

编辑入口文件。

先导入ModelScope相关函数进行算法的处理。初始化卡通化的pipeline,task指定为image_portrait_stylization,规定所有代码都走一套模型初始化以及模型推理的flow。所有DCT-Net系列的模型都使用该task,只是modelID不一样,可以指定不同的modelID控制不同风格的生成。modelID在model card界面左上角,直接复制即可使用。

example图像可以通过本地上传的形式,也可以通过给定的一张图像进行处理(点击左上角的上传标识,即可将图片上传至当前工作目录下)。

定义好demo后,通过demo.lunch起订。写完app.python之后,建议在本地将代码调试好再发布到创空间,比较省时,而且会展示对应的错误信息。

通过pip install gradio安装gradio包,然后使用python app.py启动入口文件。

最终生成的创空间页面如上图。

可以直接点击左下角的图片进行转换,也可以拖动本地图片至输入框。

点击submit即可进行图像转换。初次运行时会进行模型的下载,因此速度较慢。

切换为3D风格,更换代码里的modelID,重新起应用。点击图片,点击submit,结果如上图。后台推理代码在推理完成后会显示“infer finished”。如果有任何报错,会在后台显示。

点击控制条左上角file-downlod,将入口文件下载至本地。然后进入创空间的空间文件,点击上传文件,将入口文件上传。再上传一张本地的素材文件。

readme里面包含详细的接口文档,填写domain的类别、tags,数据集和关联模型可选填。

如上图所示,domain类型体现为左下角的“多模态”,tags体现为“text2image generation”、”diffusion model”。可以通过上述关键字进行搜索,更容易找到模型。

关联模型将会体现在如上图右上角。

部署配置指明希望用什么机器部署服务,下面为入口文件,本示例即app.py,还有CPU核数、内存以及GPU的个数、需要的显存等。

可以从其他模型现有的readme文件里复制粘贴至本示例。点击确定,提交修改。点击上线空间展示-确认上线。

上线后的创空间如上图。

也可以创建风格可选的创空间。

与上一示例最大区别在于上述代码。加入了风格选择的radio于组件,与imageinput一起放到input里。

需要对不同风格进行映射,如上图。

不同的风格可以通过上述代码组合成不同的modelID。将modelID替换到的pipeline的初始化即可。

AI人像视频多风格漫画相比图像多了拆帧的过程。

inference函数会进行视频的读取和拆帧的操作,通过不同组合得到不同的modelID,通过ModelScope自带的包直接进行卡通的推理,代码更简洁。最后对每一帧的数据进行处理,做拼接,合成视频。

 

2. 模型推理实验

点击Notebook快速开发,因为设计到模型的训练,因此需要使用GPU环境。

复制model card上推理相关代码并运行。

首先引入需要使用的第三方包,比如opencv、ModelScope上关于卡通的包。初始化pipeline,task设为image_potrait_stylization,传入想要使用的modelID。

将URL的路径输入到pipeline,能够得到结果,将结果翻译成对应的outputimage,并保存为result.png。

运行完成后,点击左侧目录的result.png即可查看结果。

下载原始输入图像,如上图所示。

下文将演示如何在现有的模型基础上训练,上图为相关代码,此处需注意环境要求。

另外,Notebook本身的算法环境需要兼容非常多模型,卡通的训练内置的Numpy版本与tensorflow版本会存在不兼容性问题,因此需要预先进行Numpy版本的调整,可以通过执行pip install numpy=1.18.5来实现版本更新。安装过程中如果出现冲突问题,并不会干扰到训练过程。

训练会应用到ModelScope对应的卡通训练器、数据集以及推理代码需要用到的包。

首先声明modelID,建议选择与期望的模型风格最接近的模型作为初始版本,基于该版本做训练。加载一个在ModelScope上传好的数据集,本示例选取Mini版本,数量很小,运行非常快。取数据集的train字段,data_dir为数据集的存储路径。

声明data_photo和data_carton两个参数,前者为现实的人脸数据,由data_dir加face_photo构成,后者为卡通的人脸数据,由data_dir加face_carton构成。word_dir指实验的工作目录,在哪个目录下保存实验的中间结果。max_steps指训练时网络的最大迭代次数,实际场景建议设置为30万左右。

初始化trainer,传入modelID,声明在哪个model的基础上进行训练,会将模型自动拉到当地的目录下。因为已经做好了数据集,可以不传到ModelScope上,而是在本地进行加载,只需将data_photo和data_carton替换为本地路径即可。

运行代码。上图高亮部分显示了本次训练从哪个模型开始进行fintune,最下方显示了迭代此处。

运行完成后,打开工作目录文件夹查看输入图像与输出图像。

训练后的模型的checkpoints会被保存下来,为了方便实际使用时的部署,会将其转换位freeze好的pb文件,使用时无需重新加载原始的网络结构,会自动固定化到pb文件。因此可以对模型进行导出,更方便后期大批量部署。

模型导出代码如上图。

首先要指定训练完成的checkpoint在哪里,参数为工作目录、save_models以及model-(epochs个数)。

比如,epoch个数为0,则会找到model-0的相关文件,如上图所示。

pb_path指的希望将转换后的pb存储到哪里,因为推理时还包括其他资源的依赖,因此将其将存储到原始的finetune model目录下,并替换掉原始的carton-h.pb文件,即可直接使用原始的资源进行推理。

然后初始化卡通的模型导出器,调用冻结好的pb文件命令,输入的参数为训练好的ckpt的路径以及希望freeze的pb路径。

运行代码,结果显示模型已经存储至指定目录下,可直接使用该pb文件进行推理。

使用上述pb文件进行推理,代码如上图。

点击查看result.png,如上图。

训练自定义风格的卡通人像目前尚且存在一定的难度,主要受限于训练的数据集准备。卡通数据的质量越高,对训练结果的帮助越大。

DCT-Net本身包含两个训练step的,在ModelScope上主要提供的是local的translation,即最后的一步的模拟转换网络训练,不包含关于前期域的校准、内容的校准以及生成更多的卡通样本。

更多进阶的操作,建议参考GitHub上的DCT-Net项目。上面提供了完整的代码的,包含如何针对自定义风格进行数据的准备,也可以用训练好的效果较为稳定的模型去生成样本,因为前期的百张样本决定了后期的转换质量。

另外,收集的风格样本不仅是人头区,还会有半身像、全身像,要从中提取出适用于数据的人脸,也建议对原始的photo数据进行面部的对齐校准,使得结果更准确。仓库也提供了基于StyleGan的内容校准相关代码,可以通过迁移学习生成相应的卡通样本等指引。

ModelScope上集成的是最终的纹理转换模型,前期的数据准备仍有较多工作需要进行,训练过程还相对复杂。因此,我们更推荐直接使用公开的推理模型,我们提供了7种风格模型,可以直接进行模型调用完成图像转换。

相关文章
|
8月前
|
机器学习/深度学习 人工智能 编解码
AI人像特效之「一键生成N次元虚拟形象」
为了零成本低门槛地提供极致酷炫的人像玩法,我们提出了一套人像风格化通用框架「AI Maleonn」AI 版神笔马良,用于一键生成风格百变的人物虚拟形象,在风格上涵盖手绘、3D、日漫、艺术特效、铅笔画等多种风格,同时可以支持面向小样本的专属风格定制,利用少量目标风格图即可实现快速迁移拓展;在处理维度上,不仅适用于生成头部效果,更支持全图精细化纹理转换,兼容多人场景;在模型鲁棒性上,有效克服了多角度姿态、面部遮挡等各类复杂场景,整体稳定性大大提升。
|
1月前
|
人工智能
推荐一个非常好玩的 AI 工具Gifshift!让 GIF 动图一键转换成动漫风格,玩梗更有趣!
推荐一个非常好玩的 AI 工具Gifshift!让 GIF 动图一键转换成动漫风格,玩梗更有趣!
224 1
|
7月前
|
存储 人工智能 前端开发
课时1:AI人像动漫画实操教学
课时1:AI人像动漫画实操教学
284 0
|
8月前
|
机器学习/深度学习 编解码 人工智能
【开放视觉】AI人像特效之「更快、更高、更强的互娱换脸解决方案」
换脸技术旨在将图像或者视频中的人脸替换成目标人脸,使生成的图像与目标人脸相似,且具有图像或视频中人脸的外貌特征。作为近几年计算机视觉和图形学领域较热门的应用之一,已被广泛用于互动娱乐,肖像替换,广告宣发,电影后期等场景中。本工作面向互动娱乐场景,扎根于学术前沿,聚焦于行业落地,提出了一个脸型自适应的换脸算法(SaSwap),并结合落地过程中的若干痛点难点逐一攻关,最终以高效的输出方式组成了一套完整的互娱换脸解决方案。
1556 5
【开放视觉】AI人像特效之「更快、更高、更强的互娱换脸解决方案」
|
9月前
|
机器学习/深度学习 人工智能 编解码
|
9月前
|
机器学习/深度学习 存储 人工智能
AI人像动漫
学术界自2000年左右开始对图像生成进行研究。日常采集到的图像数量非常有限,而且采集成本相对较高。因此,我们希望计算机能够自动化生成新的图像。但是,如果图像内容随机生成,无法控制生成结果,则图像依然不可用。
|
10月前
|
机器学习/深度学习 人工智能 搜索推荐
Crypko.ai:动漫角色生成和设计平台
Crypko.ai:动漫角色生成和设计平台
205 0
|
机器学习/深度学习 人工智能 算法
预约直播 | AI人像风格特效生成技术研究与应用
阿里云AI技术分享会第七期《AI人像风格特效生成技术研究与应用》将在2022年10月26日晚18:00开启直播,精彩不容错过!
预约直播 | AI人像风格特效生成技术研究与应用
|
人工智能 搜索推荐 C#
Unity 接入百度AI - 人像动漫化
Unity 接入百度AI - 人像动漫化
629 1
Unity 接入百度AI - 人像动漫化
|
人工智能 前端开发 Java
阿里云视觉AI 5天实践训练营-day05-人像分割系统
因时间关系,前端页面暂时未完成,所以本文暂时只展示后端页面。国庆做完前端会补上。
阿里云视觉AI 5天实践训练营-day05-人像分割系统