百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

自动给漫画线稿上色的超火AI已出新版|在线试玩

toyiye 2024-07-05 01:41 10 浏览 0 评论

夏乙 安妮 编译整理

量子位 出品 | 公众号 QbitAI

给喜欢的动漫形象建个了收藏夹,里面收集她的各种图片……懂,谁没几个喜欢的动漫萌妹呢。

一些手绘线稿也很可爱,但黑白配色总会略显单调。

请记住这张线稿

半年前线稿上色AI style2paints的破壳曾让自动上色火了一阵。好消息是,昨天,升级版本style2paints 2.0也问世了!

Demo也一并放出,用户可以随意试玩~

Demo界面

据作者说,style2paints 2.0比一代效果更好,而且模型的训练过程是无监督的。

效果惊艳

只需线稿一张,轻点一下,就能给你珍藏的心爱萌妹上个色。

上面线稿的转换效果

赞赞的!不仅如此,换一张其他的彩色参考图,也能将线稿转化成另一种颜色风格。

比如我们输入下面这张参考图:

上面那张示例图就变成了下面的效果——

还可以从参考图中选取颜色,然后用笔在线稿的某个区域上点一下,AI就会按你的提示去重新填充——

支持微调的线稿上色软件不止一家,不过作者介绍说,和同类软件相比,style2paints的“提示笔”是最精确的,用户可以用3×3的笔迹,在1024×2048的画面上,控制13×13的区域。

为了确保最终画作颜色协调,style2paints还玩了一点小心机:用户不能自己输入颜色,只能从参考图上选。

使用教程

并不简单

玩得尽兴之后,你可能会说,风格迁移嘛,我们见得多了~

但是,把黑白照片变成彩色照片,和把没有阴影高光的线稿变成彩色图画难度不同。

这种由纯线条构成的草图不包含图案的明暗和纹理。也就是说,AI需要自动脑补出这些信息。

何况style2paints作者对线稿上色的期望,实在是比较高,并不是在线条之间填一些颜色就完事了:

在一幅好漫画里,妹纸的眼睛要像星系一样闪亮,脸颊要弥漫着红晕,皮肤要精致迷人。

大概是这个效果吧

这怎么做得到!

style2paints 2.0目前还没有相关论文放出,只有代码可供参考。不过,今年6月问世的第一版其实效果还可以,实现了基于语义信息迁移的颜色提示,让上色效果更加和谐。

具体的原理可以看当时的论文Style Transfer for Anime Sketches with Enhanced Residual U-net and Auxiliary Classifier GAN

,来自苏州大学的三位作者Lvmin Zhang, Yi Ji, Xin Lin介绍了怎样将集合的剩余U-Net样式应用到灰度图中,并借助分类器生成的对抗网络(AC-GAN)自动为图像上色。生成过程迅速,效果尚好。

论文地址:

https://arxiv.org/abs/1706.03319

不一样的2.0

style2paints第一版推出之后非常火,量子位的不少朋友都上手玩过。

不过,他们的主要竞品paintschainer不停迭代,后来,上色的效果渐渐超越了style2paints 1.0,于是,作者们也坐不住了,开始研究新方法,更新了一版出来。

那么,2.0和1.0有什么不一样吗?

巧了,国外的网友也很关心。作者在Reddit上回答说,和上一版相比,style2paints 2.0大部分训练都是纯粹无监督,甚至无条件的。

也就是说,在这个模型的训练过程中,除了对抗规则之外没有添加其他的人工定义规则,没有规则来强迫生成器神经网络照着线稿画画,而是靠神经网络自己发现,如果遵照线稿,会更容易骗过鉴别器。

pix2pix、CycleGAN等同类模型为了确保收敛,会对学习对象添加l1 loss,鉴别器接收到的数据是成对的[input, training data]和[input, fake output]。而style2paints 2.0模型的学习目标和经典DCGAN完全相同,没有添加其他规则,鉴别器收到的也不是成对的输出。

作者说,让这样一个模型收敛其实是很难的,何况神经网络这么深。

不过你看,结果还不错。

线稿上色的江湖

线稿上色的程序,其实有很多,比如说:

Paintschainer

https://paintschainer.preferred.tech/index_en.html

Deepcolor

https://github.com/kvfrans/deepcolor

Auto-painter

https://arxiv.org/abs/1705.01908

除了paintschainer,其他的同类产品其实作者是不太看得上的。

