/ Модель

Характеристики

Лицензия
MIT
Библиотека
diffusers
Опубликована
8 апр 2024

vidxtend

Генерация видеоТекст → видео3 профессии

VidXTend — конвейер Diffusers для продолжения коротких текстовых анимаций добавлением кадров к видео.

98скачиваний за 30 дней3лайкавеса обновлены17 апр 2025

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

VidXTend — выделенный и облегчённый конвейер для второго этапа StreamingT2V, опубликованный пользователем benjamin-paine. Он предназначен для продолжения короткой анимации, созданной из текстового запроса: модель дополняет исходный клип на 8 кадров за шаг, продолжая последовательность согласованно и динамично.

Заявленный сценарий — расширение анимаций из 16 кадров размером 256 × 256 пикселей, добавляя примерно одну секунду видео при частоте 8 кадров в секунду. Конвейер распространяется для библиотеки Diffusers в формате safetensors и использует задачу text-to-video. Лицензия репозитория — MIT.

Для работы требуется пакет VidXTend; README предупреждает, что без установки версии PyTorch с поддержкой CUDA выполнение может идти только на CPU. Сведения о языках текстовых запросов и ограничениях по качеству в карточке не приведены.

Сценарии применения

  • продление анимации, созданной по текстовому описанию
  • добавление следующего фрагмента к видео из 16 кадров
  • пошаговая генерация более длинного видео из короткой анимации

Ограничения

Заявленная конфигурация ограничена продолжением анимаций 256 × 256 пикселей с шагом в 8 кадров при 8 кадрах в секунду. Без PyTorch с поддержкой CUDA выполнение может идти только на CPU; языки текстовых запросов в карточке не указаны.

Для каких профессий подходит3

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

This repository contains a pruned and isolated pipeline for Stage 2 of StreamingT2V, dubbed "VidXTend."

This model's primary purpose is extending 16-frame 256px x 256x animations by 8 frames at a time (one second at 8fps.)

@article{henschel2024streamingt2v,
  title={StreamingT2V: Consistent, Dynamic, and Extendable Long Video Generation from Text},
  author={Henschel, Roberto and Khachatryan, Levon and Hayrapetyan, Daniil and Poghosyan, Hayk and Tadevosyan, Vahram and Wang, Zhangyang and Navasardyan, Shant and Shi, Humphrey},
  journal={arXiv preprint arXiv:2403.14773},
  year={2024}
}

Code: https://github.com/Picsart-AI-Research/StreamingT2V

Usage

Installation

First, install the VidXTend package into your python environment. If you're creating a new environment for VidXTend, be sure you also specify the version of torch you want with CUDA support, or else this will try to run only on CPU.

pip install git+https://github.com/painebenjamin/vidxtend.git

Command-Line

A command-line utility vidxtend is installed with the package.

Usage: vidxtend [OPTIONS] VIDEO PROMPT

  Run VidXtend on a video file, concatenating the generated frames to the end
  of the video.

Options:
  -fps, --frame-rate INTEGER      Video FPS. Will default to the input FPS.
  -s, --seconds FLOAT             The total number of seconds to add to the
                                  video. Multiply this number by frame rate to
                                  determine total number of new frames
                                  generated.  [default: 1.0]
  -np, --negative-prompt TEXT     Negative prompt for the diffusion process.
  -cfg, --guidance-scale FLOAT    Guidance scale for the diffusion process.
                                  [default: 7.5]
  -ns, --num-inference-steps INTEGER
                                  Number of diffusion steps.  [default: 50]
  -r, --seed INTEGER              Random seed.
  -m, --model TEXT                HuggingFace model name.
  -nh, --no-half                  Do not use half precision.
  -no, --no-offload               Do not offload to the CPU to preserve GPU
                                  memory.
  -ns, --no-slicing               Do not use VAE slicing.
  -g, --gpu-id INTEGER            GPU ID to use.
  -sf, --model-single-file        Download and use a single file instead of a
                                  directory.
  -cf, --config-file TEXT         Config file to use when using the model-
                                  single-file option. Accepts a path or a
                                  filename in the same directory as the single
                                  file. Will download from the repository
                                  passed in the model option if not provided.
                                  [default: config.json]
  -mf, --model-filename TEXT      The model file to download when using the
                                  model-single-file option.  [default:
                                  vidxtend.safetensors]
  -rs, --remote-subfolder TEXT    Remote subfolder to download from when using
                                  the model-single-file option.
  -cd, --cache-dir DIRECTORY      Cache directory to download to. Default uses
                                  the huggingface cache.
  -o, --output FILE               Output file.  [default: output.mp4]
  -f, --fit [actual|cover|contain|stretch]
                                  Image fit mode.  [default: cover]
  -a, --anchor [top-left|top-center|top-right|center-left|center-center|center-right|bottom-left|bottom-center|bottom-right]
                                  Image anchor point.  [default: top-left]
  --help                          Show this message and exit.

Python

You can create the pipeline, automatically pulling the weights from this repository, either as individual models:

from vidxtend import VidXTendPipeline
pipeline = VidXTendPipeline.from_pretrained(
  "benjamin-paine/vidxtend",
  torch_dtype=torch.float16,
  variant="fp16",
)

Or, as a single file:

from vidxtend import VidXTendPipeline
pipeline = VidXTendPipeline.from_single_file(
  "benjamin-paine/vidxtend",
  torch_dtype=torch.float16,
  variant="fp16",
)

Use these methods to improve performance:

pipeline.enable_model_cpu_offload()
pipeline.enable_vae_slicing()
pipeline.set_use_memory_efficient_attention_xformers()

Usage is as follows:

# Assume images is a list of PIL Images

new_frames = pipeline(
    prompt=prompt,
    negative_prompt=None, # Optionally use negative prompt
    image=images[-8:], # Use final 8 frames of video
    input_frames_conditioning=images[:1], # Use first frame of video
    eta=1.0,
    guidance_scale=7.5,
    output_type="pil"
).frames[8:] # Remove the first 8 frames from the output as they were used as guide for final 8

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · diffusers

Нельзя запустить

Пайплайн VidXTendPipeline не входит в diffusers 0.41.0.dev0: нужен custom_pipeline.

Ревизия весов
f571250

0 моделей