把旅行照变成水彩画、把宠物照变成黏土角色、把家庭合影变成手绘动画,是图像生成应用中很直观的一类需求。最近,这些能力也出现在 Agent Skills 中:用户提供照片和风格要求,智能体就能选择工具、调用模型,并保存处理结果。
这类 Skill 的核心,是将照片编辑的操作经验写成可重复执行的工作流。 决定画面如何生成的是图像模型;Skill 负责组织输入、表达约束和安排执行步骤。同一个模型配上不同的 Skill,使用体验和结果稳定性可能相差很大。
本文依据 2026 年 9 月 15 日 可查阅的项目源码与官方文档,介绍几种代表性实现。项目选择以代码可核查、实现方式有代表性为依据;没有统一的安装量或使用量数据,因此不按“热门程度”排名。本文是实现机制解析,未对各模型进行照片效果横向实测。
Skill、工具与图像模型分别负责什么
Agent Skills 规范将一个 Skill 定义为包含 SKILL.md 的目录。文件头部的名称和描述帮助智能体识别适用任务,正文提供执行说明;脚本、参考资料和素材可以放在附属目录中,按需读取。Agent Skills 格式规范
在照片风格化任务中,可以把它们的职责分成三层:
| 层次 | 负责的事情 | 照片转水彩的例子 |
|---|---|---|
| Skill | 规定任务步骤、风格选择与检查要求 | 读取照片,选水彩预设,保留人物与构图 |
| 执行工具 | 传输图片、提交请求、取得并保存结果 | Python 脚本读取文件,调用服务接口,写出 PNG |
| 图像模型 | 根据图片和指令生成新的像素 | 将摄影质感重新表现为水彩笔触与纸张纹理 |
安装 Skill 通常不会给本地安装一套新的图像模型权重,也不会自动训练一种新画风。它可以使用现有图像工具,也可以附带调用云端服务或本地推理服务的脚本。是否需要密钥、网络和 GPU,取决于执行工具连接的后端。
下面展示一个适合照片风格化的流程。其中结果检查和有限重试是本文的工程建议,具体项目未必全部实现。
三个可以从源码理解的实现
Nano Banana 类 Skill:脚本封装图像编辑接口
steipete/agent-scripts 中的 nano-banana-pro 提供了很直接的实现:SKILL.md 说明何时传入原图、怎样指定输出文件,以及如何进行草稿迭代;generate_image.py 承担实际请求。Skill 说明
它的编辑过程可以概括为三步:
- 脚本打开
--input-image指定的图片。 - 将图片对象和编辑指令一起交给模型。
- 从响应中提取图像数据,转换并保存为 PNG。
检查时,这个目录仍叫 nano-banana-pro,脚本却已调用 gemini-3.1-flash-image-preview。Skill 名称不能用来确认实际模型版本,需要查看请求中的模型标识。调用脚本
这也解释了为什么不能只把“照片里有一只橘猫”写进提示词:照片本身包含了毛色分布、姿势和背景关系。只有把原图真正传给支持图片输入的接口,编辑模型才有这些视觉依据。Gemini 官方指南提供了图片加文字的编辑,以及多图组合与风格迁移示例。Gemini 图像生成与编辑指南
风格迁移类 Skill:把画风整理为预设
Mikefluff/skills 的 style-transfer 展示了另一种组织方式:先接收现有图片,再选水彩、素描、水墨、漫画等预设,然后调用图像编辑后端。它将风格说明和服务说明放进独立参考文件。任务流程
预设的主要内容是文字。例如,水彩预设描述透明色层、笔触和纸张质感;素描预设描述石墨明暗与排线。智能体可以将这些描述与用户补充要求组合起来。预设也可能引用素材或专门的模型,但这个项目的风格目录主要展示了提示词组织方法。风格预设文件
这里需要区分“流程说明”与“已经验证的能力”。该 Skill 文档中的默认后端、价格和人物保持比例,不能直接视为当前服务保证。尤其是人物保持百分比,在所查文件中未附可复核的测试方法,本文不采用这些数值。
版本也会影响选型:这个示例仍以 FLUX.1 Kontext 为默认方向,而 Black Forest Labs 当前已将 Kontext 列入旧模型,并在其概览中建议新项目考虑 FLUX.2。旧 Skill 仍可用于理解架构,实际接入应核对服务方现行文档。Kontext 官方概览
baoyu-image-gen:统一参考图与多后端调用
baoyu-image-gen 是通用图像生成入口,具有参考图、提示词文件、输出比例和批处理等参数。它适合作为上层照片风格化流程的执行工具:上层负责准备风格要求,底层负责读取图片和调用选定服务。Skill 参数说明
它在人物保持方面的指导很具体:明确要求使用参考图中的同一个主体,避免用长篇通用外貌描述替代原图,也提醒生成图反复充当参考图可能造成偏移。这些是提示词与流程设计建议,效果仍需检查。
在其 Google 后端代码中,可以看到参考图读取、图像数据封装和请求构造。统一的命令行入口简化了调用,但不同模型对参考图的支持范围仍然不同;接口提供了 --ref,不代表每个后端都能执行相同的编辑任务。Google 后端实现
风格要求怎样变成有效的编辑指令
“做成水彩风格”给出了方向,但没有说明哪些内容可以变。对于照片,尤其是人物照片,风格化同时包含两个目标:改变表现手法,以及保留指定内容。
一个便于维护的风格描述,可以拆成四个部分。下表是本文设计示例:
| 部分 | 需要回答的问题 | 示例 |
|---|---|---|
| 媒介与纹理 | 画面用什么材料表现? | 水彩,轻薄色层,细微纸纹 |
| 色彩与光照 | 用什么颜色和明暗关系? | 温暖低饱和色,柔和自然光 |
| 内容约束 | 哪些可见内容需要保留? | 两个人、原有站位、服装颜色、背景建筑 |
| 变化范围 | 哪些部分可以重新表现? | 允许简化纹理,人物五官比例保持接近原图 |
组合后的指令可以写成:
将输入照片重新表现为温暖的水彩插画,使用轻薄色层、柔和边缘和细微纸张纹理。保留照片中的两个人、各自的五官比例、姿势、服装颜色与站位。保留背景建筑及原有画面裁切。背景细节可以适度简化,人物身份与构图的保持优先于夸张的风格效果。
这里的价值来自信息明确,并不取决于提示词长度。Black Forest Labs 的图像编辑指南也强调,在说明改动时交代需要保持的内容。Kontext 图像编辑指南
如果同时提供原照片和一张画风参考图,指令还需要明确各自角色:照片提供主体与构图,参考图提供笔触和色彩。否则模型可能把风格参考图中的人物、物体或场景也带入结果。多图输入的具体数量与处理方式应以所用模型为准。
一次照片处理可以怎样执行
下面以“把双人旅行照转成水彩插画”为例,给出一个完整工作流。这是根据前述实现整理的设计方案,并非任何单个项目的原样功能清单。
第一步:确认原图可以正确读取
执行工具先检查文件是否存在、能否解码、方向是否正确,以及尺寸是否满足模型要求。智能体在具备看图能力时,再确认人物数量、构图和需要保留的细节。
图片路径出现在文字提示词中,并不等于图片已上传。实现时需要明确区分“把路径写给模型”和“打开文件,将图像数据传给模型”。
第二步:记录保留项与风格描述
智能体将“水彩风”展开为媒介、颜色与笔触要求,同时记录两个人的站位、衣服颜色和背景建筑。用户要求“照片里还是同一个人”时,这应当成为明确的检查项。
对于含有文字、品牌标志或复杂饰品的图片,可以提前决定这些元素需要精确保留,还是允许绘画式简化。这样得到的验收条件更具体。
第三步:调用支持原图编辑的后端
执行工具提交原图、最终提示词和受支持的输出参数。普通照片风格化可以先生成小尺寸候选,确定方向后再制作最终版本。
需要注意,参数名不一定等于实际行为。前述 Nano Banana 脚本在 --resolution 为 1K 时,会根据输入图片尺寸重新选择输出分辨率。因此,对大图传入 1K 未必得到低分辨率草稿;采用这份脚本时需要检查这一分支,或在实现中区分“未指定”和“显式指定”。这是源码层面的行为,不是 Gemini 接口的通用规则。分辨率处理代码
第四步:同时检查风格与内容
检查应围绕用户要求展开:水彩质感是否明显、人数是否正确、脸部和手部是否出现异常、背景有没有新增物体、裁切是否改变。
部分 Skill 只负责保存文件,并没有自动看图验收。例如,前述 Nano Banana Skill 的输出说明要求报告路径,不读取生成图。因此,不能因为 Skill 写了“完成”,就推断结果已经通过视觉检查。需要自动验收的应用应额外实现看图步骤,也可以将候选图交给用户选择。
第五步:有限修改并保存执行记录
如果结果的问题是人物被改得过多,下一次应明确收紧人物变化范围。需要保持原始内容时,可以继续使用原图并修改指令;用户明确要求在某张生成结果上继续创作时,再把该结果作为编辑基础。
每次生成保存为新文件,并记录实际模型、提示词、输入标识、输出路径和重试次数。记录有助于定位差异,但不能保证云端模型每次逐像素复现相同结果。重试次数也应有上限,避免同一失败任务持续消耗调用额度。
如何把工作流组织为一个 Skill
按照 Agent Skills 的目录约定,可以采用下面的结构。它是用于说明分工的设计草图,不是可直接安装运行的完整软件包:
1 | photo-stylizer/ |
SKILL.md 中只需保留执行主线。例如,下面的文件片段描述了任务匹配与步骤;其中引用的脚本需要另行实现:
1 | --- |
风格文件负责视觉表达,脚本负责文件与接口,检查文件负责验收条件。这样的分工便于单独调整画风,也便于更换服务方。
有现成工具时,Skill 也可以直接调用工具,省去自带脚本。Black Forest Labs 官方区分了两种入口:MCP 提供生成、编辑和变体等可调用工具;其 Agent Skills 提供提示词和 API 集成方面的知识。两者可以配合使用,Skill 不必承担图像传输的全部实现。BFL 的 MCP 与 Agent Skills 说明
如果已有本地 ComfyUI 工作流,同样可以让工具提交工作流并取回结果。ComfyUI 官方 Python SDK 支持加载工作流文件,连接自托管服务或云服务;这提供了一条可供 Skill 调用的执行路径。本文没有验证某个专门的 ComfyUI 照片风格化 Skill。ComfyUI Python SDK
判断一个照片风格化 Skill 是否适合使用
比较这类项目时,可以从下面几个实际问题入手:
| 检查问题 | 能说明什么 |
|---|---|
| 原图是否真正进入图像编辑接口? | 结果能否利用原照片的视觉信息 |
| 风格预设是否有具体的纹理、色彩和构图描述? | 风格要求是否明确、便于修改 |
| 实际调用哪个模型,支持哪些输入? | 项目宣传与当前执行能力是否一致 |
| 是否检查人物、文字和背景的变化? | 保存文件之后是否还有质量验收 |
| 是否保留原图、限制重试并记录实际参数? | 能否排查结果差异和控制调用成本 |
照片含有人物时,还需要理解上传路径:使用云端后端意味着图片会提交给相应服务。工具应使用已配置的凭据,并避免把密钥写入提示词、输出文件或公开日志。
照片风格化 Skills 的共同思路,可以概括为:用可复用的说明组织任务,用明确的参考图和提示词约束变化,用图像工具执行,再根据具体要求检查结果。 风格预设降低了表达成本,执行脚本减少了操作步骤;人物是否仍然相似、画面是否满足预期,最终还需要通过实际输出判断。