跳到正文
Hacker News· ambewas·· 6 小时前AI 评分58

Klad 发布可被编码智能体驱动的 2D 绘画应用

Show HN: Klad, a paint app your coding agent can drive (source-available)

AI 导读

Klad 发布首个公开版本,这是一款 2D 绘画与动画应用,编码智能体可通过 klad 命令行用同样的画笔在同一张画上作画,双方笔触约一秒内互相可见。应用不含图像模型,每一笔、每个填充都以带路径、压感、画笔和颜色的数据保存,可事后单独修改;绘图是本地纯文件文件夹,无需账号。源码可获取但非开源,年收入低于 50 万欧元的公司和个人可免费自行构建使用,目前需自行编译,尚无安装包。

正文 · AI 翻译

The hero of klad.studio: a terminal beside the klad editor. An agent paints a sprout creature stroke by stroke through the klad command line; in the editor its leaves are recoloured, its mouth bent into a smile, a smudge moved and its blush blended; then the agent puts its parts in groups, keys them, and the creature walks while the editor's timeline plays

给你的智能体真正的画笔。 klad 是一款 2D 绘画与动画应用,你可以与一个编码智能体共同使用。你在编辑器里用画笔作画。智能体则通过 klad 命令行,用同样的画笔,在同一幅画上作画,你们双方都能即时看到彼此的笔触。

不想自己构建?在 klad.studio 注册获取预构建的应用版本

klad 中没有图像模型。 你的智能体(Claude Code、Codex,任何能运行命令的工具)决定画什么;klad 为它提供画笔、图层和时间轴。无论你们谁画下的内容都保持其原本的样子:一笔带有其路径、压力、画笔和颜色的笔触,一个带有其顶点的形状,一块带有其区域的填充。所以不存在重新掷骰子碰运气:如果某片叶子看起来不对,你就修那片叶子。

当被要求“为我的游戏画一个小嫩芽生物”时,智能体绘制了 4,344 个笔触和填充。你来修改它们:给叶子重新上色,弯曲嘴巴,移动一处涂抹,混合腮红。然后智能体为它制作动画:生物的各个部分被分入五个组,205 个关键帧驱动它们,没有任何一帧被重新绘制。

A night scene: a hooded traveller holds a lantern on a pole out to a ruined stone arch, a small sprout creature following Twelve game props: a chest, a crate, a barrel, a torch, a potion, a key, a shield, a signpost, rope, a bedroll, mushrooms and a waystone

使用 Claude Fable 5.2 绘制的画作:生物、场景和道具套件都是通过 klad 命令行一笔一笔画出来的。

  • 网站与指南: klad.studio,其中包含这些画作逐笔回放。
  • 许可: 源码可见,但非开源。你可以自由构建并供自己使用,也可在年收入低于 50 万欧元的公司内部使用。详见 Licence。
  • 运行于: macOS(支持画笔压力和倾斜)。它也能在 Linux 和 Windows 上构建并通过测试,每次更改都会检查;目前编辑器在 Linux 上以鼠标启动,尚未有人在 Windows 上用它作画。
  • 状态: 早期阶段。这是首个公开版本,需要你自行构建:参见 From source。

为什么不直接生成图片?

图像生成器交给你的是像素,剩下的唯一编辑方式就是再掷一次骰子。klad 将每一笔、每一块填充都保存为数据:它去了哪里、按了多重、用了什么画笔和颜色。几小时后,你可以挑出其中任何一个,无论是你的还是智能体的,重新上色、弯曲、移动或删除。

  • 这是绘画,不只是矢量。 一笔笔触像矢量一样保留其路径和压力,同时仍以绘画的方式呈现。厚涂的油画会留下迎光的脊线,涂抹工具会拖动图层上已有的颜料。涂抹本身也仍是一笔笔触:之后移动它,klad 会在它落下的地方重新混合。
  • 它也能只做矢量。 带有可编辑顶点的形状、渐变、发光效果,以及约五十种随附开放字体中的真实文本,适用于海报、封面和卡片。
  • 它是一款完整的绘画与动画应用。 二十多种画笔和画笔编辑器、图层、蒙版、剪贴、效果、带洋葱皮和剪辑的时间轴、由你的关键帧画作生成的中间帧、带 IK 的骨骼,以及导出为 PNG、精灵表或直接导入 Godot。
  • 你的画作始终属于你。 一幅画就是你电脑上的一个普通文件夹,klad 无需账户。它每天只检查一次新版本,你可以关闭该功能。一次编辑只更改它所编辑内容的文件,因此画作很适合放在 git 中。

