ratio must be adaptive for frame-pinned clips — the current guidance breaks seams above 480p
Summary. The skill tells you to always pass ratio explicitly. For the chained
first/last-frame technique the skill is built around, that instruction is wrong: it
makes Seedance refit the pinned frame instead of reproducing it, and the error
compounds down the chain.
From SKILL.md (Monid backend, and repeated in Gotchas):
Pass ratio explicitly (16:9, or 9:16 for the mobile chain) — the adaptive
default follows the input image's aspect instead.
Monid clip wrong aspect → the ratio default is adaptive and follows the input
image… Pass --ratio … explicitly on every chained clip.
That is right for text-to-video. It is the opposite of what frame-pinned generation
needs.
Measured
Same leg, same prompt, same frames; only ratio changed. Frame 0 of the output
compared against the pinned first_frame:
| resolution |
ratio |
frame-0 match |
| 480p |
16:9 |
33.7 dB |
| 720p |
16:9 |
16.0 dB — a pure ~2% zoom, no translation |
| 1080p |
16:9 |
16.1 dB — same 2% zoom |
| 1080p |
adaptive |
37.1 dB |
Confirmed across a full six-station film: mean seam 36.2 dB at 1080p with
adaptive, no correction applied, no re-rolls. The same chain at 480p measured
33.7 dB. Provider: Monid bytedance /v1/video/seedance-2.0, 2026-08.
Why 480p looks like it works
At 480p the model returns 864×496 — not 16:9. It is ignoring the requested ratio
at that tier, so the frame passes through untouched. That makes 480p appear to be the
only reliable resolution and sends you looking for a resolution bug. It isn't one.
Dead ends, so nobody repeats them
Diagnosing this took a good many wasted re-renders. Three encoder-side corrections
were tried and all scored worse than an uncorrected clean render:
- translation-only realignment — wrong transform; the error is scale, not shift
- shrink-and-pad — 27.0 dB mean, plus a cream border that grows down the chain
- crop-and-zoom — 25.8 dB mean
The 2% error compounds ~10% across six legs, so any cumulative correction also
progressively resamples the footage — losing the sharpness the higher resolution was
for. The fix has to be at render time.
Third-party docs agree, e.g. Runware: "the output size comes from the first frame";
Pixazo: "for first/last-frame generation, ratio must be adaptive". Monid's own
Seedance 2.5 notes say editing/extension require adaptive.
Suggested change
Qualify the existing rule rather than replace it:
Pass ratio explicitly for text-to-video. For frame-pinned clips (anything with
first_frame/last_frame — i.e. every chained leg and connector) pass
ratio: "adaptive": a forced ratio makes the model refit the pinned frame (~2% zoom)
and the error compounds along the chain. 480p masks this because it ignores the
ratio and returns 864×496.
Worth a line in Gotchas too, since the symptom presents as "seams only lock at 480p".
Happy to open a PR if useful.
ratiomust beadaptivefor frame-pinned clips — the current guidance breaks seams above 480pSummary. The skill tells you to always pass
ratioexplicitly. For the chainedfirst/last-frame technique the skill is built around, that instruction is wrong: it
makes Seedance refit the pinned frame instead of reproducing it, and the error
compounds down the chain.
From SKILL.md (Monid backend, and repeated in Gotchas):
That is right for text-to-video. It is the opposite of what frame-pinned generation
needs.
Measured
Same leg, same prompt, same frames; only
ratiochanged. Frame 0 of the outputcompared against the pinned
first_frame:16:916:916:9adaptiveConfirmed across a full six-station film: mean seam 36.2 dB at 1080p with
adaptive, no correction applied, no re-rolls. The same chain at 480p measured33.7 dB. Provider: Monid
bytedance /v1/video/seedance-2.0, 2026-08.Why 480p looks like it works
At 480p the model returns 864×496 — not 16:9. It is ignoring the requested ratio
at that tier, so the frame passes through untouched. That makes 480p appear to be the
only reliable resolution and sends you looking for a resolution bug. It isn't one.
Dead ends, so nobody repeats them
Diagnosing this took a good many wasted re-renders. Three encoder-side corrections
were tried and all scored worse than an uncorrected clean render:
The 2% error compounds ~10% across six legs, so any cumulative correction also
progressively resamples the footage — losing the sharpness the higher resolution was
for. The fix has to be at render time.
Third-party docs agree, e.g. Runware: "the output size comes from the first frame";
Pixazo: "for first/last-frame generation,
ratiomust beadaptive". Monid's ownSeedance 2.5 notes say editing/extension require
adaptive.Suggested change
Qualify the existing rule rather than replace it:
Worth a line in Gotchas too, since the symptom presents as "seams only lock at 480p".
Happy to open a PR if useful.