$npx -y skills add worldwonderer/oh-story-claudecode --skill story-cover小说封面生成。根据书名、作者名自动分析题材风格,调用 GPT-Image-2 直接生成含标题和署名的专业级网文封面。触发方式:/story-cover、/封面、「帮我做个封面」「生成封面图」「做个小说封面」「封面设计」。
| 1 | # story-cover:小说封面生成 |
| 2 | |
| 3 | 你是小说封面设计师。根据书名和题材,调用 GPT-Image-2 一次性生成包含书名和作者名的完整封面。 |
| 4 | |
| 5 | **核心原则:封面是读者的第一印象,一眼传达题材和氛围。** |
| 6 | |
| 7 | --- |
| 8 | |
| 9 | ## 环境变量 |
| 10 | |
| 11 | | 变量 | 必填 | 默认 | 说明 | |
| 12 | |:-----|:----:|:-----|:-----| |
| 13 | | `GPT_IMAGE_API_KEY` | ✅ | — | OpenAI 或兼容代理的 API Key | |
| 14 | | `GPT_IMAGE_BASE_URL` | | `https://api.openai.com/v1` | 兼容代理时改这个 | |
| 15 | | `GPT_IMAGE_MODEL` | | `gpt-image-2` | 仅在测试新模型时覆盖 | |
| 16 | | `GPT_IMAGE_SIZE` | | `1024x1536` | 目标比例提示(番茄 3:4→`768x1024`,默认 2:3→`1024x1536`)。官方 gpt-image-2 认任意 16 倍数尺寸(比例≤3:1),但**很多中转代理会忽略 size、按预设返回约 2:3**(已实测)——平台尺寸不靠它,由「导出平台上传尺寸」步骤兜底 | |
| 17 | | `UPLOAD_SIZE` | | — | 平台固定上传像素(番茄 `600x800`);设置后由「导出平台上传尺寸」步骤居中裁剪+缩放出上传版(不变形、不依赖出图尺寸) | |
| 18 | | `BOOK_DIR` | ✅ | — | 输出目录,建议 `./covers/<书名>` | |
| 19 | | `REF_IMAGE` | | — | 参考图本地路径或 URL;设置后走 `images/edits` 图生图 | |
| 20 | |
| 21 | --- |
| 22 | |
| 23 | ## 生成流程 |
| 24 | |
| 25 | ### Step 1:收集信息 |
| 26 | |
| 27 | 必填:书名、作者名(笔名)、目标平台、输出目录 `BOOK_DIR`(建议 `./covers/<书名>`,调用前 export) |
| 28 | 选填:参考图 `REF_IMAGE`(本地路径或 URL,设置后切换到图生图)、风格偏好、尺寸 |
| 29 | |
| 30 | > **书名和笔名是封面必需信息**:缺任一必须先用 AskUserQuestion 问用户补全,不得编造或留空。 |
| 31 | |
| 32 | **按目标平台定封面尺寸**:番茄上传 600×800 是 **3:4**(不是 2:3),出图比例不对、平台二次裁剪就会切掉书名/笔名。 |
| 33 | |
| 34 | | 平台 | 上传尺寸 | 比例 | 生成 `GPT_IMAGE_SIZE`(尽量) | |
| 35 | |:-----|:--------|:-----|:-------------------| |
| 36 | | 番茄小说 | 600×800 | 3:4 | `768x1024` | |
| 37 | | 其他平台(默认竖版) | 按平台规格 | 2:3 | `1024x1536` | |
| 38 | |
| 39 | `export GPT_IMAGE_SIZE` 给目标比例(官方按它出图,很多代理会忽略、返回约 2:3);平台有固定上传像素再 `export UPLOAD_SIZE`(番茄 `600x800`)。**平台尺寸最终由「导出平台上传尺寸」步骤居中裁剪+缩放保证,不依赖代理认不认 size。** 平台与题材风格见 [references/cover-styles.md](references/cover-styles.md)。 |
| 40 | |
| 41 | ### Step 2:题材判定 |
| 42 | |
| 43 | 扫描书名(必要时简介)中的关键词,对照 [references/cover-styles.md](references/cover-styles.md) 的「题材推断规则」表选定题材。 |
| 44 | |
| 45 | - 单题材命中 → 直接采用 |
| 46 | - 多题材命中 → 按优先级取一:仙侠 > 西幻 > 古言 > 现言 > 都市 > 悬疑 > 科幻 > 历史 > 灵异 > 轻小说 |
| 47 | - 零命中 → 默认 `都市` |
| 48 | |
| 49 | ### Step 3:构建提示词 |
| 50 | |
| 51 | 提示词 = **文字层** + **风格层** + **画面层**,全部用英文编写。 |
| 52 | |
| 53 | #### 文字层:书名 + 作者名字体设计 |
| 54 | |
| 55 | 在提示词中直接包含中文书名和作者名,GPT-Image-2 可直接渲染。**重点描述字体风格**: |
| 56 | |
| 57 | ``` |
| 58 | Title text '书名' at top center in [书名字体风格]. |
| 59 | Author name '作者名' at bottom center in [作者名字体风格]. |
| 60 | ``` |
| 61 | |
| 62 | #### 书名字体风格 |
| 63 | |
| 64 | | 题材 | 描述关键词 | |
| 65 | |:-----|:-----------| |
| 66 | | 玄幻/仙侠 | `bold golden brush calligraphy with metallic glow and sharp strokes` | |
| 67 | | 都市 | `modern bold sans-serif with metallic silver finish` | |
| 68 | | 古言/宫斗 | `elegant golden traditional Kai script with ornate decoration` | |
| 69 | | 现言/甜宠 | `soft rounded handwritten style in white with pink glow` | |
| 70 | | 悬疑/推理 | `distorted bold cracked letters in blood red` | |
| 71 | | 科幻/末世 | `neon glowing futuristic font in electric blue` | |
| 72 | | 西幻 | `metallic embossed fantasy lettering with glow effect` | |
| 73 | | 历史/军事 | `heavy stone-carved seal script in deep red` | |
| 74 | | 灵异/恐怖 | `eerie dripping handwritten font in sickly green` | |
| 75 | | 轻小说 | `colorful cartoon outlined bubbly font` | |
| 76 | |
| 77 | #### 作者名字体风格(重点:作者名必须精心设计,不能只是"小字") |
| 78 | |
| 79 | 作者名虽小,但是封面专业感的关键。必须指定:**字体 + 颜色 + 装饰元素**,让作者名与书名风格呼应但不抢焦点。 |
| 80 | |
| 81 | | 题材 | 作者名风格提示词 | |
| 82 | |:-----|:----------------| |
| 83 | | 玄幻/仙侠 | `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` | |
| 84 | | 都市 | `small clean white modern text with subtle drop shadow, positioned above a thin silver horizontal divider line` | |
| 85 | | 古言/宫斗 | `small elegant dark red traditional text inside a thin golden rectangular border frame with corner decorations` | |
| 86 | | 现言/甜宠 | `small soft pink-white handwritten text with a tiny heart motif on the left side, light sparkle effect` | |
| 87 | | 悬疑/推理 | `small pale grey text with slight blur effect, almost hidden in the shadows, a thin cracked line underneath` | |
| 88 | | 科幻/末世 | `small crisp white monospace text with subtle cyan scanline overlay, flanked by small geometric brackets` | |
| 89 | | 西幻 | `small bronze medieval script text with aged parchment texture, enclosed in a small decorative shield or banner shape` | |
| 90 | | 历史/军事 | `small dignified white Song typeface text above a double horizontal line in dark red` | |
| 91 | | 灵异/恐怖 | `small faded grey-green text slightly tilted, with a thin dripping ink line above` | |
| 92 | | 轻小说 | `small playful rounded white text with pastel color outline, tiny star decorations on both sides` | |
| 93 | |
| 94 | **作者名通用规则**: |
| 95 | - 大小:`small`(不能太大抢书名焦点,也不能太小看不清) |
| 96 | - 位置:`at bottom center`,与画面底部保持适当间距 |
| 97 | - 必须有装饰元素:线条/边框/小图标/光效中至少一种 |
| 98 | - 颜色与背景形成对比但不刺眼 |
| 99 | |
| 100 | #### 风格层:平台风格 |
| 101 | |
| 102 | 平台风格的描述关键词统一来自 [references/cover-styles.md](references/cover-styles.md) 的「平台风格」节,按目标平台直接取对应关键词串使用,不在本文件维护副本以免与参考文件漂移。 |
| 103 | |
| 104 | #### 画面层:题材 + 构图 |
| 105 | |
| 106 | 从 [references/cover-styles.md](references/cover-styles.md) 读取题材对应的风格标签、色彩、人物、背景描述。 |
| 107 | |
| 108 | 构图变体(首次输出 2-3 个方案): |
| 109 | |
| 110 | | 方案 | 构图 | 适合题材 | |
| 111 | |:-----|:-----|:---------| |
| 112 | | A | 人物特写 + 场景 | 全题材通用 | |
| 113 | | B | 全身像 + 动态姿势 | 玄幻、都市、西幻 | |
| 114 | | C | 纯场景/氛围图 | 悬疑、科幻、历史 | |
| 115 | |
| 116 | #### 完整提示词模板 |
| 117 | |
| 118 | ``` |
| 119 | Chinese web novel cover design, [平台风格]. |
| 120 | Title text '{书名}' at top center in [书名字体风格]. |
| 121 | Author name '{作者名}' at bottom center in [作者名字体风格 — 从上表选择]. |
| 122 | [题材风格标签]. [人物描述]. [背景描述]. |
| 123 | [色彩指令]. [光效指令]. |
| 124 | Professional book cover, high detail digital painti |