Agent skill

Story Cover

by uu201 in uu201/character-arc

小说封面生成。根据书名、作者名自动分析题材风格,调用 GPT-Image-2 直接生成含标题和署名的专业级网文封面. An agent skill from uu201/character-arc.

MITAuto-check passedMedia & Creative

Install Story Cover

skills CLI
$ npx skills add uu201/character-arc --skill story-cover -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install uu201/character-arc story-cover --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/uu201/character-arc.git skills-src && mkdir -p .claude/skills && cp -r skills-src/resources/skills/oh-story-claudecode/story-cover .claude/skills/story-cover && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
story-cover
GitHub stars
583
Token cost
~2.1k tokens
SKILL.md length
460 words
Files
2 (incl. references)
Skills in repo
26
Repo updated
First seen
Licence
MIT

At a glance

小说封面生成。根据书名、作者名自动分析题材风格,调用 GPT-Image-2 直接生成含标题和署名的专业级网文封面. An agent skill from uu201/character-arc.

  • Works in 5 steps: :收集信息 → 5:题材判定 → :构建提示词 → …
  • Tasks that involve Image generation
  • SKILL.md covers 环境变量, 生成流程, 参考资料 and 语言
  • Calls jq and curl; reaches api.openai.com; needs GPT_IMAGE_API_KEY

What it does

Story Cover is an agent skill from uu201/character-arc. 小说封面生成。根据书名、作者名自动分析题材风格,调用 GPT-Image-2 直接生成含标题和署名的专业级网文封面。 触发方式:/story-cover、/封面、「帮我做个封面」「生成封面图」「做个小说封面」「封面设计」

Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/cover-styles.md`).

It sits in Media & Creative, covering Image generation. The repository describes itself as: CharacterArc(弧光) AI 小说创作应用,集项目设定、角色关系、剧情大纲、章节写作与多模型 AI 协作于一体. The licence is MIT.

When your agent uses it

  • Tasks that involve Image generation

Example prompts

  • “/story-cover”

Requirements

  • A credential in GPT_IMAGE_API_KEY

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. :收集信息
  2. 5:题材判定
  3. :构建提示词
  4. :调用 API 并保存
  5. :质量检查 + 迭代

What it can do on your machine

Read from SKILL.md and the folder at commit 292f947. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • jq
    • curl

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • api.openai.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • GPT_IMAGE_API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Story Cover loads about 2.1k tokens when it runs, and up to ~4.4k if it reads all its reference files. Until then it costs about 31 tokens; SKILL.md has 460 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~31
When it runs · the whole SKILL.md, loaded when a task matches
~2.1k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~4.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from uu201/character-arc at commit 292f947, republished under its MIT licence (© uu201). 460 words, ~2,132 tokens.

Download SKILL.mdSave it as .claude/skills/story-cover/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
story-cover
description
小说封面生成。根据书名、作者名自动分析题材风格,调用 GPT-Image-2 直接生成含标题和署名的专业级网文封面。 触发方式:/story-cover、/封面、「帮我做个封面」「生成封面图」「做个小说封面」「封面设计」
version
1.0.0

story-cover:小说封面生成

你是小说封面设计师。根据书名和题材,调用 GPT-Image-2 一次性生成包含书名和作者名的完整封面。

核心原则:封面是读者的第一印象,一眼传达题材和氛围。


环境变量

变量必填默认说明
GPT_IMAGE_API_KEY✅—OpenAI 或兼容代理的 API Key
GPT_IMAGE_BASE_URLhttps://api.openai.com/v1兼容代理时改这个
GPT_IMAGE_MODELgpt-image-2仅在测试新模型时覆盖
GPT_IMAGE_SIZE1024x1536gpt-image-2 要求两边为 16 倍数、比例 ≤ 3:1
BOOK_DIR✅—输出目录,建议 ./covers/<书名>
REF_IMAGE—参考图本地路径或 URL;设置后走 images/edits 图生图

备注:gpt-image-2 始终返回 base64,请求体不要带 response_format(旧 DALL-E 参数,gpt-image 系列不支持)。


生成流程

Step 1:收集信息

必填:书名、作者名(笔名)、目标平台、输出目录 BOOK_DIR(建议 ./covers/<书名>,调用前 export) 选填:参考图 REF_IMAGE(本地路径或 URL,设置后切换到图生图)、风格偏好、尺寸(默认竖版 1024x1536)

根据目标平台确定封面风格,加载 references/cover-styles.md 获取详细平台和题材风格。

Step 1.5:题材判定

扫描书名(必要时简介)中的关键词,对照 references/cover-styles.md 的「题材推断规则」表选定题材。

  • 单题材命中 → 直接采用
  • 多题材命中 → 按优先级取一:仙侠 > 西幻 > 古言 > 现言 > 都市 > 悬疑 > 科幻 > 历史 > 灵异 > 轻小说
  • 零命中 → 默认 都市
Step 2:构建提示词

提示词 = 文字层 + 风格层 + 画面层,全部用英文编写。

文字层:书名 + 作者名字体设计

在提示词中直接包含中文书名和作者名,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
Show full SKILL.md (102 more words)Show less

作者名通用规则:

  • 大小: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 2:3 ratio, no watermark
提示词技巧(实测验证)
  • 人物描述越具体越好:服饰、姿态、发型、表情、道具每个维度都指定
  • 背景分层:前景(人物)→ 中景(场景)→ 远景(氛围)
  • 光效是指定光源方向 + 颜色(如 dramatic golden light from above)
  • 用 digital painting style 而非 photo,避免真人照片感
Step 3:调用 API 并保存

gpt-image-2 始终返回 base64,请求体不要带 response_format。$PROMPT 为 Step 2 拼出的完整提示词。

两种调用方式二选一:未设置 REF_IMAGE → 走「文生图」;设置了 → 走「图生图」。

文生图(默认)
bash
set -euo pipefail
: "${GPT_IMAGE_API_KEY:?请设置 export GPT_IMAGE_API_KEY=你的key}"
: "${PROMPT:?请先 export PROMPT=Step 2 拼好的完整提示词}"
BASE_URL="${GPT_IMAGE_BASE_URL:-https://api.openai.com/v1}"
MODEL="${GPT_IMAGE_MODEL:-gpt-image-2}"
SIZE="${GPT_IMAGE_SIZE:-1024x1536}"
BOOK_DIR="${BOOK_DIR:?请先 export BOOK_DIR=./covers/<书名>}"

mkdir -p "$BOOK_DIR/封面"

# 自增版本号,避免覆盖之前生成的封面
i=1
while [ -f "$BOOK_DIR/封面/封面_v${i}.png" ]; do i=$((i+1)); done
OUT="$BOOK_DIR/封面/封面_v${i}.png"
RESP=$(mktemp)
trap 'rm -f "$RESP"' EXIT

# 用 jq 拼 JSON 体,避免 PROMPT 里的引号/换行/中文把 shell 字符串撑破
BODY=$(jq -n \
  --arg m "$MODEL" \
  --arg p "$PROMPT" \
  --arg s "$SIZE" \
  '{model:$m, prompt:$p, size:$s}')

curl -fsS --max-time 180 --retry 2 --retry-delay 5 \
  "$BASE_URL/images/generations" \
  -H "Authorization: Bearer $GPT_IMAGE_API_KEY" \
  -H "Content-Type: application/json" \
  -d "$BODY" > "$RESP"

# API 出错时早退,避免把 error JSON 当成 base64 写成损坏 PNG
if jq -e '.error' "$RESP" >/dev/null 2>&1; then
  echo "API error:" >&2
  jq '.error' "$RESP" >&2
  exit 1
fi

# `// empty` 让缺失字段输出空串而非 "null",配合下面的 -s 检查避免写出 3 字节假 PNG
jq -er '.data[0].b64_json // empty' "$RESP" | base64 --decode > "$OUT"
[ -s "$OUT" ] || { echo "empty or malformed output: $OUT" >&2; head -c 300 "$RESP" >&2; exit 1; }

