内容生图 — AI 图片生成技能
基于 db 中 668 个实战案例,覆盖 16 大类型。流程:理解需求 → 匹配案例 → 生成提示词 → 调用 generate_image 生图 → 输出成品图。每个类型目录下有 index.md(轻量索引)和 cases.md(案例详情),按需读取。
不触发场景
- 用户讨论代码、文档等非图片创作话题
- 用户需要图片编辑/裁剪/滤镜等操作(非生成)
风格类型路由表
根据用户需求关键词,定位到对应的 db/<类型名>/:
| 用户关键词 | 类型目录 | 案例数 |
|---|---|---|
| 界面/App/网页/直播/截图/UI/手机 | db/UI与界面/ |
122 |
| 海报/排版/封面/Campaign/宣传 | db/海报与排版/ |
91 |
| 信息图/图表/可视化/拆解/图解/科普 | db/图表与信息可视化/ |
76 |
| 插画/漫画/二次元/动漫/手绘/水墨/水彩 | db/插画与艺术/ |
78 |
| 摄影/写实/人像/写真/自拍/时尚大片 | db/摄影与写实/ |
55 |
| 电商/商品/详情页/淘宝/产品图/广告 | db/商品与电商/ |
54 |
| 角色/人物/卡牌/动作分解/设定 | db/人物与角色/ |
36 |
| 游戏/截图/Minecraft/动漫Banner/VTuber/贴纸 | db/游戏与二次元/ |
28 |
| Logo/品牌/标志/VI/字体/图标 | db/品牌与标志/ |
21 |
| 恶搞/趣味/名人/穿越/搞笑/社交媒体模拟 | db/趣味与恶搞/ |
20 |
| 建筑/室内/空间/城市/地标 | db/建筑与空间/ |
17 |
| 场景/叙事/电影感/分镜/故事 | db/场景与叙事/ |
14 |
| 古风/历史/朝代/国潮/汉服/新中式 | db/历史与古风题材/ |
13 |
| 文档/杂志/菜单/报纸/课本/药方/笔记 | db/文档与出版物/ |
9 |
| 诗词/意境/古诗/国风艺术/水墨意境 | db/诗词与国风创意/ |
6 |
兜底规则:以上关键词均未命中时,进入 db/其他应用场景/(28 个案例)。兜底匹配关键词:创意合成/跨界/混搭/概念设计/实验艺术。若兜底也无相关案例,列出全部类型供用户选择。
执行流程
Step 1: 判断用户意图
首先判断用户是否提供了参考图(上传图片、贴图片链接、或引用之前对话中的图片)。
- 用户提供了参考图 → 跳到 Step 1.5,然后 Step 5(以用户参考图为准,优先级最高)
- 需求明确(如"帮我画一个运动海报")→ 跳到 Step 1.5,然后 Step 3
- 需求模糊(如"给我一个好看的图片")→ 跳到 Step 2
- 搜索案例(如"有没有信息图的案例")→ 跳到 Step 4
Step 1.5: 判断是否需要确认用途类型
并非所有生图都需要确认用途。只有涉及排版/文字/特定尺寸的场景才需要确认。
需要确认用途的场景(关键词触发)
用户输入包含以下关键词时,自动设定用途类型,无需 ask_human 确认:
- "海报"/"宣传"/"促销"/"活动"/"广告" → 自动设定为 营销海报
- "封面"/"头图"/"banner"/"首图"/"缩略图" → 自动设定为 封面图
- "配图"/"文章"/"公众号"/"博客" → 自动设定为 文章配图
- "轮播"/"swiper"/"多图"/"系列图"/"滑动" → 自动设定为 轮播图
仅当用户输入同时命中多个用途(如"帮我做个活动封面"同时命中营销海报和封面图)或完全提取不到用途类型时,才用 ask_human 询问(单选:营销海报/封面图/文章配图/轮播图)。
不需要确认用途的场景
用户说的是以下类型时,跳过用途确认,直接进入 Step 3:
- 头像、壁纸、屏保、背景图
- 插画、漫画、艺术画、概念图
- 产品图、商品图
- 摄影、写真、人像
- 建筑效果图、室内设计
- 角色设定、卡牌、人物立绘
- 以及其他不涉及排版文字的纯画面需求
跳过用途确认时,size 参数根据画面内容自动选择(竖版 1104*1472、横版 1696*960、方图 1280*1280)。
Step 2: 模糊需求启发
使用 ask_human 收集画面主体和风格偏好,不再重复询问用途(Step 1.5 已判断过是否需要用途,走到 Step 2 说明不需要):
- 画面主体(文本)
- 风格偏好(单选:写实/电影感/极简/插画/国风/自动推荐)
风格类型不询问用户,由系统根据用户描述自动匹配风格类型路由表。收集后转入 Step 3。
Step 3: 二次创作生成
- 根据用户需求查路由表,定位类型目录,读取索引:
read_file(file_path="db/<类型名>/index.md", snippet="浏览案例索引")
- 从索引中找到 2-3 个最相关的案例,根据行号范围读取详情:
read_file(file_path="db/<类型名>/cases.md", start_line=L起始, end_line=L结束, snippet="读取案例详情")
- 如果案例有参考图(cases.md 中
行存在),可用understand_media分析视觉风格:
understand_media(media_path="db/<类型名>/images/caseXX.jpg", question="分析这张图的构图、配色、风格特征", snippet="分析参考图风格")
- 如果 Step 1.5 确认了用途类型,读取用途约束详情并按约束调整提示词:
read_file(file_path="references/size-and-use-constraints.md", snippet="读取用途约束和尺寸参考")
结合用户需求 + 用途约束(如有)+ 参考案例 + 图片分析结果,二次创作新的提示词
按「二次创作输出模板」展示提示词(完整示例见
references/output-examples.md),然后立即调用 generate_image 生图:
generate_image(
prompt="<上一步生成的完整提示词>",
model="gpt-image-2",
size="<根据用途类型和平台尺寸选择>"
)
prompt 优先级覆盖:
generate_image的 raw passthrough 规则(prompt = 用户原文)在本技能中不适用。本技能的核心价值就是二次创作提示词——prompt 必须使用技能生成的完整提示词,不要截断或二次改写,不要传入用户原始输入。
Step 4: 搜索案例展示
- 查路由表定位类型目录
- 读取索引,浏览案例列表:
read_file(file_path="db/<类型名>/index.md", snippet="浏览案例索引")
- 精选 3-5 个相关案例,根据行号范围读取详情:
read_file(file_path="db/<类型名>/cases.md", start_line=L起始, end_line=L结束, snippet="读取案例详情")
- 如有参考图的案例,用
understand_media描述图片效果:
understand_media(media_path="db/<类型名>/images/caseXX.jpg", question="描述这张图的整体视觉效果和风格", snippet="描述参考图效果")
- 按「搜索案例输出模板」展示(完整示例见
references/output-examples.md)
Step 5: 用户提供参考图(最高优先级)
当用户提供了参考图(上传、贴链接、或指定图片),以用户的参考图为准,db 案例仅作为提示词写法的辅助参考。
- 深度分析用户提供的参考图:
understand_media(media_path="<用户提供的图片路径或URL>", question="详细分析这张图的:1.图片类型(海报/UI/摄影/插画等)2.画面主体 3.构图方式 4.配色方案 5.风格特征 6.光影效果 7.文字排版(如有)8.特殊技法或质感", snippet="深度分析用户参考图")
根据分析结果查路由表,匹配最接近的类型
读取该类型的索引,找 2-3 个写法风格最接近的案例,按行号读取:
read_file(file_path="db/<类型名>/index.md", snippet="浏览案例索引")
read_file(file_path="db/<类型名>/cases.md", start_line=L起始, end_line=L结束, snippet="参考提示词写法")
以用户参考图的视觉分析结果为核心,借鉴 db 案例的提示词结构和表达技巧,生成提示词。
展示提示词(按「二次创作输出模板」,参考图来源标注为用户提供),然后直接调用图生图:
generate_image(
prompt="<生成的提示词>",
model="gpt-image-2",
image_urls=["<用户参考图路径或URL>"],
size="1280*1472",
artifact_name="图生图效果.png",
snippet="参考图+提示词图生图"
)
prompt 优先级覆盖:同 Step 3。
generate_image的 prompt 必须使用技能基于参考图分析 + 案例写法技巧生成的提示词,不要传入用户原始输入。raw passthrough 规则在本技能中不适用。
图生图 prompt 策略
根据用户意图选择 prompt 写法:
| 用户意图 | prompt 策略 | 示例 |
|---|---|---|
| 严格复刻参考图("帮我生成一张类似的") | prompt 完整描述画面所有要素:主体、构图、配色、风格、光影、文字排版 | "一张赛博朋克风格的城市夜景,前景为河面倒影,中景是霓虹灯摩天楼天际线..." |
| 在参考图基础上修改("换成XX"/"改成XX") | prompt 只描述变化部分,不重复参考图已有内容 | "将画面中的城市替换为上海,保留赛博朋克风格,前景改为黄浦江..." |
| 无额外指令(只贴了参考图) | 默认按严格复刻处理,写完整 prompt | 同第一行 |
size 根据用途和平台选择(详见 references/size-and-use-constraints.md),未指定时按方向选择(竖版 1104*1472、横版 1696*960、方图 1280*1280)。
若用户后续要求调整,基于反馈修改提示词后重新生图。
输出模板
输出格式的完整示例见 references/output-examples.md。
搜索案例输出
展示 3-5 个案例,每个包含:标题、来源、参考图描述(understand_media,仅展示有图的案例)、提示词、亮点分析。末尾引导用户选择案例二次创作。
二次创作输出
包含:用途、类型、主题、比例、完整提示词(text 代码块)、参考案例编号(db/<类型名>/cases.md L行号)、创作说明(主体/风格/用途约束)。末尾建议出图验证。
默认语言
- 提示词输出默认中文:二次创作生成的提示词使用中文撰写(除非用户明确要求英文)
- 图片内文字默认中文:提示词中涉及的画面文字、标题、标语等一律使用中文(除非用户指定其他语言)
- 非中文案例处理:db 中部分案例的 prompt 为英文或日文,参考这类案例时仅借鉴其结构、技巧和创意思路,输出的 prompt 必须为中文,不要照搬原文语言
- 非纯文本案例处理:若案例 prompt 中残留 JSON 结构或模板语法,提取其中的描述性内容作为参考,不要在输出 prompt 中照搬 JSON 结构
质量自检
生成提示词后确认:主体具体、风格锁定、参数完整(比例/构图)、文字可读、无歧义、语言为中文。如有用途类型,还需确认比例/构图/文字密度符合该用途的典型特征。同时对照 references/pitfalls.md 中的已知踩坑点,主动规避文字过多、手指异常、复杂排版等常见问题。
异常处理
- 路由表无匹配:进入
db/其他应用场景/兜底;兜底也无相关案例时,列出 13 个类型供用户选择 - 案例无参考图:跳过
understand_media分析,仅使用案例 prompt 文本作为写作参考 - 图片无法识别:提示用户描述效果或提供更清晰参考图
- understand_media 失败:降级为纯文本案例创作
参考文件
| 文件 | 用途 |
|---|---|
references/size-and-use-constraints.md |
用途类型约束详情 + 平台尺寸参考表 |
references/output-examples.md |
完整的输入→输出示例(文生图、图生图、搜索案例) |
references/pitfalls.md |
常见踩坑点与规避策略(文字渲染、手指、排版等) |
db/UI与界面/ (index.md + cases.md + images/) |
122 个案例,55 张参考图 |
db/海报与排版/ |
91 个案例,55 张参考图 |
db/图表与信息可视化/ |
76 个案例,53 张参考图 |
db/插画与艺术/ |
78 个案例,51 张参考图 |
db/摄影与写实/ |
55 个案例,36 张参考图 |
db/商品与电商/ |
54 个案例,14 张参考图 |
db/人物与角色/ |
36 个案例,9 张参考图 |
db/游戏与二次元/ |
28 个案例,5 张参考图 |
db/品牌与标志/ |
21 个案例,10 张参考图 |
db/趣味与恶搞/ |
20 个案例,9 张参考图 |
db/建筑与空间/ |
17 个案例,9 张参考图 |
db/场景与叙事/ |
14 个案例,8 张参考图 |
db/历史与古风题材/ |
13 个案例,10 张参考图 |
db/文档与出版物/ |
9 个案例,9 张参考图 |
db/诗词与国风创意/ |
6 个案例,0 张参考图 |
db/其他应用场景/ |
28 个案例,3 张参考图 |