Community图像github.com

mattmuller/gemini-reference-images

使用参考图像通过Gemini生成图片——保持同一角色在多张图片中的一致性,将真实产品截图放入生成的场景中,匹配风格——并调试返回无图像的Gemini图像调用。在编写或修复向Gemini图像模型发送参考图像的代码、调用返回空结果或内容过滤完成原因时,或规划附加多少参考图像时使用。

gemini-reference-images 是什么?

该技能(Skill)详细介绍了如何利用Gemini API通过参考图像生成图片,包括保持角色一致性、将真实产品截图嵌入生成场景以及风格匹配等高级功能。它明确了不同模型对参考图像数量的限制(如gemini-3.1-flash-image最多支持14张参考图,并细分为对象、角色、风格子类别),并强调推断类别而非声明。技能提供了通过Vercel AI Gateway调用图像模型的具体代码示例,包括设置纵横比和图像大小。此外,它还列出了多个关键陷阱,例如在提示中包含“无水印”会导致调用被拒绝、模型返回空结果时不要立即抛出异常、不要描述参考屏幕上的内容等。该技能适合在调试Gemini图像调用问题、规划参考图像数量或编写相关代码时参考。

兼容平台~Claude Code~Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/mattmuller/skills-for-agents/tree/HEAD/skills/gemini-reference-images

Installed? Explore more 图像 skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

使用参考图像进行Gemini图像生成

Gemini不仅可以根据提示生成图像,还可以根据您提供的图像生成图像。这就是如何保持一个角色在系列图片中保持一致,或者将真实的产品截图渲染到生成的场景中,而不是一个虚构的场景。

各模型限制

取自2026年9月19日的Gemini API图像生成文档。模型名称和限制会变化;请在使用前重新阅读当前页面。

参考图像总数最多14张,每个类别有独立的子限制,而非共享池:

模型对象角色风格
gemini-3.1-flash-image1043
gemini-3-pro-image65-
gemini-3.1-flash-lite-image14--

因此,产品截图和角色肖像不会争抢预算。一张图像可以包含多个屏幕和多人。

类别是推断出来的,而非声明的。 通过AI SDK和网关,您发送的是未区分的file部分;没有字段说明“这是一个角色”。将14视为真正的上限,并远低于此。类别限制描述了模型的能力,而非您可以断言的内容。实际上,两个屏幕加两个人就足够了。

调用

通过Vercel AI Gateway,图像模型的行为类似于语言模型:它通过文本API在files中返回图片,而专用的图像API会拒绝它。请检查您自己的提供者路由如何暴露它。

const result = await generateText({
  model,
  prompt: [{ role: 'user', content: [
    ...references.map((r) => ({ type: 'file', mediaType: r.mediaType, data: r.bytes })),
    { type: 'text', text: prompt },        // 图像在前,然后是指令
  ]}],
  providerOptions: { google: {
    responseModalities: ['IMAGE'],
    imageConfig: { aspectRatio: '4:5', imageSize: '2K' },
  }},
});
const file = result.files.find((f) => f.mediaType.startsWith('image/'));

纵横比:1:1 3:2 2:3 3:4 4:3 4:5 5:4 9:16 16:9 21:9。尺寸:512px 1K 2K 4K。

陷阱

1. 附加参考图像时,不要写“无水印”。 Gemini似乎将其理解为从提供的图像中移除水印的请求,并拒绝整个调用。2026年9月测量,每个提示尾运行两次,附加两张参考图像:

提示尾结果
"永远不要插图,3D渲染..."图像, 图像
"人物、面孔、手...都欢迎。"图像, 图像
"没有其他公司的标志。"图像, 图像
"无水印。"内容过滤, 内容过滤

只有水印措辞触发了拒绝。从其他图像工具复制来的负提示约定(许多以watermark, over-saturated, stock-image结尾)可能会静默地破坏每次调用。

2. 拒绝看起来像模型不稳定。 它返回finishReason: 'content-filter',零个文件和空字符串。如果您的错误信息打印result.text,您什么都看不到,并得出API不可靠的结论。始终记录finishReason。

3. 在抛出异常前重试空响应。 模型偶尔会因为普通原因返回空结果。仅在重试次数用完后抛出异常,并将finishReason包含在错误中。

4. 不要描述提供给屏幕的内容。 截图已经存在;关于其内容的文字会与图片冲突,产生混合结果。只描述承载场景的部分:桌子、光线、手。

5. 模型会重绘,而非粘贴。 参考屏幕上的小文本可能会微妙地出现错乱,出现看似合理但错误的名称和标签。这在缩略图大小下没问题,但对于读者会放大的内容则不行。检查输出,而不是假设保真度。

6. 参考图像不会使输出变得不那么合成。 从真实截图和真实肖像构建的图像仍然是AI生成的。请应用适用于您使用生成图像的标签或披露规则;检查适用的内容,而不是假设参考图会免除。

参考图像管道清单

  • 参考部分位于文本部分之前。
  • 少于14张参考图像;理想情况下4张或更少。
  • 提示描述场景,而非提供屏幕的内容。
  • 提示中没有水印措辞。
  • 记录finishReason并对空结果进行重试。
  • 发布前检查输出中是否有乱码的小文本。

相关技能