# 落地提示词副本,方便迭代时基于上一次微调
printf '%s\n' "$PROMPT" > "${OUT%.png}.prompt.txt"

file "$OUT"
ls -lt "$BOOK_DIR/封面/"
图生图(提供参考图时)

/v1/images/edits 走 multipart/form-data,不能 用 Content-Type: application/json。文本字段用 --form-string(避免 @ 被误判为文件引用),图片字段用 -F image=@path。

bash
set -euo pipefail
: "${GPT_IMAGE_API_KEY:?请设置 export GPT_IMAGE_API_KEY=你的key}"
: "${PROMPT:?请先 export PROMPT=Step 2 拼好的完整提示词}"
BASE_URL="${GPT_IMAGE_BASE_URL:-https://api.openai.com/v1}"
MODEL="${GPT_IMAGE_MODEL:-gpt-image-2}"
SIZE="${GPT_IMAGE_SIZE:-1024x1536}"
BOOK_DIR="${BOOK_DIR:?请先 export BOOK_DIR=./covers/<书名>}"
REF_IMAGE="${REF_IMAGE:?请先 export REF_IMAGE=本地路径或 URL}"

mkdir -p "$BOOK_DIR/封面"

# 自增版本号
i=1
while [ -f "$BOOK_DIR/封面/封面_v${i}.png" ]; do i=$((i+1)); done
OUT="$BOOK_DIR/封面/封面_v${i}.png"
RESP=$(mktemp)
REF_TMP=""
trap '[ -n "$REF_TMP" ] && rm -f "$REF_TMP"; rm -f "$RESP"' EXIT

