强烈安利试试这个!效果爆炸的漫画变身AI,火到服务器几度挤爆

news/2024/11/29 8:54:55/

转自:量子位

排队1241人,等待2600秒……”

——这届网友为了看一眼自己在动漫里的样子,可真是拼了!

104058d9b5aa0e3df49eb6d27a4e7d99.png

“始作俑者”是一款可以把人像变动漫的生成器

d844950d34e3be41a075cdf766222273.gif

只需一张图片或一段视频,无论男女老少、明星素人都可以一睹自己的“动漫风采”~

什么“国民老婆”王冰冰

dbd08801953ec0d2293a6bd72c583e38.png

什么“国民妹妹”IU

16caf36abb741680ff11bf11b7a9e5ad.png

什么科技圈大佬、EDG成员、金发美女、容嬷嬷……

05a87fa4fe4818d4e27d6f23ff07c49e.png

发丝、眉宇,甚至眼神里流露出来的情绪,都给你“描绘”得淋漓尽致……

51be08f02fea45f55b4182fe056c52bd.gif

4da85ce6a42c90f2bdc7ed5207ae40d1.gif

 视频效果

这也难怪网友把服务器都给挤爆了e5834fce6c19b0a9c4368eaae7832c8e.png

随便翻翻大家的作品,简直是深不见底。

f0ebbe42a7fc2b8d7e8bdba07954773a.gif

再看看GitHub上的相关项目,果然也冲上了趋势榜第一名

369e18b6bac1b2b9d7a63873b68387a2.png

这个AnimeGAN,真是厉害了!

如何给自己捏一个动漫脸?

看完展示的效果,你是不是也想打造一个自己专属的漫画脸了呢?

这个可以有,现在就手把手教你。

第一种方法就very very简单了,只需要上传一张照片就可以。

提供在线玩法的网站(链接见文末),就是那个著名的抱抱脸 (Hugging Face)。

f1595a8895d67462459192cd53ac5e54.png

它专门开设了一个在线AnimeGANv2的App,直接把图片“丢”进去就好。

069c77fe358c5744e2b65ce00f70a286.png

BUT!!!

也正如刚才提到的,现在这个AI着实有点太火了,简单的在线方法,就等同于排大队

8c6441d9fdeca219f4f539aa3e743881.png

这不,等了5259秒之后,前面还有15人……

如果不想排队怎么办?

接下来,就是第二种方法了——上代码

f2f1d8b2dc148e28df69809b5a8734d5.png

热心网友在苦等了3小时之后,终于还是忍不住了,强烈安利Colab版本(链接见文末):

b5ef461883930344388a65bbe5223415.png

先运行一下文档里的前两段代码,然后只需要简单修改照片路径即可。

当然,如果想加大难度挑战一下,AnimeGANv2的GitHub项目也是有的哈:

1927cc62cead68f8ef2525ece0ba7ef7.png

以上介绍的方法都是用图片转换,如果你想用视频的话,在AnimeGANv2项目中执行下面这两条命令就OK:

6c92533d676b574a2575bee5072672cd.png

当然,该项目的Pytorch实现也有,不过Pytorch版本目前只支持图片转换;如果想转视频,暂时就需要你自己写个脚本了~

b3706487b15997ff404275ddc8c04c7f.png

风格迁移+GAN

那么,如此效果的背后,到底是用了什么原理呢?

AnimeGAN是来自武汉大学和湖北工业大学的一项研究,采用的是神经风格迁移 + 生成对抗网络(GAN)的组合。

70c1607ab44c7a6ed1813b4cf73250c0.png

它其实是基于CartoonGAN的改进,并提出了一个更加轻量级的生成器架构。

47d069c5e9fdaa178b1cc3689446c8de.png

AnimeGAN的生成器可以视作一个对称的编码器-解码器网络,由标准卷积、深度可分离卷积、反向残差块、上采样和下采样模块组成。

为了有效减少生成器的参数数量,AnimeGAN的网络中使用了8个连续且相同的IRB(inverted residual blocks)。

在生成器中,具有1×1卷积核的最后一个卷积层不使用归一化层,跟随其后的是tanh非线性激活函数。

ce0dc3646d486876d29aff463e5c36be.png

