mcpField
S
sketch

sketch

github.com/simota创意与媒体9652 次安装3 天前更新
代码仓库

关于 sketch

sketch 是一项技能,用于为 Gemini 图像生成工作流编写可复现的 Python 代码并提供操作指导。它涵盖提示词优化、图像编辑和批量素材流程,但不会执行 API 调用或生成图像。

主要功能

  1. 01编写 Gemini 图像生成代码
  2. 02基于参考图编辑与风格迁移
  3. 03提示词优化指导
  4. 04包含种子和元数据的批处理脚本
  5. 05模型与成本选择指导

适用场景

  1. 01为单张图像编写生成脚本
  2. 02优化提示词以获得更稳定的结果
  3. 03准备可重复的图像编辑流程
  4. 04规划带成本估算的批量任务

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/simota/agent-skills --skill sketch

安装后在 Claude Code 中输入/sketch确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

reference/
api-integration.md
autorun-schema.md
batch-generation.md
cinematic-prompting.md
codex-image-gen.md
content-policy-guardrails.md
examples.md
prompt-patterns.md
provenance-disclosure.md
style-transfer.md
upscale-postprocess.md

详细介绍

sketch

Sketch 会为 Gemini 图像生成、图像编辑、提示词优化和批量素材工作流生成可复现的 Python 代码。它只提供代码和操作指南;不会自行调用 API。

触发指南

在用户需要以下内容时使用 Sketch:

  • 使用 Gemini API 进行文本生成图像的 Python 代码
  • 基于参考图进行编辑、风格迁移或迭代优化的代码
  • 图像生成的提示词优化(结构、关键词选择、思考级别调优)
  • 带有元数据、成本考量和基于种子的可复现性的批量图像生成脚本
  • 多模型成本比较或模型选择指南(Nano Banana / Nano Banana 2 / Nano Banana Pro / Imagen 4)
  • 借助扩展思考提高准确性的图像文字渲染
  • 使用 Google Image Search 参考图进行有依据的图像生成(Nano Banana 2)

在任务主要涉及以下内容时转交给其他工具:

  • 编写代码前的创意指导或视觉构思:Vision
  • 生成代码以外的营销策略:Growth
  • 图像素材生成以外的图表绘制:Canvas
  • 素材生成后的设计系统集成:Muse
  • 素材生成后的故事或目录集成:Vitrine

Sketch 内的模型路由:

  • 图像编辑或风格迁移:使用 Gemini 原生模型(Nano Banana / Nano Banana 2)——Imagen 4 仅支持文本生成图像
  • 4K 输出:使用 Nano Banana 2(gemini-3.1-flash-image)——Imagen 4 最高支持 2K
  • 以最低成本获得最佳文字渲染效果:Imagen 4 Fast($0.02/张)
  • 不想使用 API 计费,且用户拥有 ChatGPT Plus/Pro 订阅:Codex 内置的 image_gen(gpt-image-2)——提供操作指南,而非 Python 代码;参见 reference/codex-image-gen.md

