Haftungsausschluss
Dies ist ein Forschungsprojekt, KEIN kommerzielles Produkt. Benutzern wird die Freiheit eingeräumt, mit diesem Tool Bilder zu erstellen, von ihnen wird jedoch erwartet, dass sie die örtlichen Gesetze einhalten und es verantwortungsbewusst nutzen. Die Entwickler übernehmen keine Verantwortung für einen möglichen Missbrauch durch Benutzer.
Neuigkeiten und Updates
- [29. Januar] Update zur Unterstützung von diffusers==0.24.0!
- [23. Oktober] Code und Daten von DragBench werden veröffentlicht! Weitere Informationen finden Sie in der README-Datei unter „drag_bench_evaluation“.
- [16. Oktober] Integrieren Sie FreeU beim Ziehen generierter Bilder.
- [3. Oktober] Beschleunigung des LoRA-Trainings beim Bearbeiten realer Bilder. ( Jetzt nur noch etwa 20 Sekunden auf der A100! )
- [3. September] Version 0.1.0.
- Aktivieren Sie das Ziehen diffusionsgenerierter Bilder.
- Einführung eines neuen Führungsmechanismus, der die Qualität der Ziehergebnisse erheblich verbessert. (Inspiriert von MasaCtrl)
- Aktivieren Sie das Ziehen von Bildern mit beliebigem Seitenverhältnis
- Unterstützung für DPM++Solver (generierte Bilder) hinzufügen
- [18. Juli] v0.0.1-Veröffentlichung.
- Integrieren Sie LoRA-Training in die Benutzeroberfläche. Es ist kein Trainingsskript erforderlich und alles kann bequem in der Benutzeroberfläche erledigt werden!
- Optimieren Sie das Layout der Benutzeroberfläche.
- Aktivieren Sie die Verwendung einer besseren VAE für Augen und Gesichter (siehe hier)
- [8. Juli] v0.0.0-Veröffentlichung.
- Implementieren Sie die Grundfunktion von DragDiffusion
Installation
Es wird empfohlen, unseren Code auf einer Nvidia-GPU mit einem Linux-System auszuführen. Andere Konfigurationen haben wir noch nicht getestet. Derzeit sind etwa 14 GB GPU-Speicher erforderlich, um unsere Methode auszuführen. Wir werden die Speichereffizienz weiterhin optimieren
Um die erforderlichen Bibliotheken zu installieren, führen Sie einfach den folgenden Befehl aus:
conda env create -f environment.yaml
conda activate dragdiff
Führen Sie DragDiffusion aus
Führen Sie zunächst in der Befehlszeile Folgendes aus, um die Gradio-Benutzeroberfläche zu starten:
Sie können sich unser GIF oben ansehen, das die Verwendung der Benutzeroberfläche Schritt für Schritt demonstriert.
Im Wesentlichen besteht es aus folgenden Schritten:
Fall 1: Ziehen eingegebener realer Bilder
1) Trainieren Sie eine LoRA
- Legen Sie unser Eingabebild in das Feld ganz links ab.
- Geben Sie im Feld „Eingabeaufforderung“ eine Eingabeaufforderung ein, die das Bild beschreibt
- Klicken Sie auf die Schaltfläche „LoRA trainieren“, um einen LoRA anhand des Eingabebilds zu trainieren
2) Führen Sie die Bearbeitung per „Ziehen“ durch
- Zeichnen Sie im Feld ganz links eine Maske, um die bearbeitbaren Bereiche festzulegen.
- Klicken Sie im mittleren Feld auf den Griff und die Zielpunkte. Sie können auch alle Punkte zurücksetzen, indem Sie auf „Punkt rückgängig machen“ klicken.
- Klicken Sie auf die Schaltfläche „Ausführen“, um unseren Algorithmus auszuführen. Bearbeitete Ergebnisse werden im Feld ganz rechts angezeigt.
Fall 2: Durch Diffusion erzeugte Bilder ziehen
1) ein Bild erzeugen
- Geben Sie die Generierungsparameter ein (z. B. positive/negative Eingabeaufforderung, Parameter unter „Generierungskonfiguration“ und „FreeU-Parameter“).
- Klicken Sie auf „Bild generieren“.
2) „Ziehen“ Sie auf dem generierten Bild
- Zeichnen Sie im Feld ganz links eine Maske, um die bearbeitbaren Bereiche festzulegen
- Klicken Sie im mittleren Feld auf Griffpunkte und Zielpunkte.
- Klicken Sie auf die Schaltfläche „Ausführen“, um unseren Algorithmus auszuführen. Bearbeitete Ergebnisse werden im Feld ganz rechts angezeigt.
Lizenz
Code im Zusammenhang mit dem DragDiffusion-Algorithmus steht unter der Apache 2.0-Lizenz.
BibTeX
Wenn Sie unser Repo hilfreich finden, denken Sie bitte darüber nach, einen Stern zu hinterlassen oder unseren Artikel zu zitieren :)
@article { shi2023dragdiffusion ,
title = { DragDiffusion: Harnessing Diffusion Models for Interactive Point-based Image Editing } ,
author = { Shi, Yujun and Xue, Chuhui and Pan, Jiachun and Zhang, Wenqing and Tan, Vincent YF and Bai, Song } ,
journal = { arXiv preprint arXiv:2306.14435 } ,
year = { 2023 }
}
Kontakt
Bei Fragen zu diesem Projekt wenden Sie sich bitte an Yujun ([email protected]).
Anerkennung
Diese Arbeit ist vom erstaunlichen DragGAN inspiriert. Der Lora-Trainingscode wurde anhand eines Beispiels für Diffusoren modifiziert. Bildbeispiele werden von Unsplash, Pexels und Pixabay gesammelt. Abschließend noch ein großes Lob an all die erstaunlichen Open-Source-Verbreitungsmodelle und -Bibliotheken.
Verwandte Links
- Ziehen Sie Ihr GAN: Interaktive punktbasierte Manipulation auf dem generativen Bildverteiler
- MasaCtrl: Abstimmungsfreie gegenseitige Selbstaufmerksamkeitssteuerung für konsistente Bildsynthese und -bearbeitung
- Emergente Korrespondenz aus der Bilddiffusion
- DragonDiffusion: Ermöglichen der Drag-Manipulation bei Diffusionsmodellen
- FreeDrag: Punktverfolgung ist für die interaktive punktbasierte Bildbearbeitung nicht erforderlich
Häufige Probleme und Lösungen
- Für Benutzer, die aufgrund von Internetbeschränkungen Schwierigkeiten haben, Modelle von Huggingface zu laden, folgen Sie bitte 1) diesen Links und laden Sie das Modell in das Verzeichnis „local_pretrained_models“ herunter; 2) Führen Sie „drag_ui.py“ aus und wählen Sie das Verzeichnis Ihres vorab trainierten Modells unter „Algorithmusparameter -> Basismodellkonfiguration -> Pfad des Diffusionsmodells“ aus.