MOSS Authoring Director T8
MOSS Authoring Director T8 Writes a Whole Book Worth of Prompts — Just Not a Prompt You Can Wire
- provider_config
- reference_images
- 完整集合 / bundle_json
- 单元数 / unit_count
- 诊断报告 / report_json
- 逐页英中阅读稿 / paired_reading
If you drag the first output of this node into a positive text encode, you get JSON in your conditioning and a worse image. That's the trap worth saying up front: MOSS Authoring Director T8 produces a collection, not a prompt. It's the planning half of a two-node pair; the prompt comes out of MOSS Authoring Page T8.
So why reach for it? MOSS-Image doesn't eat your usual comma soup. It wants a native prompt - either a Caption (prose) or a Layout (a summary plus items with real pixel boxes) - and the pack's single-image node only writes one image's worth. This one handles more than one unit of work: a comic needing 2–16 pages of bilingual descriptions sharing identical geometry, or a set of reference images that each deserve their own long caption. That second case is the "Fisher" profile, a deliberately unhurried description style targeting roughly 1500–2500 Chinese characters - because a lazy one-paragraph caption of a reference photo is a wasted reference photo.
How it works
It's a small assembly line of language-model stages, with unusually honest bookkeeping. The Comic profile makes one planning call, then per page an English source draft and a Chinese description mapping: 1 + 2N logical calls for a fresh N-page book. Fisher is one call per unit when references are independent, or a single call when you explicitly pick fusion. page_count=0 lets the model plan its own count inside 1–16.
The important mechanic sits downstream: the bundle holds source drafts only. The MOSS-native prompt gets compiled at selection time by the Page node, never trusted back from a cached model string. The bundle also carries a stage ledger that its report is cross-checked against - semantics_verified is pinned false and translation_quality to unverified, so nothing in it pretends a machine judged the writing.
The inputs you actually touch
brief is your actual request, and it's required for generation. profile picks Comic or Fisher - Comic fixes English + Chinese and ignores the Fisher-only controls; Fisher ignores page_count.
Then width / height, in multiples of 8 up to 16384 - the real canvas you intend to generate at.
reference_images is an autogrow bank of up to 10 after batch expansion: in Fisher independent you get one complete unit per image, fusion collapses them into one picture. descriptive_language is Auto / English / 中文 (Auto means Chinese for Fisher). locked_text holds visible strings to keep character-for-character.
provider_config is the green socket and it is required to generate - the pack deliberately won't quietly fall back to a default cloud channel. You need a T8 LLM Provider Config node feeding it - a custom object, not a STRING, so a text node won't do. The optional layout_context_json plus preserve_layout is the revision path for an existing book: it takes a typed context whose bundle field holds the whole previous bundle object, and untouched units are copied through unchanged.
Outputs
Four. bundle_json goes to Page's bundle input and nowhere else. unit_count is your page-count sanity check. report_json is the calls/warnings ledger. paired_reading shows the English and Chinese drafts side by side, so a human can read page 2 before spending an image generation on it. None of the last three are prompts; don't concatenate them into one.
Installing it
It's one pack, so install once for both nodes. From ComfyUI Manager search MiniMax H3 / Seedance 2.0 / Music 3 Prompt Enhancer (T8), or:
cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/comfyui-minimax-h3-prompt-enhancer-T8.git
Then restart ComfyUI and Ctrl+F5 the browser, because the front-end assets lag behind a plain reload. Already cloned? git pull --ff-only inside the pack directory. Got an old Manager or ZIP copy? Close ComfyUI and move that folder out of custom_nodes first - duplicates there produce genuinely confusing "node is missing" reports.
No model downloads on the cloud route; the pack's hard dependencies are requests, NumPy and Pillow, which ComfyUI already has. Local GGUF is optional and needs llama-cpp-python.
Where people get burned
The most common one is the missing provider_config: the node errors instead of calling anything, and that's intended.
Page counts bite too. Plan six pages, ask a Page node for page 7, and you get invalid_selected_unit - the unit count isn't a suggestion.
Budget before you run. A fresh comic is 1 + 2N requests, worst case 2 + 4N with every stage correcting once. A 16-page book is not a cheap click, and network errors don't auto-retry - you pay again on the re-run.
Revising an existing book means reattaching the original reference images in the same slot and batch order, or the content-digest check refuses the edit. And "restore last result" is process memory only: 50 slots, about an hour, gone on restart. Save the bundle if it took real money.
Inputs (19)
| Name | Type | Default | Description |
|---|---|---|---|
| brief | STRING | — | |
| profile | COMBO | Comic / 漫画卡通 | 2 options: Comic / 漫画卡通, Fisher / 通用长版 |
| width | INT | 102416–16384 | — |
| height | INT | 102416–16384 | — |
| max_output_chars | INT | 00–20000 | Unicode description code points, not Tokens. Soft cap, never truncates. Fisher automatic Chinese uses its creative Han-length preference. |
| max_corrections | INT | 10–1 | — |
| page_count | INT | 00–16 | — |
| reference_mode | COMBO | independent | independent: one complete unit per expanded image, in order; fusion: explicit single-image combination. Comic images are shared context, not one book per image. |
| descriptive_language | COMBO | Auto / 自动(Fisher默认中文) | 3 options: Auto / 自动(Fisher默认中文), English, 中文 |
| provider_configopt | T8_LLM_PROVIDER_CONFIG | Required for generation. Use T8 LLM Provider Config; restore and zero-edit context need no provider. | |
| reference_imagesopt | COMFY_AUTOGROW_V3 | — | |
| locked_textopt | STRING | — | |
| continuity_contextopt | STRING | — | |
| layout_context_jsonopt | STRING | Typed context JSON with bundle, mode and edit_unit_ids. Unselected units are copied unchanged. Original reference images must be reattached for edits. | |
| preserve_layoutopt | BOOLEAN | true | — |
| llm_max_tokensopt | INT | 16384256–65536 | — |
| seedopt | INT | 00–18446744073709550000 | — |
| recovery_slotopt | STRING | — | |
| recovery_actionopt | STRING | normal | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| 完整集合 / bundle_json | STRING | — |
| 单元数 / unit_count | INT | — |
| 诊断报告 / report_json | STRING | — |
| 逐页英中阅读稿 / paired_reading | STRING | — |