Hacker News 中文摘要

RSS订阅

Adobe Creative Suite 净室移植到 Rust -- Adobe Creative Suite Cleanroom Port to Rust

图像编辑;一个开源净室重新实现的奥多比 Photoshop(Adobe Photoshop),以纯 Rust 语言完全重构。该软件具备图层、蒙版、调整图层、图层样式、文字、矢量图形、笔刷与真实 PSD 文件处理能力,这些功能均坐落在完全以 Rust 代码编写的原生应用程序当中。它开源、可离线运行且完全归使用者自己所有。

正文

图像编辑;一个开源、净室重新实现的 Adobe Photoshop,用纯 Rust 重写。具备图层、蒙版、调整图层、图层样式、文字、矢量、画笔和真正的 PSD 文件,全部在纯 Rust 编写的原生应用中。开源、离线、属于你。

Image 2: 100% Rust

PhotoCraft 编辑葛饰北斋《神奈川冲浪里》:带投影的说明卡、标题与署名文字图层、自然饱和度和曲线调整图层,曲线编辑器打开

带下拉阴影的说明卡、实时文字、自然饱和度和曲线调整图层,曲线编辑器处于打开状态。《神奈川冲浪里》,葛饰北斋,约1831年。

Image 3: macOS · Windows · Linux · FreeBSD · Web

🎛️ 设计上熟悉

菜单、快捷键、面板和工具都在你习惯的位置,从 ⌘J 到 ⇧⌘D。如果你懂 Photoshop,就已经会用 PhotoCraft。

Image 4: License: MIT OR Apache-2.0

⚡ 原生且快速

基于 wgpu(Metal、Vulkan、DX12、WebGPU)的 GPU 合成器、写时复制瓦片和多线程滤镜。没有 Electron,没有 Web 视图,无需等待。

Image 5: Status: early alpha

🗂️ 真正的 PSD 文件

打开、编辑并保存分层 Photoshop 文档。重新保存能保持 psd-tools 测试集中 309 个文件里 307 个的渲染效果。

Image 6: Join the ArtCraft community on Discord

🤖 支持代理

每个操作都是命令,因此你可以通过 UI、CLI、JSON 控制通道或 MCP 服务器驱动同一引擎。

功能

这里的每张截图都是真实应用在公共领域艺术品上的工作,通过控制通道离屏渲染。

莫奈《日出·印象》带色阶和自然饱和度调整图层;右侧打开色阶编辑器和带均值、标准差、中位数的直方图面板

色阶和自然饱和度调整图层,以及实时直方图面板。《日出·印象》,克劳德·莫奈,1872年。

无憾编辑

调整图层让每次编辑保持实时。堆叠色阶、曲线、自然饱和度、色相/饱和度等十多个图层,将它们蒙版到区域、重新排序或关闭,原始像素永不变更。 16 种调整图层也可直接应用于像素,包括带每通道编辑的曲线、带实时直方图的色阶、黑白、通道混合器、渐变映射、照片滤镜、可选颜色和颜色查找(.cube、.3dl、.look)。还有阴影/高光、替换颜色、匹配颜色、HDR 色调、去色和等分。

图层样式对话框在 EARTHRISE 文字图层上编辑外发光,同时启用描边,位于阿波罗8号地出照片上

实时文字图层上的外发光和描边,位于图层样式对话框中。《地出》,威廉·安德斯/NASA,1968年。

提升质感的样式

投影、内阴影、外发光和内发光、斜面和浮雕、光泽、描边、以及颜色、渐变和图案叠加,在任何图层(包括文字)上实时存在。图案来自库(内置、编辑›定义图案、.pat 导入/导出)和 PSD 的 Patt 块。 在图层间复制粘贴样式,一次性隐藏所有效果,并从你的 PSD 直接打开样式,渲染以匹配 Photoshop。

维米尔《戴珍珠耳环的少女》:面部周围椭圆选区和色相/饱和度图层,其椭圆蒙版使面部外一切变灰

椭圆选区成为色相/饱和度图层的蒙版,因此只有面部保留颜色。《戴珍珠耳环的少女》,约翰内斯·维米尔,约1665年。

理解图像的选区

矩形/椭圆选框、套索和魔棒用于精确;快速选择、对象选择和选择主体让计算机描边;选择并遮住以细化发丝边缘。 羽化、扩展、收缩、平滑、扩大、重新选择。将任何选区变为图层蒙版、矢量路径或形状。智能选区在本机运行,无云无账户。

比尔斯塔特《内华达山脉》:标题 SIERRA NEVADA 在画布上以佐治亚字体编辑,含署名和一段说明文字;字符和段落控制打开

