Nodes/Symbiotica/Hypereel Stack Composite (facecam over gameplay)
ComfyUI Node

Hypereel Stack Composite (facecam over gameplay)

Stack facecam over gameplay and ship a vertical reel in one node

By symbiotica-ai·Created 6 months ago·Updated about 12 hours ago· 2
Hypereel Stack Composite (facecam over gameplay)
  • facecam_1
  • gameplay_1
  • mask_1
  • facecam_2
  • gameplay_2
  • mask_2
  • facecam_3
  • gameplay_3
  • mask_3
  • facecam_4
  • gameplay_4
  • mask_4
  • reel
  • cuts
layoutvertical · facecam top 40% / gameplay 60%
cornerbottom-right
game_audio_gain0.30
fps30
crf20

This is the node the whole Hypereel pipeline (symbiotica-ai/comfyui-nodes) funnels into. Everything upstream - the highlight cut, the lit facecam, the gameplay clip - comes together here as one stacked video: the streamer's facecam over the gameplay, in a named layout, with the audio mixed, ready for the platform. It's an exact port of the platform's own compositor, which is why the layouts feel like a product decision rather than a generic "overlay" node.

You pick a layout, wire up to four (facecam, gameplay) pairs, and out comes one reel. No building your own stack with a dozen overlay primitives.

The layouts

  • vertical · facecam top 40% / gameplay 60% - the default, and the platform's "Modal" geometry: facecam on top, gameplay filling the rest. This is the vertical-reel look.
  • vertical · half / half - facecam and gameplay each take half.
  • vertical · gameplay full + facecam corner - gameplay fills the frame, facecam is a PiP in the corner you choose (bottom-right by default).
  • horizontal · gameplay full + facecam corner - same idea for 16:9 output.

The part that's better than it needs to be: audio

Voice plays at full volume, and game audio is mixed at game_audio_gain (default 0.3) - but only when the gameplay actually has an audio track, and it uses amix ... normalize=0 so the voice is never halved to make room. That "never halved" bit is the classic ffmpeg gotcha the node is avoiding for you: a naive mix divides every track down, and your voiceover suddenly ducks. Here the voice stays at full, the game audio rides underneath. Up to four pairs become cuts, hard-cut-concatenated in order - so a multi-highlight reel is one render, not four.

The keyer hook

Wire a keyer's mask_n into a pair and that facecam becomes a cutout silhouette in the corner instead of a rectangle - drop your streamer in as a real person-shaped PiP rather than a box. That's optional and only applies to the corner layouts, but it's the difference between "facecam box" and "this person is actually in my video."

Inputs & outputs

  • facecam_n / gameplay_n - up to four pairs. facecam_1 and gameplay_1 are required; 2–4 are optional.
  • layout, corner, game_audio_gain, fps (12–60), crf (10–35, default 20) - quality and geometry.
  • Outputs: reel (VIDEO) and cuts (INT), the number of pairs that actually composed.

Install

Part of symbiotica-ai/comfyui-nodes - ComfyUI Manager search "Symbiotica", or clone + pip install -r requirements.txt. ffmpeg must be on PATH (the pack resolves it from PATH, Homebrew, /usr/bin). No API key. Restart after install.

Gotchas

Mismatched lengths: pairs are hard-cut, so if facecam and gameplay in one pair differ in duration, the shorter one wins and you should trim to match upstream (Hypereel Clip makes this trivial). The mask cutout only works in corner layouts - wire a mask into the vertical stacks and it's simply not applied, so don't debug that for an hour. And cuts is your friend: if a reel comes back with only one cut when you wired four pairs, check the optional pairs actually connected.

CategorySymbiotica/Hypereel

Inputs (17)

NameTypeDefaultDescription
facecam_1VIDEO
gameplay_1VIDEO
layoutCOMBOvertical · facecam top 40% / gameplay 60%4 options: vertical · facecam top 40% / gameplay 60%, vertical · half / half, vertical · gameplay full + facecam corner, horizontal · gameplay full + facecam corner
cornerCOMBObottom-rightFacecam position — used by the corner layouts.
game_audio_gainFLOAT0.300–1
fpsINT3012–60
crfINT2010–35
mask_1optMASK
facecam_2optVIDEO
gameplay_2optVIDEO
mask_2optMASK
facecam_3optVIDEO
gameplay_3optVIDEO
mask_3optMASK
facecam_4optVIDEO
gameplay_4optVIDEO
mask_4optMASK

Outputs (2)

NameTypeDescription
reelVIDEO
cutsINT