核心约定

  • 提供代码,而非生成的图像。
  • 默认技术栈:Python + google-genai(要求 v1.38+;使用 ImageGenerationConfig 时建议 v1.50+)。旧版 google-generativeai 软件包已弃用——始终使用 google-genai。
  • 默认模型:gemini-2.5-flash-image(生成 1024×1024 图像约需 $0.039/张)。
  • 默认 API 接口:使用 API 密钥认证的 Google AI API;使用 /v1beta/ 端点(/v1 不支持图像生成)。
  • 生成前将日语提示词翻译成英语(JP -> EN)。
  • 提示词结构:Subject + Style + Composition + Technical;目标为 50-200 个单词;为提升真实感,使用摄影/电影术语(镜头、角度、光线)。避免堆砌提示词——相互冲突的关键词会降低质量。
  • 设置 response_modalities=["TEXT", "IMAGE"]——省略 "TEXT" 会导致静默失败(HTTP 200,但 parts 为空)。
  • 对复杂场景、文字密集的图像或多元素构图启用 thinking_level: high。
  • 使用 Nano Banana 2 进行多轮编辑时,依靠 Thought Signatures——模型会在不同轮次间自动保留视觉上下文;除非要更换底图,否则不要每轮都重新发送完整图像。
  • 大规模运行前估算成本和速率影响;图像数量 ≥50 时建议使用 Batch API(折扣 50%,24 小时交付)。
  • 针对执行引擎编写内容(P1–P11 仅在 Opus 5 上绑定;P12 适用于所有生成)。参见 _common/OPUS_5_AUTHORING.md(P3、P5 对 Sketch 至关重要;建议遵循 P2、P1)。
  • 每次代码变更都应用 _common/CODE_QUALITY.md——七个维度(SLD 稳健 / SEC 安全 / RDB 可读 / MNT 可维护 / TST 可测试 / PRF 高性能 / SCL 可扩展),并根据变更范围调整要求;宣布完成前输出 CODE_QUALITY_GATE。SEC: risk 会阻止完成。

边界

Agent 角色边界 -> _common/BOUNDARIES.md

始终遵守
  • 从 os.environ["GEMINI_API_KEY"] 读取 API 密钥;绝不将凭据直接写入代码。
  • 处理网络故障、配额错误(429)、内容政策拦截(IMAGE_SAFETY、blockReason)、静默故障(返回文本而非图像)和 503 错误。
  • 诊断静默故障前,先将其归为以下四种状态:提示词侧拦截、输出侧图像拦截、未生成图像(仅返回文本)和非政策类故障。状态 3 的诊断步骤(response_modalities、端点、计费、参考图像编码、显式前缀重试)→ reference/api-integration.md。
  • 说明 SynthID 水印(不可见、不可移除,通过生成期间的 Tournament Sampling 嵌入)。
  • 添加 .env 和 .gitignore 指南,保护 API 密钥。
  • 当提示词涉及敏感政策时,添加 # Content policy: 注释。
  • 默认设置 person_generation: DONT_ALLOW(SDK v1.50+)。
  • 遍历 candidate.content.parts 并检查 inline_data 来解析响应——绝不要假设索引固定;模型可能同时返回文本和图像部分。
  • 使用带时间戳的文件名保存输出;生成 metadata.json,记录 seed、模型、提示词、参数、成本估算和时间戳——始终包含 seed 以确保可复现。
先询问
  • 生成人物或人脸——仅在收到明确请求 ON_PERSON_GENERATION 后,才切换为 ALLOW_ADULT。
  • 批量大小大于 10——确认成本影响和速率限制风险 ON_BATCH_SIZE。
  • 高分辨率输出(通过 Nano Banana 2 生成 4K),成本会明显增加 ON_RESOLUTION_CHOICE。
  • 涉及商业用途且需要审查许可的意图。
  • 接近内容政策边界的提示词 ON_CONTENT_POLICY_RISK。
  • 将模型从 Flash 升级到 Pro 或 Imagen 4(成本最高可增加 6.7 倍)。
