Reading view

There are new articles available, click to refresh the page.

「不存在」的「写真」

这组照片我发给太太看,问她「像不像我?」
她问「是你自己拍的吗?」

没有,没有一张是实拍的。
全部都是 AI 生成的。

我提供了五张照片给它,然后描述了一些简单的要求,他给我「拍摄」了这些照片。当然,抽卡还是要抽的。但是,主要集中在审美层面的选择上,或者是,有点儿不太像。最后选的这几张,儿子也觉得像,唯一的例外是觉得侧身背影的气质不像我。但哪里不像,他也说不清楚。

语言是关于思维的。写真是把真用光线记录下来,但这些图片都没有真实存在过,还算写真吗?照片是把影像照射在感光底片上的画面,印在纸片上,可没有存在过的光线和场景还算照片吗?这是文字游戏,也是思想实验。

眼见不为实的时代里,什么才是真实?

鼓钥匙:小樱魔杖

之前给朋友做过一款赛尔达大师之剑的鼓钥匙,发出来以后陆续收到不少私信问能不能定制其他款式。

说实话,鼓钥匙这个形态它还是限制比较多的。因为要跟架子鼓本身的结构配合,所以很多造型没有办法做。

这一把小樱的钥匙,磨磨蹭蹭也做了将近三个月。当然,并不是说做这把钥匙需要花那么长时间,只是因为我是用身体状态正常的间隙时间,抽空一点一点弄的。当中也测试验证了很多轮不同的结构、拆件和打印方式,最终才找到了一个比较合适的方案。回头我再整理一下过程,发出来给大家看看。

我有 AMS 也不是说不能一体打印,但一体打印的话,由于打印本身的工艺限制,在 Z 轴的方向是比较脆弱的,所以在拧的时候稍不注意就会拧断。因此在设计结构的时候也尝试了蛮多种思路,最后这一版算是把结构强度跟外观质感平衡得还算满意的了。

这次尝试用 nano banana 做了两张效果图,就是粉红沙滩那两张。其实很简单,就是先拍摄实物的定妆照,再放进去修改背景和光线。效果确实相当好,省了不少事!

被时间拉长的人

丢了一批人物标签给 AI 写人物小传,让它模仿某位小说家的笔法,来给演员交代角色。

你觉得这像谁的手笔?

————

南方的空气里常常有潮湿的味道,像是雨下过以后残留的影子,久久不散。城市白天拥挤喧嚣,夜晚却显得空旷,好像光亮突然被抽走,留下无数未完的句子。在这样的环境里,一个男人行走。他的脚步从不急躁,像对时间有着自己的节奏感,和别人不太一样。

年少的时候,他把自己交给了工业设计。形状、光影、比例,这些东西比人群更让他安心。六年在公司,十年在创业,那些日子像一张张被翻阅过的旧画册,色彩褪去了,但线条还在。产品的生与死,像车站里人群的来去。大多数人只看见成功或失败,他却更在意其中被忽略的细节。

别人眼中的他冷静得过分,总是习惯提前几步想好方向,就像棋局上的布局。但在那层冷静的外壳下,常常闪现一些不合逻辑的柔软时刻。比如一段旋律,随便一盏灯的影子,甚至一个不经意的眼神,足以让他停下手里的笔。理性和浪漫在心里不停打架,谁也没有赢过谁。

他知道自己带着黑暗生活。抑郁的日子像一条看不见的走廊,没有尽头。他学会了靠药物维持稳定,像有人随身带着一块怀表,偶尔瞥一眼,提醒自己仍然存在。那段经历让他对痛苦格外敏感,也让他在与人相处时多了一层隐秘的温柔。他不会轻易表现出来,但在内心深处,对别人的脆弱始终心知肚明。

夜晚经常独自坐在桌前,电脑屏幕的光照在脸上,桌上散落着草图和未完成的文字。那些想法有时像城市里的霓虹一样闪烁不定,无法全部抓住。他清楚其中大部分不会被记住,就像梦醒时遗落的片段。但仍旧一遍一遍画下去,像一种执念,也像是一种呼吸。

在喧闹的城市里,他习惯保持慢半拍的步伐。人群汹涌,他的节奏却像潜水时的心跳,缓慢、克制,不慌不忙。他看似与周围保持着距离,其实心里始终怀有一种模糊的渴望——不是要成为谁,也不是要得到什么,而是想在梦与现实之间找到某种入口。梦与梦之间,总有裂缝。裂缝里偶尔透进光。

对很多人来说,他是个不好接近的人。但真正靠近以后会发现,那些冷漠与安静只是表层,像水面下覆盖着的冰。深处的水仍然温热,流动着。理性、浪漫、痛苦和温柔同时存在,没有谁能完全把它们分开。

这样的人物,像一个在现实里造梦的旅人。他的路从不喧哗,却留下清晰的痕迹。

(*正文及标题均由 AI 完成)

红伞伞白杆杆

“红伞伞白杆杆,吃完一起躺板板”

别人都在用 AI 做各式各样的美少女…
我却用 AI 养蘑菇 🤣 而且是毒蘑菇!

上面照片里的模型,是我用 Tirpo AI 文生 3D 后,下载到本地再在 Rhino 里针对打印调整过部分结构所得到的。打印的耗材就是拓竹官方的 PLA 红色,然后再用儿子的儿童马克笔上色。因为是水性颜料,所以来来回回上了好几道,但幸好效果还可以。

我开始还觉得画得挺潦草,但私下给几波互相不认识的朋友看过后,都觉得不错,尤其是其中一位还是常年在一线亲自做手板的老设计师,我才觉得这值得记录一下。不过我还是觉得,因为这个形体细节足够多,所以稍微涂涂色就看着还行,真要是简练一些的造型,拿笔涂我大概是涂不好的 😭😄

