在 Amazon SageMaker AI 上部署 SeedVR2 实现超分辨率 | 人工智能

AWS ML Blog 2026-06-26T09:28:37.066465

在 Amazon SageMaker AI 上部署 SeedVR2 实现超分辨率 | 人工智能

作者:Nick Biso, Amit Kumar Basu, Justin Kuskowski, Maria Masood, Prithiviraj Jothikumar, 和 Venkatesan Govindan
发布于 2026年6月25日

随着显示技术向更高分辨率发展,许多组织面临一个共同的挑战:其现有的视频库包含较低分辨率的内容,这些内容在现代高清显示器上显得像素化或模糊。传统的视频升频方法在处理大规模视频集合时,常常受限于计算能力、质量不一致和可扩展性问题。许多现有解决方案也缺乏恢复精细细节、锐化边缘和减少噪点伪影所需的技术。

SeedVR2 是由字节跳动 Seed 团队开发的开源视频修复模型。在 Amazon SageMaker AI 上运行 SeedVR2,通过提供用于升频和视频质量增强(也称为超分辨率)的可扩展解决方案,解决了这些挑战。该方法逐帧分析视觉信息以恢复细节并提升视频质量,因此您无需重新购买更高分辨率的内容。借助 SageMaker 托管基础设施,您可以在保持成本效益和性能的同时,大规模处理视频集合。

在本文中,我们演示了如何在 SageMaker AI 上使用 SeedVR2 实现视频升频。我们将介绍解决方案架构,逐步讲解部署步骤,并展示性能对比,突出显示您可以实现的质量改进和处理效率。通过本文,您将掌握实施此超分辨率解决方案所需的实践知识。

用例

视频升频在众多行业中有许多应用。档案馆、博物馆和广播机构可以以更高分辨率修复和数字化历史影像。这保护了文化遗产,并使其适用于现代观看服务。流媒体服务可以将较老的电视节目和电影升频到 4K 或更高分辨率。这提升了订阅者体验,而无需对庞大的内容库进行完整的重新母带处理。

一个新兴且有价值的应用是升频 AI 生成的视频,这些视频通常因生成模型的计算强度而起始于较低分辨率。通过将专门的升频算法应用于这些合成视频,创作者可以将计算高效的粗糙草稿转化为精良的高分辨率最终产品。这避免了直接以高分辨率生成所需的高得多的处理要求。结果是一个两阶段的工作流:先在较低分辨率下快速原型化想法,然后再进行增强。这种方法减少了 AI 视频制作所需的时间和计算资源,同时保持了符合现代显示标准的视觉质量。

解决方案架构

该解决方案使用 AWS Cloud Development Kit (AWS CDK) 定义的三层 AWS 架构,作为基础设施即代码。SecurityStack 通过 Amazon Virtual Private Cloud (Amazon VPC) 配置、具有最低权限访问的 AWS Identity and Access Management (AWS IAM) 角色以及 AWS Key Management Service (AWS KMS) 加密密钥来建立基础。该堆栈创建了安全边界,将视频处理工作负载隔离在私有子网内,同时通过 VPC 端点保持对 AWS 服务的安全访问。

三层解决方案架构,展示了安全堆栈、数据存储堆栈以及连接 Lambda、SageMaker AI 和 S3 存储桶的处理流水线

DataStack 使用 Amazon Simple Storage Service (Amazon S3) 存储桶实现存储层,并对输入和输出视频文件启用服务器端加密。输入存储桶存储原始视频,输出存储桶存储升频后的视频。两个存储桶都实现了对象管理的版本控制和生命周期策略。

核心处理流水线通过一个 AWS Lambda 函数运行,该函数启动 Amazon SageMaker AI 处理作业。该作业使用运行自定义 Docker 容器的 ml.g5.4xlarge 实例。此容器打包了 SeedVR2 模型(针对 ComfyUI),并提供高质量视频升频功能,具有可配置的分辨率和批处理参数。该解决方案使用 ComfyUI 作为推理框架来运行 SeedVR2,后者提供了硬件优化的执行。

处理工作流从你上传视频到输入S3存储桶开始。随后,Lambda 函数会创建一个 SageMaker 处理任务,该任务从 Amazon Elastic Container Registry (Amazon ECR) 拉取自定義容器,挂载输入和输出 S3 存储桶,并在支持 GPU 的基础设施上运行视频放大算法。处理后的视频会保存到输出存储桶。Amazon CloudWatch 提供日志记录,用于监控和排除整个管道的故障。

