Allgemeine Einführung
Open-Sora ist ein Open-Source-Projekt, das es jedem ermöglichen soll, auf effiziente Weise qualitativ hochwertige Videos zu erstellen. Es wurde vom hpcaitech-Team entwickelt, um Werkzeuge zur Erzeugung von Videos aus Text oder Bildern bereitzustellen, die mehrere Auflösungen und Laufzeiten unterstützen. Das Projekt ist vollständig quelloffen, so dass die Modellgewichte, der Code und der Trainingsprozess öffentlich zugänglich sind und die Community zur Mitarbeit ermutigt wird. Die neueste Version, Open-Sora 2.0, ist in Bezug auf die Leistung nahe an den Spitzenmodellen der Branche, kostet nur 200.000 Dollar für das Training und erzeugt schnelles und hochwertiges Video. Benutzer können den Code kostenlos herunterladen, ihn lokal ausführen oder ihn über die Gradio-Schnittstelle von Hugging Face ausprobieren. Open-Sora ist für Kreative, Entwickler und Forscher gedacht und fördert die Popularität und Innovation bei der Videoerstellung, während es gleichzeitig ein kommerzielles Produkt darstellt:Video Ozean .
Funktionsliste
- Text-zu-Video-Generierung: Geben Sie eine Textbeschreibung ein, um ein Video zu generieren, das dem Inhalt entspricht.
- Bild-zu-Video-Generierung: Generieren Sie dynamische Videos auf der Grundlage eines einzigen Bildes.
- Videoverlängerung: Verlängert die Länge des Videos oder fügt Inhalte hinzu.
- Unterstützung mehrerer Auflösungen: Unterstützt eine Videoausgabe von 144p bis 768p.
- Flexible Dauer: Erstellen Sie Videos von 2 Sekunden bis 16 Sekunden.
- Verschiedene Bildformate: unterstützt 16:9, 9:16, 1:1 und mehr.
- Open-Source-Modelle und -Training: Bereitstellung von Modellgewichten und Trainingscode, Unterstützung der kundenspezifischen Entwicklung.
- Effiziente Inferenz: Optimierte Algorithmen reduzieren die Hardwareanforderungen und generieren Videos auf einem einzigen Grafikprozessor.
- Stichwortoptimierung: Unterstützung von GPT-4o, um die Stichworte zu verbessern und die Qualität der Generierung zu erhöhen.
- Motion Scoring: Passen Sie die Videodynamik durch Motion Scoring an.
Hilfe verwenden
Einbauverfahren
Um Open-Sora zu verwenden, müssen Benutzer ihre Python-Umgebung konfigurieren und Abhängigkeiten installieren. Im Folgenden werden die einzelnen Schritte beschrieben:
- Erstellen einer virtuellen Umgebung
Erstellen Sie eine virtuelle Umgebung mit Python 3.10, um Konflikte mit Abhängigkeiten zu vermeiden:conda create -n opensora python=3.10 conda activate opensora
- Klonen der Codebasis
Laden Sie das Open-Sora-Projekt von GitHub herunter:git clone https://github.com/hpcaitech/Open-Sora cd Open-Sora
- Installation von Abhängigkeiten
Stellen Sie sicher, dass die PyTorch-Version höher als 2.4.0 ist, indem Sie den folgenden Befehl ausführen:pip install -v .
Wenn ein Entwicklungsmodus erforderlich ist, verwenden Sie ihn:
pip install -v -e .
- Installation von Beschleunigungsbibliotheken
Open-Sora-Verwendungxformers
im Gesang antwortenflash-attn
Leistung steigern. Wird entsprechend der CUDA Version installiert:pip install xformers==0.0.27.post2 --index-url https://download.pytorch.org/whl/cu121 pip install flash-attn --no-build-isolation
Für schnellere Schlussfolgerungen, manuell kompilierte
flash-attention
::git clone https://github.com/Dao-AILab/flash-attention cd flash-attention/hopper python setup.py install
- Download Modellgewichte
Open-Sora 2.0 unterstützt die Erzeugung von Videos mit 256p und 768p, und die Modelle können von Hugging Face oder ModelScope heruntergeladen werden:pip install "huggingface_hub[cli]" huggingface-cli download hpcai-tech/Open-Sora-v2 --local-dir ./ckpts
oder ModelScope verwenden:
pip install modelscope modelscope download hpcai-tech/Open-Sora-v2 --local_dir ./ckpts
- Überprüfen der Installation
Prüfen Sie, ob die Umgebung normal ist:python -c "import opensora; print(opensora.__version__)"
Verwendung
Open-Sora unterstützt Text-zu-Video, Bild-zu-Video und viele andere Funktionen mit einfacher Bedienung. Im Folgenden finden Sie eine detaillierte Anleitung:
Text-zu-Video-Generierung
Open-Sora optimiert den Bild-zu-Video-Prozess, unterstützt aber auch die direkte Text-zu-Video-Erzeugung. Zur Verbesserung der Qualität wird eine Text-zu-Bild-zu-Video-Pipeline empfohlen.
- Vorbereiten von Stichwörtern
Bereiten Sie eine detaillierte Textbeschreibung vor, z. B. "Das Meer im Sturm, mit riesigen Wellen, die an die Felsen schlagen, und dunklen Wolken". Je spezifischer die Stichworte sind, desto besser sind die Ergebnisse. - Führen Sie den Befehl generate aus
Erzeugt ein 256x256 Video:torchrun --nproc_per_node 1 --standalone scripts/diffusion/inference.py configs/diffusion/inference/t2i2v_256px.py --save-dir samples --prompt "Stormy ocean with crashing waves"
Erzeugt ein 768x768-Video (erfordert mehrere GPUs):
torchrun --nproc_per_node 8 --standalone scripts/diffusion/inference.py configs/diffusion/inference/t2i2v_768px.py --save-dir samples --prompt "Stormy ocean with crashing waves"
- Anpassungsparameter
--aspect_ratio
Einstellen des Seitenverhältnisses, z. B.16:9
vielleicht1:1
.--num_frames
Anzahl der Bilder im Bereich 4k+1 (max. 129 Bilder) einstellen.--offload True
Aktivieren Sie die Speicheroptimierung für Low-End-Geräte.
- Ergebnisse anzeigen
Das erzeugte Video wird in der Dateisamples
Ordner im MP4-Format.
Bild-zu-Video-Generierung
- Vorbereiten von Referenzbildern
Laden Sie ein Bild hoch und speichern Sie es alsinput.png
. - Führen Sie den Befehl generate aus
Erzeugt ein 256p-Video:torchrun --nproc_per_node 1 --standalone scripts/diffusion/inference.py configs/diffusion/inference/256px.py --cond_type i2v_head --prompt "A serene forest with flowing river" --ref input.png
Erzeugt ein 768p-Video:
torchrun --nproc_per_node 8 --standalone scripts/diffusion/inference.py configs/diffusion/inference/768px.py --cond_type i2v_head --prompt "A serene forest with flowing river" --ref input.png
- Optimieren Sie dynamische Effekte
ausnutzen--motion-score
Passt den Grad der Bildschirmdynamik an. Der Standardwert ist 4. Beispiel:torchrun --nproc_per_node 1 --standalone scripts/diffusion/inference.py configs/diffusion/inference/256px.py --cond_type i2v_head --prompt "A running horse" --ref horse.png --motion-score 7
Stichwort Wortoptimierung
Open-Sora unterstützt die Verwendung von GPT-4o zur Optimierung von Stichwörtern und zur Verbesserung der Generierungsqualität:
- Legen Sie den OpenAI-API-Schlüssel fest:
export OPENAI_API_KEY=sk-xxxx
- Führen Sie den Befehl optimise aus:
torchrun --nproc_per_node 1 --standalone scripts/diffusion/inference.py configs/diffusion/inference/t2i2v_256px.py --save-dir samples --prompt "raining, sea" --refine-prompt True
Gradio Interface Betrieb
Open-Sora bietet eine interaktive Gradio-Schnittstelle:
- Startup-Schnittstelle:
python scripts/demo.py --model-type v2-768px
- Zugriff über einen Browser
http://localhost:7860
. - Geben Sie Stichworte ein oder laden Sie Bilder hoch, passen Sie Auflösung und Bildrate an und klicken Sie auf "Generieren", um das Video zu erstellen.
- Die Optimierungsaufforderung "Eingabeaufforderung verfeinern" kann aktiviert werden (erfordert OpenAI-API-Schlüssel).
Benutzerdefinierte Modellschulung
Benutzer können Modelle auf der Grundlage ihrer eigenen Datensätze trainieren:
- Bereiten Sie den Datensatz vor: eine CSV-Datei, die den Pfad und die Beschreibung des Videos enthält.
- Ändern Sie die Konfigurationsdatei:
configs/opensora-v2/train/stage1.py
legen Sie den Datenpfad fest. - Lauftraining:
torchrun --nproc_per_node 8 scripts/train.py configs/opensora-v2/train/stage1.py --data-path your_data.csv
rechnerische Effizienz
Open-Sora optimiert die Inferenz-Effizienz, und die Testergebnisse lauten wie folgt (H100 GPU, 50 Schritte des Sampling):
- 256x256: Einzelne GPU 60 Sekunden, 52,5 GB Speicher; 4 GPU 34 Sekunden, 44,3 GB Speicher.
- 768x768: 8 GPUs 276 Sekunden, 44,3 GB Videospeicher.
caveat
- Hardware-VoraussetzungEs wird ein NVIDIA H100 oder A100 mit mindestens 24 GB Videospeicher empfohlen. Niedrigere Auflösungen sind für Geräte der unteren Leistungsklasse verfügbar.
- Qualität der StichwörterDetaillierte Beschreibungen können die Videoergebnisse erheblich verbessern.
- LizenzenOpen-Sora verwendet die MIT-Lizenz, die die kommerzielle Nutzung unter bestimmten Bedingungen erlaubt.
Anwendungsszenario
- Erstellung kurzer Videos
Blogger können Open-Sora nutzen, um Werbevideos zu erstellen, wie z. B. "Lichter der Stadt bei Nacht", die sie auf Social-Media-Plattformen teilen können. - Pädagogische Animation
Die Lehrkräfte können Animationen erstellen, z. B. "Planeten drehen sich um die Sonne", um den Unterricht attraktiver zu gestalten. - Spiel-Szenen-Design
Die Entwickler erstellen auf der Grundlage von Concept Maps dynamische Szenen für Spielhintergründe oder Übergänge. - KI-Forschung
Forscher können den Modellcode ändern, um neue Algorithmen oder Datensätze zu testen und so die Videogenerierungstechniken zu verbessern.
QA
- Was ist die Leistung von Open-Sora 2.0?
In der VBench-Überprüfung werden Open-Sora 2.0 und OpenAI Sora Der Abstand verringert sich auf 0,691 TP3T, was nahe an der HunyuanVideo 11B und Step-Video 30B. - Welche Auflösungen und Laufzeiten werden unterstützt?
Unterstützt 144p bis 768p, Videodauer von 2 Sekunden bis 16 Sekunden und Seitenverhältnisse wie 16:9, 9:16 und mehr. - Wie kann die Qualität der Erzeugung optimiert werden?
Detaillierte Hinweise zur Anpassung verwendenmotion-score
(1-7), oder aktivieren Sie GPT-4o Optimize Prompt Words. - Kann ich sie kostenlos nutzen?
Open-Sora ist vollständig quelloffen, Modelle und Code sind unter der MIT-Lizenz frei verfügbar.