但社区里别人分享的 AI 美少女,做出来呢,也还行… 只要别细看结构 🤫 什么四根手指啊、三根绥带啊、两端对不齐的签子啊… 其实咋一看的效果也确实足够好了,毕竟是虚构的漫画角色,你说头身比例奇怪,好像也是合理范围内。

有个朋友说可以做个奇幻精怪故事集,嗯,我觉得这是个有意思的主题!我先摸索一下工作流,说不定可以跟 3DFiti 结合一起玩。

我用 ChatGPT 和 Midjourney 剪掉了蓄满四年的长发

这是我蓄满了四年的长发,原本是打算捐给金丝带的,但我决定放弃了。

一来,捐赠的人太多了,不缺我这一个,它不需要我;

二是,这个活动太热门了,报不上名,我不喜欢凑热闹;

于是,我心里很快就决定了:剪掉,并且要烫卷、染发!

在音乐教室里,筱烨、阿吉和秋秋在上课,我就在旁边用 ChatGPT 写 Prompt,写完之后就丢给 Midjourney 去生成效果图。遇到不满意的,就丢两张我以前的半长发的照片上去,再调整 Prompt 的细节,接着画。

最后,我把这张效果图发给发型师:

虽然这脸型偏硬了,不怎么像我,但这个头发感觉是我想要的。

曲线、松软、紫色挂耳

确定方案之后就直接约时间,一方面要约发型师的时间,他很好约,就在楼下,我随时过去随时可以做;但另一方面,要约收头发的师傅过来,需要由他根据长度把我的头发抽出来。这也是我第一次卖头发,挺新鲜的体验。

首先,我要跟发型师和收头发的师傅一起商量,怎么剪、剪多少、剪到哪里、用什么方法剪。我原本以为就是咔嚓一刀剪了,但其实不是。整个过程里,这位师傅需要非常仔细地把我头发中最长的部份找出来,每次只挑选一小撮,然后用剃刀在距离头皮大约 8-10cm 的位置一点点把头发切断。这样做的目的是,即确保剪下来的头发是满足他收头发的需求,也能确保给发型师留有后续足够的操作空间,还得让头发之间的层次能自然地衔接上。

每次剪下一小撮头发后,他都会仔仔细细地把头发梳几遍,确保没有任何打结,然后放在准备好的毛巾上,平放着。剪之前还特意要把周围的风扇都关掉,万一吹乱了,这些头发都全都没用了。他就这么一遍一遍地重复捏一小撮、切下来、梳顺、平放,如此反复了半个多小时,才终于从我头上抽出来两把共 59g 的长发。

然后就是烫卷和染发。

之所以想这样折腾一下,多少有一点破罐子破摔的心态在,觉得既然这头长发不被需要了,那也就放过自己,不要再被「这件事」困住了,索性趁着这个机会来尝试一下之前没折腾过的事情!

其实我 17 年前也染过一次发,但那时候是因为演《暗恋桃花源》的老导演,为了贴近角色的年龄感,我就去染了一头白发。只不过那个白发染得不成功,黄黄的,加上那会儿我比较消瘦,自己觉得不好看,所以演出结束的第二天我就去剃光头了。所以那次严格来说我不觉得是一次正经的染发体验,毕竟没有顶着这头黄毛生活,勉强能算一次临时的体验。

我当然知道它会掉色,会变成黄毛,会干、会毛躁。

但这不重要,因为我就想试一试。

我紧绷了三十多年,现在崩断了,还不能讨好一下自己,玩一玩吗?玩!

不仅要玩,还要玩得不一样,用 AI 一起玩!

为什么是紫色?因为我喜欢!

虽然我也喜欢绿色,但我也不想染成绿色 😂

朋友说像杨千嬅,像极速拍档的小乔,那也挺好。

最近两周我忽然意识到,我是会因为自己感觉到快乐而感到羞耻的。这是从小根深蒂固的想法。过去我知道,如果我遇到一件好事,一件开心的事,就会有一个声音在警告自己不要乐,不要得意,不要喜形于色,要收起来,不然马上就会招来不幸和倒霉。但我一直认为这是克制和谨慎,是对于能量守恒定律的迷信式的执念,觉得这会儿开心了以后就没有了。

可是,为什么要把开心攒到以后呢?有没有以后都不知道。

筱烨说我的动力来自恐惧,确实,我总有各种恐惧在周围,挥之不去。

但现在我看见它了!我要让我的快乐活过来!我不要快乐羞耻!

尽管我现在还没有什么活力,但起码这个紫色能令我舒服好一阵子!

最后再看一眼,这头蓄了四年的长发和发髻。

我很喜欢这根石纹簪,但我感觉我应该不会再束成这个样子了。

这天色真好。

蒸馏认知

有两种方式「通晓一切」:

1、穷具并知晓每一种可能性;
2、找到底层原理后高效推理。

定理:
1、海量数据和滔天算力是不持久的;
2、通用性和低能耗是持久的。

推论:
任何人工智能都需要蒸馏出「认知」才能活下去。

前提:
本地且联网的传感器

审美鄙视链,争乜_7.ylog

“Design is not just what it looks like and feels like. Design is how it works.”

—-Steve Jobs

这里面的 “how it works” 不仅仅是关于人如何使用它,也同样意味着,这件东西本身是如何运作的,以及这件事情、这个世界是如何运作的。“how it works” 意味着「真」。

|相关阅读|

从《骄阳伴我》看职场新手如何进阶成创意大拿

艺术可以糊弄,体力劳作也是高级智能

這夜風正涼 𝄇 就用五首詩與本命年訣別吧!

乌云 枪声 怪物

|相关链接|

若你所使用的播客客户端未能完整显示插图,或遇网络问题未能正常播放,请访问:

