mcpField
I
image-gen

image-gen

github.com/marswaveai创意与媒体811.2k 次安装5 周前更新
代码仓库

关于 image-gen

image-gen 是通过 ListenHub CLI 生成 AI 图片的技能。它引导用户设置提示词、模型、分辨率和宽高比,也可添加参考图,生成后将图片保存到本地。

主要功能

  1. 01根据文本提示生成图片
  2. 02支持本地或 URL 参考图
  3. 03选择模型、分辨率和宽高比
  4. 04生成前确认参数
  5. 05将图片保存到本地

适用场景

  1. 01制作封面图片
  2. 02根据描述生成插图
  3. 03结合风格参考创作概念艺术

安装

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

$npx skills add https://github.com/marswaveai/skills --skill image-gen

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

附带文件references/prompt-guide.md

详细介绍

使用场景

  • 用户想根据文字描述生成 AI 图像
  • 用户说“生成图像”“画一张”“创建图片”或“配图”
  • 用户说“生成图片”“画一张”“AI 图”
  • 用户需要封面图片、插图或概念艺术

不适用场景

  • 用户想创建音频内容(使用 /podcast、/speech)
  • 用户想创建视频(使用 /explainer)
  • 用户想编辑现有图像(不支持)
  • 用户想从 URL 提取内容(使用 /content-parser)

用途

使用 ListenHub CLI 生成 AI 图像。支持文本提示词和可选的参考图像(本地文件或 URL)、多种分辨率和宽高比。图像将保存为本地文件。

强制约束

  • 始终按照 shared/cli-authentication.md 检查 CLI 身份验证
  • 遵循 shared/cli-patterns.md 中的命令执行和错误处理规范
  • 进行任何交互前,始终按照 shared/config-pattern.md 读取配置
  • 输出保存到 .listenhub/image-gen/YYYY-MM-DD-{jobId}/,绝不能保存到 ~/Downloads/
每个多选步骤都必须使用 AskUserQuestion 工具,**不得**以纯文本形式列出选项。一次只提一个问题。等待用户回答后再进行下一步。收集完所有参数后,总结选项并请用户确认。用户明确确认前,**不得**调用图像生成命令。

步骤 -1:CLI 身份验证检查

按照 shared/cli-authentication.md § 身份验证检查执行。如果未安装 CLI 或尚未登录,则自动安装并自动登录,绝不能要求用户手动运行命令。

然后按照 shared/cli-authentication.md § 身份验证模式检测确定 AUTH_MODE 并设置:

if [ "$AUTH_MODE" = "openapi" ]; then
  CMD_PREFIX="listenhub openapi image"
else
  CMD_PREFIX="listenhub image"
fi

后续所有 CLI 调用均使用 $CMD_PREFIX,而不是硬编码的 listenhub image。

步骤 0:配置设置

按照 shared/config-pattern.md 步骤 0(零问题启动)执行。

如果文件不存在——静默使用默认值创建文件并继续:

mkdir -p ".listenhub/image-gen"
echo '{"outputDir":".listenhub","outputMode":"inline"}' > ".listenhub/image-gen/config.json"
CONFIG_PATH=".listenhub/image-gen/config.json"
CONFIG=$(cat "$CONFIG_PATH")

不要询问任何设置问题。 直接进入交互流程。

如果文件存在——静默读取配置并继续:

CONFIG_PATH=".listenhub/image-gen/config.json"
[ ! -f "$CONFIG_PATH" ] && CONFIG_PATH="$HOME/.listenhub/image-gen/config.json"
CONFIG=$(cat "$CONFIG_PATH")
设置流程(仅限用户主动要求重新配置)

仅当用户明确要求重新配置时才运行。显示当前设置:

当前配置 (image-gen):
  输出方式:{inline / download / both}

然后询问:

  1. outputMode:按照 shared/output-mode.md § 设置流程问题执行。

立即保存:

NEW_CONFIG=$(echo "$CONFIG" | jq --arg m "$OUTPUT_MODE" '. + {"outputMode": $m}')
echo "$NEW_CONFIG" > "$CONFIG_PATH"
CONFIG=$(cat "$CONFIG_PATH")

交互流程

步骤 1:图像描述

让用户自由输入文本。询问用户:

描述你想生成的图像。

如果提示词非常简短(少于 10 个词),且用户没有要求逐字生成,则提出协助扩充提示词。否则,按原样使用。

步骤 2:模型

询问:

Question: "Which model?"
Options:
  - "pro (recommended)" — gemini-3-pro-image, higher quality
  - "flash" — gemini-3.1-flash-image, faster and cheaper, unlocks extreme aspect ratios (1:4, 4:1, 1:8, 8:1)
步骤 3:分辨率和宽高比

一起询问(两个独立参数):

Question: "What resolution?"
Options:
  - "1K" — Standard quality
  - "2K (recommended)" — High quality, good balance
  - "4K" — Ultra high quality, slower generation
Question: "What aspect ratio?"
Options (all models):
  - "16:9" — Landscape, widescreen
  - "1:1" — Square
  - "9:16" — Portrait, phone screen
  - "Other" — 2:3, 3:2, 3:4, 4:3, 21:9

如果选择了 flash 模型,还需提供:1:4(窄幅纵向)、4:1(宽幅横向)、1:8(超窄纵向)、8:1(全景)

步骤 4:参考图像(可选)
Question: "Any reference images for style guidance?"
Options:
  - "Yes" — Provide file paths or URLs
  - "No references" — Generate from prompt only

