- AI 技能
- 人工智能
- 深度研究
- 数据分析
- 媒体生成
【免费下载链接】SenseNova-Skills
Modular SenseNova skills for building AI-powered office assistants and productivity workflows
本篇技术指南聚焦 SenseNova-Skills 仓库中sn-infographic场景技能的风格定义文件film-photography(胶片摄影风格),系统讲解该风格的核心配方、在信息图生成管线中的调用机制、与相邻风格的差异,以及如何将颗粒、偏色、漏光等元素转化为可执行的大模型图像提示词。读完本文,你将掌握胶片摄影美学在 AI 信息图中的完整落地路径:从风格选型、提示词拼接,到生成参数与质量评审的端到端操作。
风格定义:胶片摄影美学的四大核心配方
film-photography.md是sn-infographic技能references/styles/目录下 66 个风格定义文件之一。它的定位一句话概括为:模拟胶片的模拟美学(Analog film aesthetic),以特征性的颗粒、色彩偏移和化学摄影的暖感为核心。该文件采用统一的四段式结构(Color Palette / Visual Elements / Typography / Best For),完整内容如下。
色彩配方(Color Palette)
| 角色 | 取值 |
|---|---|
| Primary(主色) | Warm or cool film tones(暖调如 Kodak warm,冷调如 Fuji cool) |
| Background(背景) | Faded, slightly desaturated(褪色、轻微去饱和) |
| Accents(点缀色) | Light leaks in orange, red, or magenta(橙色、红色或品红色的漏光) |
值得注意:该文件刻意不使用十六进制色值,而是用“Kodak warm / Fuji cool”这类可被图像模型直接理解的胶片术语来描述色温倾向。这与 prompt-writing-rules.md 中“禁止#RRGGBB,改用描述性颜色名(如 coral red、sage green)”的规则完全一致——因为底层文生图模型对自然语言色彩的理解优于对色码的解析。
视觉元素(Visual Elements)
原文档列出了 7 项标志性元素,构成了胶片风格区别于其他风格的“视觉指纹”:
- Film grain texture overlay(胶片颗粒纹理叠加)
- Slight vignetting at edges(边缘轻微暗角)
- Color cross-processing shifts(彩色交叉冲印偏色)
- Light leak flares(漏光光晕)
- Faded highlights and lifted blacks(褪色的高光与抬升的黑位)
- Sprocket holes or film border aesthetic(齿孔或胶片边框美学)
这些元素共同服务于“化学摄影的温暖感”:颗粒模拟银盐感光粒子,暗角模拟镜头成像,交叉冲印偏色与漏光则复现胶片冲洗过程中的“意外之美”。
字体处理(Typography)
- Typewriter or retro serif fonts(打字机字体或复古衬线体)
- Slightly faded or aged text treatment(轻微褪色或做旧文字处理)
- Stamp or darkroom label aesthetic(印章或暗房标签美学)
字体层面同样强调“年代感”——打字机体、褪色文字、暗房印章,与胶片视觉元素形成统一的怀旧叙事。
适用场景(Best For)
原文档明确给出该风格的适用边界:
- Travel and lifestyle content(旅行与生活方式内容)
- Nostalgia and memory themes(怀旧与记忆主题)
- Documentary-style storytelling(纪实风格叙事)
- Cultural history(文化历史)
- Personal narrative infographics(个人叙事信息图)
- Photography industry content(摄影行业内容)
在 sn-infographic 管线中的角色:风格文件如何被真正调用
理解film-photography.md的价值,必须把它放回 sn-infographic/SKILL.md 所定义的两级 Agent 工作流中。风格文件只在两个明确的位置被触及,且整个流程设计得非常克制。
第 1 步(Step 2.1):名称级加权随机选型——不读文件内容
依据 layout-style-selection.md,Worker Agent 首先从 analysis-framework.md 输出的analysis.json中读取data_type/tone/audience,然后查找风格候选表:
| Context | Primary Style | Alternative Styles |
|---|---|---|
| Photography / Mixed | mixed-media | film-photography,double-exposure,newspaper-collage |
关键约束在于:选型阶段只操作风格“名字”,绝不打开任何references/styles/*.md文件做内容比对。加权随机抽样采用“primary ×10 + 每个 alternative ×9 + 从全部风格名中随机抽 3 个 ×1”的池化策略(对应 bash 示例见 layout-style-selection.md),随后用[ -f "$SKILL_DIR/references/styles/${STYLE}.md" ]做存在性校验,缺失时回退到corporate-memphis。
这意味着:当用户的输入被判定为 Photography / Mixed 语境时,film-photography作为替代风格之一,与double-exposure、newspaper-collage共享约 27/(10+9×3+3×3)≈ 43% 的候选权重,被抽中的概率显著高于随机风格,但并非必然命中——这正是该技能“保持多样性、避免千图一面”的设计取向。
第 2 步(Step 2.3):直接文件拼接成系统提示词——唯一一次读取
真正读取风格文件内容的时刻在提示词扩写阶段。Worker Agent 通过直接文件拼接(而非 heredoc,因为风格文件中可能包含反引号与$(...))组装扩写用系统提示词:
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"随后调用sn-image-base的sn-text-optimize(统一入口为 sn_agent_runner.py),将 structured-content-template.md 产出的结构化内容作为 user prompt,扩写出 400–600 词的完整文生图提示词。也就是说:当STYLE=film-photography被抽中时,本文档的「色彩配方 / 视觉元素 / 字体处理」三节将原样进入扩写模型的上下文,并经由 prompts-expand-system.md 中“忠实于原始信息、文本用引号包裹、禁止色码”等约束,最终物化为可直接交给sn-image-generate的提示词文本。
第 3 步(Step 3–4):生成、VLM 评审与质量排序
扩写后的expanded_prompt通过sn-image-generate --prompt落图(--image-size、--aspect-ratio由 runtime-parameters.md 推断),当max_rounds > 1时再由sn-image-recognize(VLM)依据 prompts-critic-system.md 的 9 条红线规则评审,按violations_count升序排名输出最优结果。注意:胶片颗粒、暗角、褪色等风格元素不会触发评审红线,但若颗粒过重导致文字不可读(Rule 5 — Illegible Text),VLM 会以{rule_id, rule_name, detail, revised_description}的形式要求修正——因此在胶片风格下,文字可读性与胶片质感之间需要保持平衡。
与相邻复古/影像风格横向对比
film-photography并非仓库中唯一的影像化风格。将它与同目录下的相关文件对比,可以更精准地把握其独特性:
| 风格 | 文件 | 核心载体 | 与 film-photography 的区别 |
|---|---|---|---|
| film-photography | film-photography.md | 胶片颗粒、漏光、交叉冲印偏色、齿孔边框 | 以“化学摄影过程”为美学来源,强调真实感与年代感 |
| mixed-media | mixed-media.md | 摄影 + 手绘 + 拼贴 + 印刷/手写文字混排 | 同一画面中混合多种媒介,强调“层次与丰富度”而非统一质感 |
| double-exposure | double-exposure.md | 双曝光剪影叠加、duotone、透明渐变 | 偏诗意隐喻,多为 2–3 色限制调色板,适合情感叙事 |
| newspaper-collage | newspaper-collage.md | 旧报纸剪贴、橡皮图章、印刷字混排 | 以“纸媒档案”为素材,适合调查/历史/媒体类内容 |
| vintage-poster | vintage-poster.md | 限色平版印刷、halftone、装饰边框 | 以“海报印刷”为载体,图形化与装饰性更强 |
选择建议:旅行、怀旧、纪实、文化史、个人叙事、摄影行业内容优先考虑film-photography;若是“平面设计感更强”的宣传海报则更适合vintage-poster;若是概念隐喻型内容可考虑double-exposure。当然,在默认流程中这一选择由加权随机机制决定,用户也可以通过对话明确指定风格来影响选型结果(详见下节)。
实战落地:如何稳定产出胶片风格信息图
方式一:在 OpenClaw / Hermes 中注册并调用技能
先按 docs/sn-image-generate.md 的 Quick Start 完成环境准备:
- 将
skills/目录暴露给 OpenClaw(拷贝/软链接到~/.openclaw/skills/,或通过skills.load.extraDirs指向本仓库skills目录); - 安装依赖并配置 API Key(
SN_BASE_URL、SN_API_KEY、SN_CHAT_MODEL,fallback 优先级为专用变量 > 领域共享变量 > 全局变量); - 在对话中直接描述任务,例如:
做一张关于「1980 年代故乡街景回忆」的信息图,风格要像胶片摄影
或按名调用:
/skill sn-infographic "用胶片摄影风格介绍老式相机的百年演变"
方式二:通过技能参数显式控制生成行为
sn-infographic支持行内 KV 指令(如max_rounds=3 output_mode=verbose)与关键词识别,相关输入规格见 SKILL.md:
| 参数 | 默认 | 说明 |
|---|---|---|
max_rounds | 1 | 生成轮数,范围1–8;大于 1 时启用 VLM 评审与早停 |
output_mode | friendly | friendly输出一句话摘要 + rank=1 单图;verbose输出完整质量排名与耗时统计 |
prompts_expand_mode | auto | auto先评估再决定是否扩写;force强制扩写;disable跳过扩写 |
aspect_ratio | 推断(默认16:9) | 支持2:3、3:2、3:4、4:3、4:5、5:4、1:1、16:9、9:16、21:9、9:21 |
image_size | 推断(2k) | 支持2k、4k(4k需SN_IMAGE_GEN_MODEL=sensenova-u1.5-lite) |
胶片风格本身无需任何额外参数——风格是内容分析 + 随机选型的产物;但用户可以在输入中显式加入“胶片摄影风格”“复古颗粒”“Kodak 暖调”等描述性短语,这些短语会被 Step 2.0 内容分析捕获为design_instructions,进而影响扩写模型的风格取向,显著提高命中film-photography风格语言的概率。
风格文件如何约束最终提示词的质量
即便film-photography被选中,最终成图质量仍取决于扩写提示词是否遵守 prompt-writing-rules.md 的 8 条规则。对胶片风格特别关键的是:
- 视觉精度(Visual Precision):必须显式描述背景纹理与字体风格,例如“aged paper with faint film grain”、“typewriter font for annotations”,否则图像模型会自行臆造;
- 颜色回避(Color Avoidance):用“warm Kodak tones / faded pastel / magenta light leak”而非色码;
- 文本引用(Text Citation):所有需要呈现在图内的文字必须用双引号包裹,如
a faded label reading "Memory Lane, 1986"; - 标点卫生(Punctuation Hygiene):描述风格与版式时禁用引号,把引号留给文字标签;
- 数据保真(Data & Encoding):日期、地名、专有名词必须逐字保留,并以粗体、便签、数据徽章等视觉形式突出。
以上约束最终由 base-prompt.md 模板(含{{LAYOUT}}、{{STYLE}}、{{ASPECT_RATIO}}、{{LANGUAGE}}、{{COLOR_PALETTE}}等占位符)统一收口,形成一份结构完整、可直接生成的文生图指令。
质量与边界:胶片风格的两个实操注意点
- 文字可读性与颗粒的博弈:VLM 评审的 prompts-critic-system.md 将「Illegible Text」列为否决性红线。胶片颗粒、褪色、暗角天然会降低文字对比度,扩写时应避免“全局叠加浓重颗粒”,可表述为“grain concentrated on background, typography crisp”,并在
max_rounds > 1时让 VLM 逐轮把关,直至result=PASS早停。 - 纵横比与构图适配:runtime-parameters.md 规定:竖屏记忆叙事(如“怀旧影集”“旅行手记”)倾向
9:16/4:5,横版纪实/宽幅海报倾向16:9/21:9,方版徽章类选1:1。胶片摄影的 3:2 经典画幅也支持显式指定(--aspect-ratio 3:2),适合复现标准 135 胶片构图。
延伸阅读
- 完整生成管线:sn-infographic/SKILL.md
- 风格与版式选型规则:layout-style-selection.md
- 提示词扩写系统提示:prompts-expand-system.md
- 提示词写作规则:prompt-writing-rules.md
- 内容分析框架:analysis-framework.md
- 运行时参数推断:runtime-parameters.md
- 端到端 Quick Start 与 100 个生成样例:docs/sn-image-generate.md、docs/sn-infographic-examples_CN.md
- AI 技能
- 人工智能
- 深度研究
- 数据分析
- 媒体生成
【免费下载链接】SenseNova-Skills
Modular SenseNova skills for building AI-powered office assistants and productivity workflows
相关推荐
awesome-claude-code-subagents 中的 ui-designer:用 Claude Code 打造可持续交付的视觉设计系统
awesome claude code subagents 中的 ui designer:用 Claude Code 打造可持续交付的视觉设计系统 导读 本篇技
AI 技能人工智能深度研究数据分析媒体生成SenseNova-Skills sn-infographic 风格指南:Kawaii 可爱风信息图的视觉要素与生成实践
SenseNova Skills sn infographic 风格指南:Kawaii 可爱风信息图的视觉要素与生成实践 Kawaii(かわいい)是日本可爱文化
AI 技能人工智能深度研究数据分析媒体生成SenseNova-Skills 超现实拼贴风格指南:sn-infographic 的 surreal-collage 视觉规范与信息图生成实践
SenseNova Skills 超现实拼贴风格指南:sn infographic 的 surreal collage 视觉规范与信息图生成实践 本文聚焦 Se
AI 技能人工智能深度研究数据分析媒体生成
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考