荒野楼阁 WildloG 的地址:https://suithink.me/zlink/podcast/

阅读设计相关的各类文章:https://suithink.me/zlink/idea/

|其他社交网络媒体|

苏志斌 @ 知乎|SUiTHiNK @ 即刻 / 微博

苏志斌SUiTHiNK @ Bilibili / YouTube / 小红书

|联络邮箱|

suithink.su@gmail.com

欢迎在 小宇宙、Spotify、YouTube、Apple Podcast 收听本节目,期待你的留言。

播客的收听数据似乎很符合我的期待

其实有点出乎我意料,除了 Apple Vision Pro 那期,最受欢迎的居然是聊《九龙城寨》和《暗恋桃花源》的这两期。而且,刚发的《谈判专家》这期的收听量也在稳定上涨。聊 AI 那期尽管内容很多,但收听量比这些都少得多。

从博客后台数据能看到,最近一周的主要收听量中,三分之二都来自这三期聊戏聊剧的节目。

我原本以为,收听我节目的主要人群,是过去在知乎和 B站看我讲设计的读者和观众。

这么看下来,我有一个猜测:收听我播客的人群当中,有很大一部分比例,可能是此前并不认识我的路人,他们对科技类话题的兴趣,没有对娱乐类型的话题高。

挺好的,这也挺符合我最初对播客的预期,这样我就可以不用老聊设计和产品了!

荒野楼阁 WildloG:https://suithink.me/zlink/podcast/

小宇宙: https://suithink.podcast.xyz

Spotify:荒野楼阁 WildloG

YouTube:荒野楼阁 WildloG

Apple Podcast 在中国大陆地区目前只支持通过 URL 订阅:

https://suithink.me/category/podcast/feed/

偏见和缺陷是创作的灵药:人类和 Ai 有什么区别_3.ylog

无论你对 Ai 秉持怎样的态度和观点,都希望这期节目能给你带去一些思维激荡的时刻。作为工业设计师,我认为,如果不时常忏悔,不为自己做的东西(无论是否在自己的意志下,通常都不在)对这个世界造成的影响抱有歉意,这样的人很容易成为误以为自己是夜神月的弥海砂。

这是一期需要配图食用的播客,从近期一组以「戏剧感」为创作目标的十二生肖聊起,关于 Ai 创作的评价和人类作品之间的区别,谈到如何在这个 AIGC 爆发的时代下找到自己的位置。

创作者的骄傲和创作者的骄傲,是南辕北辙的两件事。

在这一期,你会听到:

—— 什么样的作品是有「人味儿」的?

——「偏见」和「缺陷」是艺术创作的灵药?

—— 为什么 Ai 会在创作领域疯狂爆发?

—— 现当代艺术常被人诟病的原因之一:抽象

—— 细节!什么是令人信服的细节?

—— 这些 Ai 正在拓宽我的眼界;

—— 人不能创造出自己从未见过的东西,吗?

—— 设计不是天马行空地想象,它是一种「劳作」;

—— 超人的诞生;

—— 超人的洞察和创新,与人类无关;

—— 能耗、模型与错觉;

—— 涌现、艺术与创新;

—— 马车夫的工作经验如何平移到汽车司机?

—— 选择 AIGC 工具的基本思路;

—— 向藻类致敬!

|相关图片|

—- 十二生肖系列中的兔、马、猴,完整图集和介绍 见链接

—-《城堡下的人群》(参考马列维奇的风格)

—- 毫无表达意图的随手测试图

—- 似是而非的剃须刀设计图

—- 汽车设计草图的测试

|相关阅读|

—- 十二生肖·Midjourney·戏剧角色设计

—- 描觀念 繪感受|超微型 AI 觀念畫展

—- 艺术可以糊弄,体力劳作也是高级智能

—- 表达的精度就是人类外延的尺度

—- 镜头的变幻就是故事

|登场人物|

苏志斌:工业设计师,智能硬件产品经理,《设以观复》作者

|相关链接|

若你所使用的播客客户端未能完整显示插图,或遇网络问题未能正常播放,请访问:

荒野楼阁 WildloG 的地址:https://suithink.me/zlink/podcast/

阅读设计相关的各类文章:https://suithink.me/zlink/idea/

|其他社交网络媒体|

苏志斌 @ 知乎|SUiTHiNK @ 即刻 / 微博

苏志斌SUiTHiNK @ Bilibili / YouTube / 小红书

|联络邮箱|

suithink.su@gmail.com

欢迎在 小宇宙、Spotify、YouTube、Apple Podcast 收听本节目,期待你的留言。

💾

让 MJ 学我画两张小画儿

昨晚吃饭前跟儿子一起画画,我随便画了一下我们在 Minecarft 里的第二个家,和随便画的一个岩浆包围的高堡:

后来想说看看 Midjourney 能模仿成怎么程度,就丢进去试了一下:

emmm,画得还行……

就是画风不太相关,它有它的训练痕迹,哈哈哈哈哈哈哈~

测试所使用的 prompt:

Tree house, jungle, rainforest, simple little house –sref+空格+两张手绘图的地址 –ar 9:16 –s 50 –v 6.0 –style raw

艺术可以糊弄,体力劳作也是高级智能

昨天发现 AAAny 更新了发图的功能,于是就顺势发起了一个讨论 AIGC 的话题

轶轩在话题下问我为什么对外发表的图都是一些细节比较丰富的类型,是否有基于 AIGC 的生成方式而做的一些突破方向的尝试。我觉得,针对这个问题,我可以在对他的回复上,再做一期视频来谈一谈我的观点。

用于风格参考的马列维奇的画作
基于马列维奇而生成的《城堡下的人群》

但与此同时,我也想做一些「简练」或「抽象」的图来辅助说明我的看法。于是,今天在工作之余,用一些碎片时间,做了一些图出来。