SeedVR2 数据流

下图展示了解决方案中的数据流向。

数据流示意图,展示原始视频从 S3 输入存储桶通过 Lambda 触发的 SageMaker 处理任务(在 GPU 实例上运行)流向 S3 输出存储桶

处理工作流从你将原始视频上传到 S3 输入存储桶开始。然后触发 Lambda 函数,该函数创建一个带有唯一时间戳名称的 SageMaker 处理任务。SageMaker 启动一个 ml.g5.4xlarge GPU 实例,从 Amazon ECR 拉取 SeedVR2 容器,并挂载 S3 输入存储桶以读取视频文件进行处理。SeedVR2 模型在 GPU 上放大视频,并将处理后的输出写入 S3 输出存储桶。随后实例终止。你可以从输出存储桶中检索放大后的视频。

部署步骤

前提条件

开始之前,请确保已安装并配置以下工具和资源:

步骤 1:克隆项目并设置环境

克隆仓库并创建环境配置文件:

git clone https://github.com/aws-samples/sample-sagemaker-video-upscaler.git
cd sample-sagemaker-video-upscaler
cp .env.example .env

使用你的 AWS 账户详细信息编辑 .env 文件:

AWS_ACCOUNT_ID=<AWS 账户 ID>
REGION=<AWS 区域>

步骤 2:安装依赖并引导 AWS CDK

使用 uv(一个快速的 Python 包管理器)安装依赖,并创建虚拟环境:

curl -LsSf https://astral.sh/uv/install.sh | sh
uv venv --python 3.13 and source .venv/bin/activate
uv sync

在你的 AWS 账户中引导 AWS CDK。这是一次性设置步骤。如果遇到权限错误,请使用 aws sts get-caller-identity 验证你的凭证。

cdk bootstrap aws://<AWS_ACCOUNT_ID>/<REGION>

步骤 3:向 Amazon ECR 进行身份验证

使用 us-east-1 区域的 AWS Deep Learning Container Amazon ECR 注册表对 Docker 进行身份验证。这是为了在本地 Docker 构建期间拉取 PyTorch 基础镜像所必需的,无论你的部署区域在哪里。如果 Docker 构建失败,请检查你的 Amazon ECR 身份验证,并运行 docker system prune -a 清除缓存的镜像。

aws ecr get-login-password --region us-east-1 | \
docker login --username AWS --password-stdin \
763104351884.dkr.ecr.us-east-1.amazonaws.com

步骤 4:部署基础设施

使用单个命令部署整个基础设施。这将创建你的 VPC、S3 存储桶、Lambda 函数、SageMaker 处理任务定义以及 Amazon ECR 仓库。根据你的计算和网络速度,部署需要 15–20 分钟完成。

cdk deploy --all --require-approval never

步骤 5:测试管道

将测试视频上传到输入 S3 存储桶:

aws s3 cp your-video.mp4 s3://<account-id>-<region>-datastack-input-bucket/

触发 Lambda 函数以启动处理任务:

aws lambda invoke \
--function-name SeedVrStack-ProcessingJob-Trigger-SeedVr-trigger-Lambda \
--payload '{}' \
output.json

通过 Amazon CloudWatch Logs 监控 Lambda 执行过程,通过 SageMaker 控制台监控处理任务状态,通过 S3 控制台查看增强后的视频输出。如果处理任务失败,请查看 /aws/sagemaker/ProcessingJobs 下的 CloudWatch 日志。同时验证输出存储桶中是否包含你的放大视频文件。

性能调优

你可以在 config/config.yaml 中自定义处理参数:

InstanceType: ml.g5.4xlarge # 最低配置
resolution: "540" # 输出质量
batch_size: "81" # 处理效率
model: "seedvr2_ema_3b_fp8_e4m3fn.safetensors"

有关完整模型列表,请参阅 Hugging Face 网站上的 SeedVR2 ComfyUI 模型

成本管理

ml.g5.4xlarge 实例每小时成本约为 1.20 美元(截至撰写本文时,取决于你的区域),你只需为实例运行时间付费。对于大多数使用场景,S3 存储成本非常低。

扩展和更多

此流水线可自动处理从单个视频到批量处理的所有任务。对于更大规模的数据集,可考虑通过修改 boto3 调用 create_processing_job 中的 S3DataDistributionTypeShardedByS3Key,使用多个并行实例。详见 ProcessingS3Input API 参考文档

