Nodes/MiniMax H3 Novel Pipeline/Consolidate References
ComfyUI Node

Consolidate References

Where twenty per-chapter character sheets become one cast list

By yuyuki·Created 6 days ago·Updated 2 days ago· 0
Consolidate References
  • chapter_catalogs
  • lmstudio_config
  • consolidated_references
candidate_count12
include_all_below35
picture_thresholdrecommended
audio_thresholdrecommended
max_character_base_views4
max_location_base_views3
max_object_base_views2
asset_batch_size16
no_variantsfalse
no_auditfalse
audit_max_entities120
temperature0.12
max_tokens8500
out_dir/tmp/ComfyUI/output/minimax_h3_novel/references

Extract Chapter References gives you a pile of per-chapter JSON files where the same woman is "Elena" in chapter one and "the tall redhead" in chapter nine. If you fed that straight to a video model you'd get a different person every scene - character consistency is the single most complained-about problem in this whole space, and it doesn't solve itself. Consolidate References is where the pile becomes a single, de-duplicated cast list.

It takes chapter_catalogs (type MINIMAX_CHAPTERS, from the extractor or a loader node) plus the shared lmstudio_config, then runs each chapter's catalog through the LLM against the registry it's building: same character across chapters → one stable entity with a permanent book-level ID like CHAR_001 and a canonical name. That ID is the contract everything downstream relies on. The node's own payload spells out the design: those global IDs are permanent, while MiniMax H3's <Subject 1>/<Picture 1> labels are request-local and get remapped per scene later. Never conflate the two.

What it actually produces

Beyond the registry of entities, this node is what defines the images you need to make. It assigns each entity a set of picture asset briefs - a multi-view policy based on how important the entity is. A major character gets the works: FACE_FRONT, FULL_BODY_FRONT, THREE_QUARTER, BACK_VIEW. A major location gets WIDE_ESTABLISHING, SECONDARY_ANGLE, KEY_DETAIL. A minor object might get a single hero 3/4. It writes those briefs to disk as reference_asset_prompts.txt alongside the big consolidated_references.json - that text file is your to-do list. The pack does not draw the pictures; you go render those PNGs (and any WAVs for audio assets) so later stages can point H3 at them.

The inputs that matter

The policy knobs are the ones a beginner actually reaches for:

  • picture_threshold / audio_threshold - optional / recommended / required. Default recommended skips throwaway minor entities. Drop to optional if you want references for literally everyone who walks through a scene.
  • max_character_base_views (4), max_location_base_views (3), max_object_base_views (2) - caps on how many reference images per entity. Fewer views means fewer PNGs you have to render and a smaller budget when H3 prompts are built.
  • candidate_count (12) / include_all_below (35) - control which entities are consolidation candidates; niche knobs you can leave alone.
  • no_variants - chapter-specific variants exist for real visual breaks (disguise, injury, transformation, time jump). If a character's appearance doesn't change mid-book, flip this on to skip the extra asset briefs.
  • no_audit / audit_max_entities - the node runs an LLM audit pass over the merged registry (audit_max_entities defaults to 120). Turn the audit off only when you trust the extraction.
  • asset_batch_size (16) - how many asset briefs each LLM call handles. temperature (0.12) is low because this is structured reconciliation, and max_tokens (8500) is the roomy output budget.

The single output is consolidated_references (type MINIMAX_REGISTRY), which feeds Generate H3 Prompts. The JSON it saves contains the entities, the picture and audio asset banks, and an entity_asset_index for fast lookup, all stamped with a source_digest of the chapters it came from.

Notes from the trenches

This is a long-running node - reconciling every chapter through an LLM, auditing, then generating asset briefs means dozens of sequential calls. It's interruptible (hit Stop and it checks mid-stream), but plan for it to run for a while. If your output mysteriously lacks an entity you're sure appeared, check the thresholds before you blame the LLM. And the smart workflow: run extraction once, then use Load Chapter Catalogs to feed this node from disk on later iterations, so tweaking no_variants doesn't cost you a full re-extraction.

CategoryMiniMax H3 Novel

Inputs (16)

NameTypeDefaultDescription
chapter_catalogsMINIMAX_CHAPTERS
lmstudio_configMINIMAX_LMSTUDIO_CONFIG
candidate_countINT121–1000
include_all_belowINT350–100000
picture_thresholdCOMBOrecommended3 options: optional, recommended, required
audio_thresholdCOMBOrecommended3 options: optional, recommended, required
max_character_base_viewsINT41–7
max_location_base_viewsINT31–6
max_object_base_viewsINT21–4
asset_batch_sizeINT161–1000
no_variantsBOOLEANfalse
no_auditBOOLEANfalse
audit_max_entitiesINT1200–100000
temperatureFLOAT0.120–2
max_tokensINT8500256–100000
out_dirSTRING/tmp/ComfyUI/output/minimax_h3_novel/references

Outputs (1)

NameTypeDescription
consolidated_referencesMINIMAX_REGISTRY