对此,我尝试比较随意地做了一些「东西」。它们都没有什么明确的「表达」,仅仅只是我随手写的一些 prompt,或者就是在 Midjourney 的社区里复制修改的 prompt,最终出来的东西都是一眼看上去有一些「意境」或者没那么精致细节的但表现比较能唬住人的图像。

你会发现,在这些人类认为偏「抽象」的表达上,AI 反而是比较容易做「好」的。

但是,这种好不是真的好,只是这些风格上,并不需要对细节有很认真的考据,在表现层面上是非常容易「糊弄」的。

这也是现当代艺术作品常常被人诟病的原因之一,因为那些作品浓缩了大量的思考和抽象提炼,但表现形式上,其实并没有比传统艺术更复杂,或更需要技艺和体力上的付出。也就是说,作为当代艺术最核心的「观念」,在完全不需要理解的情况下,一个外行的人或者一个数据量管够的 AI 就可以模仿出「看上去像那么回事」的东西。这种模棱两可的状态,恰恰是江湖神棍和 AIGC 擅长处理的对象。

这里说的「糊弄」「神棍」并非贬义,而是借着世俗的话语体系来表达,这样的「生成作品」并不需要 AI 具备「意识」和「创意」也可以轻松地实现。

那么,什么东西是更难的呢?

细节,是令人信服的细节。

这些是我用 AI 生成的男士剃须刀的设计方案。

你会发现,这些方案咋一看是那么回事,但只要你多看两秒,立刻就会意识到它不对。它们的空间关系、形态的处理、物理交互的关系、电子器件的布局,通通都有很大的问题。这些就是不可信的细节。

因为 AI 实际上并不理解它学习的那些图像。

这些令人信服的关键点,是无法糊弄的。因为它们当中包含了大量精确的思考和训练,也包含了海量的脑力和体力劳动,如果一个「智能体」不理解一个图像背后的复杂逻辑,那么它就没有办法真正地创作出这个对象。它只能模仿,只要模仿得足够像,就可以唬住外行。但是对于以此为生的从业者,这样的智能工具,还不足以成为生产力。设计师可以用这样的工具拓展自己的思维,但这些过程并不能替代设计行为。

从创意到落地,中间还有漫长的路需要人类设计师去走完。

现阶段,更适合工业设计使用 AIGC 的方式是这样:

我的意思并不是让 AI 画手绘图,这仅仅是一种表现方式。但是,这是一种不需要追求精确的表达方式,很适合 AI 用「抽卡」的方式来快速堆想法。除了这种,当然也可以让它生成上面剃须刀那样的图,但同样的,目的不在于出方案,而是借助 AI 的海量数据库,快速地堆出一批发散性思维的「胡编乱造」的混杂图像来。

人类的视野有限,但 AI 看得一定比人类个体的平均值多。

工业设计不是天马行空地想象,它是一种「劳作」。

从初期的构思,从草图推延到模型和效果图,再从设计方案导入结构设计和工艺、制程,这意味着工业设计不是一项纯脑力劳动,不是一种只运行在计算机里的行为。它包含的体力劳作同样是设计的一部份,甚至可以说,是更关键的那部份。这种体力劳作,不仅仅是肌肉和工具的配合,更是人脑对环境、事件、社会群体、物质的反应和处理,设计师的动作意味着这个人对世界的认知。这种程度的认知,对于只运行在计算机内,仍然缺少复杂的传感器和理解过程的 AI 而言,暂时还是无法实现的。

我当然相信它未来会具备这样的能力,但是在目前的技术条件下,依然需要大量的人类来完成这些真正代表了「智能」的「体力劳作」。

欢迎加入我们的讨论:

https://aaany.app/aaa/ltwu3txza

想注册体验 AAAny 的话,请给我留言

我会给你留言的邮箱发送注册邀请码

苹果停车转 AI 将引发人才大震荡

1、没有 AI 的汽车、手机、电脑、平板等,将是一堆废铁;

2、一家公司的核心战略不能同时放在两个大方向上。

综上,停下造车全攻 AI 是非常明智的。

连键盘侠都知道「不难」的造车,没造出来不是造不出来,是制定的目标太远太高。苹果之前想一步到位搞出 L4 的移动座舱,但现阶段的人类还没有办法,这太难了。在他们之前的设想中,自动驾驶的汽车和 Apple Vision Pro 是可以放在同一个场景里的。但很显然,这个步子太大了。用新势力们的方式当然可以,但那不是苹果想做的。

最关键的是,AI 的大爆发是此前大家都没料到的。没有这事儿,车还是一个重要的方向,但这一波爆发的 AI 不是资本热潮,而是实打实的浪潮了,此时不全力转向,是真的会死的。况且苹果并不是没有在 AI 上投入的,这些年一直都在积累,只是权重还没拉到那么高。现在切方向,即是大势所趋的必须,也是归拢资源的必要。

过去 Jony 可以对供应商说,这里有一桶取不完的钱,你能做到你就能拿走,以此把工业设计拉高到一个令人望尘莫及的程度;今天的苹果比二十年前拥有更多的现金,有自己的芯片和庞大的人才库,有海量的设备和训练数据,可以说:

比起造车,AI 才是更适合苹果干的事;

干好 AI 所需的人才、数据、算力,也是他们的优势。

以苹果的财力,下这样的决心,恐怕要出现一次人才流动的大震荡。

原文发布于知乎提问:

苹果取消探索十年之久的电动汽车项目,将团队转向生成式 AI,原因有哪些?会带来哪些影响?

记录一次 AIGC Hackathon 参赛经历和收获

AIGC Hackathon 主题海报,由公司品牌设计师陶老师和 Stable Diffusion 的共同创作