# URL 先下载到临时文件,本地路径直接用。用裸 mktemp 以保证 macOS/Linux 行为一致。
case "$REF_IMAGE" in
  http://*|https://*)
    REF_TMP=$(mktemp)
    curl -fsSL --max-time 60 -o "$REF_TMP" "$REF_IMAGE"
    REF_LOCAL="$REF_TMP"
    ;;
  *)
    [ -f "$REF_IMAGE" ] || { echo "参考图不存在: $REF_IMAGE" >&2; exit 1; }
    REF_LOCAL="$REF_IMAGE"
    ;;
esac

curl -fsS --max-time 240 --retry 2 --retry-delay 5 \
  "$BASE_URL/images/edits" \
  -H "Authorization: Bearer $GPT_IMAGE_API_KEY" \
  --form-string "model=$MODEL" \
  --form-string "size=$SIZE" \
  --form-string "prompt=$PROMPT" \
  -F "image=@$REF_LOCAL" > "$RESP"

if jq -e '.error' "$RESP" >/dev/null 2>&1; then
  echo "API error:" >&2
  jq '.error' "$RESP" >&2
  exit 1
fi

# `// empty` 让缺失字段输出空串而非 "null",配合 -s 检查避免写出 3 字节假 PNG
jq -er '.data[0].b64_json // empty' "$RESP" | base64 --decode > "$OUT"
[ -s "$OUT" ] || { echo "empty or malformed output: $OUT" >&2; head -c 300 "$RESP" >&2; exit 1; }

printf '%s\n' "$PROMPT"    > "${OUT%.png}.prompt.txt"
printf '%s\n' "$REF_IMAGE" > "${OUT%.png}.ref.txt"

file "$OUT"
ls -lt "$BOOK_DIR/封面/"
Step 4:质量检查 + 迭代
检查项标准
文字渲染书名清晰可辨,字体风格匹配题材
题材匹配视觉风格与书名题材一致
构图合理主体突出,文字不遮挡核心画面
平台适配符合目标平台的封面风格调性

不满意时调整方向:更换构图、调整色调、换字体风格、换平台风格。


参考资料

文件何时加载
references/cover-styles.md题材→视觉风格映射、平台风格详情、提示词模板

语言

  • 跟随用户的语言回复,用户用什么语言就用什么语言回复
  • 中文回复遵循《中文文案排版指北》

© uu201, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file (references) in resources/skills/oh-story-claudecode/story-cover of uu201/character-arc.

  • SKILL.md
  • references/cover-styles.md

Open the folder on GitHubat commit 292f947

Compare with similar skills

Story Cover next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Story Cover compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Story Cover this skilluu201/character-arc583—~2.1kAutomated safety check: PassMIT
AI Image Generation and Editingzhayujie/CowAgent47k—~1.3kAutomated safety check: PassMIT
Structured Image Generationbytedance/deer-flow84k4 repos~2.9kAutomated safety check: PassMIT
Canghe Comicfreestylefly/canghe-skills4618 repos~3.2kAutomated safety check: PassNone
Generate Imageynulihao/AgentSkillOS61810 repos~1.7kAutomated safety check: NotesNone
GPT Image Generation CLIwuyoscar/GPT-Image2-Skill5.7k—~2.5kAutomated safety check: NotesMIT

Similar skills

  • Generates or edits images from text prompts through a Python script that picks an image backend based on which API keys are configured.

    47k GitHub stars~1.3k tokensUpdated yesterday
    Media & CreativeAuto-check passed
  • Structured Image Generation

    bytedance/deer-flow

    Turns an image request into a structured JSON prompt and runs a bundled Python script to generate the picture, optionally guided by reference images.

    84k GitHub starsUsed in 4 repos~2.9k tokens
    Media & CreativeAuto-check passed
  • Canghe Comic

    freestylefly/canghe-skills

    Knowledge comic creator supporting multiple art styles and tones.

    461 GitHub starsUsed in 8 repos~3.2k tokens
    Media & CreativeAuto-check passed
  • Generate Image

    ynulihao/AgentSkillOS

    Generate or edit images using AI models (FLUX, Gemini). An agent skill from ynulihao/AgentSkillOS.

    618 GitHub starsUsed in 10 repos~1.7k tokens
    Media & CreativeAuto-check: notes
  • GPT Image Generation CLI

    wuyoscar/GPT-Image2-Skill

    Generates and edits images with GPT Image 2 or 2.5 through a packaged CLI and a prompt gallery, after settling which model fits the request.

    5.7k GitHub stars~2.5k tokensUpdated 11 days ago
    Media & CreativeAuto-check: notes
  • Minimal Zine Poster Generator

    LiamGvchi/gc-minimal-zine-poster

    Creates or analyzes quiet, paper-texture zine posters with big negative space, one color accent and experimental type, returning an image prompt and the generated poster.

    7.3k GitHub stars~2.9k tokensUpdated 1 mo ago
    Media & CreativeAuto-check passed

