Nodes/ComfyUI-EbSynth/ES Video Transfer Extra
ComfyUI Node

ES Video Transfer Extra

EbSynth, but you get to pick the optical flow — ES Video Transfer Extra

By FuouM·Created 2 years ago·Updated about a year ago· 111
ES Video Transfer Extra
  • source_video
  • style_images
  • source_mask
  • source_edge
  • result_video
  • error_video
  • flow_video
style_idxes0
edge_methodClassic
flow_archRAFT
flow_modelsintel
only_modenone
return_flowfalse
do_maskfalse
pre_maskfalse
feather5
style_weight6.00
edge_weight1.00
warp_weight0.50
pos_weight2.00
uniformity3500.00
patch_size5
pyramid_levels6
search_vote_iters12
patch_match_iters6
extra_pass_3x3true
use_gpu_hist_blendfalse
use_lsqrtrue
use_poisson_cupyfalse
poisson_maxiter0

ES Video Transfer Extra is ES Video Transfer with the training wheels off. Same video style-transfer core - you feed stylized keyframes, it propagates the look through the whole clip - but where the plain node gives you one optical flow option (RAFT, with sintel/kitti weights already bundled), this one lets you swap the whole flow architecture and even feed in your own edge maps. It's the node you graduate to when fast, messy footage is smudging and you want to know why.

The three things it adds

flow_arch - pick the optical flow model family: RAFT, EF_RAFT (a lighter, faster rework of RAFT), or FLOW_DIFF (a diffusion-based flow estimator). flow_model then picks the checkpoint within that family - the list reflects it: RAFT_sintel, RAFT_kitti, EfRAFT_25000_ours-sintel, EfRAFT_ours_sintel, EfRAFT_ours-things, FLOWDIFF_FlowDiffuser-things. Flow quality feeds the two motion guides, warp_weight (how hard style images are warped along the flow) and pos_weight (how hard the warped position guides pull).

source_edge - an optional IMAGE input. If you give it an edge map (from any preprocessor you like - Canny, a ControlNet edge node, whatever), it uses yours and ignores edge_method entirely; edge_weight still controls how strongly it pulls. This is the escape hatch when the built-in physics-based edge detector isn't giving you the structure you want.

return_flow + the third output - flip return_flow on and the node emits flow_video, a visualization of the optical flow it computed. It's a debugging gift: if the flow looks chaotic around fast motion, that's your smudging explained. The other two outputs are the same result_video and error_video as the base node.

The catch: which models ship

Only the RAFT weights are bundled. EF-RAFT and FlowDiffuser checkpoints are not - you download them and drop them into ezsynth/utils/flow_utils/ef_raft_models/ and .../flow_diffusion_models/ (the Ezsynth README points to the original repos). FlowDiffuser additionally needs pip install timm, pulls ~470MB of twin transformer models on first run, and wants serious VRAM - the author quotes ~15GB and notes it may throw a non-fatal CUDNN_BACKEND_EXECUTION_PLAN_DESCRIPTOR error while running ~3x slower. That's not a bug you need to fix; it's FlowDiffuser being heavy.

Should you bother?

Honestly, for most clips: no. The base ES Video Transfer's RAFT is good, the defaults work, and the setup cost is zero. Reach for Extra when you have a specific problem - motion that's too fast for RAFT, or you want the flow visualization to see why a section looks bad. And if your footage has clear edges that matter, feeding source_edge can be a bigger win than swapping flow models. All the other inputs - style_idxes, edge_method, only_mode, masking, weights, the EbSynth generation params - behave identically to the base node, so your existing workflow carries over unchanged.

Install is the same pack: ComfyUI Manager, or git clone --recurse-submodules https://github.com/FuouM/ComfyUI-EbSynth.git + pip install -r requirements.txt. Same submodule warning, same Linux ebsynth.so build requirement, same Windows plug-and-play.

CategoryEbSynth

Inputs (27)

NameTypeDefaultDescription
source_videoIMAGE
style_imagesIMAGE
style_idxesSTRING0
edge_methodCOMBOClassic3 options: PAGE, PST, Classic
flow_archCOMBORAFT3 options: RAFT, EF_RAFT, FLOW_DIFF
flow_modelCOMBOsintel6 options: RAFT_sintel, RAFT_kitti, EfRAFT_25000_ours-sintel, EfRAFT_ours_sintel, EfRAFT_ours-things, FLOWDIFF_FlowDiffuser-things
only_modeCOMBOnone3 options: forward, reverse, none
return_flowBOOLEANfalse
do_maskBOOLEANfalse
pre_maskBOOLEANfalse
featherINT5
style_weightFLOAT6.00
edge_weightFLOAT1.00
warp_weightFLOAT0.50
pos_weightFLOAT2.00
uniformityFLOAT3500.00500–15000
patch_sizeINT5
pyramid_levelsINT6
search_vote_itersINT12
patch_match_itersINT6
extra_pass_3x3BOOLEANtrue
use_gpu_hist_blendBOOLEANfalse
use_lsqrBOOLEANtrue
use_poisson_cupyBOOLEANfalse
poisson_maxiterINT0
source_maskoptIMAGE
source_edgeoptIMAGE

Outputs (3)

NameTypeDescription
result_videoIMAGE
error_videoIMAGE
flow_videoIMAGE