公司在 5 月上旬的时候举办了一场 AIGC Hackathon 比赛,鼓励内部员工基于公司相关业务,利用 AI 技术进行创作,重塑生产力。

这么有意思的活动我当然也要掺一脚,在同事的怂恿和牵线之下,召集到了另一位设计师,以及一位研发大佬。所以加上我总共是 3 个人,2 个设计,1 个研发。但是严格来说应该是 1.5 个设计,1.5 个研发。因为我会参与到前端界面的实现,这也是我想参与这次活动的其中一个主要原因。

先放上我们开发的小工具的最终效果,其实是通过提前录入 SQL 语句规则,然后用自然语言询问 AI,让 AI 帮忙生成一个可用的 SQL 语句:

过程

想法

因为当前我们公司的业务是研发管理平台,所以我想到能通过 AI 帮助我们的主要是提高效率,减少出错,诸如此类的方向。

尤其是我在刚来到公司的时候有一段时间给我学习体验公司产品。中途就看到有个地方生成图表的话,可以选择各种筛选条件,也能用 SQL 来快速筛选,当时我就觉得如果用 SQL 来筛选会比手动一个个条件添加来的快,但我又不会写 SQL 语句,所以就想到一个主题:「输入自然语言,通过 AI 生成一段 SQL 语句」,产品名称就被定为「SQL-Helper」。

最开始我们讨论到有几种实现方式:

  • 产品原生:在公司的产品中搭建一个开发环境,在里面进行对话交互功能的设计和开发。
  • 外部网页:搭建一个网页,在网页里实现对话。
  • 谷歌插件(Popup):在浏览器右上角上添加一个 Popup 入口,点击后打开一个浏览器提供的容器,在上面进行对话交互。
  • 谷歌插件(嵌入网页):在公司的产品当中嵌入一个小卡片,在上面实现对话和配置等,会遮盖部分网页内容。
用树状图展示了三种实现方式的取舍选择方式的示意图。

最终选择了谷歌插件(嵌入网页)的方式,因为这样算是能比较融入到产品当中去,不需要来回切换网页这么麻烦,毕竟是一个对话的产品。而且 Popup 有一个致命问题是,如果鼠标点击到了网页的任何地方,Popup 就会收起,这种体验不适合用在聊天式的产品当中。而直接基于公司产品的开发环境中进行开发,这种做法成本比较大而且难以协作,毕竟团队中只有一个正经的研发。

团队合作

得益于大佬的用爱发电,他花了一个休息日的时间把架子搭起来了,技术栈是:

  • React
  • Ant Design Manifest V3(支持 Chrome 96)
  • Stylus 样式结构支持

最初搭建好的框架。是能够在网页中嵌入一个按钮,点击后打开一个弹窗:

最初搭建好的框架。图片展示了一个浏览器右下角有一个橙色的沙漏图标,点击后会打开一个出现在屏幕中央的弹窗。

这两个地方就是我们作品的主要载体。我们希望点击悬浮窗之后能打开一个聊天小窗口,能在里面填入 SQL 语句相关的 Key 和 Value,然后填入用户的 API Key,并实现与 AI 实时对话。

所以很快,在第一天的时候我们就有了一个大概的原型,中途通过每日下班前的简短碰面来一起决定增加/减少哪些内容。

最开始的原型。在 Figma 中进行的,由方框和简单文案组成的原型图。分为消息模块和配置模块,每个模块的原型图下方列举了一些必做的功能清单。

然后也确定了我们三人小组的分工:

  • 我:前期负责设计界面、实现静态界面。后期参与 Prompt 调试。
  • 另一个设计师:负责界面设计、图标设计、PPT 制作/包装。
  • 研发大佬:负责功能实现,比如表单提交,发送和接收消息,接口调试等。

然后我们就各司其职,我这边按照大佬给的流程,每天把自己做好的部分提交 Pull requests,并标记清楚完成了哪部分,哪部分的功能需要研发大佬来实现等等。

Github 仓库的 Pull requests 截图。展示了 SQL-Helper 仓库中部分 Pull requests 记录,并且用带有圆角的绿色方框高亮由我提交的部分 Pull requests。

整体的时间表如下图(只有五个工作日,时间紧迫。):

时间表截图。记录了三个成员在周一至周五各自的工作,完成的工作会用绿色打勾图标来标记。

一些细节

初试 Ant Design 的感受

平常在设计稿中使用基于 Ant Design 组件的经验有很多,但是自己亲自在代码里使用该组件还是第一次。

一个强烈的感受是,Ant Design 组件库确实很丰富,很多常用的组件都有封装好,主题色更改的功能也很强大。但是想要基于 Ant Design 组件库来做一些客制化的改动,实在是太费劲了(也可能是因为我太菜...)。

比如当时我想实现一个 TextArea 根据容器高度来自动填满高度的话,我的样式代码是如此之多:

在深色主题下 Visual Code 中的代码截图。展示了我使用大量重复的样式来让一个 TextArea 组件自适应高度。

另一个坑是我们的聊天窗口是嵌入到网站当中的,而且原本我们公司的产品也是基于 Ant Design 组件库搭建的,所以会出现很多样式的冲突。

比如我在自己的界面中使用了 Button 组件,而被嵌入的网站中如果也用了 Button 组件,那么样式将会被原本网页覆盖掉。

如果在这种情况下想要自定义样式,需要在 CSS 中通过多种手段来提升样式的优先级。这里是我比较频繁用到的两个提高优先级的方法:

  • 使用选择器提高 Class 的优先级
  • 使用 !important
在深色主题下 Visual Code 中的代码截图。展示了我使用选择器和 !important 的方法来提升所编写的 Class 层级。
CSS 选择器的优先级相关内容可以参考张鑫旭大神的名著《CSS选择器世界》,写得特别详细。

