Index-AniSora ist ein von Bilibili entwickeltes und auf GitHub gehostetes Open-Source-Modell zur Erzeugung von Anime-Videos. Es verwendet CogVideoX-5B und Wan2.1-14B als Basismodell und unterstützt die Generierung verschiedener Videos im Anime-Stil, einschließlich Anime-Episoden, heimischer Original-Animation, Manga-Adaptionen, VTuber-Inhalten, Anime-PVs und Videos im Spoof-Stil. Das Projekt kombiniert die Ergebnisse der auf der IJCAI'25 angenommenen Arbeiten, stellt einen vollständigen Trainings- und Inferenzcode bereit und unterstützt die Rise 910B NPU-Hardware von Huawei.Index-AniSora implementiert Bild-zu-Video-Generierung, Frame-Interpolation und lokal geführte Animation mit einem hochqualitativen Datensatz von mehreren zehn Millionen und einem Raum-Zeit-Maskenmodul. Der Evaluierungsdatensatz enthält 948 animierte Videoclips, gepaart mit Qwen-VL2-generierten Texthinweisen, um eine präzise Ausrichtung des Textes auf den Videoinhalt zu gewährleisten. Das Projekt ist vollständig quelloffen, steht unter Apache 2.0-Lizenz und die Beteiligung der Gemeinschaft an der Entwicklung ist erwünscht.
Funktionsliste
- Unterstützung bei der Erstellung verschiedener Videos im Anime-Stil, die Anime-Episoden, Manga-Adaptionen, VTuber-Inhalte und mehr umfassen.
- Bietet eine Bild-zu-Video-Generierungsfunktion zur Erzeugung dynamischer Videos auf der Grundlage eines einzelnen Bildes.
- Unterstützung der Frame-Interpolation zur Erzeugung von Keyframes, Middleframes und Endframes, um die Animation flüssiger zu gestalten.
- Bietet eine lokalisierte, bildgesteuerte Animationsfunktion, mit der benutzerdefinierte Bereiche animiert werden können.
- Ein Evaluierungsdatensatz mit 948 animierten Videoclips, gepaart mit manuell korrigierten Texteinblendungen.
- Unterstützt die Rise 910B NPU von Huawei zur Optimierung der Trainings- und Inferenzleistung.
- Bereitstellung eines Reinforcement Learning Optimisation Framework (RLHF) zur Verbesserung der Qualität der Anime-Ausgabe.
- Veröffentlichen Sie den vollständigen Trainings- und Inferenzcode unter path
anisoraV1_train_npu
im Gesang antwortenanisoraV2_npu
. - Bietet durch Destillation beschleunigte Inferenztechniken, um die Rechenkosten zu senken und die Qualität der Generierung zu erhalten.
Hilfe verwenden
Einbauverfahren
Index-AniSora ist ein Open-Source-Projekt, das auf GitHub gehostet wird, und Benutzer müssen das Repository klonen und die Umgebung konfigurieren, um seine Funktionen zu nutzen. Nachfolgend finden Sie eine detaillierte Beschreibung der Installation und Verwendung:
- Klon-Lager
Führen Sie den folgenden Befehl in einem Terminal aus, um das Index-AniSora-Repository zu klonen:git clone https://github.com/bilibili/Index-anisora.git cd Index-anisora
- Umgebung Konfiguration
Das Projekt stützt sich auf die Python-Umgebung und ein spezielles Deep-Learning-Framework. Python 3.8 oder höher wird empfohlen. Installieren Sie die Abhängigkeiten:pip install -r requirements.txt
Stellen Sie sicher, dass PyTorch (das Rise NPUs oder GPUs unterstützt), CogVideoX und Wan2.1-Abhängigkeiten installiert sind. Wenn Sie die Rise 910B NPU von Huawei verwenden, müssen Sie das Rise-Entwicklungskit (z. B. CANN) installieren. Spezifische Installationsanweisungen finden Sie in der offiziellen Dokumentation oder in der Huawei Rise-Community.
- Download Modellgewichte
Benutzer müssen sich für AniSoraV1 oder AniSoraV2 Modellgewichte bewerben. Füllen Sie das offiziell bereitgestellte Antragsformular (PDF-Format) aus und senden Sie es an die E-Mail-Adresseyangsiqian@bilibili.com
vielleichtxubaohan@bilibili.com
. Nach der Überprüfung erhalten Sie den Download-Link für die Gewichte. Nach dem Herunterladen legen Sie die Gewichte-Datei in das angegebene Verzeichnis des Repositorys (z. B.anisoraV2_npu
). - Ausführen des Inferenzcodes
Das Projekt stellt den vollständigen Inferenzcode zur Verfügung, der sichanisoraV1_train_npu
vielleichtanisoraV2_npu
Verzeichnis. Führen Sie den Beispiel-Inferenzbefehl aus:python inference.py --model_path anisoraV2_npu --prompt "一个穿和服的少女在樱花树下跳舞" --output output_video.mp4
Parameter Beschreibung:
--model_path
: Gibt den Pfad der Modellgewichtung an.--prompt
Geben Sie eine Textaufforderung ein, die die gewünschte Animationsszene beschreibt.--output
Gibt den Pfad zur Ausgabedatei an.
- Ausbildungsmodelle
Wenn eine individuelle Schulung erforderlich ist, stellt das Projekt den Schulungscode (anisoraV1_train_npu
). Nachdem Sie den Datensatz vorbereitet haben, führen Sie das Trainingsskript aus:python train.py --data_path your_dataset --output_dir trained_model
Der Datensatz muss den Anforderungen des Projekts entsprechen, und es wird empfohlen, animierte Videoclips ähnlich dem Evaluierungsdatensatz mit Textaufforderungen zu verwenden. Das Training unterstützt Huawei Rise NPU und GPU.
Hauptfunktionen
- Bild-zu-Video-Generierung
Der Benutzer lädt ein statisches Bild hoch (z. B. eine Zeichnung einer Anime-Figur) und wird durch Text aufgefordert, ein animiertes Video zu erstellen. Beispiel: Eingabe des Bildes als "Ninja-Figur", Aufforderung als "Ninja kämpft im Wald", das Modell erzeugt die entsprechende Animation. Schritte:- Bereiten Sie die Bilddatei vor (z. B. im Format PNG/JPG).
- Schreiben Sie ausführliche Textanregungen, in denen Sie die Handlung, die Szene und den Stil beschreiben.
- Führt ein Inferenzskript aus, das den Bildpfad und die Eingabeaufforderungen angibt:
python inference.py --image_path input_image.png --prompt "忍者在森林中战斗" --output ninja_video.mp4
- Überprüfen Sie die generierten Videodateien und passen Sie die Cues an, um die Ergebnisse zu optimieren.
- Frame-Interpolation
Die Frame-Interpolationsfunktion wird verwendet, um Zwischenframes der Animation zu erzeugen, um die Glätte des Videos zu verbessern. Der Benutzer kann Schlüsselbilder (z. B. Start- und Endbild) vorgeben, und das Modell erzeugt automatisch Zwischenbilder für den Übergang. Arbeitsschritte:- Bereiten Sie Keyframe-Bilder vor, die im angegebenen Verzeichnis abgelegt werden sollen.
- Führen Sie das Skript zur Frame-Interpolation aus:
python frame_interpolation.py --keyframe_dir keyframes --output interpolated_video.mp4
- Überprüfen Sie das Ausgabevideo, um natürliche Übergänge zwischen den Bildern sicherzustellen.
- Lokale bildgeführte Animation
Der Benutzer kann bestimmte Bereiche des Bildes angeben, die animiert werden sollen. Zum Beispiel kann er den Hintergrund fixieren und nur der Figur erlauben, sich zu bewegen. Aktionsschritte:- Stellt Bild- und Maskendateien zur Verfügung (die Maske legt den Animationsbereich fest).
- Führen Sie das lokale Boot-Skript aus:
python local_guided_animation.py --image_path scene.png --mask_path mask.png --prompt "角色在背景前挥手" --output guided_video.mp4
- Überprüfen Sie die Ausgabe, um sicherzustellen, dass der animierte Bereich wie erwartet aussieht.
- Bewertung der Verwendung von Datensätzen
Das Projekt bietet einen Evaluierungsdatensatz von 948 animierten Videoclips zum Testen der Modellleistung. Die Nutzer müssen den Zugang zum Datensatz beantragen (wie bei der Beantragung der Modellgewichtung). Nach Erhalt des Datensatzes kann das Evaluierungsskript ausgeführt werden:python evaluate.py --dataset_path anisora_benchmark --model_path anisoraV2_npu
Die Bewertungsergebnisse umfassen Metriken wie Handlungskonsistenz und Stilkonsistenz, die für die Modelloptimierung anwendbar sind.
Featured Function Bedienung
- Verstärkungslernen für die Optimierung (RLHF)
AniSoraV1.0 führt das erste RLHF-Framework für die Anime-Videogenerierung ein, um die Qualität der Generierung zu verbessern. Benutzer können das Modell mit den mitgelieferten RL-Optimierungsskripten feinabstimmen:python rlhf_optimize.py --model_path anisoraV1_npu --data_path rlhf_data --output optimized_model
Die RLHF-Daten sollten selbst erstellt werden und es wird empfohlen, qualitativ hochwertige Anime-Videos und Bewertungen einzubeziehen.
- Huawei Rise NPU-Unterstützung
Das Projekt ist für die Rise 910B NPU von Huawei für Privatanwender optimiert. Stellen Sie sicher, dass Sie das NPU-Gerät angeben, wenn Sie nach der Installation des Rise Development Kit eine Inferenz oder ein Training durchführen:python inference.py --device npu --model_path anisoraV2_npu
Anwendungsszenario
- Produktion von kurzen Animationsfilmen
Schöpfer können Index-AniSora verwenden, um hochwertige Animationsclips zu erstellen. Geben Sie zum Beispiel ein Charakterdesign und die Beschreibung "Charakter läuft in einer futuristischen Stadt" ein, um einen kurzen Animationsfilm zu erstellen, der sich für eine unabhängige Animationsproduktion eignet. - VTuber Content-Erstellung
VTuber-Moderatoren können das Modell nutzen, um animierte Videos ihrer Avatare zu erstellen, z. B. ein "virtuelles Idol, das auf der Bühne auftritt", um schnell Live- oder kurze Videoinhalte zu erstellen. - Comic-Adaption Vorschau
Karikaturisten können statische Comic-Frames in bewegte Videos umwandeln, die Effekte der angepassten Animation in der Vorschau betrachten und den reibungslosen Ablauf des Storyboards überprüfen. - Bildung und Forschung
Forscher können Evaluierungsdatensätze und Trainingscodes verwenden, um Techniken zur Erzeugung von Anime-Videos zu untersuchen, Modelle zu optimieren oder neue Algorithmen zu entwickeln.
QA
- Wie erhalte ich Modellgewichte und Datensätze?
Füllen Sie das Bewerbungsformular (PDF-Format) aus und senden Sie es anyangsiqian@bilibili.com
vielleichtxubaohan@bilibili.com
. Sie erhalten den Download-Link nach der Überprüfung. - Unterstützt es Hardware, die nicht von Singularity stammt?
Ja, das Projekt unterstützt GPU-Umgebungen, aber die Leistung von Rise NPU ist besser. Stellen Sie sicher, dass Sie eine kompatible Version von PyTorch installieren. - Wie hoch ist die Qualität des erzeugten Videos?
Das Modell wurde auf der Grundlage von CogVideoX und Wan2.1 trainiert, und in Kombination mit der RLHF-Optimierung erreicht das generierte Video ein fortgeschrittenes Niveau in Bezug auf Bewegung und stilistische Konsistenz, das für eine breite Palette von Anime-Szenen geeignet ist. - Ist Programmiererfahrung erforderlich?
Für die Ausführung des Skripts sind grundlegende Python-Kenntnisse erforderlich. Nicht-Entwickler können in der Dokumentation nachlesen, wie man Videos mit vorab trainierten Modellen erzeugt.