ebsynth_hecheng
Blending EBSynth output back into your video
- info
ebsynth_hecheng is the end of the road. "Hecheng" (合成) means composite, and that's exactly what it does: it takes the frames EBSynth produced in your project, blends them with the original video at the rate you choose, and exports an mp4 with the audio put back. This is stage 7 of the comfyui-imgmake pipeline, standalone.
You reach for this node after EBSynth has done its job - the out-* folders exist in the project dir and you want the actual video. It's the payoff step, and it's also where you rescue a mediocre result. Because EBSynth is a 2017-era piece of software, its output can get wobbly: textures swim, edges crawl, detail melts into smears. blend_rate is your blunt instrument against all of that.
How it works
The node scans the project dir for out-* folders (one per keyframe chunk), then walks every frame from start to end. Where two EBSynth chunks overlap, it crossfades between them so you don't get a visible seam at keyframe boundaries. Each frame is then blended with the original video at blend_rate - 1.0 means pure EBSynth, 0 means pure original - and the whole thing is encoded back to video with ffmpeg at the source's original fps.
The audio isn't forgotten. The node pulls the original video's audio track with ffmpeg and muxes it back into the export. That's a small thing that saves you from the usual "silent result" problem.
The inputs that matter
project_dir- where theout-*folders live.original_movie_path- the source video (needed for the blend, the fps, and the audio).blend_rate- the dial you'll actually turn. Start at 1.0; if EBSynth's artifacts are too strong, step it down to 0.7–0.9 and let the original anchor the motion.export_type- the node's UI only offers mp4, which is fine for 99% of use. (The parentebsynth_mainnode has the fuller gif/webm/rawvideo list if you need it.)mask_mode/is_invert_mask- if you ran the pipeline in Invert mode (background replacement), set this the same way, or the node looks in the wrong project dir.
It returns a single STRING, info, describing what it merged and where the output went.
Installing it
Standard pack install - ComfyUI Manager, search comfyui-imgmake, or:
cd ComfyUI/custom_nodes
git clone https://github.com/dafeng012/comfyui-imgmake
Then restart and make sure ffmpeg is on your PATH (the README calls this out explicitly). EBSynth the app is required for the earlier stages, but not for this node itself - by this point the heavy lifting is done.
Where people get burned
- "No out dir" in the
infolog means EBSynth never produced output, or produced it somewhere the node isn't looking. The.ebsprojects fromebsynth_processwriteout-*folders into the project dir - don't move them, don't rename them. - Result looks like a bad watercolor - that's
blend_rateat 1.0 on a tough clip. Lower it, or go back and redo keyframes/masks, because EBSynth propagates whatever the masks and painted frames told it to. - Silent or missing file - check that
original_movie_pathis the exact same video you started the pipeline with; the audio extraction depends on it.
The honest take: for video-to-video style transfer there are shinier modern routes, but EBSynth's per-frame propagation is still uniquely cheap and controllable. This node just makes the last mile painless.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| project_dir | STRING | — | |
| original_movie_path | STRING | — | |
| blend_rate | FLOAT | 1.00–1 | — |
| export_type | STRING | mp4 | — |
| mask_mode | STRING | — | |
| is_invert_mask | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| info | STRING | — |