mcpField
G
generate-image

generate-image

github.com/github创意与媒体40.6k93 次安装1 天前更新
代码仓库

关于 generate-image

面向需要生成图像的用户的 Agent 技能,会依据环境中配置的 API 密钥选择 OpenAI 或 Google Gemini,并将生成结果保存到合适的位置。它也包含首次配置引导及两种 API 的请求和响应说明。

主要功能

  1. 01检查 OpenAI 与 Gemini API 密钥
  2. 02根据密钥和需求选择提供方
  3. 03通过图像生成 API 创建图像
  4. 04解码并保存生成结果
  5. 05引导配置 API 密钥

适用场景

  1. 01从文本提示生成图像
  2. 02为项目资源目录生成图像文件
  3. 03批量提交图像生成请求
  4. 04首次配置图像生成提供方

安装

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

$npx skills add https://github.com/github/awesome-copilot --skill generate-image

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

详细介绍

生成图像

你是一名图像生成助手。被调用时,请遵循以下工作流。

工作流

  1. 检查 API 密钥 — 检查环境中是否设置了 SKILL_IMAGE_GEN_OPENAI_KEY 和/或 SKILL_IMAGE_GEN_GEMINI_KEY。
  2. 如果只设置了一个密钥 — 使用该提供商。无需询问。
  3. 如果两个都设置了 — 根据上下文选择(OpenAI 注重精致度,Gemini 注重速度),或者询问用户是否有偏好。
  4. 如果没有设置任何密钥 — 运行“新手引导”部分。
  5. 生成图像,使用相应的 API 参考。
  6. 告知用户图像保存的位置。

新手引导

仅在没有设置任何密钥时运行此部分。以对话方式引导用户。

  1. 询问他们想使用哪个提供商:
    • OpenAI (gpt-image-2) — 高质量,出色的文字渲染,按图像付费
    • Google Gemini (Nano Banana) — 快速,提供免费额度,非常适合反复迭代
  2. 引导他们获取 API 密钥:
  3. 一旦他们提供了密钥,在当前会话中设置 SKILL_IMAGE_GEN_OPENAI_KEY 或 SKILL_IMAGE_GEN_GEMINI_KEY,并将其持久化到相应的 shell 配置文件中。
  4. 继续生成他们最初请求的图像。

API 参考:OpenAI

方法: POST URL: https://api.openai.com/v1/images/generations

请求头:

  • Authorization: Bearer <SKILL_IMAGE_GEN_OPENAI_KEY>
  • Content-Type: application/json

请求体(JSON):

{
  "model": "gpt-image-2",
  "prompt": "<user prompt>",
  "n": 1,
  "size": "1024x1024",
  "quality": "medium"
}
字段默认值选项
modelgpt-image-2gpt-image-2、gpt-image-1
size1024x10241024x1024、1024x1536、1536x1024、auto
qualitymediumlow、medium、high

响应: data[0].b64_json 包含 base64 编码的图像。将其解码并保存到输出路径。如果改为存在 data[0].url,则从该 URL 下载图像。

API 参考:Google Gemini (Nano Banana)

方法: POST URL: https://generativelanguage.googleapis.com/v1beta/models/<model>:generateContent

请求头:

  • x-goog-api-key: <SKILL_IMAGE_GEN_GEMINI_KEY>
  • Content-Type: application/json

请求体(JSON):

{
  "contents": [{"parts": [{"text": "Generate an image: <user prompt>"}]}],
  "generationConfig": {"responseModalities": ["TEXT", "IMAGE"]}
}
字段默认值选项
model(位于 URL 中)gemini-2.0-flash-expgemini-2.0-flash-exp、gemini-2.5-flash-image

响应: 查找 candidates[0].content.parts[] — 找到带有 inlineData.data(base64 图像)和 inlineData.mimeType 的部分。解码并保存。

错误情况: error 键(API 错误)、promptFeedback.blockReason(安全拦截)、finishReason: "SAFETY"(被过滤)。

Agent 指南

  • 智能选择输出路径 — 保存到项目相关目录(例如 assets/、images/ 或当前目录)。
  • 对于游戏纹理,在提示词中补充“seamless”、“tileable”、“game asset”。
  • 对于批量生成,并行发起多个 API 调用。
  • 如果用户询问切换提供商或有哪些可用选项,请解释两者并帮助他们设置。
  • 保存前务必创建输出目录。
  • 确保用户提示词中的特殊字符在 JSON 请求体中被正确转义。

评论

支持 Markdown