就地编辑的标题,带署名和一段正文。《内华达山脉,加利福尼亚》,阿尔伯特·比尔斯塔特,1868年。

优美排版的文字

点和段落文字,直接在画布上编辑,具备完整字符和段落控制:字体、字重、大小、行距、字距、对齐和颜色。 文字图层保持可编辑,可应用图层样式,并通过 PSD 往返。

莫奈《睡莲》上由形状图层(莲花、水、太阳、徽章、点状环)构成的莲花徽章,莲花路径锚点被选中

由形状图层制成的徽章:渐变填充的莲花、星星和点状环。《睡莲》,克劳德·莫奈,1906年。

像素级精确矢量

矩形、椭圆、三角形、多边形、直线和钢笔工具,具备分辨率无关的形状图层、渐变填充和虚线、对齐描边。 组合形状(联合、减去、相交、排除),在路径面板保留路径,用作矢量蒙版,或描边填充。我们 PSD 语料中 116 个形状图层全部匹配 Photoshop 像素。

梵高《星月夜》上Twirl滤镜对话框角度320度,在椭圆选区内实时预览

Twirl 在画布上实时预览,仅限选区内。《星月夜》,文森特·梵高,1889年。

提交前先预览

每个滤镜对话框通过选区在画布上实时预览。模糊(高斯、盒状、动态、径向、表面、智能、镜头、形状,以及模糊画廊:移轴、虹膜、场、旋转、路径)、锐化、减少杂色、扭曲(Twirl、波浪、涟漪、置换、切变、锯齿…)、像素化、风格化(油画、风、凸出…)、渲染(云彩、纤维、镜头光晕、光照效果)等。 在智能对象上运行滤镜可保持可编辑:随时更改、隐藏、重排或蒙版。

大半径模糊使用跨所有核心的游标盒式处理:3.6 MP 上半径180的高斯模糊不到一秒。

安塞尔·亚当斯《提顿山脉和斯内克河》旋转副本周围的自由变换手柄,历史面板列出打开、复制图层、自由变换等步骤

旋转打印稿上的自由变换,每个步骤都列在历史中。《提顿山脉和斯内克河》,安塞尔·亚当斯,1942年。

随心塑造

自由变换支持缩放、旋转、斜切、扭曲和透视;精确的90°和180°旋转翻转;再次变换。图层、文字、形状、蒙版和选区一起变换。 完整历史、切换最后状态和历史画笔意味着每一步都可撤销,甚至单次笔触。

克里姆特《吻》上浅色主题的导出对话框:JPG质量90,缩放50%,带预览和约684K大小估计

浅色主题下的导出对话框,带预览和文件大小估计。《吻》,古斯塔夫·克里姆特,1907–1908。

随处导出

导出为带格式、质量、透明度和缩放,加预览和即时文件大小估计。一键快速导出 PNG。 选择深色 Pro 主题、清爽 Studio 主题或经典外观。

内置一切

🧰 34 种工具

移动 · 矩形和椭圆选框 · 套索 · 多边形套索 · 魔棒 · 快速选择 · 对象选择 · 裁剪 · 吸管 · 画笔 · 铅笔 · 混合器画笔 · 颜色替换 · 橡皮擦 · 仿制图章 · 修复画笔 · 污点修复 · 历史画笔 · 渐变 · 油漆桶 · 模糊 · 锐化 · 涂抹 · 减淡 · 加深 · 海绵 · 钢笔 · 路径选择 · 文字 · 五个形状工具 · 抓手 · 缩放

🖌️ 真正的画笔引擎

形状动态、散布、纹理、双重画笔、颜色动态、传递、画笔姿态、湿边、积累和平滑(含拉绳),由笔压、倾斜、旋转和方向驱动。画笔预设、从选区定义画笔,以及确定性可重放笔触。

🗃️ 图层做得专业

组、剪贴蒙版、像素和矢量蒙版、填充图层(纯色、渐变和图案)、调整图层、带智能滤镜和无损变换扭曲的实时智能对象、多图层选择对齐分布链接、Alpha 通道和快速蒙版、27 种混合模式、不透明度和填充、锁定、颜色标签、图层过滤、合并、拼合、栅格化、通过拷贝/剪切建图层、粘贴入。

🎨 任何颜色,任何深度

RGB、灰度、CMYK 和 Lab 文档,每通道 8、16、32 位。位深和色彩模型是运行时数据,所以每个工具在所有深度工作。纯 Rust 的真实 ICC 色彩管理:嵌入配置文件、指定和转换为配置文件带四种渲染意图和黑点补偿、软打样(⌘Y)和色域警告(⇧⌘Y)在 GPU 上。