他说,很多亚洲论文都号称能迁移漫画风格,但是仔细看论文,会发现他们所谓的“新方法”就是个调整过的VGG,虽说VGG在风格迁移任务上普遍表现不错,但是用在漫画上,效果总是不怎么好。

还是得靠GAN,而且得允许用户上传风格参考图,像Prisma那样从莫奈梵高里选可不行,莫奈梵高又不会画漫画。

试试不?

上手玩一下Demo:

http://paintstransfer.com/

论文还没出来,不过可以看源代码呀:

https://github.com/lllyasviel/style2paints

作者对上一版的介绍:

https://zhuanlan.zhihu.com/p/29331219

诚挚招聘

量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复“招聘”两个字。

量子位 QbitAI · 头条号签约作者

?'?' ? 追踪AI技术和产品新动态

相关推荐

Linux Shell脚本经典案例(linux shell脚本例子)

编写Shell过程中注意事项:开头加解释器:#!/bin/bash语法缩进,使用四个空格;多加注释说明。命名建议规则:变量名大写、局部变量小写,函数名小写,名字体现出实际作用。默认变量是全局的,在函数...

解决 Linux 性能瓶颈的黄金 60 秒

如果你的Linux服务器突然负载暴增,告警短信快发爆你的手机,如何在最短时间内找出Linux性能问题所在?来看Netflix性能工程团队的这篇博文,看它们通过十条命令在一分钟内对机器性能问题进行诊断。...

跟老韩学Ubuntu Server 2204-Linux性能管理-vmstat指令帮助手册

vmstat可查看ubuntlinux的综合性能,是每个从事Linux人员必知必会、需掌握的核心指令之一。vmstat指令帮助手册如下。VMSTAT(8)...

Python 可视化工具包(python常见的可视化工具)

喜欢用Python做项目的小伙伴不免会遇到这种情况:做图表时,用哪种好看又实用的可视化工具包呢?本文将介绍一些常用的Python可视化包,包括这些包的优缺点以及分别适用于什么样的场景。这篇文章...

Python的GPU编程实例——近邻表计算

目录技术背景...

python算法体验-3.python实现欧式距离的三种方式

欧式距离也称欧几里得距离,是最常见的距离度量,衡量的是多维空间中两个点之间的绝对距离。欧式距离源自N维欧氏空间中两点...

python实现Lasso回归分析(特征筛选、建模预测)

实现功能:...

python语言检测模块langid、langdetect使用

本文首发地址:https://blog.csdn.net/Together_CZ/article/details/86678423欢迎关注我的博客【Together_CZ】,我是沂水寒城!之前使用数据...

7天学会Python最佳可视化工具Seaborn(一):可视化变量间的关系

众所周知,Seaborn“可能”是Python下最友好、易用的可视化工具了,可视化效果也非常好。但是截止目前,并没有一份中文教程供广大国内Python使用者查阅学习。怎么能因为语言的问题,让大家错过这...

在Python中使用K-Means聚类和PCA主成分分析进行图像压缩

各位读者好,在这篇文章中我们尝试使用sklearn库比较k-means聚类算法和主成分分析(PCA)在图像压缩上的实现和结果。压缩图像的效果通过占用的减少比例以及和原始图像的差异大小来评估。图像压...

OpenCV-Python 相机校准 | 四十九

目标在本节中,我们将学习由相机引起的失真类型,如何找到相机的固有和非固有特性如何根据这些特性使图像不失真基础一些针孔相机会给图像带来明显的失真。两种主要的变形是径向变形和切向变形。径向变形会导致直线出...

python数据预处理技术(python 数据预处理)

在真实世界中,经常需要处理大量的原始数据,这些原始数据是机器学习算法无法理解的。为了让机器学习算法理解原始数据,需要对数据进行预处理。我们运行anaconda集成环境下的“jupyternotebo...

【Python可视化系列】一文教你绘制不同类型散点图(理论+源码)

这是...

OpenCV-Python 特征匹配 | 四十四

目标在本章中,我们将看到如何将一个图像中的特征与其他图像进行匹配。我们将在OpenCV中使用Brute-Force匹配器和FLANN匹配器Brute-Force匹配器的基础蛮力匹配器很简单。它使用第一...

实战python中Random模块使用(python中的random模块)

一、random模块简介Python标准库中的random函数,可以生成随机浮点数、整数、字符串,甚至帮助你随机选择列表序列中的一个元素,打乱一组数据等。要在Python中使用random模块,只需要...

取消回复欢迎 发表评论:

请填写验证码