novel-characters

Extract character profiles, image prompts, and voice prompts from novels into structured JSON.

2.8k|363|Updated Aug 6, 2026
One-click install
npx skills add https://github.com/eternityspring/shuohao-skills --skill novel-characters
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: novel-characters
Source: https://github.com/eternityspring/shuohao-skills/tree/main/skills/novel-characters
Command: npx skills add https://github.com/eternityspring/shuohao-skills --skill novel-characters

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) and references (resource) and assets (resource) components.

What problem does it solve?

Turning a novel or short story into production-ready character assets for AI video or audio pipelines requires manually tracking every character across chapters, merging aliases, and writing consistent image and TTS prompts. This Skill automates that breakdown, producing a validated cast.json, a Markdown report, and an interactive report.html.

Core Features & Use Cases

  • Two-pass character extraction: Splits long texts into overlapping chunks, scans each for characters and verbatim quotes, then merges aliases across chunks so the same person addressed by different names converges into one profile.
  • Complete character cards: Generates persona profiles with verbatim source evidence, English image prompts with negative prompts and style presets (realistic or Ghibli), and compact voice-design prompts for Qwen3-TTS or ElevenLabs.
  • Model sheets and relationship map: Optionally generates one 16:9 character model sheet per character via codex's image tool, and renders an interactive HTML report with a relationship graph, search, and JSON export.
  • Use Case: Feed it a 900k-character web novel and receive the top 30 characters ranked by prominence, each with a profile, design prompt, voice prompt, and model sheet, all validated by deterministic script checks.

Quick Start

Ask the agent to break down the characters in your novel file, for example by saying: run novel-characters on ./my-novel.txt and generate the full character bible with an English report.

Frequently Asked Questions about novel-characters

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I generate character sheets from a novel?

Point the skill at your novel text file and it runs a two-pass pipeline: scanning overlapping chunks for characters and quotes, then building full profile cards for the top characters by prominence. Output includes cast.json, a Markdown report, and a self-contained report.html.

How does it handle characters with multiple names or aliases?

The merge step indexes characters by both name and alias, so different forms of address across chunks converge onto one person. Containment-based merge candidates that exact matching cannot resolve are listed for model review and applied deterministically from a merges.json file.

Can I get the character report in English or Japanese?

Yes, pass --lang en or --lang ja; Chinese, English, and Japanese UI strings are built in. Other languages also work because the skill translates UI labels on the fly and stores them in cast.json, while image and TTS prompts always stay in English.

Does it work without codex installed?

Yes, codex is only needed for the optional model-sheet image generation step. Without it, the skill still delivers the full cast.json, prompts, and reports; only the per-character sheet images are skipped.

What are the input size limits for novel character extraction?

A single run caps at 24 chunks of 40,000 characters with overlap, covering roughly 930,000 characters net. Beyond that limit the skill reports truncated explicitly rather than silently dropping the tail of the text.

Why does validation fail on my generated cast.json?

The validator enforces hard rules: evidence quotes must be verbatim contiguous spans of the source, image prompts must not contain character names, human-readable fields must follow the report language while machine prompts stay English, and the style preset must match its negative prompt.