Исследователи из Пекинского университета, китайской компании Kuaishou Technology и Пекинского университета почты и коммуникации представили модель машинного обучения Pyramid Flow с открытым кодом. Она предназначена для генерации видео.
Нейросеть может генерировать 10-секундные видео с разрешением 768p и частотой кадров 24 FPS. Поддерживаются режимы text-to-video и image-to-video. Разработчики отмечают, что обучали модель на открытых датасетах в течение 20 тыс. GPU-часов. Для обучения использовали графические ускорители Nvidia A100.
Тесты разработчиков показывают, что Pyramid Flow превосходит имеющиеся открытые модели для генерации видео, включая Kling и Gen-3 Alpha.
Также команда проекта провела сравнительные тесты, в которых приняли участие более 20 человек. На графиках видно, что респонденты чаще отмечают плавность видео, сгенерированных с помощью Pyramid Flow.
Модели опубликованы на площадке Hugging Face, также на портале доступно демоприложение. Инструкции по запуску можно найти на GitHub.
Инференс модели в режиме text-to-video выглядит следующим образом:
prompt = «A movie trailer featuring the adventures of the 30 year old space man wearing a red wool knitted motorcycle helmet, blue sky, salt desert, cinematic style, shot on 35mm film, vivid colors» with torch.no_grad(), torch.cuda.amp.autocast(enabled=True, dtype=torch_dtype): frames = model.generate( prompt=prompt, num_inference_steps=[20, 20, 20], video_num_inference_steps=[10, 10, 10], height=768, width=1280, temp=16, # temp=16: 5s, temp=31: 10s guidance_scale=9.0, # The guidance for the first frame, set it to 7 for 384p variant video_guidance_scale=5.0, # The guidance for the other video latent output_type=»pil», save_memory=True, # If you have enough GPU memory, set it to `False` to improve vae decoding speed ) export_to_video(frames, «./text_to_video_sample.mp4», fps=24)
Инференс модели в режиме image-to-video:
image = Image.open(‘assets/the_great_wall.jpg’).convert(«RGB»).resize((1280, 768)) prompt = «FPV flying over the Great Wall» with torch.no_grad(), torch.cuda.amp.autocast(enabled=True, dtype=torch_dtype): frames = model.generate_i2v( prompt=prompt, input_image=image, num_inference_steps=[10, 10, 10], temp=16, video_guidance_scale=4.0, output_type=»pil», save_memory=True, # If you have enough GPU memory, set it to `False` to improve vae decoding speed ) export_to_video(frames, «./image_to_video_sample.mp4», fps=24)
Источник: habr.com