与你的智能体协作

  1. 提出要求。 用平实的语言告诉你的智能体这幅画需要什么:客栈的灯笼,从左侧打光,放在单独的图层上。
  2. 观看。它通过 klad 命令行绘制,笔触大约一秒后就会出现在你的编辑器里。
  3. 指点。在画布上钉一条注释,或选中你指的那部分(“这边多加点苔藓”)。智能体两者都会读取。
  4. 接管。你可以手动画任何东西,包括智能体的笔触和你自己的笔触。它的笔触会被标记为它自己的,每一次改动都是共享历史中的一步,所以你可以撤销其中任何一步。

入门提示在 试一试 下面。klad skill 会在 docs/skill/SKILL.md 中打印出智能体技能:如何查看一幅画、修改它并检查结果。第二个 klad skill drawing(docs/skill/drawing/SKILL.md)教授技艺:规划画面、形体上的光、明度、边缘、色彩、材质以及如何评判结果。两者都是 MIT 许可,因此可与任何智能体和任何工具一起使用。打开这幅画来观看并跟着画:

智能体画出的东西取决于智能体本身以及你引导它的程度。这些技能教会它工具和一些技艺;你手中的笔完成其余部分。

面向开发者:画就是数据

你在编辑器里能做的一切也都有对应的 klad 命令,因此脚本或智能体可以操作你正打开着的同一幅画。它把笔触读取为 JSON,按地址修改其中任何一条,并以 JSON 操作的形式批量应用编辑。

操作 在编辑器中 从脚本或智能体
绘制 B 和一支带压感的笔 klad stroke art.klad l4 --brush oil --path 'M100 400 C 300 200 500 600 700 400'
之后修改笔触 按 S 选中它,然后重新上色、调整大小或移动;A 弯曲它的路径 klad set art.klad c4:s12 size=3.5 color=#3355aa
读取现有内容 用 S 指向它 klad strokes art.klad l4 --json
平涂颜色 G,对着线条图层填充 klad fill art.klad l2 --at 820,640 --ref lines --gap 4 --color skin
指向某物 N 钉一条注释,S 选中 klad notes art.klad、klad selection art.klad
中间帧 中间帧窗口 klad inbetween art.klad --layers lines,colour --from 0 --to 6
导出 cmd E,或从片段导出到 Godot klad export art.klad --godot ../game/art
撤销 cmd Z,或历史记录面板 klad undo art.klad

文件格式在 MIT 许可下逐字节记录(docs/format.md),因此其他应用和引擎无论是否使用 klad 都能读写 klad 画作。

为游戏而生

道具、角色、背景和逐帧动画。画出关键姿势,klad 会逐部件生成中间的画;它会检查弧线(滑动的脚、陷到地下的部件),从第一张画开始为每一张上色,并导出精灵表或带有每个片段时序的 Godot SpriteFrames 场景。

The creature's idle, on threes The creature's walk, on twos The courier's idle The courier's run

klad inbetween creature.klad --layers lines,colour --from 3 --to 5 --spacing in-out
klad arcs creature.klad --track 'lines:near leg' --clip walk --check
klad export creature.klad --godot ../game/art

试一试

git clone https://github.com/klad-app/klad && cd klad
just compile                  # about ten minutes the first time
target/release/klad open      # on Linux: target/linux/release/klad open

然后让你的智能体来画

  1. 把 klad 放到你的路径中,为你和你的智能体都放好:target/release/klad install(在 Linux 上 target/linux/release/klad install;在 Mac 上它可能会要求输入密码)。

  2. 在画作应存放的文件夹中启动你的编码智能体(Claude Code、Codex 或任何能运行命令的工具),然后粘贴:

    运行 klad skill 和 klad skill drawing 并阅读它们打印的内容。然后创建 scene.klad 并画一个夜景:一个戴兜帽的旅人把灯笼伸向一座废墟拱门,一只小生物跟在后面,平涂着色并由灯笼照亮。

  3. 等它创建好 scene.klad 后,在另一个终端中打开它来观看笔触落下,并跟着画:klad open scene.klad。

  4. 然后引导它。按 N 在画布上钉一条注释(“这边多加点苔藓”),并告诉智能体读取你的注释,或者用 S 选中任意笔触并自己修改它。

每个构建都包含 klad 命令行工具、编辑器、字体、许可证、agent skill 以及六幅可供查看和绘制的示例画作(启动窗口会显示它们;klad samples 会列出它们并复制其中一幅)。首次启动会提供入门步骤:绘制一个形状、填充它,并将画作交给 agent。docs/guide/ 中的指南展示了如何在编辑器中绘画、选择、填充、制作动画、绑定骨骼和导出,每次一个配方,从 入门 开始。

从源码构建

