找不到合适的配图,一直以来是我对写作心存畏惧的原因之一。正所谓「一图胜千言」,很多时候写好了的文字,总差一张恰到好处的配图画龙点睛。
另一方面,中文环境下比文字版权状况更糟糕的,可能就是图片版权了。不少新媒体 / 自媒体不能恰当地引用图片并标注来源,其实累积了不小的法律风险1。
所幸少数派的大部分作者专注于软硬件分享,可以或截图、或自拍、或借用官方商业图片(毕竟通常是正面宣传,没有太大的风险),从而规避了上述问题2。
所以今天分享的内容,可能只适用于少数派了吧 : )
什么是 DALL · E?
2021年1月,致力于「用通用人工智能造福全人类」的 OpenAI 公司基于其 GPT-3 模型发布了划时代的 DALL·E,实现了从文本生成图像。
DALL·E 的弱鸡版(mini)去年 4 月公开,完全版(mega)一直拖到今年 5 月,DALL·E 2 都正式发布了3,才趁大家都在排队时偷偷放出。
所以我们在指南中建议如下策略,并在后文提供每个策略的具体步骤:
- 只是想测试看看效果,可以直接使用 Hugging Face 上的 dalle-mini;
- 需要程序化频繁调用,可以考虑在 Google Colab 部署一份私有的 mini;
- 追求更好的生成效果,有条件的同学可以尝试一下 mega。
直接使用 mini 版
- 访问 dalle-mini 模型在 Hugging Face 上的页面;
- 在文本输入框填入语句,点击 Run 运行;
- 等待 20-60s 就能看到结果了,就这么简单!
你可能会问为什么图片只有 256 x 256 这么大,抱歉忘记在上一节中说了,DALL · E 的能力就是如此设计的,二代在这方面有明显改善。如果想基于一代生成更高清的图片,可以尝试专门用于图片高清放大的 AI 模型,这里就不展开啦~
云上部署 mini 版
- 在 Google Colab 打开 DALL · E 的代码;
- 按顺序运行各代码块(如果有任何提示记得点击
run anyway
):
https://saharmor.github.io/dalle-playground/
,填入刚才的地址,在文本输入框填入描述后回车运行即可。相比 Hugging Face 上的 mini 版本,感觉 Google Colab 是「多核版」的。本地部署 mega 版
有勇气在本地(或服务器上)自己运行 mega 版的话,应该不太需要我描述具体步骤,一句话带过:从 代码仓库 clone 下来后,用 docker compose
方式运行起 backend 和 interface 即可。
我在本地跑 mega_full 时(对的,其实还有 mega_full,如果 GPU 显存够 12G 就可一试),遇到了一些问题,在此列出以便大家避坑:
- 本地 build dalle-backend image 时,特别容易因为网络问题失败,在 Dockerfile 中利用 ENV 语句加上 proxy 会好很多;
- 类似的,build dalle-interface image 时,可以在
RUN npm install
后面补上一个--registry=https://registry.npmmirror.com
; - 跑 interface 的时候可能会报 eslint 的 warning,修改一下 package.json 跳过:
- 初次启动 backend 时会从 wandb 下载模型参数,按道理应该会有一个进度条,但在我的环境中经常不予显示,这个时候可以通过检查 ~/.cache/wandb 下面的文件大小的变化来确认进程没有挂……
最后的 FAQs
DALL · E 是不是有点过时了?
从算法模型上来说是的,但它仍然是普通用户能够直接、免费体验的最先进的文本到图像生成器了。
能否再给一些生成案例?



为什么 Hugging Face 的版本有点奇怪?
本文初版发布后,我突然从社交平台上得知了一个令人震惊的事实:原来 Hugging Face 上的 DALL · E Mini(见前文「直接使用 Mini 版」一节)是一个叫 craiyon.com 的团队盗版的。
craiyon 用了一个更简单的模型(BART)搭配更少的训练数据,在 Hugging Face 上构建了一个易于体验的文本-图片生成器。从前面的案例图其实也能够看出来,craiyon 生成的牛油果椅的外形其实比较类似,远不如正版 DALL · E 那么千奇百怪。而且在一些 edge case 中,比如上面案例中的「people mountain people sea」,craiyon 的生成结果明显不如 DALL · E。
据 Hugging Face 的 CEO 说,craiyon 刚上线的第一个晚上他们的工程师一夜未睡。现在这个模型每天被大家调用数万次以上,已成为互联网上最受欢迎的 meme 生成器4。数万次调用看上去不多,但直接导致现在想直接体验 craiyon 平均需要等待 60 秒以上,而我刚开始写这篇文章时只需要 20 秒。
突然感觉本文更有价值了 : )