如果用户选择是:收集参考图像的路径或 URL(逗号分隔)。CLI 原生支持本地文件和 URL,无需区分两者。

  • 最多 5 张参考图像
  • 支持的格式:jpg、png、webp、gif
  • 每个文件最大 10MB

每张参考图像都会作为 --reference 标志传递给 CLI。

步骤 5:确认并生成

总结所有选项:

Ready to generate image:

  Prompt: {prompt text}
  Model: {pro / flash}
  Resolution: {1K / 2K / 4K}
  Aspect ratio: {ratio}
  References: {yes — N image(s) / no}

  Proceed?

运行 CLI 命令前,等待用户明确确认。

工作流

  1. 构建 CLI 命令:使用所有收集到的参数构造 $CMD_PREFIX create 命令。

  2. 执行:以 run_in_background: true 和 timeout: 180000 运行命令:

    $CMD_PREFIX create \
      --prompt "{description}" \
      --model "{model}" \
      --lang "{lang}" \
      --aspect-ratio {16:9|9:16|1:1} \
      --size {1K|2K|4K} \
      --json
    

    如果提供了参考图像,为每张图像添加 --reference:

    $CMD_PREFIX create \
      --prompt "{description}" \
      --model "{model}" \
      --lang "{lang}" \
      --aspect-ratio 16:9 \
      --size 2K \
      --reference ./sketch.png \
      --reference ./photo.jpg \
      --json
    

    --lang 标志为提示词提供语言提示。根据用户提示词的语言进行检测(例如,中文提示词 → zh,英文提示词 → en)。

  3. 解析结果并呈现

    从配置中读取 OUTPUT_MODE。按照 shared/output-mode.md 中的行为执行。

    解析 CLI JSON 输出,提取图像 URL:

    IMAGE_URL=$(echo "$RESULT" | jq -r '.imageUrl')
    

    inline 或 both:下载到临时文件,然后使用 Read 工具。

    JOB_ID=$(date +%s)
    listenhub download "$IMAGE_URL" -o /tmp/image-gen-${JOB_ID}.jpg
    

    然后使用 Read 工具读取 /tmp/image-gen-{jobId}.jpg。图像会以内嵌方式显示在对话中。

    呈现:

    图片已生成!
    

    download 或 both:保存到制品目录。

    JOB_ID=$(date +%s)
    DATE=$(date +%Y-%m-%d)
    JOB_DIR=".listenhub/image-gen/${DATE}-${JOB_ID}"
    mkdir -p "$JOB_DIR"
    listenhub download "$IMAGE_URL" -o "${JOB_DIR}/${JOB_ID}.jpg"
    

    呈现:

    图片已生成!
    
    已保存到 .listenhub/image-gen/{YYYY-MM-DD}-{jobId}/:
      {jobId}.jpg
    

提示词处理

默认:直接传递用户的提示词,不做修改。

何时提供优化建议:

  • 提示词非常简短(几个词),且用户没有要求逐字使用
  • 询问:“需要我帮你添加风格、灯光或构图细节来丰富提示词吗?”

绝不修改的情况:

  • 提示词较长、详细或结构化——应视用户为有经验的使用者
  • 用户说“请严格使用此提示词”

优化技巧(如果用户同意):

  • 风格:“赛博朋克” → 添加“霓虹灯、未来主义、反乌托邦”
  • 场景:一天中的时间、灯光、天气
  • 质量:“细节丰富”“8K 画质”“电影感构图”
  • 始终使用英文关键词(模型使用英文训练)
  • 提交前展示优化后的提示词

API 参考

  • CLI 身份验证:shared/cli-authentication.md
  • CLI 执行模式:shared/cli-patterns.md
  • 配置模式:shared/config-pattern.md
  • 输出模式:shared/output-mode.md

组合能力

  • 调用:无(直接调用 CLI)
  • 由……调用:用于封面图像的平台技能(阶段 2)

示例

用户:“生成一张图像:夜晚的赛博朋克城市”

Agent 工作流:

  1. 提示词较短 → 提供扩写建议 → 用户拒绝
  2. 询问模型 → “pro”
  3. 询问分辨率 → “2K”
  4. 询问宽高比 → “16:9”
  5. 无参考图像
$CMD_PREFIX create \
  --prompt "cyberpunk city at night" \
  --model "gemini-3-pro-image" \
  --lang en \
  --aspect-ratio 16:9 \
  --size 2K \
  --json

根据 outputMode 解析 CLI JSON 输出(参见 shared/output-mode.md)。

示例 2 — 使用参考图像

用户:“按这种风格生成一张图像”(提供本地文件和一个 URL)

Agent 工作流:

  1. 询问提示词 → “黎明时分宁静的山间湖泊”
  2. 询问模型 → “pro”
  3. 询问分辨率 → “2K”
  4. 询问宽高比 → “16:9”
  5. 参考图像 → /path/to/style-reference.png、https://example.com/photo.jpg
$CMD_PREFIX create \
  --prompt "a serene mountain lake at dawn" \
  --model "gemini-3-pro-image" \
  --lang en \
  --aspect-ratio 16:9 \
  --size 2K \
  --reference /path/to/style-reference.png \
  --reference https://example.com/photo.jpg \
  --json

根据 outputMode 解析 CLI JSON 输出(参见 shared/output-mode.md)。

评论

支持 Markdown