Neo H3 Segment Run (单段生成/重生成)
Neo H3 Segment Run
- video
Multi-shot video generation has one reliable failure mode: eight good segments and one where the character's hand turns into a baguette. Re-running the whole recipe to fix it means new seeds for everything and a long wait for a film you already liked - that's the pain NeoH3SegmentRun exists to kill. Pick a recipe, pick a segment number, get that segment back. Optionally with the real neighbouring frames from an existing render nailed to its ends, so the piece splices in cleanly.
It only makes sense alongside the pack's H3 Video Director and a video_director recipe - the segment's skill, prompt, duration and references all live in that recipe, not in this node.
Quick H3 context: it's the 33B omni-modal video model with jointly-generated stereo audio that got day-zero ComfyUI support, and its open weights carry a Community License excluding the US, EU, UK and South Korea from its Applicable Territory - in those regions you don't have a licence to run them locally. H3 clips are also short by design, which is why recipes are built from segments.
What it does
You give it a recipe and a segment index. It works out that segment's frame interval from the finished film's layout, decodes the frames that flank it - the last frame of the previous segment, the first frame of the next one, or the segment's own first frame if it's segment 1 - and rewrites the segment as a first-and-last-frame job (fl2v), or as a plain image-to-video job if you only pinned the head. Then it runs that one segment with a new seed.
Anchor frames land in input/NeoAgent/ with the source film's name embedded; the output goes to output/neo_director_regen/ and gets recorded in the results list with its segment number and seed. Your original film is not touched - not one frame.
Resolution follows the film you're re-doing, deliberately: anchor frames are that film's pixels, so the splice only works at the same size. If the recipe's shared resolution differs from the film's, the node says so rather than quietly generating something that won't fit.
The inputs that matter
- recipe - a dropdown of your
video_directorrecipes. - segment - 1-based, up to 999.
- anchors -
两端锚点(both ends),只钉首帧(head only),不用锚点(no anchors). Both-ends gives you a seamless splice; head-only degrades to i2v; none is your debug mode. - seed - default
-1, which rolls a fresh one. Reseeding is the entire point of the node; leave it alone. - film - which finished render to pull anchor frames from. Blank means the latest. If the recipe has no film yet, anchors automatically downgrade to "no anchors" and the segment just generates in its own mode. That's the sanctioned way to debug a single segment before committing to a full run.
- record - on by default: writes the mp4 and logs it into the recipe's results panel. Turn it off and the node only hands you the
VIDEOoutput, which is what you want if you're using this as a plain generation node wired to SaveVideo.
Optional steps (-1 = the segment's skill config, which is 8 on the pack's VDN-accelerated variants), preview (on by default; live sampling preview via taeh3, roughly +0.2s per step), and continuity (on by default, which injects the recipe's identity reference images so your character stays the same character). context_frames exists but a single segment runs with the cross-segment context window forced off - nothing chains in.
The only output is video. It's declared as an output node, so it runs standalone on the canvas without a SaveVideo attached.
Install
ComfyUI Manager → search Neo Nodes → install, or:
cd ComfyUI/custom_nodes
git clone https://github.com/neoneo-ai/ComfyUI-Neo-Nodes.git
Restart. requirements.txt installs openai, Pillow, PyYAML and pypinyin; llama_cpp_python is optional and irrelevant here. You also need the full H3 model set - diffusion weights, minimax-type text encoder, video VAE, and a separate audio VAE. The node's status bar cross-checks the segment's template against what's installed.
Where people get burned
Frame-count mismatches. If you've changed a segment's duration, resolution or step count since rendering - or the continuity and context-window settings differ from when the film was made - the node errors out and names the film rather than guessing. Correct behaviour, but it means "why won't it re-roll" is usually "you edited the recipe after rendering".
Then: merging back. This node produces a segment, full stop. Rebuilding the film is the director panel's merge action, which swaps in the new segment and reuses every other segment's frames from the original - so only the re-rolled part is generated, and the result becomes the newest film, which is what makes consecutive re-rolls chain. A stale film value that isn't in the recipe's results list errors instead of silently picking a different render, which is one fewer way to waste twenty minutes.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| recipe | COMBO | 1 options: | |
| segment | INT | 11–999 | 配方里的段号(1 基)。 |
| anchors | COMBO | 两端锚点 | 用成片里的哪些真实帧当锚点;配方还没有成片时自动降级为不用锚点。 |
| seed | INT | -1-1–9223372036854776000 | -1 = 用配方该段的 seed;换种子重生成时填 ≥0。 |
| record | BOOLEAN | true | 开 = 产物同时写进配方「结果」区;关 = 只出 VIDEO,自己接 SaveVideo。 |
| stepsopt | INT | -1-1–200 | — |
| previewopt | BOOLEAN | true | — |
| continuityopt | BOOLEAN | true | — |
| context_framesopt | INT | 220–362 | — |
| filmopt | STRING | 成片文件名(配方「结果」区里的名字):取其中的前后真实帧当锚点;空 = 用当前记录的最新成片。 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | 本段生成的 VIDEO(含音频)。record 开着时同时写进配方「结果」区,可接 SaveVideo 单独存。 |