Nodes/ComfyUI-ReShot/ReShot Depth Video
ComfyUI Node

ReShot Depth Video

Turn a clip into a grey driving video Seedance or H3 will actually accept

By maosika-ai·Created 12 days ago·Updated 11 days ago· 9
ReShot Depth Video
  • video
  • depth_video
  • depth_frames
  • fps
targetseedance
qualityfast
invertfalse
clip_percent0.0
gamma1.00
max_side0

This is the node to start with if your graph already has a Load Video node and your consumer wants a reference video - Seedance 2.5's Reference to Video, MiniMax H3's Reference to Video ref_videos input - or if you just want to Save Video, upload the file somewhere, and be done.

It's the same pipeline as ReShot Depth Map - video-native depth on overlapping 32-frame windows, normalised once over the whole clip to 8-bit grey, near is white - with the generator's house rules applied on the way out. That's the reason to use it rather than the map node plus your own math: target knows what each model wants.

The target presets, and the two things they don't do

seedance is 24 fps with dimensions as multiples of 16. h3 is 24 fps at multiples of 32 - MiniMax H3 generates 4–15 second clips at 24 fps, so the preset matches the model itself. wan is 16 fps at multiples of 16, matching VACE's samples. none keeps the fps and just makes dimensions even. Frames are chosen by timestamp, so 30 fps really becomes 24 rather than a stuttering subset.

Two rules from the source that aren't obvious:

fps is never raised. A 12 fps reference stays 12 fps even with target: seedance. You get the crop and nothing else.

Sizes are cropped, never padded. The frame is center-cropped to the preset multiple, because a black border reads to the generator as a distant wall. Your output is a few dozen pixels smaller than your input, on both axes.

Audio is dropped (the depth video is silent on purpose), and going over the preset's length limit only produces a console line - clip is 18.0s; seedance accepts <= 15s - while the node happily runs and the API rejects the file later. Trim upstream.

The two settings people actually tune

max_side caps the output's longer side. The README is specific about H3 here: use 320 (320×176 for 16:9). A full-size grey silhouette starts pulling the generated character's face shape toward the reference's, which defeats the entire point of the exercise. Small grey video, moves intact, no shape inheritance.

quality is fast (model sees 644×364, ~3 GB VRAM) or full (924×518, ~11 GB, 2.5× slower). Stay on fast; the copy-the-blocking job doesn't need the extra detail, and the author's own demo takes were made from a depth map shrunk to 320×176 before it ever reached the model.

invert, clip_percent and gamma are the contrast knobs from the map node - clip_percent 0.5–1 is the fix when a fist near the lens has crushed everything else dark.

Outputs: depth_video (the VIDEO), depth_frames (the same frames as an IMAGE batch, for a ControlNet control_video input or a quick preview) and fps (FLOAT, for Create Video if you rebuild the clip yourself).

The trap that costs you a generation

MiniMax H3 will happily render you a grey film. The recipe in the README is two-part: say in words what happens in the grey clip - the model reads the narration far better than it reads the map - and explicitly state that the grey look is not transferred, only the actions, positions, timing and camera move. Say the second part or pay for grey.

Also check the licence before running H3 locally at all: as our MiniMax H3 panel notes, the open weights ship under a Community License whose Applicable Territory excludes the US, EU, UK and South Korea. And a seedance target ending at a ComfyUI API node is prepaid credits per call with your clip leaving your machine - fine for one hero shot, expensive as a habit.

Install

ComfyUI Manager → ComfyUI-ReShot → Install → restart. Manually:

cd ComfyUI/custom_nodes
git clone https://github.com/maosika-ai/ComfyUI-ReShot
python -m pip install -r ComfyUI-ReShot/requirements.txt   # python_embeded\python.exe on Windows portable

requirements.txt installs the reshot[pose] package and its dependencies. First run pulls video_depth_anything_vits.pth (111 MB) into the Hugging Face cache; behind the Great Firewall, set export HF_ENDPOINT=https://hf-mirror.com before starting ComfyUI or the download just hangs.

Common issues

  • The generated video copies the moves but the face drifts toward the reference - the depth video is too big for H3. max_side: 320.
  • Uniform grey, no structure - a static clip, or one extreme close-up eating the range. clip_percent 0.5–1.
  • Seams or brightness jumps - shouldn't happen here (normalisation is once per clip), but check you're not feeding it pre-chunked pieces from upstream.
  • CUDA out of memory - quality: full on a sub-12 GB card.
  • Node missing on an older ComfyUI - this node needs the native VIDEO type; the map node is the fallback.

Trim the reference to the shots you actually want first: everything in the clip gets copied, including the boring bit at the end.

CategoryReShot

Inputs (7)

NameTypeDefaultDescription
videoVIDEOFrom Load Video (or any node that outputs VIDEO).
targetCOMBOseedancePreset: seedance = 24 fps, x16; h3 = 24 fps, x32; wan = 16 fps, x16; none = keep fps, even dims.
qualityCOMBOfastfast: model sees 644x364 (16:9), ~3 GB VRAM. full: 924x518, ~11 GB VRAM, 2.5x slower, sharper fine detail.
invertoptBOOLEANfalseOff: near is white (what depth ControlNets and Seedance/H3 expect). On: far is white.
clip_percentoptFLOAT0.00–10Percent trimmed from both ends before scaling to 0–255, so one hot pixel can't crush the contrast. 0 = none.
gammaoptFLOAT1.000.2–3>1 darkens mid-tones (more separation near the camera). 1 = linear.
max_sideoptINT00–4096Cap the output's longer side (0 = source size). e.g. 320 for MiniMax H3 reference videos.

Outputs (3)

NameTypeDescription
depth_videoVIDEO
depth_framesIMAGE
fpsFLOAT