写作与公文
用 AI 一键生成含书名与笔名的网文小说封面(按题材定风格…
当需要为网文小说快速产出带中文书名和作者署名、风格贴合题材并能直接上传平台的封面图时使用。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
用 AI 一键生成含书名与笔名的网文小说特定
解决思路
- 选择生成通路:当前会话可调用 $imagegen / image_gen 时优先走 Codex 内置通路,直接生成并落盘,不设 GPT_IMAGE_API_KEY、不运行 curl;仅在会话没有内置工具或用户明确指定 API 时才走 API 回退;内置调用失败时先报告错误,不静默切换到可能收费的 API。
- 配置环境变量:BOOK_DIR 为输出目录(建议 ./covers/<书名>);API 回退需 GPT_IMAGE_API_KEY,可选 GPT_IMAGE_BASE_URL(默认 https://api.openai.com/v1)、GPT_IMAGE_MODEL(默认 gpt-image-2)、GPT_IMAGE_SIZE(默认 1024x1536)、UPLOAD_SIZE(平台固定上传像素,番茄 600x800)、REF_IMAGE(参考图本地路径或 URL)。
- 收集必填信息:书名、作者笔名、目标平台、输出目录 BOOK_DIR;选填参考图 REF_IMAGE(设了就切换图生图)、风格偏好、尺寸;书名或笔名缺失时必须用 AskUserQuestion 问用户补全,不得编造或留空。
- 按目标平台定封面尺寸:番茄小说上传 600×800(3:4,不是 2:3),生成尺寸设 768x1024;其他平台默认竖版 2:3,生成 1024x1536;内置通路把目标比例写进提示词,API 回退再 export GPT_IMAGE_SIZE,并注意很多中转代理会忽略 size、按预设返回约 2:3。
- 平台有固定上传像素时设置 UPLOAD_SIZE,平台尺寸最终由后面的『导出平台上传尺寸』步骤居中裁剪+缩放保证,不依赖实际出图尺寸。
- 题材判定:扫描书名(必要时简介)关键词,对照 references/cover-styles.md 的『题材推断规则』表选定题材。
- 题材命中处理:单题材命中直接采用;多题材命中按优先级取一:仙侠 > 西幻 > 古言 > 现言 > 都市 > 悬疑 > 科幻 > 历史 > 灵异 > 轻小说;零命中默认都市。
- 构建提示词:结构固定为文字层 + 风格层 + 画面层,全部用英文编写。
- 文字层写法:提示词中直接写出中文书名和作者名(GPT-Image-2 可直接渲染),并重点描述字体风格,格式为 Title text '书名' at top center in [书名字体风格]. / Author name '作者名' at bottom center in [作者名字体风格].
- 书名字体风格按题材选:玄幻/仙侠用 bold golden brush calligraphy with metallic glow and sharp strokes;都市用 modern bold sans-serif with metallic silver finish;古言/宫斗用 elegant golden traditional Kai script with ornate decoration;现言/甜宠用 soft rounded handwritten style in white with pink glow;悬疑/推理用 distorted bold cracked letters in blood red;科幻/末世用 neon glowing futuristic font in electric blue;西幻用 metallic embossed fantasy lettering with glow effect;历史/军事用 heavy stone-carved seal script in deep red;灵异/恐怖用 eerie dripping handwritten font in sickly green;轻小说用 colorful cartoon outlined bubbly font。
- 作者名字体风格按题材选(必须精心设计,不能只是小字):玄幻/仙侠用 small refined white serif text with faint golden glow, flanked by delicate cloud-scroll ornaments on both sides, resting on a thin horizontal gold line;都市用 small clean white modern text with subtle drop shadow, positioned above a thin silver horizontal divider line;古言/宫斗用 small elegant dark red traditional text inside a thin golden rectangular border frame with corner decorations;现言/甜宠用 small soft pink-white handwritten text with a tiny heart motif on the left side, light sparkle effect;悬疑/推理用 small pale grey text with slight blur effect, almost hidden in the shadows, a thin cracked line underneath;科幻/末世用 small crisp white monospace text with subtle cyan scanline overlay, flanked by small geometric brackets;西幻用 small bronze medieval script text with aged parchment texture, enclosed in a small decorative shield or banner shape;历史/军事用 small dignified white Song typeface text above a double horizontal line in dark red;灵异/恐怖用 small faded grey-green text slightly tilted, with a thin dripping ink line above;轻小说用 small playful rounded white text with pastel color outline, tiny star decorations on both sides。
- 作者名通用规则:大小用 small(不抢书名焦点也不能看不清);位置 at bottom center 且与画面底部留适当间距;必须有装饰元素(线条/边框/小图标/光效至少一种);颜色与背景形成对比但不刺眼。
- 风格层:按目标平台从 references/cover-styles.md 的『平台风格』节直接取对应关键词串使用,不在本文件维护副本以免与参考文件漂移。
- 画面层:从 references/cover-styles.md 读取题材对应的风格标签、色彩、人物、背景描述。
- 首次生成输出 2-3 个构图方案:A 人物特写+场景(全题材通用)、B 全身像+动态姿势(玄幻、都市、西幻)、C 纯场景/氛围图(悬疑、科幻、历史)。
- 按完整提示词模板拼装:Chinese web novel cover design, [平台风格]. Title text '{书名}' at top center in [书名字体风格]. Author name '{作者名}' at bottom center in [作者名字体风格]. [题材风格标签]. [人物描述]. [背景描述]. [色彩指令]. [光效指令]. Professional book cover, high detail digital painting, portrait [平台比例:番茄=3:4,默认=2:3] ratio, keep title and author name inside the central safe area away from edges (inner ~85%), no watermark。
- 提示词技巧:人物描述越具体越好,服饰、姿态、发型、表情、道具每个维度都指定;背景分三层——前景(人物)→ 中景(场景)→ 远景(氛围);光效写明光源方向 + 颜色(如 dramatic golden light from above);用 digital painting style 而非 photo,避免真人照片感。
- 内置通路生成:用拼好的完整提示词调用 image_gen,比例和安全区写进提示词,不传 GPT_IMAGE_MODEL、GPT_IMAGE_SIZE、response_format 等 API 参数;有 REF_IMAGE 时本地文件先用图片查看工具载入会话、URL 先下载再载入,并说明它是编辑目标还是风格参考及必须保持的内容;每个构图方案单独调用一次。
- 内置通路保存:先创建 BOOK_DIR/封面/,把工具返回的图片复制为 封面_vN.png(N 自增且不覆盖旧版),保留 $CODEX_HOME/generated_images/ 原文件,同时保存同名 .prompt.txt,有参考图再保存 .ref.txt;确认图片可读并把原图绝对路径交给下一步。
- API 回退文生图(未设 REF_IMAGE):用 jq -n 拼 JSON body(model/prompt/size)避免提示词里的引号、换行、中文撑破 shell 字符串;curl -fsS --max-time 180 --retry 2 --retry-delay 5 POST $BASE_URL/images/generations,带 Authorization: Bearer 与 Content-Type: application/json;请求体不要带 response_format(那是旧 DALL-E 参数,gpt-image 系列始终返回 base64)。
- 文生图结果处理:先用 jq -e '.error' 检查,出错早退,避免把 error JSON 当 base64 写成损坏 PNG;用 jq -er '.data[0].b64_json // empty' | base64 --decode 落盘;用 [ -s ] 校验非空,空或畸形则打印响应前 300 字节并退出;再把 PROMPT 写入同名 .prompt.txt 便于迭代;最后用 file 和 ls -lt 核验。
- API 回退图生图(设置了 REF_IMAGE):改走 /v1/images/edits,multipart/form-data,绝不能用 Content-Type: application/json;文本字段用 --form-string(避免 @ 被误判为文件引用),图片字段用 -F "image=@path"。
- 图生图参考图处理:URL 用 curl -fsSL --max-time 60 下载到 mktemp 临时文件,本地路径先 [ -f ] 校验存在;请求用 --max-time 240 --retry 2 --retry-delay 5;结果同样做 error 检查、base64 解码、非空校验,并额外写 .ref.txt 记录参考图。
- 版本号自增:每次生成前 while [ -f "$BOOK_DIR/封面/封面_v${i}.png" ]; do i=$((i+1)); done,避免覆盖之前生成的封面。
- 导出平台上传尺寸:SRC 用上一步生成的原图绝对路径、TARGET 用平台上传尺寸;优先用 magick,其次 convert,都没有则用 macOS 的 sips,三者都无则提示手动居中裁剪+缩放;magick/convert 用 "$M" "$SRC" -resize "${W}x${H}^" -gravity center -extent "${W}x${H}"(缩放填满后居中裁);sips 先按比例 sips --resampleHeight/--resampleWidth,再 sips -c "$H" "$W"(-c 参数是 高 宽);另存 _上传.png,原图保留。
- 质量检查:文字渲染(书名清晰可辨、字体风格匹配题材)、题材匹配(视觉风格与书名题材一致)、构图合理(主体突出、文字不遮挡核心画面)、平台适配(符合目标平台封面调性)、平台尺寸(比例与平台一致,缩放到上传尺寸后书名与笔名完整可见、未被裁切)。
- 不满意时按方向迭代:更换构图、调整色调、换字体风格、换平台风格,并基于上一次的 .prompt.txt 微调后重生成。
- 回复语言跟随用户;中文回复遵循《中文文案排版指北》。
适用边界 · 注意事项
- 会话内没有内置 ImageGen 工具、又未配置 GPT_IMAGE_API_KEY 或不愿承担 API 调用费用时不可用——内置通路失败应直接报错,不要静默切到可能收费的 API。
- 需要精确可控、可二次编辑的文字排版(字距微调、多语言混排、后期改字)时慎用:书名与署名由模型一次性渲染,出错只能整体重生成。
- 目标不是竖版网文封面(如横版 banner、方图、无文字的纯插画)时,本流程的比例与安全区假设不适用。