More from uu201/character-arc

All 26 skills in this repo
  • Web Novel AI-Flavor Remover

    uu201/character-arc

    Finds and rewrites AI-sounding passages in Chinese web novel text, changing as few words as possible while keeping plot, characters and names intact.

    583 GitHub stars~2.3k tokensUpdated 2 days ago
    Auto-check passed
  • Web Novel Ranking Scanner

    uu201/character-arc

    Analyzes ranking charts from Chinese web novel platforms such as Qidian, Fanqie and Jinjiang to spot market trends and promising genres, with scraper scripts per site.

    583 GitHub stars~2k tokensUpdated 2 days ago
    Auto-check passed
  • Short Web Fiction Writer

    uu201/character-arc

    Walks an agent through writing a complete short web novel in Chinese, starting from the emotion the reader should feel and building around one twist.

    583 GitHub stars~3.7k tokensUpdated 2 days ago
    Auto-check passed
  • Polishes AI-generated web novel text to remove machine-sounding patterns, with rewriting strategies, instruction templates, style techniques and before-and-after examples.

    583 GitHub starsUsed in 1 repo~508 tokens
    Auto-check passed
  • Story Long Write

    uu201/character-arc

    长篇网文写作。从大纲到正文,辅助长篇网络小说的创作,包括世界观、人物、情节线管理. An agent skill from uu201/character-arc.

    583 GitHub stars~5.2k tokensUpdated 2 days ago
    Auto-check passed
  • Novel Tools

    uu201/character-arc

    网文创作工具与生产流程。当用户需要使用AI辅助写作工具、设计提示词模板、规划写作工作流、选择码字工具、制定发布与数据分析策略时触发。覆盖DeepSeek/ChatGPT/Claude/豆包等AI工具应用、提示词工程、工作流设计、发布运营。

    583 GitHub starsUsed in 1 repo~574 tokens
    Auto-check passed

Questions about Story Cover

What does Story Cover do?

小说封面生成。根据书名、作者名自动分析题材风格,调用 GPT-Image-2 直接生成含标题和署名的专业级网文封面. An agent skill from uu201/character-arc. Story Cover is an agent skill from uu201/character-arc.

When should I use Story Cover?

Story Cover fits situations like: tasks that involve Image generation.

How do I install Story Cover in Claude Code?

Run `npx skills add uu201/character-arc --skill story-cover -a claude-code`. Or copy the skill folder (resources/skills/oh-story-claudecode/story-cover in uu201/character-arc) into .claude/skills/story-cover in your project. Claude Code loads it when a task matches its description.

How do I install Story Cover in Codex?

Run `npx skills add uu201/character-arc --skill story-cover -a codex`. Or copy the skill folder (resources/skills/oh-story-claudecode/story-cover in uu201/character-arc) into .agents/skills/story-cover in your project. Codex loads it when a task matches its description.

Can I use Story Cover in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add uu201/character-arc --skill story-cover -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/story-cover, .gemini/skills/story-cover, .github/skills/story-cover and .opencode/skills/story-cover in your project.

What does Story Cover need to run?

Going by SKILL.md and its folder, Story Cover needs the command-line tools its instructions call (jq and curl) and credentials named GPT_IMAGE_API_KEY. Our summary lists: A credential in GPT_IMAGE_API_KEY.

Does Story Cover access the network?

SKILL.md names 1 domain. In commands or code: api.openai.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Story Cover safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Story Cover use?

Story Cover is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Story Cover use?

About 2.1k tokens (SKILL.md is roughly 8.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.2k tokens, read only when the agent opens those files.

What are the alternatives to Story Cover?

Skills that share tags, products or a category with Story Cover: AI Image Generation and Editing (zhayujie/CowAgent, 47k stars), Structured Image Generation (bytedance/deer-flow, 84k stars), Canghe Comic (freestylefly/canghe-skills, 461 stars) and Generate Image (ynulihao/AgentSkillOS, 618 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Story Cover?

uu201 (a GitHub user) maintains it in uu201/character-arc, which has 583 GitHub stars. The repository holds 26 skills in this directory. The repository was last updated on October 9, 2026.

Source: uu201/character-arc on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.