7

我们基于 Disco-diffusion 为 50 句中国古诗词生成了画面 (开源代码)

 2 years ago
source link: https://greatdk.com/1835.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

我们基于 Disco-diffusion 为 50 句中国古诗词生成了画面 (开源代码)

  • 五月 4, 2022

我的朋友碎瓜最近常和我讨论一些 idea,最近一个月内我们大概讨论了 40 多个 idea,有的谈得上巧妙,但大部分不是太难了,就是太无聊了。碎瓜的主业是做机器学习,于是首先搞了一台 V100 显卡的机器。做好算力准备,既是一种实际需要,也代表了一种仪式感:我们真的要搞点东西。

五一假期之后,碎瓜把 Disco-diffusion 部署在了 V100 上,并进行了一些优化,Disco-diffusion 是一个开源的基于diffusion+CLIP的深度学习模型,输入文本便能生成图像画面,并且风格可以随着输入文本改变(例如画家名字、风格名),你可以用Google Colab来玩,不过受限于机器性能,生成一张图的速度实在太慢了。碎瓜做了自己的封装和速度优化,还通过 DeepL使其支持中文文本输入,这样就可以做一些好玩的事了。

我们用了两天时间,把玩这个定制的 Disco-diffusion,将脑海中的一闪而过的画面提取出文字,然后交给 V100 去生成画面,得益于 V100 强大的算力,以及碎瓜的优化,一幅画的生成时间只需要4分钟。

我们尝试了很多很多的画面,例如:

躺在废墟中的玻璃鲸鱼,抽象画

海贼王路飞戴着草帽站在船头瞭望大海 

麦田烈日下,老人坐在巨大的水稻下乘凉

五颜六色的立方体冰块漂浮在火山的湖泊中

对于我这样脑海中画面感很强,但没有任何绘画能力的人来说,这似乎给了我一个强大的工具,我把斑斓,混乱,梦幻又离奇的许多句子输入,然后看到他们变成画面,我乐此不疲,熬到凌晨三四点,看到了许多画面诞生出来,才心满意足的去睡觉。

两天前我们聊了各自生成的画面,我发现,如果使用中国画或水彩画风格,在输入一些古诗词的时候,可以得到意想不到的好效果,例如:

 日暮苍山远,天寒白屋贫

于是我有了一个想法, 找更多古诗词,将他们全部生成画面,碎瓜也觉得这个想法有意思,于是我们连夜修改了代码,并写了一个自动脚本,然后跑了两天两夜,结果嘛,有些非常惊艳,有一些比较失败,我选了十几张张我认为还不错的,如下:

 峨眉山月半轮秋,影入平羌江水流

 
更无柳絮因风起,惟有葵花向日倾

 
古树老连石,急泉清露沙

 
横看成岭侧成峰,远近高低各不同

 
忽如一夜春风来,千树万树梨花开

 
明月松间照,清泉石上流

 
墙角数枝梅,凌寒独自开

 
鸡声茅店月,人迹板桥霜

 
黄河远上白云间,一片孤城万仞山

 
日斜江上孤帆影,草绿湖南万里情

 
山随平野尽,江入大荒流

这张不是中国画风格,因为我觉得这张效果最好

 
天街小雨润如酥,草色遥看近却无

 
无边落木萧萧下,不尽长江滚滚来

 
一道残阳铺水中,半江瑟瑟半江红

这些画面的效果,肯定还比不上真正的艺术家的作品,但是它的产出只需要四分钟的时间,并且我真心认为,其中的一些,还挺不错的。

我们从小背了那么多古诗,其中很多诗句的美,要在很多年后才能感受到,我们在脑海中想象「半江瑟瑟半江红」,「无边落木萧萧下」,「山随平野尽」,而现在,哪怕很不完美,但我们可以更直接的看到这样的画面了。

我们新建了一个 GitHub 开源项目,将这次的代码,50句古诗词的画面都放在了里面,任何有兴趣的人,都可以自行下载部署,或许你能找到你更喜欢的画面。

我们想,如果有机会,或许能做一个这样的公益平台,将中国最美的那些古诗词都拿来「图形化」一遍,大家既可以为最棒的画面投票,也可以将模型下载到自己的机器上,去自己跑一句诗,然后将图片上传,这样一来,或许我们能够看到许多曾经只能在头脑中想象的句子,变成真正的一幅画。

当然这个事情做起来也很困难,所以我们先从开源开始,所有代码,图片,素材,都可以在这个 GitHub Repo 中找到:mazzzystar/disco-diffusion-wrapper: Implementation of disco-diffusion-wrapper that could run on your own GPU with batch text input. (github.com)

这就是这个五一假期​做的事情,还不赖。​

我的微信公众号~


Fs2yqyw7f8GZBQwrAKMQ8F0Eadmk.jpg


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK