# Edit Video Pro

> Replace a span of an existing video with newly generated content — a Seedance-2-family reference bridge, seamlessly stitched back into the source. Cloud edition only.

## Overview

Edit Video Pro takes an existing video and regenerates a chosen time window — the **replace span** — while keeping the footage before and after it untouched. It's built for surgical, longer-form replacements on the Seedance 2 family: reshoot a scene, swap out an action beat, or restyle a moment, all while the rest of the clip stays exactly as it was.

Where [Video Retake](./video-retake.md) targets short (down to 2s), audio-or-video-only fixes on LTX 2.3 Pro, Edit Video Pro always regenerates both audio and video together, supports much longer spans via the same multi-segment chaining [Generate Video Pro](./generate-video-pro.md) uses for long single-shot clips, and requires a minimum 4-second span.

**Cloud edition only.** Edit Video Pro requires a Cloud subscription.

## Input handles

| Handle | Direction | Accepts | Notes |
|---|---|---|---|
| `video` | target | Video producers | Required — the source clip to edit. The node reads the clip's duration client-side to size the span slider; the server independently re-probes the source when reserving credits and never trusts that client-side hint for money. |
| `prompt` | target | Text producers + visual pickers | Describes what should replace the selected span |
| `imageReferences` | target | Image producers (ordered, multi) | Reference images carried into the replace-span generation |
| `video` | source | n/a | Output — the full clip with the span replaced |

## Configuration

