两周 53 万行 Rust:AI 复刻 Adobe 全家桶,卡住它的不是代码

一个仓库,两周,五十多万行

9 月 30 日建仓。10 月 13 日,代码量是 539,017 行 Rust,分布在 1,306 个文件里。同期记录是 2,152 次提交、1,004 个已合并的 PR,Git 里出现了 317 个不同的贡献者身份。到 10 月 23 日,这个仓库拿到 71,541 个 star、12,632 次 fork,同时挂着 2,751 个未关闭的 issue。

项目叫 PhotoCraft,属于 ArtCraft 组织。它的目标写在 README 第一行:用纯 Rust 从零重写一个开源的照片编辑器,支持图层、蒙版、调整图层、图层样式、文字、矢量、笔刷和真正的 PSD 文件。往外扩,是一整套对标 Adobe 的应用——Photoshop、Illustrator、Premiere、Lightroom、After Effects、InDesign、Acrobat Pro 七个,10 月 7 日又加了 Word、Excel、PowerPoint、AutoCAD 和 Pro Tools 的替代品。许可证是 MIT 和 Apache 2.0,浏览器里能跑 WebAssembly 版。

作者 Brandon Thomas 说,代码主要是 Claude Opus 5.5 写的。这个说法在 Hacker News 和 Reddit 上同时炸开,一半人惊叹产出速度,一半人盯着另一个词:clean-room。

先看它自己承认的数字

比起点赞,仓库里的 ROADMAP.md 更值得读。10 月 11 日那版写得很坦白:功能覆盖度大约 76%——628 个菜单项全接上了(628/628),工具 56/68,面板 30/35,格式 17/31。紧接着是第二个数字:真正能投入工作的就绪度约 45%。日常用主流功能的摄影师是 43%,只用核心功能的能到 61%。

它还把剩余工作量换算成了「agent 工时」:到 beta 还要 1,100 到 1,800 小时,到完全对齐要 2,300 到 4,100 小时——按 Opus 5.5 单个 agent 顺序工作的墙钟时间算。目标写得很精确:Photoshop 2026,版本 27.11.0,10 月 10 日在已安装的应用上量的。

更难看的数字在后面。0.5 和 0.6 版本的用户提了 579 个 issue;25 项性能预算里 22 项没达标;还有一句几乎等于自我否定的说明——「我们写出的 PSD,目前还不能被 Photoshop 可靠地接受」。对一个号称要替代 Photoshop 的软件来说,文件互通不是边角料,是地基。

所以那句「一个月内达到 100% 功能对齐」的豪言,几天后就被作者自己收了回去。他在 Hacker News 上说「根本没准备好发出来」,把口径改成「99% 对齐要以月计,不是以年计」。

「clean-room」到底是什么意思

这个词有来历。1984 年,Phoenix Technologies 想做兼容 IBM PC 的 BIOS,又不能抄 IBM 的代码。他们的办法是分成两拨人:一拨读 IBM 的技术手册,写出一份规格说明;另一拨人从没见过原代码,只照着规格写程序。两拨人的往来记录全部留档。

注意,这道墙严格来说不是法律要求,而是证据。侵权的前提是「接触 + 实质性相似」,墙的作用是证明写代码的人压根没机会接触原件——它提供的是一份不在场证明。

PhotoCraft 的做法不一样。它的 AGENTS.md 里确实有一条 clean-room 规则:团队只研究 Photoshop 的行为和外观,绝不复制代码、着色器、配置文件或素材,一切从公开规格(Adobe 的 PSD 格式文档、ICC 色彩标准、ISO 32000 混合模式)和观察出发。听起来很规矩。

但问题在于,仓库里没有任何地方描述「观察的人」和「写代码的人」之间的隔离。同一个开发者看 Photoshop、写规格、再提示模型生成代码——这三步在一个人身上完成,墙就不存在了。法律学者 Andres Guadamuz 的说法很克制:如果洁净室只是同一个开发者观察、写规格、再让模型写代码,那会有问题。还有一件从外部永远查不清的事:模型在训练时读到过什么。

Hacker News 上有人一句话把争议说透了:「不存在 clean-room vibe coding 这种东西。」

真正的风险不在版权

