关于 image-gen
image-gen 是通过 ListenHub CLI 生成 AI 图片的技能。它引导用户设置提示词、模型、分辨率和宽高比,也可添加参考图,生成后将图片保存到本地。
主要功能
- 01根据文本提示生成图片
- 02支持本地或 URL 参考图
- 03选择模型、分辨率和宽高比
- 04生成前确认参数
- 05将图片保存到本地
适用场景
- 01制作封面图片
- 02根据描述生成插图
- 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/
步骤 -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}
然后询问:
- 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 命令前,等待用户明确确认。
工作流
-
构建 CLI 命令:使用所有收集到的参数构造
$CMD_PREFIX create命令。 -
执行:以
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)。 -
解析结果并呈现
从配置中读取
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 工作流:
- 提示词较短 → 提供扩写建议 → 用户拒绝
- 询问模型 → “pro”
- 询问分辨率 → “2K”
- 询问宽高比 → “16:9”
- 无参考图像
$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 工作流:
- 询问提示词 → “黎明时分宁静的山间湖泊”
- 询问模型 → “pro”
- 询问分辨率 → “2K”
- 询问宽高比 → “16:9”
- 参考图像 →
/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)。