上图中,K为内核大小,C为特征图数量,S为每个卷积层的跨度,H是特征图的高度,W是特征图的宽度,Resize值用于设置特征图大小的插值方法,⊕表示逐元素加法。

而此次的V2版本,是基于第一代AnimeGAN的升级,主要解决了模型生成的图像中存在高频伪影的问题。

具体而言,所采取的措施是使用特征的层归一化(layer normalization),来防止网络在生成的图像中产生高频伪影。

作者认为,层归一化可以使feature map中的不同通道,具有相同的特征属性分布,可以有效地防止局部噪声的产生。

d728fd5fad6be6766481105b216713d4.png

AnimeGANv2的生成器参数大小为8.6MB,而AnimeGAN的生成器参数大小为15.8MB。

它俩使用的鉴别器大致相同,区别在于AnimeGANv2使用的是层归一化,而不是实例归一化(instance normalization)。

网友:我变漂亮了

这个AI可算是圈了一众粉丝。

有些网友“冲进二次元”之后,发现了自己惊人的美貌:

它把我变漂亮了!

018acc6c7d96c8e3395477208295af25.png

而且非常骄傲的晒出了自己的漫画脸。

还有网友看完比尔盖茨的效果之后,直呼:

天!盖茨看起来聪明又性感。

309779851cab565af452cedadcd3cb75.png

c616c85415cd438486e02c7f8d498dff.png

作者:生成效果更好的AnimeGANv3也快来了

AnimeGAN的原作者一共有3位,分别是湖北工业大学的刘罡副教授,陈颉博士,以及他们的学生Xin Chen。

这个项目的诞生主要出于团队成员的个人兴趣,也就是对二次元宅文化和对艺术的热爱

作者之一陈同学介绍,AnimeGAN和AnimeGANv2分别耗时2-3个月完成,其中遇到了不少困难。

其中就包括硬件资源的极度匮乏,比如当时做AnimeGAN用到的英伟达单卡服务器还是由该校艺术设计学院的院长饶鉴教授提供,而他负责的研究也曾依赖于向其他同学借机器跑实验。

到了AnimeGANv2时,就只剩一台单卡2080ti服务器供使用了。

不过,所有努力都没有白费,如今AnimeGAN已受到非常多人的关注和喜欢,这让陈同学和他的导师团队都非常有成就感。

要知道,就连新海诚导演都曾转发过AnimeGAN的作品呢。

9a64b4a665c96d8c3b3af7831d7a9917.png

但,这项以兴趣爱好为驱动的科研项目并不只是“图个好玩”。

在我们与该团队的交流当中,他们表示:

主要目标还是以学术论文为里程牌,以项目能工程化落地到实际应用中为最大期待。

而接下来,AnimeGANv3也快来了

它到时会采用更小的网络规模,大概缩减到只有4M左右;同时解决AnimeGANv2的一些不足(比如v2保留了原图过多的细节),让生成的动漫效果质量更高。

这也意味着AnimeGANv3将具备商业化的能力。

而在AnimeGANv3完成之后,他们还会对人脸到动漫的算法进行不断地优化。

One More Thing

最后,大家上手之前一定要注意,虽然AnimeGAN展示的效果都是比较好的,但这有一个大前提:

照片一定要高清、五官尽量要清晰

不然画风可能就会变得诡异(作者亲测,欲哭无泪)……

那么,你在漫画里是什么样子?

快去试试吧~

在线Demo:

https://huggingface.co/spaces/akhaliq/AnimeGANv2

Colab版本:

https://colab.research.google.com/drive/1jCqcKekdtKzW7cxiw_bjbbfLsPh-dEds?usp=sharing#scrollTo=niSP_i7FVC3c

GitHub地址:

https://github.com/TachibanaYoshino/AnimeGANv2

https://github.com/bryandlee/animegan2-pytorch

参考链接:

[1]https://www.reddit.com/r/MachineLearning/comments/qo4kp8/r_p_animeganv2_face_portrait_v2/
[2]https://user-images.githubusercontent.com/26464535/137619176-59620b59-4e20-4d98-9559-a424f86b7f24.jpg
[3]https://twitter.com/chriswolfvision/status/1457489986933170179