所以后面回想起来,我在改造 Ant Design 组件库花的时间还是太多了。这个组件库可能在做复杂后台的时候好用,但在做这种小应用,发挥创意的地方,我觉得还限制还是太多了。我觉得我们最开始应该选择使用有更高扩展性的组件库,比如前段时间看到的 Radix UI

从文档来看,Radix UI 会组件里面每个 DOM 都提前命名好相关的 ClassName,那么用户在想自定义样式的时候,就方便很多了。

Radix UI 组件库的截图。展示了 Alert Dialog 组件的代码,并且用带有圆角的绿色方框高亮了代码中的四处 className。

对比起 Ant Design,引用一个组件进来后,会生成巨多个没有打标记的 DOM。每个 DOM 的样式巨难选择,想要改组件内某个元素的样式,没有熟练的 CSS 选择器功夫还真搞不定。

但还是得具体试一试才知道 Radix UI 是不是真的好用,或许也会暗藏某些坑。或许我应该拿自己的个人网站来试一试 🤔。

改造弹窗:拖拽和操作

由于这是一个嵌入在网页当中的对话窗口,本着提高一个易用性的初心,我觉得需要对弹窗组件进行魔改,支持以下两种特点:

  • 支持拖拽:允许用户拖拽弹窗标题区域,改变弹窗的位置,以免挡住原本页面中的元素。
  • 移除遮罩:不展示弹窗背后的黑色遮罩,并且弹窗出现的时候,不影响用户操作原本的网页。

仅仅是改造弹窗这块,足足花了我一天。严重影响了我调试 Prompt 的时间,所以感觉很有必要把它记录下来,即便我的做法绝非最佳实践。

拖拽

拖拽这块我是用了一个名为 DragM 的开源库来实现了,因为看到示例里面效果很不错,所以直接用上了。效果确实也很不错,强烈推荐。

过程有点丢人,就不详细描述了。大概是我参照示例代码做到了弹窗能够实现拖拽,但弹窗的关闭按钮却失效了,后面还是得靠研发大佬来修复。

允许操作背景

这个特点的实现简直是噩梦。Ant Design 文档是提供了一个 API 是能够允许我们隐藏掉黑色的遮罩。

Ant Design Modal 组件的 API 截图。用带有圆角的绿色边框高亮 Ant Design Modal的 API。该 API 控制是否展示 Mask,默认是展示的。

但是这只是让我们看不见遮罩,打开弹窗时,原本页面的元素仍然是无法点击的。所以我试了一些方法,比如说将每一个疑似是遮罩的 DOM 设置为 display: none;,然而并不奏效。

最后生效的方法是用 CSS 选择器选中遮罩层,并将其调整为跟弹窗一样大。那么实际上遮罩还是存在的,但已经被修改为和弹窗一样大,并且叠在弹窗的后面,其实谁都感知不到这个透明遮罩的存在。

所以对于弹窗尺寸以外的部分,是没有被遮罩所覆盖的,自然能够正常响应鼠标操作。

这种做法无法适应弹窗高度会动态变化的情况,但我们这次设计的产品中,弹窗的宽高是固定的,所以即便做法比较不成熟,但确实是达到效果了。

结果

比赛最终有点遗憾,距离拿奖仅一步之遥。获得我们组目标奖项的是一个单人成组的高手。 很可惜的是我们就差一点点,因为最后颁奖的时候大佬也提到了我们的作品,说是如果能更好用一些,比如将生成的 SQL 语句自动填进输入框,或者自动应用然后直接生成图表,就有更大的机会获奖了🤦。

确实我们在演示的时候没有将这个这个产品最强大的功能发挥出来。因为本身产品也有些缺陷,限制了我们的演示范围。

最开始我们设想是演示的时候用自然语言多问几个问题,然后 AI 每次回复都很准确,凸显了自然语言生成 SQL 语句的便利性,而且还想演示输入了几个错别字,AI 仍然能够正确地识别我们的意图,回复正确的 SQL 语句。

但实际上我们最终的产品还是有一个明显的 BUG,在连续聊天时,消息队列不正常,AI有时候会回复我问的上上一个问题,而不是紧接着我的提问来进行回答。

这使得我们演示的时候只能问一个问题,简单带过,没有办法将自然语言带来的便捷性完全地展现出来,实属遗憾。

收获

虽然没能获奖,但参与这次公司内部的 AIGC Hackathon 比赛对我来说有三个特别重要的收获。

参赛经验

简单来说就是产品设计和功能开发的边界,需要根据演示需要来进行规划。

之前我在样式实现中花了太多时间(职业病🤦),比如输入框的聚焦效果,聊天气泡出现的动画,发送消息加载中的动画等等,而实际上在演示的时候,这些可能只展示了 1~2 秒,甚至更少。

因为这些内容大概率不会是评委所在意的东西,反而在过程中怎么调试 Prompt,调试过程中遇到什么挑战,怎么解决,怎么选择模型等等,显得团队很沉浸于与 AI 接口进行交互,通过这个项目积累了挺多经验,可能这些才是大佬们有兴趣了解的地方。

我应该早点完成产品界面还原,然后尽快投入到调试 Prompt 当中的。 如果之后再次参与类似的活动,我觉得我的所有工作都会围绕最后一天的演示来进行,其他东西能减就减。

首次参与代码 PR,并且与真正的研发同事合作

这次是我第一次将代码 PR 到其他成员的仓库当中,并且解决代码冲突,编写改动点,同步最新代码等等。这种团队协作的感觉,让作为设计师的我感觉很新鲜和奇妙。

而且各司其职,每个人都做出了超出自己以往经历的内容,然后每天短会同步下今天的进度、明天的工作内容。尤其是路演前一天晚上一起调试 Prompt,然后把最佳表现录屏,录屏中还出现了几次滑稽的意外...这种协作的经历让我感觉很充实,富有激情。

