StreamingSVD เป็นเทคนิคการถดถอยอัตโนมัติขั้นสูงสำหรับการสร้างข้อความเป็นวิดีโอและรูปภาพเป็นวิดีโอ สร้างวิดีโอคุณภาพสูงขนาดยาวพร้อมไดนามิกของการเคลื่อนไหวที่สมบูรณ์ เปลี่ยน SVD ให้เป็นโปรแกรมสร้างวิดีโอขนาดยาว วิธีการของเราช่วยให้มั่นใจได้ถึงความสอดคล้องชั่วคราวตลอดทั้งวิดีโอ จัดเรียงอย่างใกล้ชิดกับข้อความ/รูปภาพที่ป้อน และรักษาคุณภาพของภาพระดับเฟรมในระดับสูง การสาธิตของเราประกอบด้วยตัวอย่างวิดีโอที่ประสบความสำเร็จซึ่งมีขนาดสูงสุด 200 เฟรม เป็นระยะเวลา 8 วินาที และสามารถขยายระยะเวลาให้นานขึ้นได้
ประสิทธิผลของแนวทางการถดถอยอัตโนมัติที่ซ่อนอยู่นั้นไม่ได้จำกัดอยู่ที่โมเดลพื้นฐานเฉพาะที่ใช้ ซึ่งบ่งชี้ว่าการปรับปรุงโมเดลพื้นฐานสามารถให้วิดีโอคุณภาพสูงขึ้นได้ StreamingSVD เป็นส่วนหนึ่งของกลุ่มผลิตภัณฑ์ StreamingT2V การใช้งานที่ประสบความสำเร็จอีกอย่างหนึ่งคือ StreamingModelscope ซึ่งเปลี่ยน Modelscope ให้เป็นเครื่องมือสร้างวิดีโอขนาดยาว วิธีการนี้ช่วยให้สามารถสร้างวิดีโอที่มีความยาวสูงสุด 2 นาที โดยมีปริมาณการเคลื่อนไหวสูงและไม่มีการหยุดนิ่ง
ผลลัพธ์โดยละเอียดสามารถพบได้ในหน้าโครงการ
รหัสของเราต้องการ VRAM ขนาด 60 GB ในการตั้งค่าเริ่มต้น (เมื่อสร้าง 200 เฟรม) พยายามลดจำนวนเฟรมหรือเปิดใช้งานการผสมแบบสุ่มเพื่อลดพื้นที่หน่วยความจำ รหัสของเราได้รับการทดสอบบน linux โดยใช้ Python 3.9 และ CUDA 11.7
git clone https://github.com/Picsart-AI-Research/StreamingT2V.git
cd StreamingT2V/
virtualenv -p python3.9 venv
source venv/bin/activate
pip install --upgrade pip
pip install -r requirements.txt
หากต้องการรันไปป์ไลน์ทั้งหมดซึ่งประกอบด้วยภาพต่อวิดีโอ การปรับปรุงวิดีโอ (รวมถึงการผสมผสานแบบสุ่มของเรา) และการแก้ไขเฟรมวิดีโอทำได้จากโฟลเดอร์ StreamingT2V
:
cd code
python inference_i2v.py --input $INPUT --output $OUTPUT
$INPUT
ต้องเป็นพาธไปยังไฟล์รูปภาพหรือโฟลเดอร์ที่มีรูปภาพ แต่ละภาพคาดว่าจะมีอัตราส่วน 16:9
$OUTPUT
ต้องเป็นเส้นทางไปยังโฟลเดอร์ที่จะจัดเก็บผลลัพธ์
เพิ่ม --num_frames $FRAMES
ในการเรียกเพื่อกำหนดจำนวนเฟรมที่จะสร้าง ค่าเริ่มต้น: $FRAMES=200
เพิ่ม --use_randomized_blending $RB
ในการเรียกเพื่อกำหนดว่าจะใช้การผสมแบบสุ่มหรือไม่ ค่าเริ่มต้น: $RB=False
เมื่อใช้การผสมแบบสุ่ม ค่าที่แนะนำสำหรับพารามิเตอร์ chunk_size
และ overlap_size
คือ --chunk_size 38
และ --overlap_size 12
ตามลำดับ โปรดทราบว่าการผสมแบบสุ่มจะทำให้กระบวนการสร้างช้าลง ดังนั้นควรพยายามหลีกเลี่ยงหากคุณมีหน่วยความจำ GPU เพียงพอ
เพิ่ม --out_fps $FPS
ในการโทรเพื่อกำหนด FPS ของวิดีโอเอาต์พุต ค่าเริ่มต้น: $FPS=24
ข้อผิดพลาด Motion Aware Warp ที่เราเสนอ (ดูเอกสารของเรา) มีให้ไว้ที่นี่
โค้ดสำหรับโมเดล StreamingT2V ที่ใช้ Modelscope ตามที่อธิบายไว้ในรายงานของเรา สามารถพบได้ที่นี่
รหัสและโมเดลของเราเผยแพร่ภายใต้ใบอนุญาต MIT
เรามีรหัสและน้ำหนักโมเดลของ SVD, EMA-VFI และ I2VGen-XL โปรดดูใบอนุญาตดั้งเดิมเกี่ยวกับรหัสและน้ำหนัก เนื่องจากการพึ่งพาเหล่านี้ StreamingSVD จึงสามารถใช้เพื่อวัตถุประสงค์ในการวิจัยที่ไม่ใช่เชิงพาณิชย์เท่านั้น
หากคุณใช้ผลงานของเราในการวิจัยของคุณ โปรดอ้างอิงสิ่งพิมพ์ของเรา:
@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}
}