- AI 技能
- 人工智能
- 深度研究
- 数据分析
- 媒体生成
【免费下载链接】SenseNova-Skills
Modular SenseNova skills for building AI-powered office assistants and productivity workflows
本文基于 SenseNova-Skills 开源仓库中sn-infographic技能的风格定义文件 ukiyo-e.md,完整拆解浮世绘风格在 AI 信息图生成管线中的定位、配色与视觉规范,并结合 SKILL.md 的生成流水线与源码级实现,给出从风格文件到可运行生成提示词的完整落地路径。读完本文,你将掌握如何理解、复用并触发这一日式木版画风格,以及如何在多轮生成、质量评审的完整链路中让风格约束真正生效。
一、风格文件在 sn-infographic 技能中的定位
sn-infographic是 SenseNova-Skills 中的一级(tier 1)场景技能,负责"分析内容 → 推荐版式与风格 → 生成可发布级信息图"。它把"视觉风格"做成了一组可被程序化挑选、拼接的独立文件:references/styles/目录下共 66 个风格定义文件(SKILL.md中明确标注 "Style definitions (66 styles)"),每个文件对应一种完整的美学体系,ukiyo-e.md正是其中之一。
每个风格文件遵循统一的结构骨架——风格一句话概括(aesthetic)+ 色彩体系(Color Palette)+ 视觉元素(Visual Elements)+ 字体排版(Typography)+ 适用场景(Best For)。这种结构化设计的目的,是让风格定义既能被 LLM 在提示词扩写阶段直接"读懂并执行",又能被代码以纯文本方式拼接进系统提示,而无需任何额外解析逻辑。
何时会被选中:风格映射与加权随机
风格不会被 LLM"反复比较择优",而是由一套名称级别的加权随机采样机制选出。在 layout-style-selection.md 的 Step 2 中,Worker Agent 根据用户内容的语境(tone / domain)映射风格候选:
| 语境 Context | 首选风格(match_score=1.0) | 备选风格(match_score=0.7) |
|---|---|---|
| Japanese domain | ukiyo-e | kawaii |
也就是说,当用户输入属于"日本语境"(日本文化、日式美学、和风内容)时,ukiyo-e是最高优先级的风格,kawaii作为备选;随后在 SKILL.md Step 2.1 中执行加权随机抽签——首选名 ×10 权重、备选名 ×9 权重,再从全部 66 个风格名中随机取 3 个 ×1 权重混入池中洗牌取首。因此ukiyo-e在日本语境下具有约 10:9 的相对优势,但并非必然命中;若语境无法判定,则回退到hub-spoke版式 +corporate-memphis风格。
选中之后,Worker Agent 会在 Step 2.3 中把该风格文件原样拼接进扩写系统提示(而非读取其内容做推理),拼接逻辑见 SKILL.md:
LAYOUT=$(jq -r '.layout' "$TEMP_DIR/layout-style.json") STYLE=$(jq -r '.style' "$TEMP_DIR/layout-style.json") { cat "$SKILL_DIR/references/prompts-expand-system.md" printf '\n\n---\n\n## Selected Layout: %s\n\n' "$LAYOUT" cat "$SKILL_DIR/references/layouts/${LAYOUT}.md" printf '\n\n---\n\n## Selected Style: %s\n\n' "$STYLE" cat "$SKILL_DIR/references/styles/${STYLE}.md" printf '\n\n---\n\n## Output Template Reference\n\n' cat "$SKILL_DIR/references/base-prompt.md" } > "$TEMP_DIR/expand-system-prompt.md"ukiyo-e.md的全部内容在这里就成为了 LLM 扩写"浮世绘风格生成提示词"时的硬性约束。值得注意的是,SKILL.md 特意强调此处必须使用直接文件拼接(direct file concatenation)而非 heredoc,因为风格/版式文件中包含反引号与$(...)结构,未加引号的 heredoc 主体会被 shell 执行——这是使用风格文件时的一个真实工程细节。
二、浮世绘风格定义逐项拆解
以下逐条解析 ukiyo-e.md 的原始定义,并说明每一条在生成提示词时的落地含义。
整体美学
Japanese woodblock print aesthetic. Bold outlines, flat color areas, and decorative natural motifs.
浮世绘(ukiyo-e)源自日本江户时期的木版画传统。该风格定义的核心诉求是**"版画感"**:强烈轮廓、平涂色块与装饰性自然母题。在提示词层面,这通常意味着画面要有"印刷"的确定性——形状由粗黑线条界定,色彩不追求自然过渡。
色彩体系(Color Palette)
原文档给出的完整配色如下:
- 主色(Primary):普鲁士蓝(Hiroshige blue,广重蓝)、朱红(vermillion red)、黑色
- 背景(Background):奶油/象牙纸色调(#F5EDD6)
- 点缀色(Accents):柔和的绿色、赭黄、哑粉(muted rose)
其中"普鲁士蓝"直接指向歌川广重《东海道五十三次》等名作中标志性的深蓝——它是浮世绘风景版画最具辨识度的颜色;朱红则常见于红日、印章与人物服饰;米色纸底模拟和纸(washi)的自然色泽。这组色彩互为高对比组合:深蓝与朱红撞色、黑线压阵、纸色留白,共同构成"和风版画"的视觉基调。
需要特别指出一个工程细节:风格文件内部的#F5EDD6属于内部参考值,并不会原样进入最终生成提示词。在 base-prompt.md 与 prompts-expand-system.md 中均有明确规定:最终提示词只允许使用描述性颜色名(如 cream/ivory paper tone),禁止出现任何 hex 码。风格文件的 hex 是给"定义者/调试者"看的参考,扩写后的提示词则必须把#F5EDD6翻译成 "cream/ivory paper tone" 这类自然语言表达。
视觉元素(Visual Elements)
原文档列出 7 条核心视觉元素,几乎每一条都对应木版画工艺的直接映射:
- 粗黑描边(Bold black outlines)定义所有形状——对应版画中木刻轮廓线,是"版画感"的第一来源;
- 平涂色块(Flat color fills),无渐变——对应多色木版分色套印的工艺限制,与现代插画的柔和过渡形成鲜明反差;
- 波浪、云、自然母题作为装饰元素——海浪(如葛饰北斋《神奈川冲浪里》)、卷云、花鸟是浮世绘最典型的装饰词汇;
- 风格化透视(Stylized perspective),不使用西方灭点透视——画面以平面叠压、对角构图组织空间,而非焦点透视;
- 排线/平行线做阴影(Hatching and parallel lines)——木刻中依靠刻线密度表达明暗;
- 带传统纹样的装饰边框——如龟甲纹、青海波、市松纹等和风几何纹样;
- 背景可见"木纹"质感(woodgrain)——模拟木版印制后留下的纹理痕迹。
这些元素在扩写提示词时需要逐条转化为可执行指令,例如"all shapes are defined by bold black outlines"、"flat color areas, no gradients"、"decorative wave and cloud motifs"、"visible woodgrain texture on the background",而不是笼统地写"Japanese style"。
字体排版(Typography)
- 竖排文字(Vertical text orientation)可选——日式书籍/卷轴的传统排向;
- 书法/笔触感字形(Brush-style or calligraphic letterforms)——标题可具毛笔质感;
- 印章元素(Seal/stamp elements)用于标签——红色落款印章(hanko)既是指示标签,也是浮世绘画面构成的一部分;
- 传统与现代字体混排可接受——保留古典气质的同时允许现代无衬线体承载数据正文。
在信息图语境下,这一条通常落地为:主标题用书法感字体,正文与数字用现代字体保证可读性,关键标签以"印章式红色方块+白字"呈现。
适用场景(Best For)
Japanese cultural content, nature and travel themes, traditional craft topics, cultural heritage infographics, East Asian subject matter
即:日本文化内容、自然与旅行主题、传统工艺话题、文化遗产信息图,以及更广义的东亚题材。这意味着触发该风格的实际输入可能是"日本浮世绘艺术史"、"京都旅行攻略"、"和果子制作工艺"、"富士山自然景观"或"东亚茶文化"等主题——但注意,是否为"日本语境"的判断由 layout-style-selection.md 的语境映射决定,ukiyo-e并非仅凭出现"日本"二字就必然命中。
三、从风格定义到生成提示词:约束如何逐层生效
浮世绘风格文件只是整个约束链条的一环,它在生成链路中经历了如下传递:
- 风格选择(Step 2.1):名称级加权随机选出
ukiyo-e; - 系统提示拼接(Step 2.3):
prompts-expand-system.md+layouts/<layout>.md+styles/ukiyo-e.md+base-prompt.md拼接为完整扩写系统提示; - LLM 扩写:
sn-text-optimize依据该组合提示,把用户的结构化内容扩写成约 400–600 词的专业图像生成提示词(expanded_prompt); - 图像生成(Step 3):
sn-image-generate --prompt "$EXPANDED_PROMPT"执行最终渲染。
在这一链路中,prompts-expand-system.md 提供的"扩写宪法"对风格落地有决定性约束,其中与浮世绘风格直接相关的关键条款包括:
- 严格语言一致(Strict Language Parity):源内容为中文则扩写结果必须全中文;这决定了一张日本主题信息图的标签文字语言;
- 视觉精度(Visual Precision):必须显式描述背景纹理(如浮世绘的 paper grain / woodgrain)、不同层级的字体样式(如书法感标题 vs 数据用紧凑字体);
- 文本渲染协议(Text Rendering Protocol):所有要出现在图中的文字必须用引号包裹;风格、布局等非文字描述严禁加引号;
- 语义图标对应(Semantic Icon Correspondence):每个图标必须具体描述其视觉内容(如"在'海浪'文字旁是一幅精细的北斋式波浪插图"),禁止用"an icon"之类的笼统词;
- 零废话规则(Zero Nonsense):扩写结果直接从画面描述开始,不输出"以下是优化后的提示词"之类的元评论;
- 无十六进制色码(No Hexadecimal Codes):印证前文所述
#F5EDD6必须在最终提示词中转为描述性色名。
同时 base-prompt.md 中的{{STYLE_GUIDELINES}}、{{COLOR_PALETTE}}、{{BACKGROUND_TEXTURE}}、{{FONT_STYLE}}等占位符,正是风格文件内容在最终模板中的落点——ukiyo-e.md的配色、纹理与字形描述会在这里被实例化。
四、端到端生成流水线与运行方式
参数与调用方式
sn-infographic采用Main Agent + Worker Agent双 Agent 架构:Main Agent 负责参数归一化与用户消息收发,Worker Agent 执行"扩写 → 多轮生成+审查 → 排序"的完整管线并返回结构化 JSON。所有底层 LLM / VLM / 图像调用统一经由sn-image-base的 sn_agent_runner.py 完成。
用户可在请求中以内联 KV(如max_rounds=3 output_mode=verbose)或关键词(强制扩写、不扩写、宽高比 16:9、4k等)控制关键参数,取值与默认值如下(SKILL.md Input Specification):
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
user_prompt | string | 必填 | 原始用户请求,UTF-8 文本 |
max_rounds | int | 1 | 生成轮数,合法范围1–8;=1时跳过 VLM 审查与提前终止检查 |
output_mode | string | friendly | friendly:一行摘要 + rank=1 单图;verbose:完整质量排序 + 耗时统计 + 全部图 |
prompts_expand_mode | string | auto | auto:先评估再决定是否扩写;force:跳过评估强制扩写;disable:禁用扩写 |
aspect_ratio | string | 推断(默认16:9) | 支持2:33:23:44:34:55:41:116:99:1621:99:21 |
image_size | string | 推断(2k) | 仅支持显式2k/4k;4k仅在模型为sensenova-u1.5-lite时可靠 |
运行时参数推断规则详见 runtime-parameters.md:若用户只给方向(竖屏→ 倾向9:16;横屏→ 倾向16:9),则按场景规则映射;若完全未提及,则按内容场景推断(如手机壁纸→9:16、幻灯片/仪表盘→4:3、横幅/宽屏信息图→16:9,兜底16:9)。aspect_ratio的推断基于原始 user_prompt(而非扩写后的提示词)。
Worker 核心步骤与命令
Worker Agent 的完整流程(对应 SKILL.md):
- Step 0 初始化:生成任务 ID、创建临时目录
/tmp/openclaw/sn-infographic/<task_id>/,解析ASPECT_RATIO/IMAGE_SIZE; - Step 1 扩写决策:按
PROMPTS_EXPAND_MODE分支;auto模式下用evaluation-standard.md作为系统提示评估用户提示质量(required_results全过且optional_results通过率 ≥0.6 才跳过扩写),评估失败时保守回退为必须扩写; - Step 2 内容分析 + 版式风格选择 + 扩写:先经
analysis-framework.md产出data_type/tone/audience,再按layout-style-selection.md选出LAYOUT/STYLE名称(含存在性校验,缺失回退hub-spoke/corporate-memphis),随后用structured-content-template.md生成结构化内容,最后按第三节的拼接方式组装系统提示并调用sn-text-optimize得到EXPANDED_PROMPT; - Step 3 图像生成循环:逐轮执行生成与(
max_rounds>1时)VLM 审查:
python "$SN_IMAGE_BASE/scripts/sn_agent_runner.py" sn-image-generate \ --prompt "$EXPANDED_PROMPT" \ --image-size "$IMAGE_SIZE" \ --aspect-ratio "$ASPECT_RATIO" \ --save-path "$TEMP_DIR/round_${ROUND}.png" \ -o jsonVLM 审查调用sn-image-recognize,以prompts-critic-system.md为审查标准,输出PASS/FAIL及违规项列表;result=PASS时提前终止循环;
- Step 4 质量排序:按
violations_count升序 +round升序排列,返回 Return Contract 定义的 JSON(status=ok时必含expanded_prompt、rounds[]、timing等字段)。
每次sn_agent_runner.py调用都会在 stdout 输出 JSON envelope({"status","result","model",...}),SKILL.md 特别警告:必须确认.status == ok再读.result,且解析前先经$SN_IMAGE_BASE/scripts/extract_json.py清洗,否则失败时缺失的.result会以字面量null穿透jq解析。
五、实战走查:一张"日本浮世绘文化"信息图
以下按仓库定义逐步走查一个典型请求(作为依据规则的示例演示,非仓库既有产物):
用户请求:生成一张介绍浮世绘艺术发展历程的信息图
- 参数解析(Main Agent):无内联 KV、无关键词 →
max_rounds=1、output_mode=friendly、prompts_expand_mode=auto;aspect_ratio/image_size留空交给 Worker 推断; - 运行时参数推断(Step 0):内容为"发展历程"叙事型,无方向提示 →
ASPECT_RATIO=16:9、IMAGE_SIZE=2k; - 内容分析(Step 2.0):
analysis-framework.md判定data_type=timeline / history、tone=educational/cultural; - 版式与风格选择(Step 2.1):
timeline / history首选linear-progression(备选winding-roadmap、step-staircase、one-way-flow、flashback);Japanese domain语境首选ukiyo-e(备选kawaii)——本例加权随机命中ukiyo-e; - 扩写(Step 2.3):拼接
prompts-expand-system.md+linear-progression.md+ukiyo-e.md+base-prompt.md,由sn-text-optimize产出约 400–600 词的EXPANDED_PROMPT。其要素应当覆盖:主标题"浮世绘艺术发展历程"用书法感字形并以引号包裹、竖向时间轴用linear-progression的空间组织、画面元素为粗黑轮廓 + 平涂色块 + 北斋式波浪/卷云装饰 + 和纸米色背景纹理 + 红色印章式标签、色彩仅以描述性名称(Hiroshige blue、vermillion red、cream paper tone、soft greens、ochre yellow)出现,且不出现任何 hex 码或箭头乱用; - 生成(Step 3):
sn-image-generate渲染round_1.png;由于max_rounds=1,无 VLM 审查,轮次记录默认为result=PASS、violations=[]; - 输出(Main Agent):
friendly模式下发 ≤50 字的一句话摘要 + rank=1 单图。
若用户希望更稳,可加内联 KV 升级为max_rounds=3 output_mode=verbose,此时每一轮都会经 VLM 按prompts-critic-system.md规则(如文字清晰度、元素重叠、数据准确等)审查并给出违规项,PASS即提前终止,最终按质量排序返回全部图片与耗时统计。
六、与相邻风格的对照
在references/styles/中与ukiyo-e相邻、易混淆的东亚风格还包括:
- chinese-guochao.md:中式"国潮"风格,主色为中国红、金、墨黑,母题含龙/凤、剪纸、祥云海浪,适用中国语境(语境映射中
Chinese domain首选即chinese-guochao); - kawaii.md:日本语境下的备选风格,粉彩低饱和、大眼睛角色、圆润造型,属于"可爱"路线而非版画路线;
- woodcut.md:同为木刻(woodcut)传统但偏欧美粗犷表现主义——黑白高对比、留白负空间、强烈刻痕,与浮世绘的精细套色与装饰母题形成对照。
可见ukiyo-e的独特辨识度在于"精细的东方套色版画 + 装饰性自然母题 + 和风排版"三者的组合,而非单纯的"木刻"或"日本"。
七、相关文件索引
- 风格定义本体:ukiyo-e.md
- 技能总控与完整流水线:SKILL.md
- 版式/风格选择规则(日本语境映射):layout-style-selection.md
- 最终提示词模板(
{{STYLE}}等占位符与颜色命名约束):base-prompt.md - 扩写系统提示("扩写宪法"约束):prompts-expand-system.md
- 运行时参数推断(宽高比 / 分辨率):runtime-parameters.md
- 内容分析与质量评估标准:analysis-framework.md、evaluation-standard.md、prompts-critic-system.md
- 底层工具执行入口:sn_agent_runner.py
需要说明的是,ukiyo-e只是 66 个可用风格之一,风格命中遵循名称级加权随机机制,实际成图效果同时受版式、扩写质量、图像模型与审查轮次共同影响;本文所述流程与参数均以当前仓库实际实现为准。若需为特定主题稳定复现该风格,可在请求中补充明确的日本语境信息,并结合max_rounds>1与 VLM 审查逐轮校准。
- AI 技能
- 人工智能
- 深度研究
- 数据分析
- 媒体生成
【免费下载链接】SenseNova-Skills
Modular SenseNova skills for building AI-powered office assistants and productivity workflows
相关推荐
MikroORM 反射元数据提供者(@mikro-orm/reflection)深度解析:TsMorphMetadataProvider 的类型推断原理、缓存机制与生产部署实践
MikroORM 反射元数据提供者(@mikro orm/reflection)深度解析:TsMorphMetadataProvider 的类型推断原理、缓存机
AI 技能人工智能深度研究数据分析媒体生成Optimism 合约 Tagging 与发布流程:从 RC 到最终化的完整操作指南
Optimism 合约 Tagging 与发布流程:从 RC 到最终化的完整操作指南 Optimism 合约仓库( packages/contracts bed
AI 技能人工智能深度研究数据分析媒体生成OpenProject 用户管理完全指南:用户列表、筛选、锁定、创建、激活与删除的完整实践
OpenProject 用户管理完全指南:用户列表、筛选、锁定、创建、激活与删除的完整实践 本文系统讲解 OpenProject 中“管理与权限 → 用户” A
AI 技能人工智能深度研究数据分析媒体生成
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考