Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >根据中国古诗词作画,AI 可以做到吗?

根据中国古诗词作画,AI 可以做到吗?

作者头像
云水木石
发布于 2022-08-30 09:02:28
发布于 2022-08-30 09:02:28
1.4K00
代码可运行
举报
运行总次数:0
代码可运行

AI 作画工具 DD (Disco Diffusion)面市后,不少大神做出了惊艳的作品。玩家以外国人居多,网上的资料也是英文资料较多。现在国内也有人尝试,比如和菜头在他的「槽边往事」微信公众号就写了好几篇关于 AI 作画的文章,现在他的公众号配图也使用自己生成的图。西乔在她的「神秘的程序员们」微信公众号也写了好几篇教程,值得一看。

这段时间我也尝试了一些 AI 作画,但做出的画总是不太理想。作为一名程序员,其实我关注的并不是做出艺术性比较强的作品,而是想探索一些可能,也就是探索让 AI 做出一些比较新奇的东西出来。在「AI 能理解和表达古诗意境吗?来看看西乔用人工智能辅助创作的古风插画(第一辑)」这篇文章中,作者做出了效果非常不错的古风插画,其插画也比较贴近诗词的意境,但作者并没有说明其作画的参数,使用了怎样的提示句子(prompts)。看到这些作品后,我就在思考,能否直接根据古诗词来作画呢?

下面就说说我的尝试过程,虽然最后的结果不太满意,但过程还是值得记录一下。

DD 作为一款外国人开发的软件,并不支持中文。text prompts 必须输入英文,对于国内用户来说,可以借助谷歌翻译(或其它翻译软件),先将中文翻译成英文,然后再送给 DD。所以我首先想到的是如何将翻译功能加入到 DD 中。

搜索了一下 Python机器翻译资料,发现了 translate 这个 Python 包。translate 提供的是一种云翻译方式,集成了几家云翻译的产品,包括微软、MyMemory、LibreTranslate。但是试用下来,效果并不理想。这三家功能提供者虽然都提供了免费的使用接口,但对于调用次数、调用频次都有要求。比如我在使用 MyMemory 的云翻译功能时,就碰到开始使用得好好的,突然之间就不能翻译的情况,然后过了一段时间,有可以使用的情况。

于是我就寻找本机翻译的软件,好在随着人工智能的发展,机器翻译的质量也越来越高。经过一番搜索,找到了 Huggingface Transformers 。这款软件能够做的事情非常多,包括文本分类、文本生成、自动问答、文本翻译、自动摘要等等。这里我只用到了其中的文本翻译功能。

Huggingface Transformers 使用了一种非常开放的架构,让更多的人参与进来,并提供了许多预训练的模型下载。这样,对于普通用户而言,并不需要过多的人工智能知识,也不需要经过复杂而繁琐的模型训练,把它当做一个黑盒,集成到软件中即可。比如,我为 DD 增加的中文翻译成英文功能,就这么几行代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from transformers import AutoModelWithLMHead, AutoTokenizer, pipeline

chinese_prompts = "碧绿的莲叶无边无际,一直延伸到水天相接的远方,在阳光的照映下,荷花显得格外艳丽鲜红。"

mode_name = 'liam168/trans-opus-mt-zh-en'
model = AutoModelWithLMHead.from_pretrained(mode_name)
tokenizer = AutoTokenizer.from_pretrained(mode_name)
translation = pipeline("translation_zh_to_en", model=model, tokenizer=tokenizer)
translate_result = translation(chinese_prompts, max_length=400)
translated_text = translate_result[0]['translation_text']
print(translated_text)

在这段代码中,模型选择了 liam168/trans-opus-mt-zh-en,第一次运行的时候,会从网上下载,非常方便,当然也可以使用事先下载好的预训练模型。

要使用 Huggingface Transformers,请事先安装如下 python 包:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install transformers==4.4.2 datasets==1.6.2 sklearn scipy matplotlib torchtext seaborn spacy sentencepiece

下面看看使用古诗词创作的画:

海上生明月,天涯共此时 (The sea is full of the moon, and the world is full of it.)