| Field | Type | Default | Notes |
|---|---|---|---|
| Provider | Select | `seedance-2` | `seedance-2` (full), `seedance-2-fast`, `seedance-2-mini` — Seedance-2-family only, same set [Generate Video Pro](./generate-video-pro.md) uses |
| Prompt | Text | — | Describes what should replace the selected span; also settable via the `prompt` handle |
| Replace Span (From / To) | Number pair (seconds) | `0` – `8` | The window to replace. Minimum span length 4s. Maximum span length is the configured cap (120s by default) — see [Span rules](#span-rules) |
| Generate Audio | Checkbox | on | |

Edit Video Pro has **no Resolution or Aspect Ratio fields** — both are derived from the source video (see [Providers](#providers)).

## Providers

Edit Video Pro is scoped to the Seedance 2 family:

| Provider | Label | Resolutions |
|---|---|---|
| `seedance-2` | Seedance 2.0 | 480p / 720p / 1080p / 4K |
| `seedance-2-fast` | Seedance 2.0 Fast | 480p / 720p only |
| `seedance-2-mini` | Seedance 2.0 Mini | 480p / 720p only |

The bridge always renders at the largest resolution tier the selected provider supports that's still at or below the source video's shorter dimension — there's no manual resolution picker. A 4K source paired with `seedance-2` bridges at 4K; the same source paired with `seedance-2-fast` or `seedance-2-mini` bridges at 720p, since neither offers a higher tier.

## How replace mode works

1. **Reference the cut points.** If there's at least ~2 seconds of original footage before the span, that footage is used as a "head" reference so the new content picks up naturally from where the kept footage left off. Likewise, if there's at least ~2 seconds of footage after the span, it's used as a "tail" reference so the new content blends back into what comes next. A span starting at `0:00` has no head reference; a span ending at (or within a fraction of a second of) the source's own end has no tail reference.
2. **Generate the bridge.** The replacement content is generated by the selected Seedance 2 model in reference-conditioned mode, anchored by whichever of the head/tail references exist. When the requested span (plus a small per-edge stitch buffer) is longer than a single generation call can produce, it's automatically split into multiple segments — each one continuing from the final frames of the one before it, the same chaining mechanism [Generate Video Pro](./generate-video-pro.md#how-segmentation-works) uses for its own long single-shot clips.
3. **Stitch it back in.** The kept footage before and after the span is cut and re-encoded, then spliced together with the freshly generated bridge into one continuous output — the same total structure as the source, with only the requested window changed.

## Span rules

- **Minimum span:** 4 seconds (`spanEnd − spanStart`).
- **Maximum span:** 120 seconds by default. Self-hosted deployments can raise or lower it via the `EDIT_VIDEO_PRO_MAX_SPAN` environment variable — `GET /v1/nodes` reports the active cap for this node.
- **The span must fall inside the video.** Edit Video Pro replaces a portion of a clip, not the whole thing — leave some original footage on at least one side. A span that covers the entire clip start-to-end gets none of the reference-bridge benefit (there's no existing footage to anchor to on either side) and is better served by [Generate Video Pro](./generate-video-pro.md) or [Generate Video](./generate-video.md), which generate the whole clip directly.
- A requested span that reaches past the end of the probed source video is rejected before anything is reserved or generated.

## Credit pricing

```
credits = 10 + ceil(refRate(resolution) × (bridgeSeconds + referenceSeconds))
```

- **10** — flat fee covering the probe/bridge/stitch overhead, charged once per run.
- **refRate(resolution)** — the per-second reference rate for the source-derived resolution tier (the same "-ref" rate [Generate Video Pro](./generate-video-pro.md#credit-pricing)'s continuation segments use). At 720p this is **6.25** credits/sec; see Generate Video Pro's pricing section for the 480p / 1080p / 4K rates.
- **bridgeSeconds** — the actual generated length: the replace span, plus 0.3 seconds per kept edge (head and/or tail) to cover the stitch overlap, rounded to whole seconds via the same segment-split rule Generate Video Pro uses (single generation call up to 15s; longer bridges split into multiple chained segments).
- **referenceSeconds** — 2 seconds per bracketing reference clip actually used (head and/or tail, per [How replace mode works](#how-replace-mode-works)) plus 2 seconds per internal chain join, for bridges that split into multiple segments. (Two seconds is the minimum reference length the Seedance 2 family accepts.)

The resolution tier is derived from the **source** video, never requested directly — the server reads the source's actual dimensions when reserving credits (see [Providers](#providers)). If that read fails for any reason, the reservation worst-cases at the top tier the selected provider supports, so the reservation can only ever be too high, never too low — any difference between a worst-case reservation and the real cost is refunded once the run completes. When the read succeeds, which is the common case, the reservation already matches the final charge exactly.

### Worked examples (720p, `seedance-2`)

| Scenario | Span | Source length | Bridge length | Segments | Reserved credits |
|---|---:|---:|---:|---:|---:|
| Minimum span, mid-video | 4s | 20s | 5s | 1 | 67 |
| Mid-video span | 10s | 20s | 11s | 1 | 104 |
| Span starting at 0:00 | 10s | 20s | 10s | 1 | 85 |
| Span ending at the video's end | 10s | 20s | 10s | 1 | 85 |
| Longer mid-video span | 20s | 40s | 22s | 2 | 185 |

The two 10-second spans on the same 20-second source land on different totals depending on position: a mid-video span keeps both a head and a tail reference (**104** credits), while a span flush against either end of the source loses one of those two references and reserves less (**85** credits either way — starting at `0:00` or ending at the source's own end cost the same). The 20-second span is long enough that its bridge, plus the stitch buffer, exceeds a single generation call's cap, so it chains across 2 segments — the extra chain-join seconds are part of why it isn't simply double the 10-second mid-video row.

## Honesty

- **Output frame rate is 24 fps.**
- **Kept footage is re-encoded, not stream-copied.** The untouched footage before and after the replaced span is cut with a high-quality encode (crf 18) and joined to the generated bridge with the same splice encode the platform's other stitch operations use — the delivered file is a single consistently-encoded video, not a byte-identical copy of the original spliced with new content.
- **Free-tier output carries the standard watermark**, the same as every other video-output node.
- **Any failure or cancellation is a full refund, including the flat fee.** Unlike Generate Video Pro's multi-segment runs (which can keep and bill for whatever completed before an interruption), Edit Video Pro either delivers the fully stitched result or refunds the entire reservation — there's no partial delivery of a half-replaced span.
- **Runs survive worker restarts.** Progress checkpoints after every bridge segment; if the processing worker restarts mid-run (for example during a platform deploy), the run resumes automatically from the checkpoint instead of failing — already-generated bridge segments are never re-generated. Only a run that stalls again after its automatic resume is failed and refunded.

## Best practices

- Leave at least ~2 seconds of original footage on each side of the span you want the bridge to reference — a span that starts at `0:00` or ends at the source's own end (or leaves less than ~2 seconds on a side) loses that side's continuity anchor.
- Keep the prompt focused on what happens inside the replaced window; the kept footage on either side is untouched and doesn't need describing.
- For a fix shorter than 4 seconds, or one that only needs to touch audio or video (not both), use [Video Retake](./video-retake.md) instead — it supports windows as short as 2 seconds and can replace audio-only, video-only, or both, on a different provider (LTX 2.3 Pro).
- For a full-clip regeneration rather than a partial replace, use [Generate Video Pro](./generate-video-pro.md) (long-form) or [Generate Video](./generate-video.md) (single-shot).

## See also

- [Generate Video Pro](./generate-video-pro.md) — long-form, whole-clip generation on the same Seedance 2 family; shares the segmentation/stitch mechanism Edit Video Pro uses for its bridge.
- [Generate Video](./generate-video.md) — single-shot generation, any provider.
- [Video Retake](./video-retake.md) — shorter (min 2s), audio-or-video-only partial replace via LTX 2.3 Pro.
- [Extend Video](./extend-video.md) — append new footage to a clip instead of replacing an internal span.
