11 KiB
| name | description |
|---|---|
| imagegen | 用豆包 Seedream 5.0 生图(`seedream` tool)。**任何生图任务调 tool 前必须 load 本 skill**。触发词:画 / 绘制 / 出图 / 来张 / 生成图 / 做张 + 图 / 图片 / 图像 / 配图 / 封面 / 概念图 / 效果图 / 示意图 / 场景图 / 艺术图 / 写实图 / 海报 / 插画 / 插图 / 封皮 / 头图。核心是把用户模糊一句话**问清楚再画**,不要上来就烧 ¥0.22。 |
Imagegen
把"我想要张图"变成一张能用的图。先诊断模糊度 → 一次性给推断 + 待确认项 → 用户拍板 → 装配 prompt → 调 seedream。
每次 seedream 调用 ¥0.22(search=true 加 ¥0.05),3-5 秒出图。模糊就问,不要赌。
何时用本 skill
- 用户要配图 / 封面 / 概念图 / 效果图 / 示意图 / 海报 / 插画(明确说"画一张" / "出张图" / "来个封面")
- 用户拿到 mermaid 结构图后说"太干了想要有质感的版本" / "做个有视觉感的"
- ppt / proposal skill 流程中,要往 deck / docx 里塞概念图 / 引子图
何时不走本 skill(直接走通用工具)
- 用户没主动要图(别为"丰富回复"装饰性生图 —— 这是 system prompt 红线)
- 用户给了具体参考图说"按这个改" —— Seedream 5.0 是文生图不接图像输入,告诉用户走描述
- 已有合适素材(用户上传 / 之前生成过)—— 直接
read/ 引用,别重新生成
关键岔路:mermaid vs seedream
默认倾向 mermaid(run_python 或 proposal skill 的 render_diagrams.py 都能渲):
- 节点-箭头-结构关系明确(技术路线 / 流程 / 组织架构 / 时序 / 甘特)
- 优势:矢量、文字清晰、可编辑、零成本
反向选 seedream(满足任一):
- 用户明确说"画一张图" / "做张示意图" / "出个图"(而非"画个流程图" / "做个架构图")
- 需要视觉冲击 / 美感:汇报封面 / ppt 引子页 / 营销 / 宣传配图
- 概念是抽象 / 隐喻的("AI 与材料融合"、"创新驱动"、"绿色低碳"这类只能靠意象表达)
- 用户看过 mermaid 版本后说"太干了" / "想要有质感的"
模糊时主动问一句:
这张图你想要 结构清晰的流程图(mermaid 矢量,零成本),还是 有视觉感的示意图(seedream 生成,¥0.22)?
不要默默替用户决定。
诊断模糊度 — 六维清单
用户原话能不能撑起一个 prompt?在脑里过一遍这 6 维(其中"比例"决定 size 参数,其余 5 维进 prompt 文本):
| 维度 | 缺失信号 |
|---|---|
| 主体 What | "画个混凝土" → 混凝土的什么?试块 / 楼板 / 微观结构 / 配料? |
| 场景 Where | 工地 / 实验室 / 实验台面 / 虚拟空间? |
| 风格 Style | 写实摄影 / 工程效果图 / 扁平插画 / 水彩 / 工业风 / 学术示意? |
| 构图 Composition | 特写 / 中景 / 广角俯视 / 第一视角 / 截面图? |
| 光线/氛围 Mood | 自然光 / 工业灯 / 暖色 / 冷色 / 神秘氛围 / 高对比? |
| 比例 / 尺寸 Aspect | 用途决定比例:ppt 单页配图 → 16:9 横版;手机海报 / 小红书 / 公众号头图 → 9:16 或 3:4 竖版;社交头像 / Logo / 通用 → 1:1 正方形;Banner / 横幅 → 21:9 超宽。比例错的图后期裁切很难还原构图。 |
评估规则:
- 6 维填齐 / 缺 ≤1 → 可以直接装配 prompt 调用
- 缺 2 维及以上 → 先问再画(见下节)
- 用户直接给了完整中文长描述 + 明示用途(自带主体+场景+风格 + "ppt 用" / "海报" 等)→ 视为已对齐,跳过追问
- 比例特别说:用户说"配图"但没说哪种文档 → 默认 1:1 是错的,主动问一句"放在 ppt(16:9)/ 海报(9:16)/ 公众号头图(2.35:1)/ 其它?" —— 比例错的图基本不能复用
一次性给推断 + 待确认项(不要一个个问)
模糊时 不要轮流追问 "什么主体?" / "什么风格?" —— 用户会烦。一次把你的推断摆出来,让用户改或确认:
你说"画个混凝土的图",我打算这样画:
- 主体:施工中正在浇筑的现代混凝土楼板
- 场景:工地俯视视角,远处有塔吊
- 风格:写实工程摄影,质感细腻
- 构图:广角俯视
- 光线:正午阳光,清晰阴影
- 比例 / 尺寸:16:9 横版(我猜要放 ppt 用,如果是海报告诉我换 9:16)
这样画可以吗?或者告诉我:你想突出什么?(微观结构 / 浇筑工艺 / 成品质感 / 新旧对比 ...)
推断时优先看上下文:
- 做申报书"水泥水化"章节 → 学术示意图 + 16:9 横版(配 docx 正文)
- 做 ppt 封面 → 有视觉冲击的概念图 + 16:9
- 做营销海报 → 写实摄影感 + 9:16 竖版
- 做公众号头图 → 2.35:1 横长条
- 用户没明示用途 → 必须问一句,默认 1:1 大概率不对
装配 prompt — 用户确认后
用户拍板后,把前 5 维拼成自然中文 prompt 文本,第 6 维(比例)走 size 参数:
施工中正在浇筑的现代混凝土楼板,工地俯视视角,远处有塔吊,
写实工程摄影,质感细腻,广角俯视,正午阳光,清晰阴影
要点:
- 中英文都行,豆包模型自己理解;用中文更省脑(用户也是中文给的)
- 不要堆"高质量 4K 8K masterpiece" 这类废话(模型不靠这些发挥)
- 不要写否定提示词("not blurry"、"no watermark")—— Seedream 不支持 negative prompt,这些会被当正向词吃进去反而坏事
- 主体放最前,风格 / 光线放后
参数取舍
size(决定比例和分辨率)
比例由用户用途决定(见诊断清单第 6 维),分辨率由场景决定。先按比例选,再按分辨率选:
| 用途 | 比例 | 推荐 size(参考值) |
|---|---|---|
| ppt 单页配图 / 横向 banner / docx 横图 | 16:9 | 1920x1080 或 2560x1440 |
| 公众号头图 / 横长条 banner | 2.35:1(近似) | 2560x1088 |
| 社交头像 / Logo / 通用方图 | 1:1 | 2048x2048(yaml 默认)/ 1024x1024 缩略 / 3072x3072 高清 |
| 手机海报 / 小红书 / 朋友圈竖图 | 9:16 | 1080x1920 或 1440x2560 |
| 书籍封面 / 杂志竖版 | 3:4 或 2:3 | 1536x2048 / 1365x2048 |
注意事项:
- 上表非方形 size 是按比例算出的常见值参考,不保证豆包 Seedream 5.0 全都原生支持 —— 首次用非方形 size 时,如果模型返回错误(
[Error] seedream API: ...),先回退到 yaml 默认2048x2048验证 API 通路,再让用户确认是否豆包侧不支持该比例;不要在错误处理里盲目重试 width × height控制在 1M-9M 像素(1024²到3072²)区间最稳;size字符串严格<W>x<H>格式(小写 x,无空格)- 默认
2048x2048来自config/media/doubao.yaml,不传 size 参数就走默认正方形 —— 用户明示横/竖时务必显式传
watermark / search
| 参数 | 默认 | 何时改 |
|---|---|---|
watermark |
false |
默认无水印(申报书 / ppt / 客户交付都不该带);仅当用户明确说"加水印" 才传 true |
search |
false |
需要时事元素 / 特定品牌识别 / 真实人物(如"画一下特斯拉 Cybertruck") → true,加 ¥0.05;纯概念 / 抽象 / 通用对象 → false,模型本身知识足够 |
调用范式
seedream 是 tool 不是 skill 函数,直接调,不要 run_python 包一层:
seedream(
prompt="施工中正在浇筑的现代混凝土楼板,工地俯视视角,远处塔吊,写实工程摄影,质感细腻,广角俯视,正午阳光",
size="2048x2048", # 可省,走默认
watermark=false, # 可省
search=false, # 可省
)
返回串首行是 [seedream] model=... · size=... · cost=¥... · elapsed=...s —— 把这行原样保留给用户(前端 SPA 会 parse 挂徽章)。第二行 saved: <相对路径> 是产物路径,告诉用户。
产物自动落 <task_dir>/figures/<时间戳>-<rand>.png + 同名 .meta.json(prompt / 参数 / 成本 / response_id)。
失败 / 不满意后怎么办
不要原 prompt 重发!那是浪费 ¥0.22。失败模式 / 解药:
| 现象 | 原因 | 解药 |
|---|---|---|
| 主体方向偏(画了砂浆但想要混凝土) | prompt 主体词不够具体 | 增加修饰:"现代浇筑成型的钢筋混凝土楼板" |
| 风格不对(给了卡通但想要写实) | 缺风格词或风格词冲突 | 把风格词放到 prompt 前 1/3 位置:"写实工程摄影,xxx" |
| 光线 / 氛围不对 | 没指定光源 | 加 "正午阳光" / "工业冷光" / "暖色调" |
| 画面太空 / 太挤 | 没指定构图 | 加 "广角俯视" / "中景特写" / "黄金分割构图" |
| 比例错了(出方图想要 16:9 / 出横图想要竖图) | 没传 size 或传错了 |
改 size 参数,prompt 文本基本不动;ppt 用 16:9 1920x1080,竖海报用 9:16 1080x1920 |
[Error] seedream API 报错(传非方形 size 时) |
豆包侧可能不支持该具体比例值 | 回退 size=2048x2048 验证 API 通,再让用户协商可接受的支持比例 / 后期裁切 |
| 出现奇怪文字 | Seedream 中文文字渲染不稳 | prompt 里不要要求画文字 / 标签 —— 文字后期 ppt 里加 |
先口头跟用户对齐改哪一维,再发新调用 —— 不要"再画一张试试"连续烧钱。
产物处理
生图完成后:
- 把
saved: figures/xxx.png路径告诉用户 - 如果是做 ppt / docx 配图,直接在后续
add_picture/引用,不需要再问 - 用户说"换张" → 走上节的"对齐改哪一维"流程,不要默认重发
- 用户说"再来几张备选" → 先确认:"备选 N 张会花 ¥{0.22 * N},确认?"(防止隐形烧钱)
反模式
- ❌ 用户没主动要图就装饰性生成(system prompt 红线)
- ❌ 用户说"画个 XX" 直接拿这 4 个字当 prompt 调用 —— 六维清单至少先问 1 轮
- ❌ 一个个问"什么主体?""什么风格?" —— 一次性摆推断 + 让用户改
- ❌ 不问比例就默认走 yaml 的 1:1 正方形 —— ppt 配图用方图不能直接用,得后期裁切而且构图会失衡;用户没明示用途时必须问一句"放 ppt / 海报 / 公众号 / 其它?"
- ❌ 同一目的不满意连续重发 2+ 次 —— 先校准 prompt 再调
- ❌ prompt 里堆 "high quality, 8k, masterpiece, ultra detailed" —— 没用,Seedream 不靠这些
- ❌ prompt 里写否定词 "no text, not blurry" —— Seedream 不支持 negative,会反向起效
- ❌ 给
search=true跑通用概念(¥0.05 白付) —— 只有时事 / 特定品牌 / 真人才开 - ❌ 让用户在 mermaid / seedream 之间默默替他决定 —— 模糊就一句话问明白
- ❌ 用
run_python调requests裸打豆包 API —— 走seedreamtool(已封装计费 / 落盘 / meta)
输出
调完告诉用户:
- 文件相对路径(
figures/xxx.png) - 本次成本(¥0.22 或 ¥0.27)
- 用的 prompt 摘要(主体 / 风格 / 光线 3 件套)
- 一句"要换方向 / 调风格 / 再来一张吗?"