SeedVR2 的工作原理

SeedVR2 是一种视频恢复模型,它通过称为扩散对抗后训练(APT)的流程将扩散模型和生成对抗网络(GAN)结合起来。其核心技术利用 AI 重建缺失的细节,并构建在拥有 160 亿参数的 GAN 架构之上。系统通过两阶段 APT 流程运行,包括:将 64 步压缩至 1 步的渐进式蒸馏,以及从真实高清视频中学习的实数据训练。该架构使用 Swin Transformer 实现自适应窗口注意力,并集成了多项保护机制,包括相对配对 GAN(RpGAN)损失、R1/R2 正则化和特征匹配损失。与常规 GAN 类似,RpGAN 无法保证收敛到全局最小值。但 R1 和 R2 正则化的组合提供了强大的稳定性和模式覆盖能力。该模型的关键创新在于将扩散模型的可靠性同 GAN 的高效性相结合,使其能够在动态适应目标分辨率的同时处理完整帧。

SeedVR2 两阶段扩散对抗后训练架构示意图,结合了扩散模型与 GAN

示例结果

通过直接对比最能理解视频超分辨率的效果。以下三个示例展示了从原始素材到不同超分方法下的画质提升过程。

原始视频

这里展示的原始素材是一段 240p 分辨率的视频片段。注意明显的像素化,尤其在边缘处,以及整体缺乏细节和清晰度。这在鸟类、植物和花生的纹理中尤为突出。低分辨率导致画面模糊,在现代高分辨率显示器上更加明显。

原始 240p 视频片段

双三次算法超分

使用传统双三次超分达到 540p 分辨率时,与原始素材相比整体锐度略有提升。但这种数学插值方法的局限性也随之显现。图像变大了,但仍存在明显的伪影,例如纹理平滑。该算法难以重构真实的细节,而是产生了一些看起来不太自然的结果,缺乏高分辨率素材的自然特征。

双三次超分后的 540p 视频

SeedVR2 超分

SeedVR2 超分结果在将分辨率提升至 540p 的同时,视觉质量显著提高。AI 驱动的增强重构了精细的细节,同时保持了自然的纹理。注意鸟类、植物、花生等元素的纹理清晰度得到了改善。处理后的素材呈现出更接近电影画质的质感,色彩一致性和边缘清晰度更佳。

SeedVR2 超分后的 540p 视频

清理资源

为避免产生额外费用,请按以下步骤删除所创建的资源。

第 1 步:清空 S3 存储桶

删除输入和输出存储桶中的所有对象:

aws s3 rm s3://<seedvr-input-bucket> --recursive
aws s3 rm s3://<seedvr-output-bucket> --recursive

第 2 步:销毁 AWS CDK 堆栈

拆除所有已部署的基础设施:

cdk destroy --all --force

第 3 步:清理本地文件

从本地环境中移除 CDK 构建产物和 Python 缓存文件:

rm -rf cdk.out/ .cdk.staging/
find . -type d -name "__pycache__" -delete

第 4 步:验证清理结果

确认所有资源已被移除:

aws cloudformation list-stacks --stack-status-filter DELETE_COMPLETE
aws s3 ls | grep seedvr
aws sagemaker list-processing-jobs --max-results 5

结论

在本文中,我们展示了如何在 Amazon SageMaker AI 上部署 SeedVR2,以实现可扩展的视频增强。通过将 SeedVR2 的 AI 驱动超分与 AWS 云基础设施相结合,该解决方案提供了一种经济高效的方法来提升视频质量,并可大规模部署。按需架构支持高效的资源利用,自动化工作流减少了人工干预。这使得各类组织都能轻松获得高质量的视频增强能力。

通过部署SeedVR2到Amazon SageMaker AI实现超分辨率(Super Resolution) | 人工智能

随着视频内容的持续增长和显示技术的进步,对高效放大解决方案的需求也在增加。本实现展示了云架构如何改善对高级视频处理的访问。借助它,您可以在无需大量基础设施投资的情况下满足日益提高的质量期望。

此解决方案为您提供了一个平衡性能、成本和运营效率的框架。详细的部署步骤帮助您在保持安全性和可扩展性最佳实践的同时,快速开始使用这些功能。

要开始使用,请在GitHub网站上探索sample-sagemaker-video-upscaler repository并根据您的用例部署该解决方案。您也可以为项目做出贡献。

查看原文