🗂️ 格式

PSD 和 PSB,加 PNG、JPEG、TIFF、WebP、GIF、BMP、TGA、ICO、QOI、PNM、OpenEXR、Radiance HDR 和 AVIF,在 8、16、32 位对称读写,以及原生 .pcraft 格式。

🪄 日常必备

自动色调、对比度和颜色 · 等分 · 图像和画布大小 · 裁剪和修整 · 显示全部 · 编辑›填充和描边 · 合并拷贝 · 原位粘贴 · 参考线、标尺、网格和吸附 · 动作记录重放 · 命令面板(⌘K)。

不妥协的 PSD

PhotoCraft 的 PSD 支持是独立 crate,依据 Adobe 公开规范编写并针对真实文件语料测试。

  • 忠实往返: 打开并重新保存文档,在 psd-tools 测试集 309 个文件中 307 个渲染相同,混合 ag-psd/psd-tools 集 170 个中 169 个相同(crates/io/tests/corpus.rs;用 cargo xtask corpus --psd-tools 获取)。未建模的部分(原始块、描述符、额外)会保留而非丢弃。重新保存文件不与源字节一致:PhotoCraft 重写图像资源、图层记录和复合图。仅独立的 photocraft-psd crate 解析写入无文档模型,能逐字节复现每个可解析语料文件(crates/psd/tests/corpus.rs)。
  • 像素匹配: 复合预言机比较我们的渲染与 Photoshop 自身合并图像,覆盖渐变插值(经典、感知、线性)、图层效果、形状描边、剪贴和填充不透明度。
  • 大文档: PSB、16 和 32 位文件,以及 CMYK 和 Lab 文档原生打开。

为代理构建

每个菜单项、工具和对话框都从拥有 500+ 命令的注册表运行命令。UI、CLI、JSON 控制通道和 MCP 服务器都调用相同命令,所以任何可点击的操作,脚本或 AI 代理也能做。

无头:打开、编辑、保存

photocraft-cli run wave.psd \ --cmd filter.sharpen.smartSharpen --params '{"amount":80}' \ --cmd layer.newAdjustmentLayer.curves --params '{"points":[[0,0],[64,48],[192,212],[255,255]]}' \ --out wave-final.png

将动作列表应用到图片文件夹

photocraft-cli batch --actions grade.json --in ./raw --out ./graded

让代理通过 MCP 驱动(无头,或桥接到运行中的应用)

photocraft-cli mcp

桌面应用还提供认证的仅回环控制通道(photocraft --control),用于检查 UI 状态、用指针事件驱动工具、以及离屏截图。本 README 每张图都如此渲染。见 docs/control-protocol.md。

底层

  • 引擎优先: 纯数据文档模型和命令引擎,上层薄 egui UI。分层在构建时跨 24 个 crate 强制。
  • 两个合成器: CPU 合成器作参考预言机,wgpu 合成器将画布放 GPU。互相测试。
  • 写时复制瓦片: 256² 稀疏瓦片使撤销廉价、大画布轻量,效果映射按图层状态缓存。
  • 浏览器运行: 整个引擎和 UI 编译到 WebAssembly。
  • 净室: 仅从公开规范和观察行为实现。无专有代码、着色器或资源。
  • 测试: 超 1700 个测试,包括 PSD 往返、合成生成器、合成器预言机和多深度检查。

开始使用

git clone https://github.com/storytold/photocraft cd photocraft cargo run --release -p photocraft -- image.psd cargo test --workspace

UI 和文字工具的日文字体来自 craft-fonts(可选,桌面发布版总包含)。缺失时用系统 CJK 字体:

Image 16

git clone https://github.com/storytold/craft-fonts ../craft-fonts CRAFTFONTSDIR="$PWD/../craft-fonts" cargo run --release -p photocraft

Image 17

新贡献者和 AI 代理:先看 AGENTS.md 然后 docs/。

Image 18

每个 GitHub release 附带 macOS、Windows、Linux、FreeBSD 和 web 安装包。Linux 可选 AppImage、.deb、.rpm、tarball 或 Flatpak。Flatpak 需 flathub 运行时:

Image 19

flatpak install --user photocraft--linux-x86_64.flatpak flatpak run ai.storyteller.photocraft

Image 20

Image 21

macOS 命令行工具为 photocraft-cli-<version>-macos-universal.zip,二进制同 Developer ID 签名并公证。FreeBSD 14 装库后解压 tarball 到 /usr/local:

