38 lines
1.5 KiB
Python
38 lines
1.5 KiB
Python
#
|
|
# Copyright (c) Alibaba, Inc. and its affiliates.
|
|
# SPDX-FileCopyrightText: Copyright (c) 1993-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
#
|
|
|
|
import torch
|
|
|
|
|
|
# Not a contribution
|
|
# Changes made by NVIDIA CORPORATION & AFFILIATES enabling tensor2vid or otherwise documented as
|
|
# NVIDIA-proprietary are not a contribution and subject to the terms and conditions at the top of the file
|
|
def tensor2vid(video: torch.Tensor, processor, output_type="np"):
|
|
# Based on:
|
|
# https://github.com/modelscope/modelscope/blob/1509fdb973e5871f37148a4b5e5964cafd43e64d/modelscope/pipelines/multi_modal/text_to_video_synthesis_pipeline.py#L78
|
|
|
|
batch_size, channels, num_frames, height, width = video.shape
|
|
outputs = []
|
|
for batch_idx in range(batch_size):
|
|
batch_vid = video[batch_idx].permute(1, 0, 2, 3)
|
|
batch_output = processor.postprocess(batch_vid, output_type)
|
|
|
|
outputs.append(batch_output)
|
|
|
|
return outputs
|