Joffoo's blog

The ethereal flight, oft rehearsed in the theater of one's dreams...

Vol.024 喜剧演员

“后来,我的老师教导我,嘴巴才是人类心灵的窗户。”

📜 卷首语

凡·杜斯伯格精炼的评判是艺术史上一个非凡十年的最终成果。全欧洲的艺术家殊途同归:抽象。

——威尔·贡培兹《现代艺术 150 年》

上周,看了几位陌生比利时画家的画展,因为是抽象画展,步子几乎没有停下来过。

米歇尔·莱昂纳迪 Michel Leonardi 画了一些圆,但形状并不规整,你很难认为这是几何的,更多人认为这画的是个蛋。

整场画展展出了四位艺术家的作品,另一位颇具幽默感的是阿兰·博尔南 Alain Bornain,此人画了一些黑板,令我陷入分类无能的境地,不知这是抽象还是写实。

“抽象”与否,不太重要了。上周还看到国内艺术家谭勋的作品,之前在山东美术馆外面看到过他的“彩钢板系列”(查了一下叫“彩虹系列”),便是字面意义上的“抽象”,提取出当代中国一种常见的元素,随后加以变形。

比较有恶趣味的是“狗尿系列”(按说肯定不叫这个名字,查了一下,叫“日子系列”),尿痕如山水画。图中有山脊图形状的亚克力板,有墙角的贴纸,还有后面墙上的挂毯(旁边贴心地写着“可以触摸”)。

对艺术而言,“看不懂”的话,“看一乐”就足够了吗?或许不够,这只是退却。

但退一步海阔天空,为了把乐不出来的抽象画也利用起来,可以用我的大喜利生成器来“阐释作品”。

🎛️ 操作台

🕸️ 网页设计

一年半之前,用 Cursor(当时是 Claude 3.5 Sonnet)改进了一款 Hexo 博客的样式(无知的力量:AI 编程实现 Hexo 博客样式优化),一直用到现在。今天花了一点时间,用 Agent 写了一个简单的版本(我用的是 Antigravity,模型是 Gemini 3.1 Pro )。

配置方面,只需随便安装一款设计相关的 Skill(我用的是 huashu-design),随后还是传统的“先规划后编码”——先让 Agent 写一个 DESIGN.md,接着你读一下、按照自己的喜好告知 Agent 进行调整,最后让 Agent 编码实现(写 DESIGN.md 的提示词可以参考这篇文章)。

我选择了粗野主义的风格(让我想起 Recraft 官网的视觉风格),生成效果是这样的,我还是简单部署到 Vercel 上了:zhiwen-weekly

我让 Agent 给每篇都翻译了一份英文版,所以可以切换中英双语。

另外,以便未来维护,还让 Agent 写了更新文章的 Skill,和 Obsidian 库的 Skill 联动一下应该还比较方便。

🔄 TransLit(续)

继续做一点小更新,比如之前一直没有处理好的 EPUB 脚注。

绕了半天弯子,最后还是选择用最不绕弯子的 Agent Skill 来处理混乱的 EPUB 代码:translit-epub-prep。目的是用 Agent 预处理 EPUB(纯用代码难以适配每个 EPUB 文件),把放在后面的批注拉取到对应正文页面的末尾。

之后微调了 TransLit 软件本体,能够实现之前以 Markdown 为中介的工作流。

另外,我还发现 Google AI Studio 是可以导入 GitHub 中的项目的。所以如果不想用付费 API 的话,可以导入项目,之后告诉 Gemini 帮你配置:

1
2
3
4
5
6
7
8
9
10
11
请帮我导入这个 EPUB 翻译项目并将其改造适配当前 AI Studio 环境,请严格执行以下几点:

1. **模型配置与容错处理**:因 gemini-3.5-flash 容易触发免费配额超限,请将所有默认模型更改为 gemini-3-flash-preview(或 gemini-2.5-flash)。**关键点**:由于用户的浏览器 LocalStorage 可能残留旧的 modelName 配置,请在后端的 server.ts API 路由中添加防御性代码,强制拦截并将容易受限的旧模型名称回退到安全模型。

2. **服务端代理架构**:绝不可将 GEMINI_API_KEY 暴露在前端。请确保提供一个自定义的 server.ts(使用 Express),并通过服务端 /api/gemini/generate 端点来代理所有的 Gemini 大模型请求。

3. **Vite 兼容处理**:请在 server.ts 中配置好 Vite middleware,以保证开发环境(Dev)和生产环境(Prod)的静态资源能够正确 Serve。

4. **构建脚本**:修改 package.json 的 build 脚本,加入对 server.ts 自身的 esbuild 打包编译支持,并确保 start 命令使用的是编译后的 Node 产物。

请在进行任何修改前阅读文件,完成后执行 compile_applet 和 restart_dev_server 进行验证。

虽然我一直搞不懂 Google AI Studio 有多少免费用量。

而且 Gemini 翻译小说经常会出现 returned empty/error,我认为是因为触发了敏感内容过滤而被屏蔽,尽管我翻译的是正经纯文学。这时候我还是会选择用其他模型的 API。

我把 TransLit 术语表提取方式发在了小红书,有人评论说用他自己的翻译方式,25 万字的小说用 DeepSeek V4 Flash/Pro 配合使用,大概要花 6 块钱。

看来,我当前这套方法,确实可以再便宜一点。

面向网友编程(Build in public)还是很有意思。有网友指出对于屈折语,你这套依赖搜索的方法可能会有问题。确实如此,我之前没有翻译过明显屈折语的原文书籍,所以没有体感。

于是领导班子紧急召开专项会议,打算先用模糊搜索库 Fuse.js 堵住窟窿再说。因为大领导觉得要是没有这两步搜索,TransLit 将泯然众矣。

碍于面子,就也没有人说不同意了。

💡 闪念集

配图复刻自小红书上看到的《HARAKIRI》某期杂志封面,把画面中的暴露狂改成了冰箱。此图由新发布的 Seedream 5.0 Pro 生成。我发现一个好玩的事,很多模型(包括这个新模型)都画不好冰箱的后背,网上也查不到什么素材图。看来,除了冰箱坏过的人(我),很少有人会关心啊。


如果上帝是像人造出 AI 那样造出人的,好像也不是特别厉害,算不上全知全能。


如果你用 AI 读书,为什么还是在读科普书?像是蒸馏了两次。


AI 翻译有“AI 味儿”一说吗,感觉上原文的约束应该足够强了。
有趣的是,看一下村上春树新书《夏帆》的豆瓣短评,读者普遍讨厌的是林译强加的“人味儿”,与此相比 AI 的“风格传达”反而显得更忠实一些。


吕克贝松拍的《超体》,被誉为“人类版《猩球崛起》”。


之前是网民,之后是用户。


好像是史里芬在音频节目里说的,短视频不是其他艺术形式的溢出,它本身就是一种艺术。但有一类视频,或者就是综艺企划,很像是行为艺术的溢出。


“不服输”和“输了但是不服”是一个意思吗?

文章目录

  1. 📜 卷首语
  2. 🎛️ 操作台
    1. 🕸️ 网页设计
    2. 🔄 TransLit(续)
  3. 💡 闪念集

Proudly powered by Hexo and Theme by Hacker
© 2026 Fengyukongzhou