Skip to content

[Bug]: 首帧放大用插值,把 sprite 硬边糊成渐变后才喂给 i2v #542

Description

@johnnyzhang-eng

问题

_fit_first_frame 放大用 LANCZOS,把 sprite 的硬边糊成渐变,而这张图是 i2v 的输入。

同一函数、同一张双色硬边图,测成品里那条边的过渡带宽度:64×64 源(11.2× 放大)NEAREST 4px、LANCZOS 20px;128×128 源 4px 对 10px;256×256 源 4px 对 5px。倍率越大越严重,而小 sprite 正是 #509 点名的场景。

交付侧 _fit_to 的 docstring 已经写明这条规则(「序列帧是像素画,必须 NEAREST,插值会把硬边糊成灰边」),首帧这一侧与它不一致。

这条是 #511 引入的:当时按重抠图 IoU 配对实测选了 LANCZOS(+0.0043),但 IoU 量的是剪影恢复、不量清晰度,指标选错了。

范围

  • 放大用 NEAREST,缩小仍用 LANCZOS
  • 不改 JPEG 质量(那是色数爆炸的主因,但属另一件事)
  • 不改出口像素化开关

验收

小 sprite 放大后硬边过渡带 ≤8px;换回 LANCZOS 时用例失败。

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions