关于 Art
Art 是用于生成图表、卡片和插画等静态视觉内容的技能,按格式采用对应工作流。它将请求路由到图像模型,并先把输出放入 Downloads 供审核。
主要功能
- 01适配多种视觉格式的工作流
- 02使用 Flux、Nano Banana Pro 和 GPT-Image-2 生成图像
- 03必须选择工作流或明确选择自由提示
- 04输出先暂存于 Downloads
- 05博客页眉生成透明图与棕褐色缩略图
适用场景
- 01制作技术图或架构图
- 02生成博客页眉及单独的正文图和社交缩略图
- 03制作图表、对比图、时间线或数据卡片
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ danielmiessler/ lifeos --skill art安装后在 Claude Code 中输入/art确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
Lib/discord-bot.tsmidjourney-client.tsTools/FillFrame.tsGenerateMidjourneyImage.tsComposeThumbnail.ts.gitignoreGeneratePrompt.tsCLAUDE.mdPickExpression.tsGenerate.tsREADME.mdpackage.jsontsconfig.jsonThumbnailText.tsbun.lockWorkflows/Aphorisms.mdAdHocYouTubeThumbnail.mdAnnotatedScreenshots.mdComics.mdCreateLifeosPackIcon.mdEmbossedLogoWallpaper.mdLogoWallpaper.mdComparisons.mdD3Dashboards.mdMaps.mdFrameworks.mdRecipeCards.mdMermaid.mdEssay.mdRemoveBackground.md详细介绍
Art 技能
自定义
执行前,请检查用户自定义设置是否位于:
~/.claude/LIFEOS/USER/CUSTOMIZATIONS/SKILLS/Art/
如果此目录存在,请加载并应用:
PREFERENCES.md- 美学偏好、默认模型、输出位置CharacterSpecs.md- 角色设计规范SceneConstruction.md- 场景构图指南
这些设置优先于默认行为。如果此目录不存在,则使用技能默认设置。
🚨 强制要求:语音通知(任何操作前必须执行)
调用此技能时,必须先发送此通知,然后才能进行任何其他操作。
-
发送语音通知:
curl -s -X POST http://localhost:31337/notify \ -H "Content-Type: application/json" \ -d '{"message": "Running the WORKFLOWNAME workflow in the Art skill to ACTION"}' \ > /dev/null 2>&1 & -
输出文本通知:
Running the **WorkflowName** workflow in the **Art** skill to ACTION...
这不是可选项。调用技能后立即执行此 curl 命令。
功能说明
使用 Flux、Nano Banana Pro (Gemini 3 Pro) 和 GPT-Image-2,以 20 多种格式生成静态视觉内容,包括博客标题图、技术和架构图、框架、分类体系、时间线、对比图、统计卡片、漫画、图标、壁纸、D3 图表、Mermaid 图表。每个请求都会通过一个命名工作流处理,该工作流规定了技术和配色;输出会先暂存到 $LIFEOS_DOWNLOADS_DIR(未设置时默认为 ~/Downloads/)供审阅;博客标题图则会同时生成透明的内嵌版本和不透明的社交媒体缩略图。
问题所在
直接给基础图像模型一段自由形式的提示词,会产生风格不一致、偏离预期的结果——曾有一次,因为提示词跳过了规定构图规则的工作流,单次会话就提交了 12 张被拒的图表。不同格式需要不同的模型(文字密集的卡片适合 GPT-Image-2;编辑风格的标题图适合 Nano Banana Pro)、不同的尺寸格式,以及不同的透明度处理方式。如果没有固定的路由与暂存规范,就会出现尺寸错误、与页面背景冲突的不透明标题图,以及在任何人查看前就被直接推送到代码仓库的图像。此技能通过代码强制执行工作流、模型选择和优先暂存到 Downloads 以供审阅,而不只是写在 Markdown 文档里。
工作原理
这是一个用于插图、图表和其他静态视觉内容的完整系统。每个请求都会先选择匹配的工作流文件,遵循其中的提示词模板,然后调用 Generate.ts,并传入 --workflow=<name> 以及模型、尺寸和输出相关标志。Generate.ts 本身会强制要求遵循工作流;输出始终会保存到 $LIFEOS_DOWNLOADS_DIR(未设置时默认为 ~/Downloads/),以供预览;博客标题图则会通过 --thumbnail 生成透明 PNG 和带棕褐色背景的社交媒体缩略图。
🛑 结构性强制要求——必须指定 --workflow=<name>
此规则过去只写在 Markdown 文档中,执行时会被悄然忽略,导致某次会话中有 12 张图表被拒(事件日期:2026-04-30)。现在该规则已在代码中实现。
Generate.ts 本身会拒绝运行,除非你传入 --workflow=<name>(或明确选择退出并传入 --freeform-confirmed)。如果未传入,它会以非零状态码退出,并显示工作流查找表。
**正确流程:**阅读匹配的工作流文件 → 遵循其中的提示词模板 → 调用 Generate.ts,并传入 --workflow=<该工作流名称> 以及模型、提示词和尺寸相关标志。--workflow=<name> 标志表示你明确声明:“我已阅读工作流并遵循了它。”
**会被阻止的流程:**自行编写自由形式的提示词,然后直接提交给 Generate.ts。Generate.ts 会拒绝执行。
最常见的失败方式(不要重蹈覆辙)
读完工作流中的限制警告,心里记着“要执行工作流”,却还是因为觉得更快而用自己写的提示词编写 Bash 命令。**停下。**工作流模板规定了基础模型无法自行遵循的技术、配色、构图规则和验证关卡。跳过工作流,结果原话就是“absolute fucking ass”的图表。先阅读工作流文件。根据模板编写提示词。传入 --workflow=<name>,让检查机制确认你确实照做了。
工作流 → 命令(复制粘贴)
bun ~/.claude/skills/Art/Tools/Generate.ts \
--workflow=<WorkflowName> \
--model nano-banana-pro \
--prompt "..." \
--size 2K \
--aspect-ratio 16:9 \
--output "${LIFEOS_DOWNLOADS_DIR:-$HOME/Downloads}"/<filename>.png
<WorkflowName> MUST match Workflows/ 下的一个文件(不含 .md):
路由规则——编写任何提示词之前,先选择工作流:
| 请求类型 | 必需的工作流 |
|---|---|
| 博客页眉 / 编辑类文章插图 | Workflows/Essay.md — 按顺序执行步骤 1–8,不得跳过 |
| Mermaid 图表 | Workflows/Mermaid.md |
| 技术 / 架构图 | Workflows/TechnicalDiagrams.md |
| 框架 / 2x2 / 矩阵 | Workflows/Frameworks.md |
| D3 仪表板 / 图表 | Workflows/D3Dashboards.md |
| 分类体系 / 层级结构 | Workflows/Taxonomies.md |
| 时间线 | Workflows/Timelines.md |
| 对比 | Workflows/Comparisons.md |
| 统计卡片 | Workflows/Stats.md |
| 警句 / 引言卡片 | Workflows/Aphorisms.md |
| 漫画分格 | Workflows/Comics.md |
| 锁定品牌风格的 YouTube / 频道缩略图 | 使用专用的锁定品牌风格缩略图技能 — 它负责锁定风格,并协调下方的 Art 工具。不要直接使用这些工作流制作频道缩略图。 |
| YouTube 缩略图(通用机制,由缩略图技能协调) | Workflows/StyleMatchedThumbnail.md — 确定性文字 + 真实照片人脸 |
| YouTube 缩略图(旧版 / 验证) | Workflows/AdHocYouTubeThumbnail.md 或 Workflows/YouTubeThumbnailChecklist.md |
| LifeOS 套件图标 | Workflows/CreateLifeosPackIcon.md |
| 品牌 Logo 壁纸 | Workflows/LogoWallpaper.md |
| 食谱卡片 | Workflows/RecipeCards.md |
| 地图 / 概念图 | Workflows/Maps.md |
| 带注释的截图 | Workflows/AnnotatedScreenshots.md |
| 仅移除背景 | Workflows/RemoveBackground.md |
| 浮雕 Logo 壁纸 | Workflows/EmbossedLogoWallpaper.md |
| 通用可视化(以上均不适用) | Workflows/Visualize.md |
**唯一例外:**用户明确说“freeform” / “skip the workflow” / “just run Generate.ts directly with this prompt: ...”。在这种情况下,向 Generate.ts 传入 --freeform-confirmed(它会将明确选择跳过工作流的记录写入 stderr,以供审计)。如果用户没有明确这样指示,始终选择匹配的工作流并传入 --workflow=<name>——否则 Generate.ts 会拒绝调用。
如果没有匹配请求的工作流,请停止并告知用户,然后提出以下选项之一:(a) 选择最接近的现有工作流;(b) 使用 Visualize.md 作为通用兜底方案;或 (c) 先通过 CreateSkill 技能创建一个新工作流。不要自行变通。
🚨🚨🚨 强制要求:先输出到 Downloads 🚨🚨🚨
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚠️ ALL GENERATED IMAGES GO TO $LIFEOS_DOWNLOADS_DIR (default ~/Downloads/ when unset) FIRST ⚠️
⚠️ NEVER output directly to project directories ⚠️
⚠️ User MUST preview in Finder/Preview before use ⚠️
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
这适用于此技能中的所有工作流。
🚨🚨🚨 强制要求:博客页眉透明度规则 🚨🚨🚨
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚠️ INLINE (body) image → TRANSPARENT (PNG with alpha) ⚠️
⚠️ SOCIAL THUMBNAIL (frontmatter) → SEPIA #EAE9DF (opaque) ⚠️
⚠️ EVERY blog header MUST use --thumbnail (produces both) ⚠️
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
博客页面的背景色为棕褐色 #EAE9DF。正文中的图片必须使用透明 PNG,才能与页面背景自然融合。社交平台(X、LinkedIn、RSS 阅读器)不支持透明度——会透出白色或黑色背景——因此 thumbnail: 前置元数据必须指向带棕褐色背景的版本。
调用 Generate.ts 时的强制要求:
--thumbnail是博客页眉唯一正确的标志——它会隐式启用--remove-bg,并生成output.png(透明)和output-thumb.png(#EAE9DF 背景)。- 背景移除在本地通过
rembg运行(不调用外部 API)。如果模型返回 JPEG(Nano Banana Pro 经常如此),Generate.ts会在 rembg 处理后自动将输出文件从.jpg重命名为.png,因此最终的透明文件是真正带有 alpha 通道的 PNG。如果看到扩展名为.jpg的文件却标记为“透明”,那它就不是透明的。 - 如果
~/.local/bin/rembg未安装,该工具会明确报错并提供安装说明,而不会悄悄生成不透明图片。安装命令:pipx install rembg(或设置REMBG_BIN环境变量来覆盖路径)。
声明图片完成前的验证步骤(必需):
file "${LIFEOS_DOWNLOADS_DIR:-$HOME/Downloads}"/[name].png→ 必须显示PNG image data, ... RGBA(8-bit/color RGBA)。如果显示JPEG或不带 alpha 的8-bit colormap,则透明处理失败。file "${LIFEOS_DOWNLOADS_DIR:-$HOME/Downloads}"/[name]-thumb.png→ 必须显示PNG image data。缩略图应为带棕褐色背景的不透明图片。- 只有两项检查都通过后,才能复制到项目目录并接入博客文章。
接入博客文章:
- 正文内嵌图片:
[](/images/blog/[slug]/header.webp)— 使用由.png转换而来的透明 WebP。 - 前置元数据:
thumbnail: https://example.com/images/blog/[slug]/header-thumb.png— 始终使用-thumb.png(不透明棕褐色背景)。
切勿将不透明缩略图用于正文内嵌图片。切勿将透明文件用于社交平台缩略图。这是一次 --thumbnail 运行生成的两种不同输出。
批准的例外情况(本节为权威说明;博客撰写技能会引用本节): 所有博客页眉默认都使用透明的正文内嵌图片。唯一的例外是细线条或木炭画风格的作品,因为 rembg 可能会将作品本身移除(参见注意事项)——这类图片可以使用不透明的棕褐色 #EAE9DF 正文内嵌图片,与匹配的页面背景无缝融合。不透明内嵌图片是针对该故障模式的有记录回退方案,绝不是第二种默认选项。
工作流路由
根据请求路由到相应的工作流。
| 工作流 | 触发条件 | 文件 |
|---|---|---|
| Essay | 博客页眉或编辑插图 | Workflows/Essay.md |
| RemoveBackground | 移除图像背景 | Workflows/RemoveBackground.md |
| LogoWallpaper | 带有 Logo 融合效果的品牌 Logo 壁纸 | Workflows/LogoWallpaper.md |
| EmbossedLogoWallpaper | 浮雕 Logo 壁纸 | Workflows/EmbossedLogoWallpaper.md |
| D3Dashboards | D3.js 交互式图表或仪表板 | Workflows/D3Dashboards.md |
| Visualize | 可视化,或不确定使用哪种格式 | Workflows/Visualize.md |
| Mermaid | Mermaid 流程图或时序图 | Workflows/Mermaid.md |
| TechnicalDiagrams | 技术图或架构图 | Workflows/TechnicalDiagrams.md |
| Taxonomies | 分类体系或分类网格 | Workflows/Taxonomies.md |
| Timelines | 时间线或按时间顺序展开的内容 | Workflows/Timelines.md |
| Frameworks | 框架或 2x2 矩阵 | Workflows/Frameworks.md |
| Comparisons | 比较或 X 与 Y 对比 | Workflows/Comparisons.md |
| AnnotatedScreenshots | 带注释的屏幕截图 | Workflows/AnnotatedScreenshots.md |
| RecipeCards | 食谱卡片或分步骤内容 | Workflows/RecipeCards.md |
| Aphorisms | 格言或引言卡片 | Workflows/Aphorisms.md |
| Maps | 概念地图或领域地图 | Workflows/Maps.md |
| Stats | 数据卡片或醒目数字视觉图 | Workflows/Stats.md |
| Comics | 漫画或连续画格 | Workflows/Comics.md |
| YouTubeThumbnailChecklist | YouTube 缩略图检查清单;使用现有素材制作 YouTube 缩略图 | Workflows/YouTubeThumbnailChecklist.md |
| AdHocYouTubeThumbnail | 临时制作 YouTube 缩略图(根据内容生成) | Workflows/AdHocYouTubeThumbnail.md |
| CreateLifeosPackIcon | LifeOS pack 图标 | Workflows/CreateLifeosPackIcon.md |
核心美学
默认: 适用于编辑和技术内容的高品质概念艺术风格。
用户自定义定义具体的美学偏好,包括:
- 视觉风格与影响来源
- 线条处理与渲染方式
- 色彩方案与晕染技法
- 角色设计规范
- 场景构图规则
加载路径: ~/.claude/LIFEOS/USER/CUSTOMIZATIONS/SKILLS/Art/PREFERENCES.md
参考图像
用户自定义可能包含用于保持风格一致的参考图像。
查看 ~/.claude/LIFEOS/USER/CUSTOMIZATIONS/SKILLS/Art/PREFERENCES.md,了解:
- 参考图像位置
- 按用途分类的风格示例
- 角色与场景参考指南
用法: 生成图像前,加载相关的用户提供参考图,以贴合用户偏好的风格。
图像生成
默认模型: 查看 CUSTOMIZATIONS/SKILLS/Art/PREFERENCES.md 中的用户自定义设置
备用模型: nano-banana-pro(Gemini 3 Pro)
特定模型的尺寸要求
不同模型接受的 --size 格式不同。使用错误的格式会导致验证错误。
| 模型 | --size 格式 | 有效值 | 默认值 |
|---|---|---|---|
flux | 宽高比 | 1:1、16:9、3:2、2:3、3:4、4:3、4:5、5:4、9:16、21:9 | 16:9 |
nano-banana | 宽高比 | 1:1、16:9、3:2、2:3、3:4、4:3、4:5、5:4、9:16、21:9 | 16:9 |
nano-banana-pro | 分辨率级别 | 1K、2K、4K(也接受单独传入的 --aspect-ratio) | 2K |
OpenAI 图像模型已移除(2026-07-30,负责人指示)。 gpt-image-1、gpt-image-2 和双提供商 compare 模式已从 Generate.ts 中移除——传入其中任何一项都会退出并报错,提示使用 nano-banana-pro。不要重新引入 OpenAI 图像路径,也不要用其他供应商替代;向任何通道添加新供应商属于身份/原则级决策,必须获得负责人的明确批准。
模型选择——何时选择哪一个
Generate.ts 中接入了三个模型,nano-banana-pro 是所有任务的默认模型。PREFERENCES.md(如果存在)会固定用户的默认模型:
| 任务 | 模型 | 原因 |
|---|---|---|
| 默认用于所有任务——编辑插画、博客页眉、文字密集的信息卡、框架、分类体系、时间线、格言卡 | nano-banana-pro | 最符合用户编辑风格的构图,也足以处理标签和数字,胜任文字密集型工作流。 |
| 风格多样化/非写实/更清晰的技术线稿 | flux | 风格调性不同。 |
| 构图确定后加快迭代 | nano-banana | 速度更快,保真度略低。 |
注意: nano-banana-pro 使用 --size 设置分辨率质量,并使用单独的 --aspect-ratio 标志设置宽高比(默认为 16:9)。
🚨 重要:始终先输出到 Downloads
所有生成的图像都必须先输出到 $LIFEOS_DOWNLOADS_DIR(未设置时默认为 ~/Downloads/),以便预览和选择。
切勿直接输出到项目的 public/images/ 目录。用户需要先在 Preview 中检查图像,再决定是否使用。
工作流:
- 生成到
"${LIFEOS_DOWNLOADS_DIR:-$HOME/Downloads}"/[descriptive-name].png - 用户在 Preview 中检查
- 如果获批,再复制到最终目标位置(例如
cms/public/images/) - 在最终目标位置创建 WebP 和缩略图版本
# CORRECT - Output to Downloads for preview
bun run ${LIFEOS_SKILL_DIR}/Tools/Generate.ts \
--model nano-banana-pro \
--prompt "[PROMPT]" \
--size 2K \
--aspect-ratio 1:1 \
--thumbnail \
--output "${LIFEOS_DOWNLOADS_DIR:-$HOME/Downloads}"/blog-header-concept.png
# After approval, copy to final location (substitute your blog/site path)
cp "${LIFEOS_DOWNLOADS_DIR:-$HOME/Downloads}"/blog-header-concept.png ~/your-site/public/images/
cp "${LIFEOS_DOWNLOADS_DIR:-$HOME/Downloads}"/blog-header-concept-thumb.png ~/your-site/public/images/
多张参考图(角色/风格一致性)
如需提高角色或风格的一致性,请使用多个 --reference-image 标志:
# Multiple reference images for better likeness
bun run ${LIFEOS_SKILL_DIR}/Tools/Generate.ts \
--model nano-banana-pro \
--prompt "Person from references at a party..." \
--reference-image face1.jpg \
--reference-image face2.jpg \
--reference-image face3.jpg \
--size 2K \
--aspect-ratio 16:9 \
--output "${LIFEOS_DOWNLOADS_DIR:-$HOME/Downloads}"/character-scene.png
API 限制(Gemini):
- 最多 5 张人物参考图
- 最多 6 张物体参考图
- 每个请求最多 14 张参考图
API 密钥位于: ${LIFEOS_DIR}/.env
示例
示例 1:博客页眉图
User: "create a header for my AI agents post"
→ Invokes ESSAY workflow
→ Generates charcoal sketch prompt
→ Creates image with architectural aesthetic
→ Saves to $LIFEOS_DOWNLOADS_DIR (default ~/Downloads/ when unset) for preview
→ After approval, copies to public/images/
示例 2:技术架构图
User: "make a diagram showing the SPQA pattern"
→ Invokes TECHNICALDIAGRAMS workflow
→ Creates structured architecture visual
→ Outputs PNG with consistent styling
示例 3:对比可视化图
User: "visualize humans vs AI decision-making"
→ Invokes COMPARISONS workflow
→ Creates side-by-side visual
→ Charcoal sketch with labeled elements
示例 4:LifeOS 套件图标
User: "create icon for the skill system pack"
→ Invokes CREATEPAIPACKICON workflow
→ Reads workflow from Workflows/CreateLifeosPackIcon.md
→ Generates 1K image with --remove-bg for transparency
→ Resizes to 256x256 RGBA PNG
→ Outputs to $LIFEOS_DOWNLOADS_DIR (default ~/Downloads/ when unset) for preview
→ After approval, copies to ${PROJECTS_DIR}/LIFEOS/Packs/icons/
注意事项
- 始终先输出到 $LIFEOS_DOWNLOADS_DIR(未设置时默认为 ~/Downloads/)——绝不要直接输出到项目目录。 用户必须先预览再使用。过去多次发生因将错误图片直接推送到代码仓库而导致失败的情况。
- 声称完成前,先确认图片尺寸符合目标用途。 社交媒体预览图、博客页眉和缩略图的尺寸要求各不相同。适用于博客的页眉可能会导致 OG/社交媒体预览图显示异常。
- nano-banana-pro 使用
--size设置分辨率(1K/2K/4K),并使用单独的--aspect-ratio标志设置宽高比。 不要将宽高比值传给--size。 - 参考图片:每次请求最多 5 张人物、6 张物体,总计 14 张(Gemini API 限制)。
- 生成后,使用 Read 工具目视确认图片,再报告成功。 如果你还没看过图片,“生成成功”就毫无意义。
- 用户要求使用特定图片 URL 或文件时,必须使用完全一致的素材。 不要用相似图片替代。过去曾因使用错误图片素材而收到 1 分评价。
--remove-bg可能会生成黑色背景,而非透明背景。 部署前务必目视确认 PNG 输出确实透明。--remove-bg不适用于细线条技术示意图。 rembg 会将浅色底上的黑色细线识别为“背景”并将其移除,只留下几乎空白的残影。此问题已于 2026-05-11 在自由意志流程图中记录。缓解方法:(a) 先在提示词中要求使用粗实、饱和的线条,让 rembg 能获得明显信号;或 (b) 如果目标背景与图片背景一致,则完全跳过--remove-bg(博客页面为棕褐色 #EAE9DF——不透明的棕褐色示意图放在棕褐色页面上,合成后接缝完全不可见,无需 alpha)。- 即使使用参考图片,3D/透视场景也会破坏 Logo 保真度。 此问题已于 2026-06-11 在 UL 壁纸套图中记录:正面和微距场景在 7/7 次生成中都保留了字形拓扑结构,但等距 3D 场景却将未闭合的标记变成了环,并遗漏了独立圆点。任何带 Logo 的透视/3D 构图,都要在
--reference-image的基础上,在提示词中加入锁定拓扑结构的反向描述(“不要将形状闭合成环”“不要遗漏独立圆点”,并明确指出每条笔画及其末端),并专门通过视觉检查确认拓扑结构。 - nano-banana-pro 的“4K 16:9”实际输出为 5504×3072(43:24,比 16:9 宽约 0.8%),即使
--output指定为 .png,也会保存为 .jpg。 规格要求 16:9 时,需说明原生宽高比,并在 Read/交付前检查实际文件名。 - 奶油色背景上的白色方框问题(2026-06-20):将不透明 JPEG 在
#EAE9DF上扁平化不会产生任何效果。 nano-banana-pro 会返回不透明 JPEG;magick -background "#EAE9DF" -flatten只会填充 alpha,因此模型烘焙进图片的近白色底色仍会保留,并在奶油色博客页面上形成白色矩形(“它他妈的背景是白色的”)。用于博客内嵌页眉时,先切出真正的 alpha(bun ~/.claude/LIFEOS/TOOLS/RemoveBg.ts),再生成 WebP,并确认identify -format "%[channels]" inline.webp==srgba。仅当图片已经有 alpha 时,才可使用不透明棕褐色内嵌图。参见 Essay.md 第 7.0.5 步。 - Essay 页眉:提示生成前,必须先完成第 5A 步“最佳图片构思讨论”(2026-07-09 负责人指示)。 列出主体的提示词会生成被否决的平面拼贴画;围绕文章的具体论点深入推敲构图——比较场景概念、为每个元素赋予叙事作用,并构建相互关联的结构——才能生成获认可的图片。构思讨论是必做步骤;局部剖面等技巧可以作为结果,但不是规则。参见 Essay.md 第 5A 步。
- 禁止内部白色区域(2026-07-09,“大片白色空间”事件): 要求大型平面(桌面、面板、窗户、纸张)呈现“暖奶油色纸张色调”,绝不要使用亮白色,也不要省略颜色要求——烘焙进去的白色内部区域不会被 rembg 移除,会在奶油色页面上呈现为巨大的白色矩形。这是 2026-06-20 白色方框问题在主体内部的对应情况。嵌入任何外部截图前,也要裁掉白色边距(
magick -fuzz 4% -trim+ 棕褐色边框)。 - 参考图片编辑:反向文字描述不如参考图片有效(2026-07-09 工作室背景测试)。 当 nano-banana-pro 一直复现参考照片中不需要的物体时(例如第二盏落地灯),“不要添加/复制”之类的提示词在约 7/8 次生成中都会失败——模型会优先保留它看到的内容,而不是遵循禁止要求。解决方法:持续生成,直到有一次输出获得正确构图,然后将该输出设为后续变体的
--reference-image;遵循率随之跃升至 7/7。编辑参考图片胜过描述编辑要求。 - 人物群像必须展现多样的肤色(2026-07-12 负责人指示)。 图像模型默认会把每个人都生成为白人;任何多人物场景(Essay 页眉、漫画、可视化图)都必须在提示词中明确要求呈现自然的多种肤色——炭笔风格中,人物之间应有不同的晕染色调和明暗层次。效果要自然含蓄,不能沦为刻意配额,但全白人群像属于验证失败。参见 Essay.md 的 HUMAN FIGURES 部分和第 8 步检查清单。
- Essay/博客页眉必须署名“{{DA_NAME}}”(2026-06-20 和 2026-07-09 负责人指示)——采用小巧、融入画面的草书签名。 通过程序添加签名:Generate.ts/Essay.md 第 7.1 步(
SignPainter-HouseScript,约为图片宽度的 3%,半透明炭灰色,略微倾斜,置于构图右下角);绝不要在提示词中要求模型生成签名(模型会把签名弄乱)。正式书法字体(Snell-Roundhand / Apple-Chancery / Savoye)仍不接受;尺寸过大的印刷体 Bradley Hand 已于 2026-07-09 替换(“更像草书,也要更小,更融入画面”)。
执行日志
完成任何工作流后,追加一条 JSONL 记录:
echo '{"ts":"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'","skill":"Art","workflow":"WORKFLOW_USED","input":"8_WORD_SUMMARY","status":"ok|error","duration_s":SECONDS}' >> ~/.claude/LIFEOS/MEMORY/SKILLS/execution.jsonl
将 WORKFLOW_USED 替换为已执行的工作流,将 8_WORD_SUMMARY 替换为简短的输入描述,并将 SECONDS 替换为大致的实际耗时。如果工作流失败,请记录 status: "error"。