跳到主要内容
AI教程

使用 Claude Code 构建并验证确定性生成艺术

安装 genart 插件,开发确定性创意编程作品,渲染种子与联系表,衡量特征稀有度并验证可复现性。

Claude Code 确定性生成艺术开发与验证

什么是 genart?

genart 是一个 Claude Code 插件,为 Claude 提供长篇生成艺术创作所需的专业知识。它可帮助艺术家创建确定性的、基于哈希种子的作品,适用于 Art Blocks、256ART、Verse、Highlight、Plottables、bootloader.art 以及自主托管发行等平台。

该插件支持使用 Canvas 2D、p5.js、three.js/WebGL 和 SVG 构建的创意编程工作流。其指导内容涵盖伪随机数生成、代币哈希播种、与分辨率无关的渲染、特征、稀有度、调试、导出、平台集成、验证以及符合伦理的实践。

AI 的预期角色是工作室助理,而非艺术家。原创性、署名、许可和 AI 使用披露仍由艺术家负责。

主要功能

  • 确定性生成:了解如何选择 PRNG、使用代币哈希为其播种、组织具名随机子流,并避免导致结果无法复现的常见因素。
  • 分辨率无关:设计一套构图,使其在预览尺寸和高分辨率输出尺寸下都能保持一致的渲染效果。
  • 系列设计:设计功能、特征和稀有度表,然后检查它们在大量生成结果中的表现。
  • 多种渲染技术:将相关指导应用于 Canvas 2D、p5.js、three.js/WebGL 或 SVG 项目。
  • 生产工具:在 Claude 的协助下添加调试界面、键盘快捷键、PNG 导出和视频导出功能。
  • 验证:在铸造前对作品运行检查,并了解自动化测试无法证明哪些内容。
  • 平台指导:依据稳定的平台认知模型和权威文档开展工作,而不是照搬可能过时的细节。
  • 伦理指导:在艺术工作流中引入 AI 时,考虑原创性、署名、许可和披露问题。

前提条件

你需要安装 Claude Code,并准备一个现有或新建的生成艺术项目。执行插件的验证和渲染脚本需要 Node.js。

这些可运行脚本还要求在你的艺术项目中安装 Playwright 和 Chromium。插件本身不依赖任何软件包,既不包含 package.json,也不捆绑 Playwright。

安装 Claude Code 插件

在 Claude Code 中添加插件市场并安装 genart:

/plugin marketplace add camilleroux/genart-skill
/plugin install genart@camilleroux-genart

安装后,描述你的作品,相关 skill 应会自动加载。你也可以显式调用它:

/genart

一个实用的初始请求是:在修改代码之前,先让它说明项目的当前结构并提出确定性架构方案。例如:

/genart
审查这个 Canvas 2D 生成艺术作品。帮助我使用代币哈希为所有随机性播种,保持特征稳定,并以不同分辨率渲染相同构图。

安装渲染依赖项

在生成艺术项目的根目录中,将 Playwright 安装为开发依赖项并下载 Chromium:

npm i -D playwright
npx playwright install chromium

如果缺少 Playwright,随附脚本会提示安装命令。将此依赖项保留在项目中,可让插件本身保持零依赖,同时使其脚本能够针对你的本地作品运行。

构建确定性作品

从代币哈希开始

让 Claude 找出所有随机性来源,并通过一个带种子的 PRNG 处理它们。同一个代币哈希应初始化出相同的随机序列,而不应依赖 Math.random() 等未播种的调用。

插件的确定性参考资料还涵盖具名子流。它们有助于隔离不同决策,例如调色板选择、布局和纹理,从而避免修改作品的某一部分时,不必要地影响之后的每一项随机选择。

将构图与输出分辨率分离

如果画布尺寸变化时构图也随之改变,仅有确定性结果仍然不够。让 Claude 使用逻辑坐标系或比例来表示位置、长度及其他视觉决策,然后将最终渲染缩放到所需尺寸。

这样就能渲染约 400 像素的轻量预览图和约 4000 像素的生产输出,同时保持相同构图。插件将这一目标描述为不同尺寸下的感知稳定性,而不一定是逐像素完全相同。

有意识地定义特征和稀有度

对于给定哈希,特征应保持稳定,并在整个系列中具有实际意义。在仅凭少量好看的样本作出判断之前,先让 Claude 帮助定义可能的取值和稀有度规则。

一个实用的请求示例如下:

为调色板、密度和结构设计稳定的特征。确保特征计算具有确定性,记录每个取值的预期稀有度,并帮助我测试这些特征在 5,000 个种子中的分布。

运行确定性检查

插件附带一个可原地运行的 check.mjs 脚本。你无需将其复制到项目中,因此无论在何处使用已安装的脚本,插件更新都会自动生效。

node "$CLAUDE_PLUGIN_ROOT/scripts/check.mjs" myproject

请将 myproject 替换为相关项目路径。具体的作品接口规范及其所需的小型平台适配层记录在 references/verification.md 中。

请在铸造前使用此检查,但应谨慎解读结果。它有助于评估同一设备上的可复现性、特征稳定性以及不同尺寸下的感知稳定性,但无法证明每台设备、每种浏览器引擎或每款 GPU 都会生成完全相同的像素。

