SuperAPI AI 工具集

image-gen

设计与创作

查看项目

更新于 10-15 07:50

技能介绍

用途

image-gen 是一个图像生成技能,作用是把用户的文本描述转换为 AI 生成的图片。它适用于需要封面图、插画或概念图的场景。触发条件包括"生成图片""画一张""AI图""generate image""配图""create picture""draw""visualize""generate an image"等表述。

技能明确不适用于以下情形:需要生成音频内容(应使用 /podcast、/speech)、需要生成视频(应使用 /explainer)、需要编辑已有图片(不支持)、需要从 URL 提取内容(应使用 /content-parser)。

主要能力

  • 基于文本提示词生成 AI 图片。
  • 支持可选参考图,来源可以是本地文件或 URL,CLI 原生处理两者,无需区分。
  • 支持多种分辨率与宽高比。
  • 生成结果保存为本地文件。

使用方式

前置检查

技能会先按照共享文档中的认证流程检查 CLI 是否安装、是否登录;若未安装或未登录,会自动安装并自动登录,不要求用户手动执行命令。随后根据认证模式决定命令前缀:openapi 模式下使用 listenhub openapi image,否则使用 listenhub image。

配置

遵循零提问启动:若配置文件不存在,会静默创建默认配置并继续,不询问任何设置问题。默认配置为:

mkdir -p ".listenhub/image-gen"
echo '{"outputDir":".listenhub","outputMode":"inline"}' > ".listenhub/image-gen/config.json"

若文件已存在,则静默读取并继续。只有在用户明确要求重新配置时,才会进入设置流程,显示当前输出方式(inline / download / both)并询问 outputMode,随后立即保存。

交互流程

  1. 图片描述:自由文本输入,询问用户想生成什么图片。若提示词非常短(少于 10 个词)且用户未要求逐字生成,会主动询问是否需要帮助丰富提示词,否则原样使用。
  2. 模型:询问选择 pro(推荐,gemini-3-pro-image,质量更高)或 flash(gemini-3.1-flash-image,更快更便宜,并解锁极端宽高比 1:4、4:1、1:8、8:1)。
  3. 分辨率与宽高比:同时询问。分辨率有 1K(标准)、2K(推荐,高质量且平衡)、4K(超高质量,生成较慢)。宽高比所有模型可选 16:9(横屏宽屏)、1:1(方形)、9:16(竖屏手机屏幕)、其他(2:3、3:2、3:4、4:3、21:9);选择 flash 模型时还会额外提供 1:4、4:1、1:8、8:1。
  4. 参考图(可选):询问是否需要参考图进行风格引导。若需要,则收集以逗号分隔的路径或 URL。最多 5 张,支持 jpg、png、webp、gif,单文件最大 10MB。每张参考图通过一个 --reference 标志传给 CLI。
  5. 确认与生成:汇总所有选择(提示词、模型、分辨率、宽高比、参考图数量),等待用户明确确认后才运行 CLI 命令。

命令行调用

基础命令形式为:

$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)。命令以后台方式执行,超时为 180000。

结果处理

读取配置中的 OUTPUT_MODE,解析 CLI 的 JSON 输出以提取图片 URL(.imageUrl)。

inline 或 both 模式:下载到临时文件后用 Read 工具读取,图片内联显示在对话中。

JOB_ID=$(date +%s)
listenhub download "$IMAGE_URL" -o /tmp/image-gen-${JOB_ID}.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}/,而不是 ~/Downloads/。

提示词处理

默认直接传递用户提示词,不做修改。仅当提示词很短(几个词)且用户未要求逐字生成时,才询问是否需要加入风格、光照、构图等细节来丰富提示词。以下情况绝不修改:长篇、详细或结构化的提示词(视为有经验的用户);用户表示"完全按这个提示词"。

若用户同意优化,可采用的手法包括:风格补充(如 "cyberpunk" 添加 "neon lights, futuristic, dystopian")、场景补充(时间、光照、天气)、质量补充("highly detailed"、"8K quality"、"cinematic composition")。始终使用英文关键词,因为模型以英文训练。提交前会展示优化后的提示词。

适用场景

  • 用户希望根据文本描述生成 AI 图片。
  • 需要封面图、插画或概念图。
  • 希望通过参考图引导生成风格。

限制

  • 不支持编辑已有图片。
  • 不生成音频(应使用 /podcast、/speech)。
  • 不生成视频(应使用 /explainer)。
  • 不从 URL 提取内容(应使用 /content-parser)。
  • 参考图最多 5 张,单文件最大 10MB,支持格式为 jpg、png、webp、gif。
  • 极端宽高比(1:4、4:1、1:8、8:1)仅在 flash 模型下可用。

组合性

该技能不调用其他技能(直接调用 CLI);它可被平台技能用于封面图(Phase 2)。

示例

示例一:用户说"Generate an image: cyberpunk city at night"。流程为:提示词较短,询问是否丰富,用户拒绝;选择模型 pro;分辨率 2K;宽高比 16:9;无参考图;随后执行 create 命令并解析输出。

示例二:用户说"Generate an image in this style"并提供本地文件与一个 URL。流程为:提示词为 "a serene mountain lake at dawn";模型 pro;分辨率 2K;宽高比 16:9;参考图为 /path/to/style-reference.png 和 https://example.com/photo.jpg;随后执行带两个 --reference 的 create 命令并解析输出。