mcpField

happy-image-gen

github.com/iamzhihuix创意与媒体155 次安装
代码仓库

关于 happy-image-gen

happy-image-gen 是一项通过单个 CLI 调用 8 个提供商来生成和编辑静态图片的技能,支持文本提示词与参考图,并可设置提供商、模型、宽高比和质量。

主要功能

  1. 01通过 8 个提供商生成图片
  2. 02文生图与图生图编辑
  3. 03选择提供商和模型
  4. 04设置宽高比与质量
  5. 05输入参考图片

适用场景

  1. 01根据文本提示词生成图片
  2. 02使用参考图改变图片风格
  3. 03为指定模型选择提供商
  4. 04将生成图片保存到指定路径

安装

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

$npx skills add https://github.com/iamzhihuix/happy-claude-skills --skill happy-image-gen

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

包含的文件

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

package.json
assets/
EXTEND.template.md
references/
aspect_ratio_map.md
error_codes.md
providers.md
references/config/
extend-schema.md
first-time-setup.md
scripts/
main.ts
types.ts
scripts/providers/
ark.ts
bailian.ts
fal.ts
google.ts
openai.ts
replicate.ts
siliconflow.ts
stability.ts
scripts/utils/
aspect_ratio.ts
output.ts

详细介绍

happy-image-gen

通过一个 CLI 使用 8 个提供商生成静态图像:bun scripts/main.ts ...。同一个 CLI 可处理文生图和图生图(基于参考图)编辑。

快速使用

bun scripts/main.ts --prompt "A calico cat on green grass, cinematic light" --ar 16:9 --image ./out.png

何时调用此技能

在用户执行以下操作时调用此技能:

  • 要求根据文本生成、创建、绘制、渲染、制作插画或合成图像。
  • 要求对其提供路径的现有图像进行重新风格化或转换。
  • 提及任何图像生成模型(DALL·E、gpt-image、Flux、SDXL、Gemini Image、Imagen、Seedream、Kolors、Wanx、Stable Diffusion),但未指定即梦/Dreamina/Jimeng。

当用户明确提及即梦、Jimeng 或 dreamina CLI 时,改用 happy-dreamina。

步骤 0:预检(阻塞 — 生成前运行)

运行以下检查:

  1. 定位 EXTEND.md 配置。 按顺序检查:

    • ./.happy-skills/happy-image-gen/EXTEND.md(项目)
    • $XDG_CONFIG_HOME/happy-skills/happy-image-gen/EXTEND.md
    • ~/.happy-skills/happy-image-gen/EXTEND.md(用户)

    如果都不存在,运行 bun scripts/main.ts --setup,并按照 references/config/first-time-setup.md 创建配置文件。在用户至少配置一个提供商之前,不要继续生成。

  2. 验证提供商是否可用。 确认已设置环境变量(例如 OPENAI_API_KEY),或 EXTEND.md 中引用的 api_key_env / api_key_source 可正常解析。如果都无法解析,返回设置步骤。

  3. 验证 Bun 是否可用。 运行 command -v bun。如果缺少 Bun,则改用 npx -y bun scripts/main.ts ...。

步骤 1:选择提供商

按以下优先级选择:

  1. 用户明确传入的 --provider <id>。
  2. EXTEND.md 中的 default_provider。
  3. 环境中存在 API 密钥的第一个提供商。自动检测时的优先级:openai → google → replicate → stability → fal → ark → bailian → siliconflow。

各提供商所需的环境变量、默认模型和优势(例如,图中文字优先选用 google,Flux 系列写实图像优先选用 replicate,中文文本准确度优先选用 ark),请参阅 references/providers.md。

步骤 2:填写参数

  • --prompt:用户的完整请求,去除首尾空白。始终用双引号括起来。
  • --ar:宽高比 — 1:1 / 16:9 / 9:16 / 3:4 / 4:3。各提供商对该参数的解释方式,请参阅 references/aspect_ratio_map.md。
  • --quality:draft(最快、最便宜)、hd(默认)或 ultra(4K 级,速度较慢)。
  • --ref <path>:多个参考图可重复指定。并非所有提供商都支持此参数 — 请参阅 providers.md。
  • --model:覆盖所选提供商的默认模型。除非用户要求使用特定模型,否则省略。
  • --image <path>:必填 — 输出文件路径。使用描述性名称(例如 ./out/hero-landscape.png)。

步骤 3:运行

bun scripts/main.ts \
  --prompt "..." \
  --image ./out.png \
  --provider openai \
  --ar 1:1 \
  --quality hd

成功后,CLI 会输出解析后的绝对路径和字节数。在 --json 模式下,会输出:

{ "success": true, "provider": "openai", "model": "gpt-image-1", "image": "/abs/path.png", "size_bytes": 1416341, "format": "png" }

将路径告知用户。

步骤 4:处理错误

  • config: No provider selected ... — 环境中没有 API 密钥,且不存在 EXTEND.md。返回步骤 0。
  • [openai] OpenAI images API 401 ... — 密钥无效或已过期。请用户刷新密钥。
  • [openai] ... 400 ... content_policy_violation — 提示词被拦截。向用户展示原始错误,不要转述。
  • 超时 / 网络错误 — 重试一次。如果仍然失败,显示原始错误消息和 provider,以便用户知道需要检查什么。

各提供商的错误表,请参阅 references/error_codes.md。

参考资料

按需阅读:

  • references/providers.md — 全部 8 个提供商、所需环境变量、默认模型和优势。
  • references/aspect_ratio_map.md — 各提供商对 --ar 的解释方式。
  • references/error_codes.md — 各提供商的常见错误和解决方法。
  • references/config/first-time-setup.md — --setup 分步指南。
  • references/config/extend-schema.md — EXTEND.md 架构参考。

EXTEND.md 模板:assets/EXTEND.template.md。

评论

支持 Markdown