而且我每天都会遗留一两个事项给峰哥来解决,比如:

  • 我做完了一个表单填写框和提交按钮,我就告诉峰哥让他来做表单提交的功能;
  • 我做完了聊天气泡(由AI、用户、系统发出的消息)的三种样式,也是一样让峰哥来做相关的展示逻辑...

真正参与产品代码贡献对我来说是一直想去做的事情,因为我一直觉得如果能由做界面/交互设计的人,来亲手将其创作内容实现出来,是一件很酷的事情,也能够减少很多沟通成本。

参与到 AI 的浪潮之中

我最开始是在去年年底的时候,用 ChatGPT 来帮我解决我重构个人网站时的一些实现问题,中途因为好奇心驱使,也问了很多奇奇怪怪的问题。然后最近也在高频使用 ChatGPT,来作为我学习英语的助手。

而这次比赛不仅给了我一个机会去参与创造一个跟 AI 相关的产品(包括代码也有不少是 ChatGPT 参与的),还给了我推强大的动力去了解 AI 在商业中的场应用景。除了在比赛中看到其他参赛者的创意之外,现在还了解到比如 Atlassian 已经有相关的功能前瞻了。

从 Atlassian 在 5 月 4 日发布的股东信当中,也透露到该公司已经在用 AI 来来为客户提供服务了。

"Now that generative AI has reached consumer-grade maturity with LLMs, we can create magical new experiences for our customers."现在,随着大型语言模型(LLMs)带领生成型人工智能达到了消费级的成熟,我们可以为我们的客户创造魔术般的新体验。

除了 Atlassian,另一个互联网巨头:Shopify 也将 AI 能力应用到其产品当中。比如在商品详情页的编辑界面当中,我们可以输入几个关键字,让 AI 帮忙生成一段商品介绍的文本,还能够调整文本的风格。

Shopify 商品详情页 AI 功能截图。画面是一个卡片叠加在商家管理后台的商品详情页的富文本输入框上,该卡片左侧是一个纵向排列控件的配置面板,第一个是输入框,输入一些关于商品的关键字;第二个是调整文本风格的下拉菜单,第三个是额外的备注。然后右侧是由 AI 生成的文本,用淡紫色背景的文字来区分,并且提供赞和踩的反馈。卡片右下角是一个 Pointer 样式的鼠标指针,选停在保存按钮上方。

Shopify 将同样也是利用 LLM 来实现的生成文本能力,这被官方称为「Shopify Magic」。除了在商品详情页生成商品描述,也能在邮件当中根据活动类型或产品关键字生成邮件标题,或者在主题编辑器中根据要求来生成标题等等。

微软就不必多说了,也已经在 Microsoft 的办公软件上集成了很多 AI 功能。

代码仓库

这里放上我们产品的代码仓库吧,记录这段热血时光:

SQL-Helper · Github

最后,通过这次 AIGC Hackathon 活动,我真正参与到了产品的代码贡献,同时也看到了许多 AI 能力的应用场景。听说公司有产品在研究 AI 能力在业务中的应用,希望之后自己也有机会在商业项目上进行更多相关的实践吧!

近况

太久没发博客了,记录下我最近的状态吧。应该没有人想知道,但若干年后的我可能会想知道。

  1. 近沉迷于学习英文,所以会导致网站、博客的更新会比之前慢一些。
  2. 发现英文还挺有意思的,但在学生时代是看见英文就想睡觉。以前的我应该是比较喜欢数学和历史。
  3. 小目标是今年内能出一篇全英文的博客。全程用英文书写,然后在发布之前先给 ChatGPT 帮忙检查和润色一下。
  4. 个人网站 LRD.IM 正在开发支持切换语言至「英语」的功能。
  5. 有一个前端相关的分享会正在准备进行,是面向部门内产品、本地化运营和设计同事的。
  6. 在手机上开通了 ChatGPT Plus。直观感受是 GPT-4 的回答比 GPT-3.5 靠谱很多很多,应该会持续订阅。
  7. 正在尝试一种新的作息,再多体会一段时间后,可能也会在博客上记录。

伟大的公司需要多少人

AI 绘图软件 Midjourney 算是这波 AIGC 浪潮中的佼佼者。最近我一直在看这家公司的成长故事,11 个全职员工,0 融资,一年时间积累了 1000 多万用户和一亿美金的营收。

我参与锤子创业的时候,非常喜欢大开大合,希望规模化最大,但从锤子到极客时间,再到墨问西东,我的想法转变了,规模并不重要,小公司也可以做大事。

Midjourney 成立于 2021 年,创始人 David Holz 是一个典型的技术男,在此之前,他还以 CTO 的身份联合创办了 VR 领域的公司 Leap Motion,主要研究手势跟踪技术。

我们先说说这个故事。

创立之初,Leap Motion 备受关注,三年内迅速拿到了 4000 多万美元的融资,团队心高气傲,想做出一些改变世界的产品。后来苹果公司提出想收购 Leap Motion。但 Holz 觉得对方出价太低,并且,没有乔布斯的苹果已经没有什么创新力了,他不愿意为那些人工作,他想自己创造一家具有创新力的新公司。
2013年,Leap Motion 相继发布了几款自己的产品,包括 PC 和 VR 方面的,但都不温不火,没有在市场上激起太大的水花。这对于创业公司来说,并不是什么好兆头。

市场反馈不好,增长无法达到预期,Leap Motion 自然也就拿不到新的融资。但没钱难办事。他们自己造血的能力不够,养活团队、继续研发新产品又需要钱。于是,公司忍痛裁员,优秀的员工相继流失,似乎进入了下行通道。

Holz 和另外一位创始人带着团队继续折腾,这也是创业的常态,把事情做对需要一个过程。Leap Motion 复盘了公司早期的失误,调整策略,继续探索未来人和计算机的互动模式。

