Face Sequence Batch
Merge two FACE_SEQUENCE objects into one
- face_sequence_a
- face_sequence_b
- face_sequence
There isn't much to this node, and that's fine - it does exactly one thing. FaceSequenceBatch takes two FACE_SEQUENCE objects (this pack's custom type for a frame-range-aware image sequence, produced by FrameRangedFaceLoader) and combines them into one. Two required inputs, face_sequence_a and face_sequence_b, one output, face_sequence - no other fields, no optional strength or blend settings.
The obvious use case: you've got faces from two different sources or two different frame ranges - say, two different people's face sequences you want composited together in the same output, or two non-contiguous clips of the same person you want treated as one continuous sequence downstream. Rather than merging raw IMAGE batches and losing the frame-range metadata that FACE_SEQUENCE carries, this node merges them while keeping that structure intact for whatever consumes the result next - most likely ReservedRegionFrameComposer, this pack's node for compositing face sequences into a reserved region of output frames.
Because the schema gives no indication of a mixing strategy, weight, or priority ordering, the safest assumption is that it's a straightforward concatenation or a positional merge rather than anything that blends or averages content - treat it as "combine these two lists into one," not "average these two faces together." If you need the latter, that's a different job entirely, and nothing in this node's inputs suggests it does it.
Installing it
Same pack as everything else here. Through ComfyUI Manager, search "ComfyUI-BFSNodes." Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/alisson-anjos/ComfyUI-BFSNodes.git
cd ComfyUI-BFSNodes
pip install -r requirements.txt
Restart ComfyUI. No model, no LoRA, no external files - this is pure sequence bookkeeping like FrameRangedFaceLoader, and it'll work in any workflow that's already producing FACE_SEQUENCE objects from this pack's other nodes.
Where this fits, and where it doesn't
This node only makes sense once you've already got two FACE_SEQUENCE objects to merge - it's the connective step in a small pipeline, not something you'd reach for on its own. If you're only working with one face sequence, you don't need this node at all; wire FrameRangedFaceLoader's output straight into ReservedRegionFrameComposer and skip this step. And because there's no visible order-of-operations control (which sequence's frames "win" if ranges overlap, for instance), it's worth testing with a small, controlled example first if your two sequences might overlap in frame range - the node's behavior there isn't documented, and guessing wrong on a full-length render wastes more time than a quick sanity check would.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| face_sequence_a | FACE_SEQUENCE | — | |
| face_sequence_b | FACE_SEQUENCE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| face_sequence | FACE_SEQUENCE | — |