渲染并检查单个种子

使用带有 --hash 参数的 render.mjs,将一个确定性结果渲染为 PNG:

node "$CLAUDE_PLUGIN_ROOT/scripts/render.mjs" myproject --hash 0x…

0x… 替换为你要检查的代币哈希。此命令支持紧凑的视觉迭代循环:

  1. 让 Claude 修改作品。
  2. 渲染一个固定哈希。
  3. 检查生成的 PNG。
  4. 描述需要进行哪些更改。
  5. 再次渲染同一个哈希并比较结果。

保持哈希不变,有助于区分有意的代码更改与测试不同种子所造成的变化。

评估整个系列

创建联系表

单个种子无法展示项目是否具有足够的多样性,也无法判断不理想的结构是否反复出现。渲染包含 50 个输出的网格:

node "$CLAUDE_PLUGIN_ROOT/scripts/render.mjs" myproject --grid 50

使用联系表检查视觉范围、重复情况、构图平衡、罕见异常值,以及整个系列是否仍保持协调一致。

衡量特征稀有度

运行统计普查,查看已实现的稀有度规则在更大样本中实际产生的结果:

node "$CLAUDE_PLUGIN_ROOT/scripts/render.mjs" myproject --census 5000

此命令会测试 5,000 个输出,从整个系列的角度展示特征分布。将测量结果与预期稀有度表进行比较。如果两者不同,应检查代码,而不要想当然地认为代码遵循了设计百分比。

导出单独的 PNG 文件

要将多个输出渲染为独立文件,请使用批处理模式:

node "$CLAUDE_PLUGIN_ROOT/scripts/render.mjs" myproject --batch 50

此示例会批量生成 50 个单独的 PNG 渲染结果,以供更细致的审查或后续使用。

安全使用平台参考资料

该插件包含适用于 Art Blocks、256ART、Verse、Highlight、Plottables、bootloader.art 和自主托管分发的指导。这些参考资料刻意避免使用易变的版本号、字段名称和照搬的数据。

取而代之的是,它们提供稳定的认知模型、权威文档链接,以及 Claude 应根据当前文档提出的问题。为特定平台调整作品时,请指示 Claude 在编写集成代码之前获取官方文档。

针对我的目标平台使用 genart 平台指导。在提出集成代码之前获取该平台当前的权威文档,并指出所有需要确认的假设。

这种方法可以降低实现过时 API 或依赖自插件发布以来已经变化的配置细节的风险。

高级工作流技巧

使用具名随机子流

将构图、调色板、特征和纹理等主要系统的随机性分离开来。这样可以让代码更容易理解,并减少迭代过程中对无关视觉决策造成的意外影响。

每次结构性更改后都测试固定种子

维护一小组具有代表性的哈希,其中应包括常见和罕见的特征组合。在更改 PRNG 用法、特征逻辑、尺寸或渲染技术后,重新渲染这些哈希。然后使用网格和更大规模的统计普查补充这些检查。

不要将可复现性与跨设备证明混为一谈

WebGL 着色器编译器、浮点精度、光栅化器和多重采样抗锯齿可能因 GPU 而异。JavaScript 超越函数在不同引擎之间也可能存在差异。因此,该插件并不声称其工具能够证明跨设备确定性。

描述验证结果时务必准确。成功的测试只能证明实际测试过的内容,例如当前环境中的可重复性,或样本哈希范围内的特征稳定性。

尽早设计导出要求

如果最终作品需要高分辨率印刷、视频、SVG 或绘图仪输出,请在作品架构确定之前讨论这些要求。该插件包含 PNG 和视频导出、与分辨率无关的渲染、SVG 工作流以及绘图仪方面的指导。

确保艺术家对创作身份负责

使用 Claude 讲解技术、审查代码、运行工具并加快迭代。创作方向、作品筛选、原创性检查、署名、许可决策和披露应始终由艺术家掌控。

推荐的端到端工作流

  1. 在 Claude Code 中安装 genart。
  2. 打开生成艺术项目,并说明其视觉概念、渲染技术和目标输出。
  3. 让 Claude 设计基于哈希播种的随机性和稳定特征。
  4. 使构图独立于输出分辨率。
  5. 在项目中安装 Playwright 和 Chromium。
  6. 遵循 references/verification.md 中描述的作品接口规范。
  7. 运行 check.mjs,找出可检测的复现问题。
  8. 渲染固定哈希并根据图像进行迭代。
  9. 生成联系表以审查视觉多样性。
  10. 运行大规模统计普查,并将测得的稀有度与预期特征表进行比较。
  11. 在实现平台专用代码之前,获取最新的官方平台文档。
  12. 准备所需的 PNG、视频、印刷、SVG 或绘图仪导出文件,并记录确定性声明的适用范围和局限性。

总结

genart 将 Claude Code 转变为专注于确定性生成艺术开发的助手。其参考资料有助于组织作品架构,可运行工具则支持固定种子渲染、系列审查、稀有度测量和可复现性检查。谨慎使用时,它能够提高项目的技术可靠性,同时不会取代艺术家的创作身份,也不会夸大自动化验证所能证明的内容。

该项目由 Camille Roux 维护,并采用 MIT 许可证发布。