Extract Chapter References
Turning novel chapters into a character-sheet database, one chapter at a time
- lmstudio_config
- chapter_catalogs
- catalog_summary
If you're adapting a novel (or a fanfic, or a screenplay) into MiniMax H3 video with characters who actually stay recognizable between scenes, the whole job starts here. Extract Chapter References is the first real stage of the yuyuki/minimax_h3_novel_pipeline: it reads a chapter of raw text and asks a local Qwen model to pull out a structured catalog of every character, location, and notable object - canonical name, aliases, distinguishing features, a stable visual description, evidence anchors pointing back at the text, and hints about which reference views each entity needs. One chapter in, one chapter_XX_references.json out. Do this for all twenty chapters and you have the raw material for the pack's consolidation stage.
Notice what it does not do: no CLIP, no diffusion, no image generation, nothing rendered. Despite the pack's own README phrasing about a "generative CLIP model," the code is unambiguous - this node's docstring says "no ComfyUI CLIP is loaded." It's an LLM extraction job, the same local-LLM-as-graph-tool pattern from the broader ComfyUI ecosystem, and all of it happens over LM Studio's HTTP API.
Getting your text in
Two ways, and the UI makes the first one obvious: an upload button behind the saved_chapter dropdown lets you push .txt, .md, .markdown, or .pdf files straight into ComfyUI's input folder, and previously uploaded chapters show up as choices. Or type filesystem paths into chapter_paths - the tooltip says it plainly: one chapter file or folder per line, and a folder means every supported file inside it. Feed it a whole chapters/ directory and it processes each file in turn. PDF support needs pypdf installed in ComfyUI's Python environment, which the pack's requirements cover.
The inputs that actually matter
lmstudio_config comes from LM Studio Configuration - wire that first or nothing runs. Beyond that you're mostly tuning how the LLM eats the text:
- chunk_chars (5500) - each chunk of the chapter sent per extraction call. The v2.4 release notes lowered this deliberately: for a local 9B Q8 model, several moderate calls beat one gigantic request that dies halfway through.
- overlap_paragraphs (2) - how much context bleeds between chunks so an entity straddling the cut doesn't get lost.
- max_tokens (2200) - the JSON output budget per call, kept tight on purpose.
- force - set it to ignore cached results and re-extract. The pack caches aggressively, which is great until you realize you edited the prompt and it's still serving you yesterday's JSON.
- temperature (0.18) - low and structured, as extraction should be. Crank it and the schema starts wobbling.
Outputs are chapter_catalogs (type MINIMAX_CHAPTERS, feeds Consolidate References) and a catalog_summary string - a compact per-chapter count of characters/locations/objects that's worth a glance before you spend the next hour consolidating.
Where people get burned
The dominant failure mode is local Qwen3.5 models running out of output tokens before closing their JSON - the README's v2.3/v2.4 changelogs are basically a war diary of this. The node handles it with automatic compact-output retries, but if you see it repeatedly, lower chunk_chars or max_tokens, keep thinking off (hidden reasoning steals the token budget), and check the retry knobs on the LM Studio Configuration node. Expect this node to be the slow one in the pack - a full novel means many sequential LLM calls, and LM Studio's recommended Max Concurrent Predictions = 1 makes it strictly serial. Get a coffee. Then wire chapter_catalogs into Consolidate References and let the cast list take shape.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| lmstudio_config | MINIMAX_LMSTUDIO_CONFIG | — | |
| chapter_paths | STRING | One chapter file or folder per line. | |
| saved_chapter | COMBO | Previously uploaded chapter. | |
| chunk_chars | INT | 55001000–1000000 | — |
| overlap_paragraphs | INT | 20–100 | — |
| temperature | FLOAT | 0.180–2 | — |
| max_tokens | INT | 2200256–32768 | Normal JSON output budget per extraction/merge call. |
| force | BOOLEAN | false | Ignore compatible cached chapter results. |
| out_dir | STRING | /tmp/ComfyUI/output/minimax_h3_novel/chapter_catalogs | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| chapter_catalogs | MINIMAX_CHAPTERS | — |
| catalog_summary | STRING | — |