mcpField
S
scenario-gpt-image

scenario-gpt-image

github.com/scenario-labs创意与媒体1.2k426 次安装1 天前更新
代码仓库

关于 scenario-gpt-image

scenario-gpt-image 是一项技能,可在 Scenario 上使用 OpenAI 的 GPT Image 模型生成和编辑图像。它指导如何选择模型及设置参考图、局部重绘、尺寸、质量和保真度参数。

主要功能

  1. 01通过提示词生成和编辑图像
  2. 02使用参考图与蒙版
  3. 03选择不同 GPT Image 模型
  4. 04设置尺寸与宽高比
  5. 05通过 dry_run 估算成本

适用场景

  1. 01制作图像草稿和最终素材
  2. 02通过局部重绘修改指定区域
  3. 03生成透明背景抠图
  4. 04保留或重新诠释参考图

MCP 相关

它使用 Scenario MCP 工具发现模型、查看 schema、上传参考图、运行图像任务并获取结果。

安装

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

$npx skills add https://github.com/scenario-labs/skills --skill scenario-gpt-image

安装后在 Claude Code 中输入/scenario-gpt-image确认已加载。

详细介绍

Scenario GPT Image

概述

Scenario 上的 OpenAI 图像系列 GPT Image 的每个成员,都通过同一个 prompt 进行生成和编辑;referenceImages 用于传入要编辑的图像,另可使用 alpha mask 进行 局部重绘。撰写本文时,有四个成员可用:GPT Image 2.5 Flare(快速,适合日常使用)、GPT Image 2.5 Sunburst(精准,适合密集文案、图表以及必须保持几何结构的编辑)、GPT Image 2 和 GPT Image 1.5;后者是唯一提供保真度调节和比例尺寸的成员。通过 search 查找成员, 并将 model_schema_get 视为接口约定:整个系列都支持 prompt 和参考图像,但在尺寸、质量等级和保真度方面各有不同。

关于连接和核心循环,请参阅本仓库中的 scenario 技能;关于模型无关的图像工作,请参阅 scenario-image 技能。如果这里提到的同级技能不在你的可用技能中,请让用户安装它(npx skills add scenario-labs/skills --skill <name>);如需无人值守地继续,请根据工具架构操作,并指出这一缺失。

快速参考

撰写本文时的共享参数:prompt(必填,最多 32000 个字符)、referenceImages(即使只有一张也必须是数组,最多 10 张)、numOutputs(为同一个 prompt 生成 1 到 10 个变体)、quality 和 background(所有成员均支持 auto 和 opaque;除 GPT Image 2 外的成员均支持 transparent)。差异如下:

接口约定2.5 Flare 和 SunburstGPT Image 2GPT Image 1.5
尺寸width 和 height,16 至 3840 px相同aspectRatio:auto、1:1、3:2、2:3
局部重绘mask PNGmask PNG无 mask 字段
qualityauto、low、medium、high、xhigh、maxauto、low、medium、highhigh、medium、low(默认 high)
源图保真度仅通过 prompt 措辞控制仅通过 prompt 措辞控制inputFidelity:high 锁定,low 重新处理

路由选择:Flare 和 Sunburst 共用一套接口约定和价格表,因此选择时需权衡速度与质量。OpenAI 将 Flare 描述为一款小型模型,专为速度而设计,图像质量与 GPT Image 2 相当;将 Sunburst 描述为基础模型,图像质量优于 GPT Image 2:日常工作选 Flare;准确性比速度更重要时(如包装文案、密集数字、分解图,以及需要保持几何结构的编辑)选 Sunburst。GPT Image 2 的接口约定与 2.5 相同,但少了两个最高等级;其 high 定价与 2.5 的 max 相同,因此新任务应从 2.5 开始。GPT Image 1.5 适用于 inputFidelity: "low",可重新处理参考图像,而不是照搬它(只有前五张参考图像会保持较高保真度);它还支持 3:2 或 2:3 输出,无需计算像素尺寸。透明抠图应选择 2.5 系列成员:GPT Image 2 不接受该值;而 1.5 主打保真度和比例,并非抠图。

