输入一张人物图像,实现端到端全图卡通化转换,生成二次元虚拟形象,返回卡通化后的结果图像。 本仓库提供DCT-Net日漫风转换模型,同时将汇总发布卡通化系列相关模型及应用。 使用方式: 使用范围: 目标场景: 在ModelScope框架上,提供输入图片,即可以通过简单的Pipelie调用来使用人像卡通化模型。 环境要求:tf1.14/15及兼容cuda,支持GPU训练 上述训练代码仅仅提供简单训练的范例,对大规模自定义数据,替换dataphoto为真实人脸数据路径,datacartoo为卡通风格人脸数据路径,maxsteps建议设置为300000,可视化结果将存储在workdir下;此外cofiguratio.jso(~/.cache/modelscope/hub/damo/cvuetperso-image-cartoo_compoud-models/)可以进行自定义修改; Note: otebook预装环境下存在umpy依赖冲突,可手动更新:pip istall umpy==1.18.5 卡通人脸数据可由设计师设计/网络收集得到,在此提供一种基于Stable-Diffusio风格预训练模型的卡通数据生成方式 可通过替换Johy Depp为其他名人姓名,产生多样化风格数据,通过人脸对齐裁剪即可得到卡通人脸数据;可以通过修改pipelie的model参数指定不同风格的SD预训练模型。 低质/低分辨率人脸图像由于本身内容信息丢失严重,无法得到理想转换效果,可预先采用人脸增强模型预处理图像解决; 小样本数据涵盖场景有限,人脸暗光、阴影干扰可能会影响生成效果。 训练数据从公开数据集(COCO等)、互联网搜索人像图像,并进行标注作为训练数据。 真实人脸数据FFHQ常用的人脸公开数据集,包含7w人脸图像; 卡通人脸数据,互联网搜集,100+张 使用CelebA公开人脸数据集进行评测,在FID/ID/用户偏好等指标上均达SOTA结果: 如果该模型对你有所帮助,请引用相关的论文:DCT-Net人像卡通化模型
论文 | 项目主页
使用方式和范围
如何使用
代码范例
import cv2
from modelscope.outputs import OutputKeys
from modelscope.pipelies import pipelie
from modelscope.utils.costat import Tasks
img_cartoo = pipelie(Tasks.image_portrait_stylizatio,
model='damo/cv_uet_perso-image-cartoo_compoud-models')
# 图像本地路径
#img_path = 'iput.pg'
# 图像url链接
img_path = 'https://modelscope.oss-c-beijig.aliyucs.com/test/images/image_cartoo.pg'
result = img_cartoo(img_path)
cv2.imwrite('result.pg', result[OutputKeys.OUTPUT_IMG])
prit('fiished!')
import os
import uittest
import cv2
from modelscope.exporters.cv import CartooTraslatioExporter
from modelscope.msdatasets import MsDataset
from modelscope.outputs import OutputKeys
from modelscope.pipelies import pipelie
from modelscope.pipelies.base import Pipelie
from modelscope.traiers.cv import CartooTraslatioTraier
from modelscope.utils.costat import Tasks
from modelscope.utils.test_utils import test_level
model_id = 'damo/cv_uet_perso-image-cartoo_compoud-models'
data_dir = MsDataset.load(
'dctet_trai_clipart_mii_ms',
amespace='meyifag',
split='trai').cofig_kwargs['split_cofig']['trai']
data_photo = os.path.joi(data_dir, 'face_photo')
data_cartoo = os.path.joi(data_dir, 'face_cartoo')
work_dir = 'exp_localtoo'
max_steps = 10
traier = CartooTraslatioTraier(
model=model_id,
work_dir=work_dir,
photo=data_photo,
cartoo=data_cartoo,
max_steps=max_steps)
traier.trai()
import cv2
from modelscope.pipelies import pipelie
from modelscope.utils.costat import Tasks
pipe = pipelie(Tasks.text_to_image_sythesis, model='damo/cv_cartoo_stable_diffusio_clipart', model_revisio='v1.0.0')
from diffusers.schedulers import EulerAcestralDiscreteScheduler
pipe.pipelie.scheduler = EulerAcestralDiscreteScheduler.from_cofig(pipe.pipelie.scheduler.cofig)
output = pipe({'text': 'archer style, a portrait paitig of Johy Depp'})
cv2.imwrite('result.pg', output['output_imgs'][0])
prit('Image saved to result.pg')
prit('fiished!')
模型局限性以及可能的偏差
训练数据介绍
模型推理流程
预处理
推理
数据评估及结果
Method
FID
ID
Pref.A
Pref.B
CycleGAN
57.08
0.55
7.1
1.4
U-GAT-IT
68.40
0.58
5.0
1.5
Tooify
55.27
0.62
3.7
4.2
pSp
69.38
0.60
1.6
2.5
Ours
引用
@iproceedigs{me2022domai,
title={DCT-Net: Domai-Calibrated Traslatio for Portrait Stylizatio},
author={Me, Yifag ad Yao, Yua ad Cui, Miaomiao ad Lia, Zhouhui ad Xie, Xuasog},
joural={ACM Trasactios o Graphics (TOG)},
volume={41},
umber={4},
pages={1--9},
year={2022}
}
点击空白处退出提示










评论