枯藤老树昏鸦,小桥流水人家,古道西风瘦马,中国水墨画风格 (The old trees of the dead, the old trees of the dead, the little bridges of the water, the old wind of the past, the lean horses. China's ink-painting style.)

大漠孤烟直,长河落日圆 (The desert's straight, the river's setting sun full.)

白日依山尽,黄河入海流 (By day, by day, the yellow river flows into the ocean.)。这里 AI 似乎没有理解黄河是中国的一条河流:(

接天莲叶无穷碧,映日荷花别样红 (There's a lot of leaves in the sky, a lot of red.)

这里翻译出了一点问题,将英文翻译修改为:

The green leaves of the lotus, unbridled, extend to the distance between the water and the sky, and, in the light of the sun, the flowers look extraordinary and red.

做出的画作如下:

依据中国古诗词作画,面临着两道难题。首先是翻译到英文,可能意思相差太远,比如上面的接天莲叶无穷碧,映日荷花别样红翻译到英文,意思完全变了。其次,即使完整翻译成英文,但古诗词的意境如何表现出来,上面的接天莲叶无穷碧,映日荷花别样红这句诗,即使人工修改为比较贴近字面意思的英文,但做出来的画依然不太满意,并没有做出诗中描绘的风景。

古诗词如何翻译成现代汉语都是一个难题,更别说翻译成英文,还有很长的一段路需要走,这也需要更多的中国工程师参与其中。此外,DD 中使用的训练数据可能中国的画作比较少,我尝试在 prompts 中加入中国著名画家的名字,没有什么效果。如果是用的梵高之类的外国画家,其生成画作的风格就很像这些画家的作品。

综合试用下来,根据古诗词作画依然困难重重。AI作画的关键依然在于 prompts,需要 AI 理解人的作画意图。其实现实生活中作画,也会存在沟通的问题。接下来我会尝试一些 prompts,研究如何让 AI 能够更好的理解我的作画想法。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-06-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云水木石 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
我的 IDE 太重了,所以迁到了 Emacs
作者 | Renato Athaydes 译者 | Sambodhi 策划 | 褚杏娟 IDE(Integrated Development Environment,集成开发环境)是一种伟大的工具,可以使开发者的生活更轻松。我简直不敢想象,没有它们的工作会是什么样子。 但是,它们为我们提供的帮助并非无偿,而我也正遭受着这种后果。我使用 2019 年左右生产的、性能不佳的 MacBook Air ,在它上面运行我最喜欢的 IDE、Jetbrains 的 IntelliJ IDEA 社区版,但整个经历
深度学习与Python
2023/02/28
1.2K0
我的 IDE 太重了,所以迁到了 Emacs
科技礼品的方案,以帮助完善您的假日购物清单(Computing)
今天是“网购星期一”(Cyber Monday),今年这一节日的意义并不大,因为相关的销售自11月起一直在进行,零售商们试图尽一切可能赚取每一分利润。然而,正如大多数人一样,我也经常购物,无论是买给别人还是买给自己。
谭雪儿
2020/12/18
5990
我们离不开的 Linux 内核模块 | Linux 中国
Linux 内核今年就要满 30 岁了! 如果你像我们一样对此特别重视,那么让我们本周用几个特别的文章来庆祝 Linux。
用户8639654
2021/09/06
2.5K0
八种最常见Docker开发模式 别说你还不知道
Docker已迅速成为本人最喜欢的基础工具之一,以便构建可重复软件产品,从而带来尽可能静态的服务器环境。   我在本文中将概述我在使用Docker的过程中开始反复出现的几种模式。我不指望它们会带来多少新奇或惊喜,但希望其中一些有用,我也很想听听各位在使用Docker过程中遇到的模式。   我试用Docker的基础是保持在卷中持续的状态,那样Docker容器本身可以随意重建,而不会丢失数据(除非我改动容器状态,而不更新Docker文件(Dockerfile)的状态,而经常重建容器有助于改掉这个坏习惯)。
静一
2018/03/21
1.5K0
八种最常见Docker开发模式 别说你还不知道
开发容器:可重用的开发环境
作者 | Avdi Grimm 译者 | 明知山 策划 | 丁晓昀 拿着 Chromebook 在洗车房做开发 那天,我把车开到了洗车场。这是一个高级洗车场,你把车交给工作人员,然后等着他们把车里里外外清洗干净。 我要做的就是打发时间了。我还有一些代码要写,但当时我只有一台装在包里的小 Chromebook 和 WiFi 连接。 于是,我在 GitHub Codespaces 中打开了这个项目,然后在上次停下的地方继续,在云端运行我的开发环境。 不只是编辑器,而是整个为我的项目定制的虚拟机。
深度学习与Python
2023/04/01
1.3K0
开发容器:可重用的开发环境
作为 CEO 使用 Emacs 的两年经验之谈
两年前,我写了一篇博客,并取得了一些反响。这让我有点受宠若惊。那篇博客写的是我准备将 Emacs 作为我的主办公软件,当时我还是 CEO,现在已经是 CTO 了。现在回想起来,我发现我之前不是做程序员就是做软件架构师,而且那时我也喜欢用 Emacs 写代码。重新考虑使用 Emacs 是一次令我振奋的尝试,但我不太清楚这次行动会造成什么反响。在网上,那篇博客的评论也是褒贬不一,但是还是有数万的阅读量,所以总的来说,我写的是一个蛮有意思的题材。在 Reddit 和 HackerNews 上有些令人哭笑不得的回复,说我的手会变成鸡爪,或者说我会因白色的背景而近视。在这里我可以很高兴地回答,到目前为止并没有出现什么特别糟糕的后果,相反,我的手腕还因此变得更灵活了。还有一些人担心,说使用 Emacs 会耗费一个 CEO 的精力。把 Fugue 从一个在我家后院的灵感变成强大的产品,并有一大批忠实的顾客,我发现在做这种真正复杂之事的时候,Emacs 可以给你带来安慰。还有,我现在仍然在用白色的背景。
用户1880875
2021/09/23
5130
如何选购一部基于Linux系统的笔记本电脑(Computing)
购买基于Linux的笔记本电脑应该很容易,尤其是在大牌厂商的网站上。但事实并非如此。你必须采用变通的方法才能成功,否则就会花费更多的钱!
谭雪儿
2021/01/15
3.1K0
Linux 正在吞噬 Windows 和 Chrome OS!
Windows 10 和 Chrome OS 都采用 Linux 内核及其上运行的软件。
iMike
2020/02/21
2.7K0
笔记本如何升级硬件?
https://www.kingston.com/cn/memory/search
简单并不简单
2019/08/13
2.1K0
《稀缺》第4章 行为经济学告诉我们的道理
第4章 行为经济学告诉我们的道理 1美元的价值,在穷人眼中和富人眼中是不一样的。环境条件会影响富人对1美元的价值判断。当穷人在评估1美元的价值时,会用上大脑中内化的衡量标准,而不会依赖环境进行判断。穷人是金钱价值方面的专家,他们更接近于“经济人”。人们对货币价值的衡量是相对的,这是行为经济学中的经典结论 请想象你要花一天时间去购物,购物清单中的一样物品是DVD播放机。在一天要结束时,你在一家商店里找到了自己想要的品牌与型号,价格是100美元。这个价格还算合理,但不是你当天看到最优惠的——还有一家商店仅卖65
yeedomliu
2020/08/04
9780
2020年杰出技术产品
每年,我都会回顾当年我选择的所有本周产品,并挑选对我印象最深刻的产品,以摘取年度产品称号。
用户8078865
2020/12/25
6850
微软 Surface DUO:重新思考智能手机
https://www.technewsworld.com/story/86843.html
zstt8054929
2020/12/23
4860
python:Pandas里千万不能做的5件事
作为一个在进入数据分析领域之前干过开发的攻城狮,我看到我的同行以及新手在使用 Pandas 时会犯很多低级错误。
王图思睿
2021/06/16
1.6K0
实用的函数式编程
函数式编程 (functional programming) 正式开始有长足的发展始于 10 年前, 从那时起, 我开始看到 Scala, Clojure 和 F# 这样的语言得到关注. 这种关注并非只是像 "哇, 一个新语言, 酷!" 这样短暂的热度, 而是确实有某些实在的原因在推动着它 -- 或者至少我们是这么认为的.
用户1558438
2018/08/23
1.1K0
【杂谈】想成为机器学习学霸?先学会做笔记吧
话不多说,上标准。以下我总结了身边学编程的小哥哥们和小姐姐们对云笔记app的几类需求:
用户1508658
2019/07/28
2K0
「镁客晚报」苹果批Surface Pro很弱,然而iOS被爆比安卓更易感染病毒!
镁客网——我们关注智能硬件 1、库克批Surface Book很弱,认为微软已迷失 11月12日消息,据外媒报道,苹果CEO蒂姆·库克今天开始了他的iPad Pro宣传之旅。本周早些时候库克表示iPa
镁客网
2018/05/25
7560
MacBook Pro 为什么值得我写一篇博文——程序猿使用感悟
研究生生涯伊始,撑过大学四年的 Dell 灵越 N4050 笔记本电脑就再次罢工了,一直想换电脑的冲动终于要付诸行动了,本来准备再换一个性价比比较高的 win 系列笔记本就行了,但是让我意外的是研究生新入学后会发放奖学金....一下子换电脑的资金就富裕了,可选择的余地就更大了。对与苹果电脑的高逼格我是早就心驰神往,但比较高的售价与某些软件兼容性的顾虑一直是我购买的主要障碍,现在钱已经不是问题,剩下的就是考略兼容性以及实用性的问题了,性价比?买苹果就不要考了什么性价比了吧。
流川枫
2018/09/12
21.2K0
MacBook Pro 为什么值得我写一篇博文——程序猿使用感悟
2021DIY电脑配置入门篇(包含各cpu显卡天梯图对比)
对于电脑来说,预算是最重要的!没有预算,一切都是空谈。没预算默认外星人Area51M(价格在2万左右),现在电脑往往充当一种娱乐需求,相对来说比较次要,因此大多数人配电脑预算都不算太高,好在现在DIY市场比较平价,3000块就能装到不错的电脑了。
全栈程序员站长
2022/09/14
2.3K0
用 Python 制作各种用途的二维码
当你提到二维码时,大多数人想到的是仓库管理或产品标签等 "工业 "应用,但这篇文章在很大程度上是关于二维码的个人和社会用途。
周萝卜
2022/12/27
9780
用 Python 制作各种用途的二维码
Web正文字体发展简史
当你正在纠结选择什么样的字体大小,尤其是在您尝试适应不同的屏幕和场景时。回顾一下网页字体发展的历史变化,或许会给你一个新的视角。
ConardLi
2020/03/04
1.2K0
Web正文字体发展简史
推荐阅读
相关推荐
我的 IDE 太重了,所以迁到了 Emacs
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验