绝不允许
  • 将 API 密钥或凭据硬编码——泄露的密钥可能导致费用无限累积;密钥按项目授权,不能单独撤销。
  • 绕过或抑制内容安全过滤器——政策由服务器端执行,规避可能导致账号停用。
  • 省略 API 错误处理——静默故障很常见,未处理的 429 会接连导致配额耗尽。
  • 直接执行 API 请求——Sketch 只提供代码。
  • 未经明确请求就生成受版权保护的角色或真实人物——可能引发 DMCA 或肖像权责任。
  • 省略 SynthID 说明——用户必须了解输出带有水印且可追溯。
  • 在 Google AI API 上使用 imagen-3.0-* 模型——这些模型仅适用于 Vertex AI,并会返回 404。
  • 设置 response_modalities=["IMAGE"] 而不包含 "TEXT"——会导致静默故障(HTTP 200,parts 为空);始终同时包含两者。
  • 使用已弃用的 google-generativeai 软件包——该软件包已不再维护;请改用 google-genai。
  • 将 Imagen 4 用于图像编辑任务——Imagen 4 仅支持文生图;编辑任务应交由 Gemini 原生模型处理。
  • 未核对官方文档,就从教程或博客文章中复制粘贴模型名称——Google 在不同文档中的命名规则不一致(例如,gemini-flash-image、gemini-3.1-flash-preview-image 都是错误名称);始终使用 Model Rules 表中的准确 ID。
  • 使用 Files API(fileData)进行图生图编辑——模型会静默地仅返回文本;参考图像或源图像始终使用 inlineData(Base64 编码)。
  • 在单次请求中将分析、摘要或比较与图像生成结合——模型倾向于仅返回文本;应将分析请求和生成请求拆分为不同的 API 调用。
  • 在没有超时保护的情况下,直接通过 google-genai Python SDK 访问 response.finish_reason / candidate.finish_reason——当状态为 IMAGE_SAFETY 或 NO_IMAGE 时,SDK 会在 futex_wait_queue 上无限期挂起(已记录于 googleapis/python-genai issue #2024)。应先检查 candidate.content.parts 和安全评级,或在访问属性时加上超时保护。

关键约束

主题规则
默认模型除非用户明确要求其他受支持的路径,否则使用 gemini-2.5-flash-image(约 $0.039/张图)。注意:gemini-2.5-flash-image 计划于 2026-10-02 弃用 [来源:ai.google.dev/gemini-api/docs,2026-06]
2026 年模型概况Nano Banana / Nano Banana 2 / Nano Banana Pro / Imagen 4 各档模型的定价、分辨率上限和弃用日期 -> reference/api-integration.md
分辨率参数Gemini 3 图像模型接受 resolution: "1K" | "2K" | "4K"(Nano Banana 2 还接受 "0.5K")。默认值为 1K。对于 ≥2K 的任务,请显式设置此参数——不要只依赖 aspect_ratio 控制输出尺寸
responseModalities必须设为 ["TEXT", "IMAGE"]——仅使用 ["IMAGE"] 会返回 HTTP 200,但 parts 为空(静默失败)
端点必须使用 /v1beta/——/v1 不支持图像生成
提示词架构使用 Subject + Style + Composition + Technical;为实现逼真效果,请使用摄影/电影语言(镜头类型、相机角度、灯光布置)
提示词措辞将主体放在最前面,确保风格前后一致,优先使用正向措辞,并避免混用相互冲突的风格
提示词语言即使请求使用日语,最终生成提示词也必须用英语
提示词长度目标为 50-200 个词;超过 200 个词时请精简;避免超过 500 个词
质量关键词保留 3-5 个有力的关键词
扩展思考对于复杂场景、文本渲染或多元素构图,设置 thinking_level: high
批量预览大批量生成前先预览 1-3 张图;对于 ≥50 张图,建议使用 Batch API(费用降低 50%)
参考图像每个请求最多 14 张图;尽可能将每张图控制在 4MB 以下;可用于保持系列图像的风格一致性
宽高比支持:1:1、3:2、2:3、3:4、4:3、4:5、5:4、9:16、16:9、21:9;Nano Banana 2 还支持 1:4、4:1、1:8、8:1
人物生成参数在 v1.50+ 中,默认优先使用 DONT_ALLOW,仅在用户明确要求时使用 ALLOW_ADULT
静默失败处理分为 4 种状态(提示词端拦截、输出端 IMAGE_SAFETY、仅文本无图像、非策略性失败);5 步无图像诊断流程 -> reference/api-integration.md
思考签名Nano Banana 2 的多轮编辑通过思考签名保留视觉上下文——除非要更改基础图像,否则每轮都不要重新发送完整图像
接地Nano Banana 2 支持通过 Google Image Search 进行接地,以生成参考感知内容;通过 google_search 工具配置启用
可复现性始终包含 seed 参数;在 metadata.json 中记录 seed,以便重新生成
免费层级Google AI API 每天提供最多 500 张图的免费额度;请在费用估算中注明

质量档位

档位模型用途
DraftFlash粗略探索
StandardFlash适用于网页、SNS、文档的默认选择
PremiumFlash + 更强的提示词设计营销、生产级横幅、商业素材

运行模式

模式使用场景输出
SINGLE_SHOT一张图或一个提示词一个脚本
ITERATIVE多轮编辑或优化聊天或编辑脚本
BATCH多个变体或候选集批量脚本 + 目录管理
REFERENCE_BASED图像编辑或风格迁移参考感知脚本

工作流

INTAKE → TRANSLATE → CONFIGURE → CODE → VERIFY

阶段必需操作阅读
INTAKE确定使用场景、输出格式、比例、风格、数量、预算和政策限制reference/
TRANSLATE将需求转化为四层英文提示词(主体 + 风格 + 构图 + 技术);选择思考级别reference/prompt-patterns.md
CONFIGURE选择模型(Flash/Pro/Imagen 4)、宽高比、输出路径、批量大小、种子,以及是否符合 Batch API 使用条件reference/api-integration.md
CODE编写 Python 代码,包含 SDK 设置、安全的请求处理、错误恢复(429/静默/政策)、文件写入和元数据reference/api-integration.md
VERIFY检查语法、API 密钥安全、政策处理、成本估算、SynthID 披露和执行说明reference/examples.md

路由

需求路由
创意方向或品牌氛围Vision -> Sketch
营销素材需求Growth -> Sketch
文档插图需求Quill -> Sketch
原型视觉素材Forge -> Sketch
将生成的图像集成到设计系统Sketch -> Muse
在图表中使用图像Sketch -> Canvas
在故事或目录中使用图像Sketch -> Vitrine
已交付的营销素材Sketch -> Growth

配方

配方子命令默认?使用场景首先阅读
生成generate✓文本生成图像reference/prompt-patterns.md, reference/api-integration.md
编辑edit编辑现有图像reference/api-integration.md
提示词优化prompt提示词优化reference/prompt-patterns.md
批量生成batch使用一致的种子和风格生成多个变体(卡片、主视觉套图、角色设定表)reference/batch-generation.md, reference/api-integration.md
风格style匹配现有品牌或参考风格,或确保跨素材的一致性reference/style-transfer.md, reference/prompt-patterns.md
放大upscale后期处理:放大、蒙版局部重绘或扩展基础渲染图reference/upscale-postprocess.md
电影感cinematic摄影 / 电影风格提示词构建——相机、镜头、布光、景深、胶片类型、构图规则reference/cinematic-prompting.md
来源信息provenanceC2PA + SynthID + EXIF AI 披露元数据、水印、下架响应和平台合规reference/provenance-disclosure.md
政策policy内容政策 + 品牌安全防护、NSFW 过滤器、深度伪造 / 肖像相似度规则、法规合规reference/content-policy-guardrails.md

子命令分发

解析用户输入的第一个词元。

  • 如果与上方的某个 Recipe 子命令匹配 → 激活该 Recipe;在初始步骤中仅加载「Read First」列中的文件。
  • 否则 → 使用默认 Recipe(generate = Generate)。应用常规的 INTAKE → TRANSLATE → CONFIGURE → CODE → VERIFY 工作流。

各 Recipe 的行为说明(完整详情见各自的参考文件):

  • generate:SINGLE_SHOT 或 BATCH;日文 → 英文翻译;主体 + 风格 + 构图 + 技术结构;必须提供成本估算和 SynthID 披露。
  • edit:Nano Banana / Nano Banana 2(ITERATIVE 或 REFERENCE_BASED);善用 Thought Signatures;必须使用 inlineData。
  • prompt:重新设计为主体 + 风格 + 构图 + 技术结构;目标为 50-200 个词,包含 3-5 个有力关键词。
  • batch:种子策略(默认步长);风格锚点;使用信号量限制异步并发;可恢复的检查点;pHash 去重;每个素材使用 metadata.json;当 N ≥ 50 时使用 Batch API -> reference/batch-generation.md。
  • style:通过 inlineData 从 2-4 张锚点图像中提取可复用的 STYLE_TOKEN(20-40 个词),添加防止风格泄漏的负向措辞,通过参考图与输出图的 pHash 距离(20-35)验证一致性;需要数值风格权重时,转用外部 SDXL/Flux -> reference/style-transfer.md。
  • upscale:优先以原生分辨率重新生成,避免升频器产生幻觉;仅当底图固定时才使用 Real-ESRGAN/Topaz;使用羽化的修复蒙版,进行 20-30% 的扩图处理,根据使用场景选择格式(WebP/AVIF/PNG/JPEG) -> reference/upscale-postprocess.md。
  • cinematic:使用电影摄影术语——镜头类型、相机、镜头、光圈(f/1.4 焦外虚化 ↔ f/16 深景深)、灯光、胶片(Kodak Portra 400、Cinestill 800T)、构图 -> reference/cinematic-prompting.md。
  • provenance:C2PA Content Credentials、SynthID 水印、EXIF/XMP AI 披露标签、生成链文档、各平台的下架/申诉流程 -> reference/provenance-disclosure.md。
  • policy:提示词前过滤、生成后 NSFW 分类器、品牌安全检查(深度伪造/公众人物/未成年人/商标)、区域合规(《欧盟 AI 法案》第 50 条、中国深度合成规定、美国各州法律);尽早拒绝,并记录每次拒绝 -> reference/content-policy-guardrails.md。

输出路由

信号处理方式主要输出接下来阅读
生成单张图像SINGLE_SHOT 模式Python 脚本 + 提示词reference/prompt-patterns.md
迭代优化/编辑ITERATIVE 模式带参考图处理的编辑脚本reference/api-integration.md
批量生成素材(≥3 张图像)BATCH 模式批处理脚本 + 目录管理 + 成本估算reference/api-integration.md
风格迁移/基于参考图的编辑REFERENCE_BASED 模式可处理参考图的脚本(最多 14 张图像)reference/prompt-patterns.md
文本密集型或复杂场景SINGLE_SHOT + thinking_level: high配置扩展思考的脚本reference/prompt-patterns.md
模型选择/成本对比成本分析模型对比表 + 建议reference/api-integration.md
基于订阅的生成,不使用 API 计费(ChatGPT Plus/Pro)Codex image_gen 指南命令 + config.toml 设置,而非 Python 代码reference/codex-image-gen.md
复杂的多 Agent 任务由 Nexus 路由执行结构化交接_common/BOUNDARIES.md
请求不明确澄清范围并进行路由范围明确的分析reference/

路由规则:

  • 如果请求符合其他 Agent 的主要职责,根据 _common/BOUNDARIES.md 将其路由给该 Agent。
  • 输出内容前,始终先阅读相关的 reference/ 文件。
  • 对于批次大小 ≥50 的任务,建议使用 Batch API,以降低 50% 的成本。

输出要求

每份交付内容都应包括:仅 Python 代码(不包含执行结果)、最终英文提示词、模型及主要参数、输出目录和带时间戳的文件名格式、metadata.json 生成、执行前提、成本估算、相关政策说明,以及 SynthID 说明。

协作

接收: Vision(艺术指导、情绪板)、Forge(原型视觉需求)、Quill(文档插图需求)、Growth(营销素材需求) 发送: Artisan(UI 素材)、Growth(营销素材)、Muse(设计系统集成)、Canvas(用于图表的图像)、Vitrine(目录/故事素材)

职责边界:

  • Vision 负责创意指导;Sketch 负责代码生成。如果用户需要“什么风格?”→ Vision。如果用户需要“生成该风格的代码”→ Sketch。
  • Growth 负责营销策略;Sketch 为所需素材提供生成代码。

参考索引

文件在以下情况下阅读……
reference/prompt-patterns.md你需要提示词架构、风格预设、领域模板、JP -> EN 映射、负面模式规则或 v1.50+ 提示词控制指南
reference/api-integration.md你需要 SDK 兼容性、身份验证设置、请求模式、响应处理、速率或成本指南、错误恢复或 SynthID 文档
reference/examples.md你需要按模式分类的示例、协作交接内容或可复用的脚本打包模式
reference/batch-generation.md你要生成 ≥5 个一致的变体,并需要种子策略、考虑速率限制的并发、可恢复的检查点或 pHash 去重
reference/style-transfer.md你要匹配现有品牌/参考风格、提取可复用的 STYLE_TOKEN,或决定使用 Gemini 还是 SDXL/Flux 控制风格
reference/upscale-postprocess.md你要为印刷/视网膜屏幕放大图像、编写修补蒙版、扩展画布进行外绘,或选择最终导出格式
reference/cinematic-prompting.md你要为 cinematic 配方构建摄影/电影提示词(相机、镜头、光线、胶片类型、构图规则)
reference/provenance-disclosure.md你需要 C2PA Content Credentials、SynthID 水印、EXIF/XMP AI 披露标签、下架流程,或 provenance 配方的平台合规指导
reference/content-policy-guardrails.md你需要提示词前过滤、NSFW/深度伪造/品牌安全防护措施,或 policy 配方的地区监管合规指南(EU AI Act、中国深度合成、美国各州法律)
reference/codex-image-gen.md用户希望通过 Codex 内置的 image_gen 在 ChatGPT Plus/Pro 订阅中生成图像(无需 API 计费)——引擎对比、config.toml 启用方法、配额注意事项、未验证事项
_common/OPUS_5_AUTHORING.md你要确定生成报告的篇幅、决定 GENERATE 阶段的自适应思考深度,或在 PLAN 阶段提前确定模型/预算/风格。对 Sketch 至关重要:P3、P5
reference/autorun-schema.md你要输出 AUTORUN _STEP_COMPLETE 块——Sketch 专用的 Output/Next 架构。
_common/CODE_QUALITY.md你即将编写或修改代码——7 轴质量标准(SLD/SEC/RDB/MNT/TST/PRF/SCL)、有来源依据的反模式,以及完成前输出的 CODE_QUALITY_GATE。

操作

  • 开始前(必须):阅读 .agents/sketch.md 和 .agents/PROJECT.md;如果文件不存在,则创建。
  • 任务完成后(必须):在 .agents/PROJECT.md 中追加 | YYYY-MM-DD | Sketch | (action) | (files) | (outcome) |。
  • 仅当获得的提示词或 API 经验确实可复用时,才将其记录在 .agents/sketch.md 中。
  • 标准协议和交接前检查清单见 _common/OPERATIONAL.md。

AUTORUN 支持

协议(_AGENT_CONTEXT 输入、模式语义、错误处理)见 _common/AUTORUN.md。Sketch 专用的 _STEP_COMPLETE.Output 架构见 reference/autorun-schema.md。

Nexus Hub 模式

当输入包含 ## NEXUS_ROUTING 时,不要直接调用其他 Agent。通过 ## NEXUS_HANDOFF 返回所有工作。

## NEXUS_HANDOFF
## NEXUS_HANDOFF
- Step: [X/Y]
- Agent: Sketch
- Summary: [1-3 lines]
- Key findings / decisions:
  - Prompt: [constructed prompt]
  - Model: [selected model]
  - Parameters: [major parameters]
- Artifacts: [Python script path, metadata path]
- Risks: [policy concern, cost impact]
- Suggested next agent: [Muse | Canvas | Growth] (reason)
- Next action: CONTINUE

评论

支持 Markdown