但从市场反馈看,他们业务起色不大。直到 2019 年,被另外一家同行业的公司低价收购。

第一个故事结束了,新的传奇拉开了帷幕。

之后 Holz 创立了 Midjourney。这次,他不融资,不追求团队规模,更关注公司盈利能力,这些经营理念,应该都是他对第一段不算成功的创业经历的回应。

我参与锤子科技创业,自己独立创建极客时间这个产品和品牌,到现在出来做墨问西东和墨问便签,有很多想法都能从 Midjourney 上找到共鸣。也许未来很多成功的创业公司,都会类似 Midjourney。

因为什么呢?

1、创业团队人少而精才是正解。人少,并不意味着做的事情小。Midjourney 用 11 个员工一年以内做到了 1300 万用户,年营收 1 亿美元。我也在创业,时常告诉自己,资源有限是好事。资源有限,会不断倒逼团队思考什么才是最重要的。

2、经营 Leap Motion 时,Holz 大概率被资本裹挟过。别人投资你,肯定需要考虑退出的事,而退出,大概率都要依靠 IPO。但对于创业团队而言,过于关注结果,过于关注增长,都会让团队丧失初心,动作变形。有实力的话,可以不拿融资,一开始也不需要招那么多人,慢慢来。这也是一种新的、符合常识的创业方式。

3、Leap Motion 创业过程中,Holz 积累了很多信任和欣赏他的人脉。当 Midjourney 需要一万个 GPU 时,有朋友慷慨解囊。所以,手艺、影响力和人脉,都很重要。不要厚此薄彼。

4、Holz 说自己离开 Leap Motion 创办 Midjourney,是为了换一个环境,因为他不想继续待在一个由风险投资支持的大公司,希望自己在未来 10 年可以做很酷的项目并且享受乐趣。而小的团队,更能专注在他想要做的事情上,毕竟他们没有销售的压力,也没有成为一家上市公司的想法。大家只是去做自己喜欢的事就好。

5、不依赖融资,就需要团队较早考虑盈利。之前的很多创业团队,一上来都会先做用户增长,等差不多了再做收入。但 Midjourney 没有钱,他们在设计产品时,第一步就是思考怎么才能挣钱。这年头,不要以创业,我融了多少钱为荣。

6、Midjourney 的盈利模式非常简单,订阅制,按月或者按年付费,一共三档:基础、标准、高级。现在已经没有免费版本。产品的收费模式,越简单越好。

7、不要追求从 0 开始创新。Midjourney 的模型,最早是基于 CLIP 及 Diffusion 的开源模型,抓公开数据训练,然后迅速上线 Open Beta 版本,占领用户心智。不要有洁癖,快速借鉴别人的经验是一种能力。

8、Midjourney 只有 11 个全职员工。但你知道吗?他们还有 60 多位兼职 Discord 运营。对于一些可以标准化,没有壁垒的工作,用兼职的方式搞定是一个思路。如无必要,勿增实体。

9、知道什么重要,什么不重要,并敢于取舍。Midjourney 到现在都没有独立 App,也没有网站,和用户的所有交互都在 Discord 上。要是你,敢这样吗?不要眉毛胡子一把抓,不要追求完美。“从长远来看,Midjourney 将拥有自己的网站,自己的用户界面,但现在公司不需要花费时间来构建整个用户界面。”这是 Holz 的判断。

10、但是搭载在 Discord 里,也不是一开始就明确的。用户测试完他们才发现,90% 的人不知道怎么告诉它他们想要什么,于是加入了教学元素。后来发现很多人并不喜欢一个人画,更喜欢跟朋友一起玩,他们才意识到 Midjourney 是社交的东西,加入了社交元素。“构建产品最重要的部分,就是对发现事物的真实本质持开放态度。”

11、“技术的最大限制不是规模、成本或速度,而是人们如何与之互动,从根本上决定了我们能做什么。”操作系统以及搭载的各种软件,是我们现在与计算机互动的方式,但看历史,从指令到键盘,到触屏、对话框、语音,甚至手势,人与机器互动的门槛越低,能做的事情越多,生产力的解放越深入。

12、AI 不是现实世界的复刻,而是人类想象力的延伸。Midjourney 做的事情是帮助人们扩展想象力,写 prompt 的指令是“/imagine”。顺着这个方向,我觉得 Midjourney 会成为一个设计领域的生产力工具。这一波 AIGC 的产品,都应该奔着生产力工具的方向去才有前途。

13、想象力实在太重要了。张一鸣之前说过一段话,“同理心是地基,想象力是天空,中间是逻辑和工具。A/B 测试只是一个工具而已,是测不出用户需求的,同理心才是重要的基础。如果没有同理心,做出的产品肯定没有灵魂,不能满足用户需求。但是光有同理心还不够,这样只能做出有用的产品。想要做出彩的产品,想象力非常重要。”

14、大模型技术不会替代人类,它是人类的延伸。

15、永远不要试图凭空设计一个完整的产品体验,你只需要找到十个看似无关的体验,选择其中最酷的三个,把它们放在一起,然后在细节上进行完善,让人们觉得它不错并喜欢上它,好的产品就是这样一步步做起来的。

16、工具要想活的好,活得久,永远要让自己嵌到用户的业务流程里,简单讲,要么帮他赚钱,要么帮他省钱。生成的图片商业性很强,Midjourney 才能从一众工具里脱颖而出,很简洁的 prompt 就能生成有明显科幻性的精美图片,让用户数大而且付费意愿很强的设计类用户显著提高效率。从影响创造力开始,以影响生产力立足。

附图:陈晓维老师说,用AI给我的小说《像钻石一样闪耀》女主角厉小卷画的像。终于知道她长什么样了。

❌