推荐阅读

  • 【重磅】斯坦福李飞飞《注意力与Transformer》总结,84页ppt开放下载!

  • 一文总结微软研究院Transformer霸榜模型三部曲!

  • Swin Transformer为主干,清华等提出MoBY自监督学习方法,代码已开源

  • 加性注意力机制!清华和MSRA提出Fastformer:又快又好的Transformer新变体!

  • MLP进军下游视觉任务!目标检测与分割领域最新MLP架构研究进展!

  • 周志华教授:如何做研究与写论文?(附完整的PPT全文)

  • 都2021 年了,AI大牛纷纷离职!各家大厂的 AI Lab 现状如何?

  • 常用 Normalization 方法的总结与思考:BN、LN、IN、GN

  • 注意力可以使MLP完全替代CNN吗? 未来有哪些研究方向?

欢迎大家加入DLer-计算机视觉&Transformer群!

大家好,这是计算机视觉&Transformer论文分享群里,群里会第一时间发布最新的Transformer前沿论文解读及交流分享会,主要设计方向有:图像分类、Transformer、目标检测、目标跟踪、点云与语义分割、GAN、超分辨率、视频超分、人脸检测与识别、动作行为与时空运动、模型压缩和量化剪枝、迁移学习、人体姿态估计等内容。

进群请备注:研究方向+学校/公司+昵称(如Transformer+上交+小明)

c2371e4748787b10ea0522dfbe89fa1e.png

👆 长按识别,邀请您进群!


http://www.ppmy.cn/news/487268.html

相关文章

styleGAN环境搭建 、 动漫模型效果测试

📙 声明: 本博文的主体内容借鉴该博文: https://blog.csdn.net/weixin_41943311/article/details/100539707 我主要做的工作是精简流程和测试记录,想了解更多内容可以关注 https://blog.csdn.net/weixin_41943311 博客主页下的一…

CSAPP - LinkLab实验(阶段1-5)

LinkLab实验&#xff08;阶段1-5&#xff09; 官网&#xff1a;http://csapp.cs.cmu.edu/3e/labs.html 实验内容 每个实验阶段&#xff08;共5个&#xff09;考察ELF文件组成与程序链接过程的不同方面知识 阶段1&#xff1a;全局变量 <-> 数据节 阶段2&#xff1a;强符…

npm安装失败;node_modules拷贝;

当前版本&#xff1a; node版本&#xff1a;12.16.3npm版本&#xff1a;6.14.4cnpm版本&#xff1a;7.1.0 npm装包失败&#xff1a; 解决办法1&#xff1a;使用cnpm淘宝镜像装包&#xff08;如果需要拷贝node_modules包&#xff0c;使用cnpm装的包会有拷贝不全丢包问题导致包…

【Java】统计字符个数

package day4; //字数统计 import java.util.Scanner;public class StringDemo3 {public static void main(String[] args) {Scanner scnew Scanner(System.in);System.out.println("请输入一个字符串");String line sc.nextLine();// 统计三种字符个数int b…

Java统计英文字母、空格、数字和其它字符的个数

Java统计英文字母、空格、数字和其它字符的个数 输入一行字符&#xff0c;分别统计出其中英文字母、空格、数字和其它字符的个数. 方法一&#xff1a; package test; import java.util.Scanner; public class Chuan {public static void main(String[] args) {Scanner scnew…

用Python统计字符串个数

1.题目 输入一行字符&#xff0c;分别统计出其中英文字母、空格、数字和其它字符的个数。 2.程序分析 利用while语句,条件为输入的字符不为’\n’. from pip._vendor.distlib.compat import raw_inputs raw_input(请输入字符串:\n) letters 0 space 0 digit 0 others …

将数字转换为字符

1.使用sprintf函数(数字可以从头开始转换) #include <stdio.h> #include <string.h>int main() {int num 0;char str[1024] {0};printf("please input num which you want to change:\n");scanf("%d",&num);sprintf(str,"%d"…

C语言 统计含有中文的字符串中的字数、 字符数和行数

输人一段含西文字符和中文字符的正文 &#xff0c;统计字数、 字符数和行数。字是指一个中文字符或一个西文字符串(由空白符分隔);字符是指一个西文字符或一个中文字 符;空白符是指空格或回车或水平制表Tab #include <stdio.h> int main() {char c;int cs 0,words0,row…