质量是价格调节盘

quality 对价格的影响大于尺寸,而且同一个选项在不同成员上的价格并不相同。在撰写本文时,两个 2.5 成员对 1024 的正方形图像按 low、medium、high、xhigh 和 max 档位分别定价为 2、3、12、20 和 45 CU;GPT Image 2 的 low、medium 和 high 档位分别定价为 2、12 和 45;三个成员的 auto 都解析为 12;Flare 上一次 3840×2160 的 max 运行耗费了 69 CU。对你将要运行的成员设置 dry_run=true,并读取 creativeUnitsCost;referenceImages、numOutputs、quality 和尺寸设置都会影响 cost_impact,因此每次更改后都要重新估价。即使使用 dry run,GPT Image 2 上的 xhigh 或 max 也会返回 400(“Input quality must be one of the following values”)。档位选择:草稿用 low,日常成品用 medium,必须保证小字或图例清晰易读时用 high;只有当低一档在你的延迟预算内无法满足某项具体要求时,才用 xhigh 或 max:更高档位并不保证对每个提示词都能带来更好的结果。

像素成员的尺寸遵循 OpenAI 发布的网格:每个轴的尺寸都是 16 的倍数,长边至多为 3840,宽高比介于 1:3 和 3:1 之间,总像素数介于 655,360 和 8,294,400 之间;高于 2560×1440 的尺寸为实验性功能。Schema 只强制执行 16 的步进范围,且 dry_run 会对任何请求报价,因此请自行遵守此网格:不符合网格的请求仍会成功,但返回的尺寸会有所不同,且不会报错。在撰写本文时,3840×960 和 3840×480 都返回了 3840×1280(限制为 3:1);960×3840 返回了 1280×3840;1000×1000 返回了 992×992;Sunburst 上的 3840×3840 返回了 2880×2880,而 Flare 在提交时拒绝了该请求(“Error while running prediction”)。常见选择:1024×1024(最快)、1536×1024、1024×1536、4K 用 3840×2160、真正的 21:9 用 2560×1088。

宽高比超出 1:3 到 3:1 范围的编辑源会被填充,而不是裁切:一张 1326×313(4.24:1)的源图在两个 2.5 成员上都返回了约 2132×738 的图像,上下白边约占画面的三分之一;即使输入源图尺寸,也会返回 1408×480,并以相同方式填充。每次运行后,都要从 asset_get 读取 width 和 height。如果编辑后的文件必须保持原始画布尺寸,请裁掉结果中的边带,或将编辑路由到会保留源图尺寸的成员(参见 scenario-ideogram)。

蒙版和透明度

mask 是一张与第一张参考图尺寸相同的 PNG,只通过其 alpha 通道读取:透明像素会被编辑,不透明像素会保留;没有 alpha 时,RGB 白色或黑色会被忽略。导出时保留透明度,切勿扁平化,并将白底黑字蒙版中的白色区域转换为透明。OpenAI 将蒙版视为指导,而非硬性边界:如果某个区域必须保持像素级一致,请将获准的编辑结果合成回原图。

background: "transparent" 在 2.5 Flare 和 Sunburst 的所有档位都会返回真正的 alpha;GPT Image 2 会拒绝此设置。在撰写本文时,对 2.5 成员有两点观察:alpha 峰值为 254,而非 255,因此检查完全不透明像素时会把整个主体识别为半透明;透明像素下方的颜色数据带有光晕,因此任何会丢弃 alpha 的表面(JPEG 扁平化、无透明度的缩略图、在黑色背景上合成的查看器)都会让抠图边缘发亮。在白色背景或棋盘格背景上则很干净。提示词中应要求干净抠图、轮廓清晰、边缘细致、保留标签文字、无光晕、不重新设计,然后检查头发、玻璃、阴影和物体边缘处的 alpha 通道。所有环节都应保留 PNG 或 WebP 及其 alpha 通道,包括预览和下载。

提示词撰写方式

