How I Used DALL·E 2 to Generate The Logo for OctoSQL
@ author:Jacob Martin
link:https://jacobmartins.com/posts/how-i-used-dalle2-to-generate-the-logo-for-octosql/
这是使用的OpenAI的DALL·E2
还有类似的一款:https://replicate.com/stability-ai/stable-diffusion
Everybody has heard about the latest cool thing™, which is DALL·E 2 (henceforth called Dall-e). A few months ago, when the first previews started, it was basically everywhere. Now, a few weeks ago, the floodgates have been opened and lots of people on the waitlist got access - that group included me.
每个人都已经听说过DALL·E 2 这个很酷的东西,它之前叫做Dall-e。几个月前,当第一版发布的时候,它就出现在了各个角落了。现在,也就是在几周前,这软件的使用得以开放,在候选者的许多人都可以使用到这个软件,其中就包括我。
I’ve spent a day playing around with it, learned some basics (like the fact that adding “artstation” to the end of your phrase automatically makes the output much better…), and generated a bunch of (even a few nice-looking) images. In other words, I was already a bit warmed up.
我花费了一天来玩弄它,学习到一些基础技巧(像可以自动在你的需求文本后面添加艺术站从而使得输出更加美观),和制作出一系列(甚至有一些很棒)的图片。换句话说,我对这个东西十分喜欢。
To add some more background, OctoSQL - an open source project I’m developing - is a CLI query tool that let’s you query multiple databases and file formats in a single SQL query. I knew for a while already that its logo should be updated, and with Dall-e arriving, I could combine the fun with the practical.
为了增加更多的背景,OctoSQL----一个我正在开发的开源项目----一个命令行请求工具,可以让你以一句简单的SQL请求语句就可以请求多个数据库和文件格式。我深知这个项目的logo应该更新了,并且通过Dall-e ,我可以将这个有趣的东西实践起来。
In practice, you’ll see that the process looks a bit like the Westworld depiction of writers creating storylines in season 4 (no worries, this is not a spoiler, but I do recommend the series if you haven’t watched it).
事实上你将会看到这个过程有点像《西部世界》里故事家创造故事线那样(别担心,这不是剧透,就算你没有看过这个,但是我还是强烈推荐这个系列)
So TLDR, here’s the logo I finally ended up with:
废话少说,这就是我最后得到的logo。
In the rest of this post you’ll see where I started, what I went through, what I learned along the way, and how it slowly evolved into the finally chosen image. I will only show the mostly happy path here. I will also only show images that were fairly ok (discarding the other 70+% that were terrible).
在接下来的文章,你将看到我从何处开始的,我经历了什么,我这段学习到了什么,并且这张图片是怎么一步步变成最终的图形样式。我这里将只会展示大部分的顺利的路径,也只会展示看起来相当不错的图片(丢弃那70%多的糟糕图像)
But first, let’s quickly describe how DALL·E 2 works. You get a bunch of free credits and you can buy more. A single credit enables you to do one of the following:
- Generate: Generate 4 images for a given phrase.
- Edit: Generate 3 images for a given phrase and original image with regions marked as transparent (either using image editing software, or using a built-in transparency drawing tool).
- Variations: Generate 3 variations based on the given image, but without providing a phrase. This means you unfortunately can’t do stuff like “give me the same entity as on the picture, but doing xyz”, unless it can be achieved by marking a region as transparent for point 2.
但是首先,让我快速描述一下DALL·2是如何工作的吧。你起初会有一些免费的积分,并且你可以购买更多这种积分。使用一个积分就可以做到下面的一个事情:
- 生成:通过给定的语段生成4张图片。
- 编辑:通过给定的语段生成3张图片和部分区域标记为透明的原始图像(使用图像编辑软件或者内置的透明度绘图软件)
- 变体:可以根据提供的图像胜场3个变体,但不提供语句。这就意味着你不能做到像"给我图片上的相同物体,但不能做xyz"这样的事情,除非它可以通过在区域上标记为第二点透明来实现。
Generating the Logo
I had a fairly specific (I thought. I was wrong though, or at least I couldn’t describe it in words well enough) idea for the logo. The name OctoSQL stems from octopus and SQL, with the idea being that an octopus has many arms and can manipulate many entities at the same time, like OctoSQL can operate on many datasources simultaneously.
我起初有一个相当明确的logo的想法(我认为我错了,或者至少我不能用语言充分把它描述出来。)OctoSQL这个名字来自于octopus和SQL,凭借这个章鱼有很多触手并且可以同时操纵多个物体的想法,就像OctoSQL可以同时操作许多数据源
So what I originally wanted to achieve was a cartoonish cute octopus juggling a bunch of databases (or entities representing databases, I decided not to use actual logos of databases).
因为我最开始想的就是以一个开爱的卡通章鱼杂耍一堆数据库(或者是一些代表数据库的实体,我决定不适用数据库的真实logo)
Well then, let’s start with a fairly straightforward phrase. You can see I’m using some “direction-setting” suffix keywords right away.
然后我们就以一句相当直接的语句开始。你可以看到我立刻使用一些”方向设置“后缀键值
A baby octopus juggling diagrams of databases, digital art, cartoon, drawing
一个章鱼宝宝耍弄数据库、数据图、卡通、绘画的图标
That first one actually looks quite cool. Let’s do a few variations around it.
第一个看起来很酷,让我们在此基础上做一些变化
Nice! It does look cartoonish, even if I would prefer them to have a bit more depth. However, the main issue is that these octopi (the quite beautiful plural form of “octopus”) are holding charts. OctoSQL doesn’t deal with charts, it deals with data. This could give a false promise about what is possible with OctoSQL.
很棒!它确实看起来是卡通的,即使我想更偏爱它们一点。然而,主要问题是这些章鱼octopi(octopus的相当美丽的复数形式)在举着这些图表。OctoSQL不处理图表,它处理数据。这可能会给QctoSQL可能做的事情造成一个错误的迹象
Back to the drawing - or shall I say, phrasing - board, then. Let’s add some abstract shapes for the octopus to hold.
回到图纸,或者我应该说输入文本框。然后,添加一些章鱼举着的一些抽象的图形吧。
A baby octopus juggling diagrams of databases, arm wrapped around one cube, digital art, cartoon, drawing
That looks quite cool, not what I want really, but quite cool nonetheless. But maybe we can experiment with drawing styles?
这看起来很酷,但不是我想要的。但却是很酷。但是我们可以尝试绘画样式。
A baby octopus juggling 3d shapes representing databases, arm wrapped around one cube, streams of data passing through the cubes, digital art, cartoon, drawing, logo, simple shapes
Simple shapes disqualified.
Let’s try a few more.
简单的图像被舍弃掉了,来试试更多
Ok, maybe we can go back to the original approach, but simplify? Let’s use shapes instead of databases and maybe add some quality-improving tags.
或许哦我们可以回到原始的解决方法,但是简化?使用一些图像而非数据库并且可能添加一些提高质量的标签
A baby octopus juggling 3d shapes like cubes and spheres, digital art, cartoon, artstation
Quality-wise? Not bad. As a logo? Not really.
Let’s try pencil sketches one more time.
质量?不错。作为logo?还不行
再一次试试铅笔的素描
A baby octopus playing with diagrams of databases, data records, and 3d shapes like cubes and spheres, digital art, cartoon, drawing, pencil sketch
That looks nice! But variations didn’t yield anything breathtaking.
How about we try to use something even more abstract? Like streams of data? And add “logo”?
和看起来就很棒了!但是这些变化并没有做出来任何惊人的东西
那么我们产生过hi使用一些会更加抽象的东西怎么样?就像数据流?并且添加logo
Baby octopus playing with streams of data, logo, digital art, drawing
That was worth it just for the fun of it. But it’s not really usable. Maybe I’m asking for too much? Let’s do a simple octopus, without the data bit.
为了娱乐很值得这样去做。但这样不真正的有用。可能我精益求精了。那就做一个简单的章鱼,没有数据位
Baby octopus, logo, digital art, drawing
Those do have their charm! Let’s try to edit them and add some stuff into their arms! Like data streams, data records, 3d shapes, and - the name of which I just learned, but which we’ve all seen in all kinds of diagrams - blue data storage cylinders.
这些确实惊叹于它们的魅力!(这些小东西真有趣)。尝试去编辑他们并且在他们的触手上添加一些东西!例如数据流,数据记录,3d图像,和我刚刚学会的名字,但是我们看到的都是各种图表----蓝色的数据存储柱
Each time I’ve marked a part of the image to be replaced and let Dall-e do its thing.
Those were fine, but I decided to do another try without the bells and whistles, but with the “logo” tag.
每次我已经标记好一部分要被替代的图像并让Dall-e去完成。这些都很棒,但是我决定再做一次没有花里胡哨的尝试,以logo这个标签
Baby octopus, logo, digital art, drawing
And this one actually led to an epiphany! Logos will often have a background. This dark background circle was what I needed. It will also force Dall-e to mostly stay in the confines of it (and not draw on the whole available space).
Trying a basic phrase we already get some nice logos!
这次我顿悟了!logo经常有一个背景。这个黑色的原型背景是我所需要的。这也会强制Dall-e最大程度上在这个界限内。(并且没有在整个可利用的地方进行绘画)
试试一个基础的语句我们已经得到的很棒的logos
Baby octopus, logo, digital art, drawing, in a dark circle as the background
… and they’re nicely confined to a space in the center, which is very useful for a logo.
Now maybe we can try to add some entities for the octopus to play with.
……他们确实被限制在了中心的区域,这就对logo很很有用
可能现在我们可以尝试添加一些章鱼玩弄的实体了
But those are a bunch of dangerously-looking octopi. I used “baby” to get something a tad more adorable.
但是这些是一堆看上去比较危险的章鱼。我使用baby就是得到一些可爱的东西
So lets try to turn up the cuteness factor:
因此调高一些可爱的因素:
Cute baby octopus playing with cubes, logo, digital art, drawing, in a dark circle as the background
Much better! Could we add even more of it? Why, yes!
更好啦!我们可以增加更多的东西嘛?为什么?当然可以!
Cute baby octopus playing with cubes, logo, digital art, drawing, in a dark circle as the background, vibrant, cheerful, bubbles
Doing a chain of variations based on it, I got one nice octopus, one psycho, and a bunch of app icons.
在它上面做了一些列的变化之后,我得到一个很棒的章鱼,一个精神分裂者,和一些app图标
Not really a great direction. Maybe we can edit the original to fit our needs. Right now its very playful. However, OctoSQL is meant for some serious data munching and the logo should reflect that. And really, I can’t think of anything that would inspire more confidence than a yellow safety helmet (obviously; honestly, I can, but a helmet looks good on a logo), so let’s try to add that!
Dragging the transparency brush over the top of its head, and providing the following phrase:
事实上不是一个好方向。可能我们可以编辑原件来满足我们的需求。现在它就很好玩。然而OctoSQL是以一个用来处理严谨数据的并且logo应该反映出来这点。事实上,我想不到任何可以比一个黄色安全头盔更加刺激信任感的东西。(明显,真诚。一个头盔在logo看起来很棒)所以尝试去添加它
将透明画笔拖到其头顶上,并且提供如下的语句:
Cute baby octopus playing with cubes wearing a yellow safety helmet, logo, digital art, drawing, in a dark circle as the background, vibrant, cheerful, bubbles
we get some nice results!
我们就得到了一些很棒的结果!
Those are actually really good.
Then I went on a slight detour, trying to generate octopi with helmets right away (and variations based on them). Even though it didn’t lead to anything useful, the cuteness of the resulting octopi is just heartwarming, so I’m leaving them here for you to enjoy. Also, there’s one more plain octopus playing with cubes which I didn’t use but looked very nice.
这些看起来真的很棒。
然后我稍微绕了一圈,立刻尝试用头盔生成章鱼(和一些基于他们的变体)。尽管它没有得到一些有用的东西,但是生成的章鱼的可爱十只是令人心动,所以我把他们放在这里只是为了对让读者为之一笑的。除此之外,还有一个普通的章鱼玩弄我没有使用过的立方体但是却看起来很可爱
And then I thought, maybe cubes, data records, databases and blue data storage cylinders just aren’t something that octopi are used to playing with? How about something more natural, like mussels?
然后我转念一想,可能立方体,数据记录,数据库和蓝色的数据存储圆筒不是章鱼适合玩弄的。那一些更加自然的东西像贝壳怎么样?
Cute baby octopus playing with mussels, logo, digital art, drawing, in a dark circle as the background, vibrant, cheerful, bubbles
This one really got me. Good size, quite cute, actually mostly correct (not too many artifacts) and the mussels look nice.
这可就深得我心,大小适合,很可爱,事实上大部分都是十分正确(没有太多的人工产品)并且贻贝看起来很棒
So then I edited in a helmet, and then edited a side of the helmet to fix an artifact.
所以我在编辑一个头盔,然后在有头盔的一侧编辑了一个假象使得章鱼与头盔不那么突兀
Cute baby octopus playing with mussels wearing a yellow safety helmet, logo, digital art, drawing, in a dark circle as the background, vibrant, cheerful, bubbles
Fixed! Coming back to those mussels. They look cute, but seen from far away they are just too many, too small. Moreover, it doesn’t really get the original message across. Let’s try to replace them with some “3d shapes” by drawing over the tentacles and adding back “playing with 3d shapes”.
修复的效果很棒!回到这些贻贝,他们看起来可爱,但是从远处看,他们太多了,太小了。除此之外,它事实上没有传达原始的信息。尝试用一些3D形状替换他们通过在触手上画3D图像并且添加回”playing with 3d shapes“
I really liked the first one, but the rightermost sphere is just way too big. And maybe we could add a different shape than a sphere? Anyhow, let’s just paint over it and see if “3d shapes like cubes and spheres” gets us something nice.
我非常喜欢第一个,但是最右边的贻贝又太大。并且我们可能添加一个与球体不同的图像?不管怎样,把它画出来看是否像立体或者球体的3d图像能不能让我们的图像更棒。
And as you saw in the beginning, the middle one won. That sphere in a cube looks intriguing, the octopus is manipulting a few objects, it’s very logo-shaped, it’s fairly cute, it inspires (some) confidence, and doesn’t have any tiny elements, so looks good at a distance.
Having generated this, I used Procreate to make the background transparent, resize the image to be slightly smaller and make the bubble with the octopus occupy the whole image, leading to this - previously shown - result.
正如你在开头所看到的,中间的这个赢了。立方体内的球体看起来更加有趣。章鱼正在操纵一些物体。这就很像logo,相当可爱,它开极其信任感,并且没有任何细小的元素,远距离看也不错。
生成这个图像之后,我使用Procreate使得背景变得透明,重置图片的大小使得稍微小一点并且使得包裹章鱼的旗袍占据整个图像,最终成为先前展示的那样的结果。
Finally, I did a bunch of Google reverse image searches for it. You know, just to be sure.
To be completely honest, I would prefer something slightly simpler with less complex shapes, but I failed to persuade Dall-e into generating that for me. Moreover, I really am content with this logo.
最终,我做了一堆谷歌反向图像搜索。你知道,只是去确保(自己有没有侵权)
实话说,我更喜欢稍微简单,少复杂图形的图像,但是我未能使用Dall-e生成那种我想要的图像。此外,我对这个logo很满意
Conclusion
All in all, it was a fun journey. The end result isn’t ideal, but I’m very happy with it. As far as Dall-e goes, I think right now it’s still very much in a “first iteration” phase for most bits and purposes (the main exception being pencil sketches, those are mind-blowingly good). Artists don’t have anything to worry about for now in my opinion (quite similarly to how it is with Copilot) - stock photo websites on the other hand…
To prove my point regarding pencil sketches, look at this
总之,这是一趟有趣的旅行。最后的结果不是理想的。但是我对其很满意。就Dall-e而言,我认为现在对于大多数为和目的而言它依旧处于在第一迭代期阶段(主要的例外就是铅笔素描,这些都是非常好的)。依我之见,艺术家没必要担心。(与Copilot类似)在另一方面,库存照片网站……
为了证明我关于铅笔素描的观点,请看这个:
A mouse teaching other mice data visualization on a whiteboard, digital art, pencil sketch, cute
That’s just the ideal kind of content for illustrating presentations, articles or books, and the results have been much more consistent than with other tags.
From a monetary perspective, I’ve spent 30 bucks for the whole thing (in the end I was generating 2-3 edits/variations per minute). In other words, not too much.
Though I think the real breakthrough will come when Dall-e gets 10-100x cheaper (and faster). I would then envision the following process of working with it (which is really just an optimization on top of what I’ve been doing now):
- You write a phrase.
- You are shown a hundred pictures for that phrase, preferably from very different regions of the latent space.
- You select the ones best matching what you want.
- Go back to 2, 4-5 times, getting better results every time.
- Now you can write a phrase for what you would like to change (edit) and the original image would be used as the baseline. Go back to 2 until happy.
Thanks for reading!
这只是理想的用来阐述文稿文章和书的内容。并且结果与其他标签十分一致。
从经济角度来看,我已经花费了30美元买了整个东西(最后我每分钟生成2-3个编辑或者变体)。换句话说,不要那么多。
尽管我认为当Dall-e 变得10-100倍便宜(更快)的时候,它的突破就会到来。我想象未来它的工作过程。(只是对于我现在所做的事情的一种优化)
- 你输入一句话
- 你会看到一百张也有关于你输入的那句话的图片,最好来自在不同的潜在空间
- 你选择你长你最想要的
- 回环2,4-5次,得到最佳结果
- 现在你可以写一句话你想编辑的和初始图像作为基本线。回到第二步直到满意
感谢阅读!