前言:大神用Rust净室重写Photoshop,开源项目PhotoCraft把图像编辑拆成500多条命令,通过photocraft-cli实现无头修图、批量处理与无损格式转换,更内置MCP服务器让AI Agent直接驱动图像引擎,说一句话即可完成修图闭环,适合想搭建自动化修图流水线的开发者。
有人用Rust把Photoshop重写了一遍,然后把它交给了AI
前两天在GitHub上瞎逛,刷到一个项目,我盯着它愣了半天。
一个叫PhotoCraft的东西,纯Rust写的,开源,目标特别野,把Photoshop从头到尾重新实现一遍。
对,你没看错,重写一遍Photoshop。
我第一反应是,哥们,你知不知道自己在干什么。

但点进它的文档看了十来分钟之后,我发现这个项目真正骚的地方,压根不是重写PS本身。
是它把整个软件拆成了500多条命令,然后给了你一个命令行入口,叫photocraft-cli。
你在界面里能点的每一个按钮,拖的每一个滑块,底下都对应一条引擎命令。UI、CLI、MCP服务器,调的是同一套命令注册表。
这话翻译一下就是,你能在Photoshop里干的事,它都能用一行命令干出来。
而且是无头的,不用打开任何窗口。
先给不熟悉的朋友补个背景。这种做法在工程上有个名字,叫clean-room重新实现,翻译过来叫净室工程。意思是我不看你的代码,我只观察你的软件行为,然后自己从零写一个功能一样的。当年康柏就是这么逆向了IBM的BIOS,才有了后来的兼容机大战。PhotoCraft走的是同一条路,只是这次的对象,是图像编辑界的珠穆朗玛。
说实话我一开始没太当回事,心想又一个情怀项目呗。直到我把它的CLI子命令挨个看了一遍。
一个比一个离谱。

最朴素的是convert,转格式。
photocraft-cli convert cover.png cover.psd
photocraft-cli convert photo.pcraft out.jpg --format jpg --quality 85
这听着平平无奇对吧。
但它有个特性让我眼前一亮,无损回环。png转成自家的.pcraft格式,再转回png,像素完全一致。也就是说你可以拿.pcraft当中间存档格式,怎么折腾都不掉画质。写过脚本的人都懂,一个不崩、警告老老实实走stderr、退出码还是0的转换器,有多省心。这玩意儿看着简单,其实是那种用上就回不去的东西。
然后是run,这个开始有意思了。
run就是一台无头版的Photoshop。打开一个PSD,智能锐化,加一条曲线调整层把中间调提亮,再叠一层自然饱和度,最后导出PNG。
photocraft-cli run wave.psd --cmd filter.sharpen.smartSharpen --cmd layer.newAdjustmentLayer.curves --out wave-final.png
这一整套在PS里要开软件、点菜单、拖滑块、来回切面板的操作,在run里就是一串–cmd排下去,一条命令跑完。更骚的是它不依赖现有文件,–new直接新建一张画布,从零开始画。

我当时看到这就想,这不就是把PS的动作面板,做成了正经的编程接口吗。
再往上是batch,批量处理的主力。
你写一个动作文件,里面排好要做的事,比如第一步自动色调,第二步统一缩到1920宽。然后一行命令,把输入目录里所有能识别的图片挨个过一遍,输出到另一个目录。
photocraft-cli batch --actions grade.json --in ./raw --out ./graded
你想想看,甲方塞给你30张图,全部提亮、统一改尺寸、转JPG。以前你得开软件一张张来,现在就是这一行命令的事。
单张失败不会中断,逐个打印ok或者FAIL,最后给你汇总成功和失败的数量,有失败退出码就是1。
为啥说这个设计很懂?因为它一看就是给CI流水线准备的。很懂,真的 very 懂。
而真正让我拍桌子的,是接下来这个。
你敢信,一个图像编辑器,居然内置了MCP服务器。

对,就是那个MCP,Model Context Protocol,AI Agent连外部工具的标准协议。photocraft-cli mcp一跑,整个图像引擎就变成了一个AI可以直接驱动的服务器。在Claude Code里注册一下就完事。
claude mcp add photocraft -- target/release/photocraft-cli mcp --automation-read-root /work/project --automation-write-root /work/project
然后你只需要说人话。打开photos里的001.psd,加曲线提亮中间调,叠一层自然饱和度,导出JPG,质量85。
Agent会自己去command_list里查命令ID和参数文档,自己一条条调用。然后最关键的一步,它有个叫doc_render_preview的工具,能把编辑结果直接渲染成PNG返回来。
它修完,看一眼,不满意,再调。
编辑,看图,再调整。这个闭环是Agent自己跑的,你只负责说人话。
项目里甚至有一套验收测试,10个Agent修图任务,从做带投影的标题卡片,到智能对象加可调参数的高斯模糊,再到转CMYK做印刷准备,全程只用MCP工具,模拟的就是真实Agent的工作方式。
我看完只有一个感受,太特么赤鸡了。
安全这块他们也想得挺明白。读写根目录要显式指定,Agent只能碰你授权的文件夹,越权路径直接拒绝。stdio传输不开任何网络端口,要远程接管桌面版的话,得走127.0.0.1加256位的token。一句话,把Agent关进笼子里,笼子还带锁。
其实吧,聊到这我想说点题外话。
我一直觉得图像处理这个领域有个很拧巴的地方。明明每一个操作背后都是确定的数学,曲线就是映射,模糊就是卷积,可这些数学必须通过人手拖滑块才能触发。你一个普通的上班族,不是设计师,不需要天天修图,就是偶尔要把一批图统一处理一下,结果还得去啃一套为专业设计师设计的界面。我非常理解那种打开PS一脸懵的感觉,真的。
图形界面这个东西,当年被发明出来,是为了让普通人用上电脑。鼠标、窗口、按钮,都是给人用的外设。但软件真正的本体,从来都是底下那层命令,界面只是套在命令外面的一层糖。
有意思的是这个轮回。几十年前,命令行太凶了,GUI把命令藏起来,人才敢靠近电脑。几十年后,AI不怕凶了,MCP又把GUI拆开,把底下的命令重新递出去,只不过这次接命令的,是Agent。
操作软件这件事,正在从一门手艺,变成一句话。
现在我想收回开头那句话。
哥们不但知道自己在干什么,他可能比我们很多人都先看到了一步。图形界面这三十年,我们习惯了软件长成按钮的样子,而PhotoCraft这种项目在提醒所有人,按钮只是壳,命令才是魂。当AI能直接摸到魂的时候,软件的用法会被重新写一遍。
即然都看到这了,如果你也想玩,路径不复杂。克隆仓库,cargo build一把,–help看用法,commands –filter查命令,run打通第一条管线。半小时,你就能拥有自己的无头修图流水线。
磨平一些信息差,有时候就从把一个软件拆开看开始。
/ 注意,本项目仅在 SyncMein 的500人小群分享。
/ 谢谢你看完了我的文章,我们下次再见吧。
/ 作者:明察
/ 投稿或爆料,请联系邮箱:mingcha@gqmg.com













暂无评论内容