位置就是权重:提示词开头依次写风格、媒介、主体和情绪,然后用自然句子而非标签列表描述场景、细节、光线和文字。说明预期用途(广告、UI 模型图、信息图、主视觉),以确定精细程度。若追求照片级真实感,请写上“photorealistic”并指出具体纹理(毛孔、织物磨损、材料纹理);若画面中有人物,请描述取景、视线和手部动作。详细的需求说明会被规范化,而非加以润色:只补充过于笼统的提示词,绝不添加需求中未暗示的人物、品牌、标语或左右位置。大约超过 7 项不同要求后,部分要求可能会悄然遗漏,因此先构建简洁的基础版本,再通过每次编辑进行一项有针对性的修改,并将上一次的输出作为下一次的参考。

编辑时,请说明“只修改 X”,列出必须保留的内容,并在每次迭代时重复这份列表;未提及的内容都可能发生变化。并非每张输入图片都用于编辑:作为风格或情绪参考提供的图片,会让本次运行成为带参考图的生成任务。请按索引为每张参考图指定用途(“图片 1 是产品,图片 2 是调色板”);未指定用途的参考图会混在一起。numOutputs 会根据同一个提示词生成多个变体,适合为同一份需求制作版式草稿;不同主体则需要分别运行。

图片中的文字:引用准确文案,逐字拼写容易出错的单词,说明布局(每个元素所在区域、相对其他元素的大小层级、哪些区域保持留白),注明字体粗细和大小写形式,说明文案出现的次数,并附上“no extra words, no duplicate text”。若提示词中提及公众人物,系统会拒绝;请改为描述一种原型。复杂提示词可能需要约 2 分钟才能运行:请等待 jobs_wait,不要重新运行任务。

实例:带标题文字的产品主视觉

  1. 使用 target="models"、query="gpt image"、public=true 调用 search。请阅读模型名称,而不是只看排名:新成员的使用时间较短,排名会低于 GPT Image 2。标题文字适合用 Sunburst,例如 model_openai-gpt-image-2-5-sunburst(撰写本文时查询到的一个可用结果:每次会话都应重新发现)。
  2. 使用该 ID 调用 model_schema_get:先查看 quality 的允许值、尺寸范围、是否支持遮罩以及默认值。
  3. 使用 upload_asset 上传产品照片(参见 scenario 技能),获取其资源 ID。
  4. 使用该 model_id 调用 model_run,设置 dry_run=true,并传入 parameters={"prompt": "Editorial product photography, soft daylight. The exact bottle from image 1 on brushed concrete, label, shape, and color preserved. Headline \"DRINK GREEN\" in bold sans-serif, centered, appears once, no extra words, no duplicate text.", "referenceImages": ["asset_x"], "width": 1536, "height": 1024, "quality": "low", "numOutputs": 3} 以查看草稿价格;然后使用 wait=false 运行,并对返回的任务 ID 调用 jobs_wait。超时时,使用 pending_job_ids 再次调用 jobs_wait,绝不要再次调用 model_run。
  5. 使用 asset_display 查看 3 个草稿并选定构图。按照步骤 4 再运行一次,使用该提示词并设置 quality: "high"、numOutputs: 1,先设置 dry_run=true:档位变化会影响价格。
  6. 使用 asset_display 查看最终结果,并在批量生成前校对渲染出的文字;使用 asset_download 保存。

常见错误

  • 将 xhigh 或 max 用于 GPT Image 2 或 1.5:验证时会返回 400 错误;请查看各模型的 schema,确认允许值。
  • 使用 GPT Image 2 生成抠图:它不接受 background: "transparent";请改用 2.5 Flare 或 Sunburst(1.5 是注重保真度和比例的成员)。
  • 在不同模型之间沿用尺寸参数:2 和 2.5 使用 width/height,1.5 使用 aspectRatio,两者不可同时使用。
  • 盲目信任请求的尺寸:若宽高比超过 3:1、像素数超过 8,294,400,或尺寸不符合 16 像素网格,任务会以不同尺寸成功;过宽的编辑源图还会出现白边。
  • 使用 1.5 时,若希望重新诠释图像,却仍将 inputFidelity 保持在较高默认值:请将其调低,并重新调用 dry_run。

评论

支持 Markdown