pkg install libxkbcommon wayland libX11 libXcursor libXrandr libXi libxcb mesa-libs vulkan-loader gtk3 fontconfig freetype2 alsa-lib tar -xzf photocraft--freebsd-x86_64.tar.gz --strip-components 1 -C /usr/local photocraft

维护者见 docs/releasing.md。

状态: PhotoCraft 处于早期 alpha,坦白说:大量 Photoshop 功能表面已某种形式存在,但尚不能替代日常专业工作。最大缺口是 AI/生成功能、约二十个缺失工具、排版深度和专业工作流、插件兼容。每个 Photoshop 菜单项都接到了命令,但那仅测接线而非行为。真实逐维情况和下一步见路线图的 parity 评估。可能有粗糙边缘,请提 issue(含 OS、文档尺寸、图层数和截图)。

文档与安全

开发者、架构等文档在 PhotoCraft 文档书。安全架构和漏洞报告在 security 文档和仓库安全策略。测试语料用真实文件:自有 PSD 加 psd-tools 等集合,sha256 校验,用 cargo xtask corpus --all 获取。

Crafting Apps

PhotoCraft 是 Crafting Apps 之一:免费开源创意工具,每个用 Rust 从零写,可独立运行。 - PhotoCraft – 图像编辑:图层、蒙版、文字和真实 PSD 文件(本文) - VectorCraft – 矢量插画 - FilmCraft – 视频编辑、调色和声音 - LightCraft – 照片库和 raw 开发 - PrintCraft – 阅读、整理和保护 PDF - EffectCraft – 动态图形和视觉特效 - DesignCraft – 页面布局和出版 还有 ArtCraft 本身,面向艺术家的 AI 图像视频工作室。它们共享约定:净室纯 Rust,原生跨平台,浏览器 WASM,代理驱动。

PhotoCraft 双授权 MIT 或 Apache-2.0。版权 (c) 2026 ArtCraft Team 及贡献者。展示艺术品均公共领域。

评论

多数人质疑项目完成度与“克隆/移植”宣传不符,指出核心功能如 RAW 处理缺失;少数人看好其作为开源替代的潜力与 AI 时代软件克隆浪潮的开端。

认为这些项目只是受 Adobe 套件启发的不完整新品,而非真正克隆或移植

  • 多名用户指出没有逆向工程,“干净室”说法不恰当;保存 PSD 会大幅改动导致渲染差异,笔刷支持有限,作者可能从未实际使用成品(较多人) > 标题有点误导,没有逆向工程,称“Adobe 套件克隆”更合适(@forgotpwd16)

认为 RAW 支持和图像处理质量存在巨大短板

  • 摄影用户强调 Lightcraft 的 RAW 处理像业余尝试,缺少基本色彩配置;Photocraft 甚至直接栅格化不入 RAW,非 RAW 工作流才或许可用(较多人) > 应将其视为远未完成、受 Adobe 套件启发的新软件,而非“移植”,摄影工作流因 RAW 缺失而不可用(@Youden)

认为这标志着 AI 时代干净室克隆专有软件的趋势开端

  • 有人视为亮点:公司会起诉保护的软件开始出现干净室移植,旧“无人重实现”壁垒失效;也有人畅想开源克隆一切的时代将至(较多人) > 我们正看到那些公司会起诉保护的软件出现干净室移植,旧保护已失效,软件魔法 DMCA 保护或面临终结(@petterroea)

看好其作为 Linux 平台创意软件替代方案的潜力

  • 有用户认为比 GIMP/Inkscape 顺手,打包为 AppImage 无系统常驻;有用户认为界面好虽基础功能不完整但有潜力;另有用户已自行加功能,认为重新认识 Photoshop 很有趣(少数人) > 这给 Linux 上 GIMP 提供了一个有希望的替代,若持续发展将惊人(@dinkleberg)

质疑后 AI 时代软件公司与商业模式的未来

  • 个别用户困惑:克隆削减软件公司利润,而它们本该是 AI 公司客户,但断言一年后可功能对等(少数人) > 这也会切割软件公司利润,让他们消失,而这些公司本是 AI 公司主要客户,真不懂在发生什么(@wg0)

有价值的补充

  • Premiere 克隆启动速度快得惊人(@drcongo)
  • 同日另有 Pixellect 发布,定位介于 Pixelmator 与 Photoshop 间且更多 AI 集成,说明赛道已热闹(@terhechte)
  • 当前已有多个类似克隆,有人关心谁在功能和社区支持上领先、是否吸引贡献者(@arecurrence)