首次构建大约需要十分钟。

  1. 使用 rustup 和 just(brew install just,或 cargo install just)安装 Rust。在 Linux 上还需要 pkg-config、libfreetype-dev、libfontconfig1-dev、libxkbcommon-dev 和 libwayland-dev。
  2. git clone https://github.com/klad-app/klad && cd klad,然后 just compile 会为当前机器在 target/release/ 中生成 klad 和 klad-editor(在 Linux 上生成到 target/linux/release/)。你构建的版本供自己使用,或者如果你的公司去年营收低于 500,000 欧元,也可供公司使用(见 许可证)。
  3. target/release/klad open 会在启动窗口启动编辑器:绘制一幅画并开始绘画,或进行入门步骤(帮助 > 编辑器中的入门步骤)。
  4. target/release/klad install 会将 klad 放入你的终端路径,供你和 agent 使用(编辑器的文档菜单中有相同的“安装 klad 命令”)。
  5. just samples 会在 samples/ 中构建示例画作(一盏灯笼、一只行走的生物、一名奔跑的快递员、一处地下废墟、一块客栈招牌、一棵树、一片草地、涂绘的立体、一碗柠檬以及用笔触覆盖的同一幅画、一个弹跳的球、墨水示例);使用 target/release/klad open samples/lantern/lantern.klad 打开其中一个。samples/shipped.json 中列出的六幅会显示在启动窗口中,并进入每个构建(packaging/samples.sh)。
  6. 在 Mac 上,just app 会生成 klad.app 和 dist/ 中的磁盘映像;just dist 会将本机的构建打包为归档文件。每台机器为自己构建:Mac 构建 Mac 版本,Linux 构建 Linux 版本。

尚不完善之处

  • 你需要自行构建。目前还没有安装程序。计划推出适用于 macOS、Windows 和 Linux 的签名构建,采用与源码相同的许可证;在 klad.studio 留下你的邮箱,以便在它们准备好时收到通知。
  • 编辑器是在 Mac 上开发的。在 Linux 上它可以启动,你可以用鼠标绘画:目前数位板在那里没有压感。在 Windows 上它可以构建且测试通过,但还没有人在那里用它绘画,所以请告诉我们你看到的情况。
  • 缺少一些插画基础功能:同时选择多个形状、对齐和分布、吸附、网格,以及 SVG 导入和导出。
  • 骨骼是预览功能:其命令可能仍会变化。
  • 随着 klad 的变化,画作会持续可打开:新的格式版本会附带迁移。

基于它构建

  • docs/format.md:画作的文件格式,足以从任何程序读取和写入一幅画。
  • docs/cli.md:每个命令及其选项(klad <command> --help 打印相同内容)。
  • crates/client:klad-client,一个小型 Rust crate,可运行 klad 命令、以 JSON 操作应用编辑并读回画作。
  • docs/DESIGN.md:klad 是如何构建的:CLI、笔刷引擎、渲染、编辑器、依赖项。
  • CONTRIBUTING.md:构建、测试、代码规则以及如何提交更改。
  • samples/:从零生成画作的生成器,是查看操作实际使用的最佳场所。
just build      # release build of the klad CLI and the editor
just test       # every test, and the drawkit check
just lint       # rustfmt and clippy, warnings as errors
just audit      # licences, RustSec advisories, sources, and the notices are current
just samples    # build the sample drawings

许可证

klad 是源码可获取的,并非开源,版权归 Indicode BV 所有。

  • 该应用(即下一点中未列出的所有内容)采用 PolyForm Internal Use License 1.0.0 许可,并附带三项额外许可和一项限制(LICENSE):你可以将其用于个人目的,免费从源代码构建,也可以在公司内部使用;你可以将修改发送给 Indicode BV,提议作为贡献;你用其创作的画作归你所有,可以分享,笔刷设置和图片会作为副本存入其中。限制:如果一家公司(连同其控制或受其控制的公司计算)在上一纳税年度的收入达到或超过 500,000 欧元,则每个为其使用 klad 的人员都需要购买一份许可。你可以为这些用途构建和修改它;但不得分发它,无论是源代码还是构建版本。
  • 在 itch.io、Steam 或从 Indicode BV 购买构建版本,即可获得该购买许可,且该构建版本也按相同条款授权:源代码和构建版本共用一份许可,没有单独的最终用户许可。
  • 这些文件采用 MIT 许可证(LICENSE-MIT),因此任何程序或代理都可以处理 klad 绘图:docs/format.md(文件格式)、docs/cli.md(命令参考)、docs/skill/(代理技能)和 crates/client/(klad-client crate)。
  • 贡献将根据贡献者许可协议(CLA.md)授权给 Indicode BV,以便纳入 klad 及其销售的构建版本中;参见 CONTRIBUTING.md。

klad 基于开源库、字体和 Skia 构建;其许可证见 THIRD-PARTY-NOTICES.md,也可通过 klad licences 以及编辑器的“关于”窗口查看。

来源:Hacker News · github.com