如果只谈著作权,这个项目的处境其实不差。欧盟法院 2012 年在 SAS 诉 World Programming 案里认定,程序的功能、编程语言和文件格式都不受著作权保护,被许可方有权观察、研究、测试软件以理解其原理,合同里禁止这么做的条款无效。美国这边,第九巡回法院在 1992 年 Sega 诉 Accolade、2000 年 Sony 诉 Connectix 两案里确认,为接触不受保护的元素而在逆向过程中复制或反汇编,属于合理使用。2021 年最高法院在 Google 诉 Oracle 案里也判了 Google 胜诉——虽然它刻意假设那 11,500 行代码受保护,然后认定合理使用,这个前提很多人记不住。

风险在别的地方,而且更实际:

  • 合同。Adobe 2025 年 10 月起生效的使用条款明确禁止「重建」其产品,还专门点名了「监控或追踪应用的输入输出,以重建该系统」这种行为。欧洲的 SAS 判决会限制合同能禁止的范围,但美国不一定。
  • 商业外观。README 里写着「Familiar by design」「会用 Photoshop 就会用 PhotoCraft」,界面指南里直接描述了 Photoshop 风格的主题。功能相似不侵权,但整体视觉印象太像,可能踩到 trade dress。
  • 专利和商标。Adobe 手里有大量专利;产品命名也足够让人联想。Ars Technica 的判断是 trade dress 风险,Guadamuz 则说,看到这些名字,会怀疑有商标律师正在悄悄记笔记。

截至 10 月 13 日,Adobe 没有公开动作,GitHub 的公示库里也没有针对该项目的下架通知。这不代表以后不会有。

最值得记的一课:AI 压掉的是「写」,不是「验」

这个项目最反直觉的地方,是它的产出曲线和可用曲线完全不重合。两周五十多万行、一千多个 PR、三百多个贡献者身份——这些数字放在任何开源项目里都是爆炸性的。可它自己的路线图说,就绪度 45%,性能预算 22/25 未达标,写出的 PSD 还没法被 Photoshop 稳定打开。

原因不难理解。代码是可以批量生成的,验证不能。每一个菜单项接上一个命令,只能证明「线接上了」;它能不能在 300 个真实 PSD 上渲染出同样的像素,得逐个跑。仓库自己也承认,那条 628/628 的菜单覆盖率「量的是接线,不是行为」。

有意思的是,团队在工程上并不糊弄:两个合成器(CPU 版当参考标准,wgpu 版上 GPU)互相校验,256×256 的写时复制瓦片让撤销变便宜,1,700 多个测试覆盖 PSD 往返、合成器对照和多深度检查,还有一个 panic_hunt 测试用对抗性参数去轰每一个命令。PSD 往返在 psd-tools 测试集里 309 个文件过了 307 个。这些是真功夫。

但真功夫也换不来时间。同样在做 AI 辅助复刻的开发者 az_liberal_geek(他在做开源的 SketchUp 替代品 Hew)说得很实在:第一版出来得飞快,看着也好用,但 bug 多得离谱,失败方式完全出乎意料;加一个大功能是一个 prompt 加几个小时的模型开发,然后是自己几十个小时的测试和打磨。他估计对齐要一年,不是一个月。

这和仓库自己的估算对得上。

我的判断

我不觉得这是一场闹剧,也不觉得它是「软件已死」的证明。它更像一次公开的压力测试,测出了两件事。

第一,「洁净室」是一种工程纪律,不是一句声明。如果真想做干净的复刻,得把观察、写规格、实现拆成不同的人和不同的时间,并且留痕。一个人加一个模型,无论提示词写得多规矩,都很难构成法律意义上的隔离。这一点对所有想用 AI 复刻商业软件的人成立,不分国界。

第二,开源替代品的护城河,从来不是代码行数。Adobe 真正难被替代的是 PSD 的兼容性、插件生态、色彩管线和 collaboration 工作流,以及一整套法务资产。五十万行 Rust 可以在一周内出现,能被 Photoshop 可靠打开的 PSD 不能。

至于那 7 万个 star,它衡量的是一次传播事件的成功,不是软件的成功。这两件事在 AI 时代越来越容易被混淆,而这个项目恰好把差别摆在了明面上——作者自己都说了,还差得远。

延伸阅读

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享
评论 抢沙发
头像/SUENCA
欢迎您留下宝贵的见解!
提交
头像/SUENCA

昵称

取消
昵称表情代码图片快捷回复

    暂无评论内容