Nodes/comfyui-imgmake/ebsynth_hecheng
ComfyUI Node

ebsynth_hecheng

Blending EBSynth output back into your video

By dafeng012·Created 2 years ago·Updated 2 years ago· 17
ebsynth_hecheng
    • info
    project_dir
    original_movie_path
    blend_rate1.0
    export_typemp4
    mask_mode
    is_invert_maskfalse

    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 the out-* 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 parent ebsynth_main node 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 info log means EBSynth never produced output, or produced it somewhere the node isn't looking. The .ebs projects from ebsynth_process write out-* folders into the project dir - don't move them, don't rename them.
    • Result looks like a bad watercolor - that's blend_rate at 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_path is 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.

    CategoryIMAGEmake

    Inputs (6)

    NameTypeDefaultDescription
    project_dirSTRING
    original_movie_pathSTRING
    blend_rateFLOAT1.00–1
    export_typeSTRINGmp4
    mask_modeSTRING
    is_invert_maskBOOLEANfalse

    Outputs (1)

    NameTypeDescription
    infoSTRING