40 KiB
LightCraft
Your photos. Your pixels. Your machine.
照片图库与 raw 显影;Adobe Lightroom 的开源净室实现,用纯 Rust 重建。
在 macOS、Windows 和 Linux 上原生运行,也可通过 WebAssembly 在浏览器中使用,并能由 AI 智能体经 MCP 端到端驱动。
getartcraft.com 上的 LightCraft · ArtCraft · 全部 Crafting Apps
安塞尔·亚当斯,《特顿山脉与蛇河》(1942)。公有领域,美国国家档案馆。在 LightCraft 中显影。
Note
ArtCraft 是一个由形形色色的创作者组成的社区。 数字艺术、生成艺术、音乐、游戏 — 只要你在创作,你就是我们中的一员。来 Discord 打个招呼吧。
编辑 · 颜色分级 · 修改前后对比 · 蒙版 · 预设 · 图库 · 智能体与 MCP · 性能 · 功能状态 · 快速开始 · 路线图 · 下载 · Crafting Apps
Edit like you mean it
LightCraft 是一个装在单个原生应用里的完整暗房。每一项调整都是非破坏性的,原始文件永远不会被改动。 每个滑块都经过一条场景参考、宽色域、32 位浮点的管线渲染:高光像胶片一样柔和滚降,阴影被提亮却不产生光晕, 色彩从拍摄到导出始终保持干净。
☀️ Light曝光(Exposure)、对比度、高光、阴影、白色色阶、黑色色阶,配合边缘感知的局部色调映射(对对数亮度做引导滤波)。 把高光拉到 −100,就能救回一片过曝的天空,而且不会出现用简单曲线时会有的灰色光晕。 🎨 Color按色温和色调调整白平衡(raw 用开尔文,JPEG 用相对值),带预设、自动,以及点击即可中和的吸管。 保护肤色的鲜艳度、饱和度、8 个色段的颜色混合器(色相/饱和度/亮度),以及带混合与平衡的 三路颜色分级色轮。所有计算都在 OkLCh 这个现代感知色彩空间里完成。 |
✨ Effects让细节更细腻的纹理(Texture)、让中间调更有力的清晰度、去朦胧(暗通道先验加引导滤波细化; 推到负值可以增加空气感)、裁剪后带高光优先、圆度和羽化的暗角,以及分辨率无关、可调大小与粗糙度的 胶片颗粒。 📈 Tone Curve带可移动分割点的参数化区域曲线,外加 RGB、红、绿、蓝的点曲线。曲线在构造上就是单调的, 所以不会意外出现影调反转。 |
RGB 点曲线上一条平缓的 S 形曲线,就在 Light 滑块正下方。安塞尔·亚当斯,1942(公有领域)。
Color grading, the cinematic way
用随处拖动的色轮,分别给阴影、中间调和高光做分离色调。下图中,多萝西娅·兰格的 《移民母亲》 只拖动两次就获得了温暖的、类似照片冲印的色调(高光 42°,阴影 28°)。
Color 面板中的阴影、中间调和高光色轮。多萝西娅·兰格,《移民母亲》(1936)。公有领域,美国国会图书馆。
Before & after
按住 \ 偷看原图,按 Y 并排对比,或按 Shift+Y 分屏查看。 下面每一张都是 LightCraft 的真实截图,由智能体通过控制通道自动截取。
Masking that goes where you point
用画笔涂抹(大小、羽化、流量、密度、擦除),放置带可拖动控制点的线性渐变和径向渐变, 或者按亮度范围、颜色范围、天空、主体和背景来选择。用添加/减去/相交组合各个组件, 任意反相,每个蒙版还能调 15 项局部调整(色温、色调、曝光、对比度、高光、阴影、白色色阶、黑色色阶、纹理、 清晰度、去朦胧、色相、饱和度、锐化、降噪)以及一个总体的数量。
叠加在线性「天空」蒙版之上的径向「阳光光晕」蒙版(色温 +40、曝光 +0.50)。照片来自 LightCraft 程序生成的演示图库。
Presets, profiles & the Color Mixer
内置十八个手工制作的预设(Golden Hour、Teal & Orange、Faded Matte、Selenium Tone、Crisp Landscape 等等),每个都有 0 到 200 % 的数量滑块。你可以从任意一组设置保存自己的预设、标记收藏, 并在整个选区之间只复制、粘贴或同步你选定的那些分组。
Organize everything
一个不碍事的图库:所有照片、最近添加、留用、按日期、嵌套在文件夹里的相册,
以及最近删除。用 0–5 评星,用 P / X /
U 加旗标,用 6–9 加颜色标签。搜索支持字段:
rating:>3 flag:pick iso:>800 camera:x2 date:2026-04 keyword:mountains。每个视图都能按拍摄日期、
导入日期、编辑日期、名称、星级、大小或随机排序(一种稳定的乱序;「视图 → 排序 → 重新乱序」可换一个顺序)。
两端对齐的照片网格和正方形网格视图都做了虚拟化,
所以无论是四十张还是四万张照片都同样顺滑。
![]() 照片网格,相册嵌套在文件夹里,带星级和旗标。演示图库。 |
![]() 四张公有领域展示照片的正方形网格。 |
![]() 信息面板:文件、尺寸、星级、标题、题注、版权和相机元数据。NASA/比尔·安德斯,《地出》,阿波罗 8 号,1968(公有领域)。 |
|
Built for agents
LightCraft 里的每一个菜单项、滑块、画笔笔触、裁剪手柄和按键都是一个命令,拥有稳定的 ID 和 JSON 参数。界面、键盘、CLI、JSON-lines 控制通道和一个 MCP 服务器全都通过同一个入口分发。 智能体可以挑片、显影、给天空加蒙版并导出,而且能看到结果。
lightcraft --control 7980 ~/Pictures/trip
{"method": "engine.execute", "params": {"command": "photo.flag", "params": {"flag": "pick"}}}
{"method": "engine.execute", "params": {"command": "develop.set", "params": {"values": {"light.highlights": -45, "light.shadows": 38}}}}
{"method": "engine.execute", "params": {"command": "mask.add", "params": {"kind": "radial", "center": [0.62, 0.4], "rx": 0.2, "ry": 0.14}}}
{"method": "ui.clickWidget", "params": {"id": "slider:effects.clarity"}} // 按名称操作任意控件
{"method": "ui.pointer", "params": {"events": [{"kind":"down","x":0.2,"y":0.3}, {"kind":"up","x":0.4,"y":0.3}]}}
{"method": "ui.screenshot", "params": {"path": "after.png"}}
-
命令注册表。
engine.commands列出可用命令;develop.controls列出每个滑块的范围、 默认值和当前值。 -
MCP 服务器。
lightcraft-cli mcp把命令注册表开放给 Claude(或任何 MCP 客户端), 同时提供导入、查询、显影、蒙版、渲染(以图像返回)和导出的辅助工具。它既能无界面运行,也能附着 到正在运行的应用上,支持截图、点击和手势。见 docs/mcp.md。cargo build --release -p lightcraft-cli claude mcp add lightcraft -- "$PWD/target/release/lightcraft-cli" mcp ~/Pictures/shoot # 无界面 claude mcp add lightcraft-app -- "$PWD/target/release/lightcraft-cli" mcp --connect 127.0.0.1:7980 # 驱动运行中的应用 -
可脚本化的 CLI:
lightcraft-cli run --import in.dng develop.set control=light.exposure value=0.7 app.export path=out.jpg longEdge=2048可以运行任意命令链(无界面、在已保存的图库上,或对正在运行的应用), 每条命令打印一行 JSON 结果;lightcraft-cli render in.dng -o out.jpg --set light.exposure=0.7 --preset …。 -
一切皆可撤销,包括智能体的操作:一次滑块拖动(或脚本里一连串更新)算一步撤销。
-
联系表(原生应用/CLI): 选中照片,然后 文件 → 联系表 PDF…。可选择 A4 或 Letter、横向、 行数和列数以及文件名题注;保存分页 PDF,再用你的 PDF 阅读器打印。导出使用当前编辑,每张照片完整放入 而不再次裁剪,以 150 dpi 和 sRGB 渲染。后台导出支持取消,并保护原文件和 XMP 附属文件。从 CLI 调用:
lightcraft-cli run --import ~/Pictures/shoot library.selectAll export.contactSheet path=Contact.pdf paper=a4 columns=3 rows=4 captions=trueexport.contactSheet还接受显式的ids、landscape=true和paper=letter。只有当整个 PDF 生成成功后, 它才会替换已有的输出文件。限制:1000 张照片、100 页、256 MiB;题注使用与水印相同的字体覆盖来栅格化 (中日韩文字需要 craft-fonts),过长的名称会在中间省略。 这是一套联系表工作流, 不是打印驱动或自定义拼版编辑器。 -
每个控件都可寻址(
ui.widgets)且可按名称点击,所以智能体操作的是真实界面,而不是绕到侧门。 -
本 README 中的截图全部由
docs/showcase/脚本端到端生成。 协议参考:docs/control-protocol.md。
Fast, native, private
- 纯 Rust,无 C。 我们自己的 RAW 解码器(DNG、佳能 CR2/CR3、索尼 ARW、尼康 NEF、富士 RAF 含 X-Trans、
松下 RW2/徕卡 RWL、宾得 PEF、奥林巴斯 ORF)、我们自己的色彩科学、我们自己的管线。JPEG、PNG、TIFF、WebP、
PSD 合成图和 JPEG XL 现在就能打开;加
--features heif还能打开 HEIC/HEIF 照片(HEVC 是构建时的选择, 与 PhotoCraft 中一致)。 - 场景参考与宽色域。 内部使用线性 Rec.2020 浮点、Bradford 适应的白平衡、用色域映射代替裁剪, raw 走胶片式肩部,未改动过的 JPEG 则像素级直通。
- 分辨率无关的编辑。 半径和画笔大小都相对于图像,所以 400 px 的预览、你的 5K 显示器和 60 MP 的导出 看起来完全一致。
- GPU 加速,与 CPU 一致。 整条显影管线都作为 wgpu 计算内核运行(Metal/Vulkan/DX12), 并与 CPU 管线比对到 1/255 以内。在 24 MP raw 上(Apple M4 Pro):一次滑块更新约 4 ms 重新渲染, 冷启动 2.5 MP 放大视图约 30 ms,全尺寸导出约 0.3 s(含并行 JPEG 编码)。 没有 GPU 时同一条管线在所有 CPU 核心上运行,只重做受滑块影响的那些阶段。批量导出会并排渲染多张照片, 所以一张的解码和编码能与另一张的渲染重叠。
- 即时挑片。 打开一张 raw 会在约 0.1 s 内显示其内嵌的相机预览或缓存渲染,完整渲染随后跟上 (24 MP 约 0.2–0.5 s)。上一张和下一张会在后台准备好,因此翻阅一次拍摄时每张约 50 ms。
- 后台渲染。 一个工作线程池在 UI 线程之外渲染放大视图、修改前后对比和每一个可见缩略图: 拖动时用草稿,松手后出全质量。
- 本地优先。 没有账号、没有云、没有遥测、没有订阅。你的目录是一份只追加的可读操作日志, 可以 diff、备份或重放。
Feature status
LightCraft 很年轻,而且进展很快。我们如实所处的位置(细节见路线图):
- 按功能数量算,我们达到了 Lightroom 的约 79%(核心功能 98%),逐行记录在 docs/parity.md。
- 作为日常替代 Lightroom 的工具,我们更接近 60–70%。 在单台机器上处理 JPEG/DNG 以及大多数尼康/索尼/ 较老佳能的 raw 都很出色。
- 最大的缺口:
- 相机色彩校准: 索尼、尼康、松下、富士和佳能 CR3 的 raw 会从各自的相机 JPEG 得到受保护的估计值,内置 ILCE-7CR、ILCE-7M4、X-H2S 和 X-T4 配置文件;实测校准仍然缺失,其他 raw 或被拒绝的拟合会保留中性矩阵;
- 压缩的奥林巴斯 raw 和不受支持的 CR3 变体: 这些在有内嵌 JPEG 预览时使用预览。富士无损/有损压缩 RAF 现在能解码传感器数据;验证与已有图库重新加载说明;
- AI 蒙版与降噪: 主体和天空选择目前是经典启发式算法;
- 屏幕上的 HDR 显示、视频,以及经典版式中的打印/画册/地图模块。
- 接下来做什么: 见我们要去往哪里。
| 领域 | 状态 |
|---|---|
| 图库:相册、文件夹、智能相册、堆叠(含自动堆叠)、虚拟副本、星级、旗标、标签、过滤器栏、搜索、排序、网格、胶片窗格 | ✅ |
| 挑片:比较(同步缩放)和筛选视图、自动前进、即时预览 | ✅ |
| Light、Color、Effects(暗角样式)、色调曲线(+ 细化饱和度、目标调整)、颜色混合器(+ 目标调整)、点颜色、颜色分级、校准、黑白 | ✅ |
| 蒙版:画笔、线性、径向、亮度/颜色范围、添加/减去/相交 | ✅(AI 主体/天空目前使用经典启发式算法) |
| 裁剪、拉直工具 + 自动拉直、翻转、旋转、长宽比、叠加参考线 | ✅ |
| 配置文件(Color、Neutral、Vivid、Landscape、Portrait、Monochrome:我们自己的风格)、预设、版本、历史记录、复制/粘贴/同步设置 | ✅ |
| 相机色彩:DNG 文件使用其自带矩阵 | ✅ DNG · 🟡 我们自己的索尼/富士配置文件;缺少实测校准数据库 |
| 原生 macOS 菜单栏(由命令注册表生成)、控制通道 + 每个控件可寻址、无界面 UI 快照 | ✅ |
| RAW:DNG、CR2、CR3(无损 CRX Bayer 以及版本 0x100/0x200 的 C-RAW)、ARW、NEF(未压缩 + 无损/有损压缩)、富士 RAF(未压缩 + 无损/有损压缩,Bayer + X-Trans)、松下 RW2/徕卡 RWL/Panasonic RAW(所有 raw 格式,从 DMC-LX1 到 DC-S1RM2)、宾得 PEF、奥林巴斯 ORF(未压缩)、三星 SRW(未压缩);所有格式的嵌入预览,含 CR3 | 🟡 · CR3、压缩 ORF 和压缩 SRW 解码 ⬜ |
| 细节:锐化、亮度 + 色彩降噪 | ✅ · AI 降噪、超分辨率 ⬜ |
| 污点去除/修复/仿制(自动来源)、可视化斑点、红眼和宠物眼(自动瞳孔检测、眼神光) | ✅ · 内容识别填充、污点图钉编辑 🚧 |
| 导出:JPEG/PNG/TIFF/WebP/AVIF/DNG/原始格式,尺寸调整、文件大小上限、输出锐化、命名模板、批处理、元数据策略、文字或图像水印 | ✅ |
| HDR:带余量上限的 HDR 编辑、SDR 呈现、可视化 HDR;导出为 ISO 21496-1 增益图 JPEG、PQ AVIF 或 32 位浮点 TIFF | ✅ · HDR 显示 ⬜ |
| 图库持久化(防崩溃的操作日志 + 快照、后台压缩、保存失败会上报)、磁盘缩略图缓存 | ✅ |
| 导入:在原位置添加/复制/移动、重命名与文件夹模板、设备、重复检测、监视文件夹;本地文件夹浏览 | ✅ |
| MCP 服务器(无界面或运行中的应用、持久化图库)、CLI、控制通道 | ✅ |
XMP 附属文件(读取/写入、自动写入)、读取 crs: 显影设置、预设文件(.lcpreset、XMP 预设) |
✅ |
| 镜头校正(畸变、暗角、自动 + 手动色差、去边、DNG 文件内嵌的镜头校正以及松下/徕卡 RW2/RWL 畸变数据)、几何(变换、限制裁剪)、垂直校正(自动/水平/垂直/完整/引导式) | ✅ · 相机镜头配置文件(我们自己的)⬜ |
| 照片合并:HDR(自动对齐、去重影)、全景(球面/圆柱/透视、边界变形、自动裁剪)、HDR 全景 → DNG | ✅ |
| GPU 管线(wgpu 计算,与 CPU 一致到 1/255 以内)、设备限制/出错时回退到 CPU | ✅ · 浏览器中的 WebGPU 🚧 |
| AI:分割蒙版、AI 降噪、超分辨率、人脸;视频 | ⬜(见路线图) |
| 网页版(通过 WASM 在浏览器中使用同一界面):图库持久化在 OPFS/IndexedDB、Web Worker 渲染、导出下载 | ✅ · WebGPU、Safari/Firefox 测试 🚧 |
✅ 现已可用 · 🚧 进行中 · ⬜ 尚未开始
Quick start
git clone https://github.com/storytold/lightcraft && cd lightcraft
cargo run --release -p lightcraft # 打开你的图库(~/Pictures/LightCraft Library;新图库会先带演示照片)
cargo run --release -p lightcraft -- ~/Pictures/trip # 导入你的照片(扫描文件夹,跳过重复项)
cargo run --release -p lightcraft -- --memory # 用完即弃的内存演示会话(不写入任何内容)
cargo run --release -p lightcraft -- --control 7980 # 带自动化通道
cargo xtask web --serve # 在浏览器中运行同一个应用:http://127.0.0.1:8080/
cargo run --release -p lightcraft-cli -- render photo.jpg -o out.jpg --set light.exposure=0.5
cargo xtask ci # fmt、clippy、测试、分层、wasm 检查
CI 默认使用行表调试信息,并按启动时可用内存每 1.5 GB 开一个构建任务
(每个 CPU 最多一个;读不到内存时为 4 个),所以一台 8 GB、空闲 6 GB 的机器会用 4 个任务构建,
而一台空闲内存很少的繁忙机器会用更少。测试线程数随之调整,上限为 4。否则,每个 CPU 一个的
完整调试信息链接器会在任何测试运行之前就耗尽内存。GPU 覆盖范围不变。显式设置
CARGO_PROFILE_DEV_DEBUG、CARGO_BUILD_JOBS 和 RUST_TEST_THREADS 会覆盖这些默认值。
日常开发命令保持它们各自的设置。
内存受限机器上的 release 构建: #1196
报告在 16 GB 的 Arch/AUR 机器上,同时构建桌面应用和 CLI,并启用完整调试信息、thin LTO
和单个代码生成单元时,链接过程被 OOM 终止。上述 CI 默认设置不适用于普通的
cargo build --release。建议先使用一个构建任务;内存充足时可以尝试两个:
CARGO_BUILD_JOBS=1 cargo build --release -p lightcraft -p lightcraft-cli
# 或者:CARGO_BUILD_JOBS=2 cargo build --release -p lightcraft -p lightcraft-cli
如果打包环境启用了完整调试信息或占用较多内存的 LTO 设置,可以使用仅对本条命令生效的 覆盖设置,降低源码构建的内存需求:
CARGO_BUILD_JOBS=1 CARGO_PROFILE_RELEASE_DEBUG=0 CARGO_PROFILE_RELEASE_LTO=false CARGO_PROFILE_RELEASE_CODEGEN_UNITS=16 cargo build --release -p lightcraft -p lightcraft-cli
这些 POSIX shell 赋值只影响本条命令,不修改全局 Cargo 配置或仓库的 release profile。
关闭 LTO 可能改变性能和二进制大小;关闭调试信息会减少可用的调试细节。这是构建建议,
并不保证任何机器都有足够内存。下游打包者应串行构建大型二进制文件,并避免在低内存
构建机器上同时使用完整调试信息、LTO 和单个代码生成单元。PKGBUILD 自己导出的 profile
设置可以覆盖继承的环境变量;应在本地调整打包配方或联系维护者,而不要假定给
makepkg 添加环境变量前缀就能优先生效。
中文和日文文字需要共享字体仓库,这是一个可选的构建输入(所有正式发布版都会包含它):
git clone https://github.com/storytold/craft-fonts ../craft-fonts
CRAFT_FONTS_DIR=../craft-fonts cargo run --release -p lightcraft
不指定它时,LightCraft 构建和运行的方式完全相同,只是中文和日文文字没有字形。字体从不提交到
本仓库;见 craftrules standards/fonts.md。
界面语言: 编辑 → 语言(English、简体中文、繁體中文(台灣)、日本語、Português (Brasil)、Español、Deutsch、Русский、Français)或 设置 → 一般 → 语言;选择立即生效并会保留。见 docs/localization.md。
日志: 桌面应用把日志写到标准错误,以及设置文件夹里的 logs/lightcraft.log
(Linux $XDG_CONFIG_HOME/lightcraft/logs/,默认 ~/.config/lightcraft/logs/;macOS
~/Library/Application Support/LightCraft/logs/;Windows %APPDATA%\LightCraft\logs\),从不写进图库。
从桌面菜单或 Dock 启动没有终端,所以请把这个文件附在错误报告里(帮助 ▸ 打开日志
文件夹 会在文件管理器中显示它)。每次启动会把
上一个日志移到 lightcraft.1.log,再上一个移到 lightcraft.2.log,这样崩溃那次的日志能在下次启动后
保留下来;文件到 16 MiB 停止增长,--version 和 --help 不写日志,带
LIGHTCRAFT_NO_PREFS 运行时只写到标准错误。默认情况下 LightCraft 自己的 crate 记到 info,其他都记到
warn。LIGHTCRAFT_LOG=info 或 debug 的行为和以前一样(LightCraft 自己的 crate 用该级别,其余只记警告和
错误;其他值:只记警告和错误),并且优先于 RUST_LOG,后者会把默认值替换为
env_logger 风格的指令,例如 RUST_LOG=debug 或 RUST_LOG=warn,lightcraft_pipeline=trace(以
* 结尾的指令覆盖所有以它开头的目标,如 lightcraft*=debug)。panic 也会记录在那里,
并且仍然写在临时文件夹里的 lightcraft-panics.log。日志器是 apps/lightcraft/src/logging.rs。
网页版需要 wasm32-unknown-unknown target 和匹配的 wasm-bindgen CLI
(cargo xtask web 会打印确切的安装命令);见 docs/web.md。
Nix 会构建桌面应用和 lightcraft-cli(Nix 构建总是包含 craft-fonts 输入,所以日文
文字有字形):
nix run github:storytold/lightcraft # 桌面应用
nix build github:storytold/lightcraft # → ./result/bin/{lightcraft,lightcraft-cli}
nix develop github:storytold/lightcraft # rust 工具链 + 原生依赖 + 字体
在 flake 配置中(NixOS、home-manager、nix-darwin):
# flake.nix
inputs.lightcraft.url = "github:storytold/lightcraft";
# 可选:使用你自己的 nixpkgs,而不是 LightCraft 锁定的那个
# inputs.lightcraft.inputs.nixpkgs.follows = "nixpkgs";
# 然后在 NixOS 或 home-manager 模块中(`inputs` 在作用域内):
nixpkgs.overlays = [ inputs.lightcraft.overlays.default ]; # 让 `pkgs.lightcraft` 可用
environment.systemPackages = [ pkgs.lightcraft ]; # home-manager:home.packages = [ pkgs.lightcraft ];
nix build 会安装与 .deb/.rpm 相同的 desktop 文件、hicolor 图标和 AppStream 元数据,并运行
cargo test --workspace 作为它的检查阶段(用 pkgs.lightcraft.overrideAttrs { doCheck = false; } 跳过)。
键盘: G 网格 · D 细节 · E 编辑 · C 裁剪 · M 蒙版 · Shift+P 预设 · \ 原图 · Y 修改前后 · Z 缩放 · J 溢出警告 · ⌘Z 撤销 · ⌘/ 全部快捷键。
How it's built
一个引擎优先的 Cargo 工作区,由小而经过测试的 crate 组成,并强制分层(cargo xtask layers):geom、
color、raster、tiff → raw、codecs、meta、develop → pipeline → catalog → engine → ui-egui。
egui 前端是一个可替换的 crate;它下面没有任何东西知道 UI 的存在。mcp 和应用(lightcraft、
lightcraft-cli)坐落在 engine 之上。
Contributing
人和智能体遵循同样的规则,所以请先读 AGENTS.md。简短版本:
- 净室。 绝不阅读 Adobe 的二进制文件或 GPL 的 raw/照片代码(darktable、RawTherapee、LibRaw、rawspeed、dcraw……); 只依据公开规范和黑盒观察来工作。
- 绝不使用 Adobe 资源: 不使用 Adobe 产品的图标、截图、预设、配置文件、LUT 或字体。仓库中的每一个 图像、图标和字体都是原创、公有领域、知识共享、OFL 或宽松许可的,并在同一提交中 于 assets/ATTRIBUTION.md 添加条目。新字体提交到 storytold/craft-fonts,而不是这里。
- 纯 Rust、强制 crate 分层、一切皆命令,并且每次提交前
cargo xtask ci必须通过 (一个提交一个任务 ID)。 - 绝不崩溃。 非测试代码返回错误而不是 panic:不用
unwrap()、expect()、panic!或unsafe,对任何来自输入的数据都做受检索引,并且每个崩溃修复都带一个回归测试。细节见 AGENTS.md。
有问题、想法,或者想先讨论一个 bug?来 Discord。
Downloads
第一次用 LightCraft? 从 getartcraft.com 的 LightCraft 页面下载。那是最简单的安装方式。
想要特定的构建或格式? 在 GitHub 上,最新发布包含下面列出的所有构建,全部发布则有更早的版本及其说明。文件名中的 <ver> 是版本号,SHA256SUMS.txt 列出了每个文件的校验和。
Windows
| 构建 | 安装程序 | 便携版 |
|---|---|---|
| x64(64 位 Intel/AMD) | lightcraft-<ver>-windows-x64.msi |
lightcraft-<ver>-windows-x64-portable.zip |
| arm64(骁龙及其他 ARM PC) | lightcraft-<ver>-windows-arm64.msi |
lightcraft-<ver>-windows-arm64-portable.zip |
| x86(32 位) | lightcraft-<ver>-windows-x86.msi |
lightcraft-<ver>-windows-x86-portable.zip |
安装程序和可执行文件都有代码签名。安装程序会询问安装位置(默认
C:\Program Files\LightCraft;升级会留在你选择的文件夹),结束时有一页确认 LightCraft 已安装,
并可选择启动它。无人值守安装:msiexec /i lightcraft-<ver>-windows-x64.msi /qn INSTALLFOLDER="D:\Apps\LightCraft\"。
macOS
| 构建 | 文件 | 说明 |
|---|---|---|
| 应用,通用(Apple 芯片 + Intel) | lightcraft-<ver>-macos-universal.dmg |
已签名并公证 |
| 命令行工具,通用 | lightcraft-cli-<ver>-macos-universal.zip |
已签名并公证 |
Linux
| 格式 | x86_64 | aarch64 (ARM64) | 说明 |
|---|---|---|---|
| AppImage | lightcraft-<ver>-linux-x86_64.AppImage |
lightcraft-<ver>-linux-aarch64.AppImage |
随处可运行;用 AppImageUpdate(.zsync 文件)自我更新 |
| Flatpak | lightcraft-<ver>-linux-x86_64.flatpak |
lightcraft-<ver>-linux-aarch64.flatpak |
沙箱化;flatpak install --user <file> |
| Debian/Ubuntu | lightcraft-<ver>-linux-x86_64.deb |
lightcraft-<ver>-linux-aarch64.deb |
|
| Fedora/RHEL/openSUSE | lightcraft-<ver>-linux-x86_64.rpm |
lightcraft-<ver>-linux-aarch64.rpm |
|
| 压缩包 | lightcraft-<ver>-linux-x86_64.tar.gz |
lightcraft-<ver>-linux-aarch64.tar.gz |
解压到任意位置 |
FreeBSD
| 构建 | 文件 |
|---|---|
| x86_64 | lightcraft-<ver>-freebsd-x86_64.tar.gz |
网页版(WebAssembly)
| 构建 | 文件 | 说明 |
|---|---|---|
| 静态站点 | lightcraft-web-<ver>.zip |
在现代浏览器中运行;托管到任意静态服务器 |
The Crafting Apps
LightCraft 是 Crafting Apps 之一:来自 ArtCraft 团队的免费开源创作工具, 每一个都用 Rust 从零编写,每一个都能独立使用。
| 应用 | 用途 | 代码 | 了解更多 | |
|---|---|---|---|---|
| PhotoCraft | 图像编辑:图层、蒙版、文字和真正的 PSD 文件 | GitHub | 网站 | |
| VectorCraft | 矢量插画 | GitHub | 网站 | |
| FilmCraft | 视频剪辑、调色与声音 | GitHub | 网站 | |
| LightCraft | 照片图库与 raw 显影 · 你在这里 | GitHub | 网站 | |
| PdfCraft | 阅读、整理和保护 PDF | GitHub | 网站 | |
| EffectCraft | 动态图形与视觉特效 | GitHub | 网站 | |
| DesignCraft | 页面排版与出版 | GitHub | 网站 |
以及 ArtCraft 本身,我们为想要真正掌控力的创作者打造的 AI 图像与视频工作室。
Come make things with us
我们的 Discord 是各种创作者聚集的地方:画画的人、拍照的人、做动画的人、剪片子的人、 排版的人,还有仍在摸索自己喜欢做什么的人。分享你在做的东西, 寻求帮助,告诉我们哪里坏了,或者告诉我们你希望这些工具能做什么。 无论你用什么媒介,无论你做了多久,这里都欢迎你。
discord.gg/artcraft · getartcraft.com · The Crafting Apps · LightCraft
License and credits
LightCraft 采用 MIT 或 Apache-2.0 双许可,任你选择。 Copyright (c) 2026 ArtCraft Team and the LightCraft contributors. 必需的声明见 NOTICE。
随附的字体、图标、图像和其他资源保留各自的开放许可;每一项都在 assets/ATTRIBUTION.md 中列出了作者、来源和许可。
展示照片是经 Wikimedia Commons 使用的公有领域作品:安塞尔·亚当斯,《特顿山脉与蛇河》 (1942,美国国家档案馆);多萝西娅·兰格,《移民母亲》(1936,美国国会图书馆);比尔·安德斯/NASA, 《地出》(1968);NASA,《蓝色弹珠》(1972)。演示图库由 LightCraft 程序生成。界面字体: Inter(SIL OFL 1.1)。用 craft-fonts 构建的版本(所有正式发布版) 还会内嵌它的中文和日文字体(Noto Sans CJK SC、BIZ UDPGothic、BIZ UDMincho、Shippori Mincho;SIL OFL 1.1),列在其 ATTRIBUTION.md 中。所有图标均为原创。
docs/brand/ 中的 ArtCraft 名称、字标和标志是
ArtCraft 团队的商标,不在本许可范围内。它们只能在未修改的情况下,作为
本仓库和 LightCraft 的一部分,按 docs/brand/LICENSE-brand.txt 使用。
分支和修改版本必须移除它们。
Adobe、Photoshop、Illustrator、Premiere Pro、Lightroom、Acrobat、After Effects 和 InDesign 是 Adobe Inc. 在美国和/或其他国家的商标或注册商标。LightCraft 是一个独立的开源项目,与 Adobe Inc. 无隶属关系,也未获其赞助或认可;这些名称仅用于说明它所兼容的工作流。
由 ArtCraft 团队和社区制作。









