DeepFaceLab
# DeepFaceLab

DeepFaceLab (auch DFL) ist eine bekannte Open-Source-Software zur Erstellung von sogenannten Deepfakes, d. h. Austausch des Gesichts einer Person durch ein anderes Gesicht in einem Video. Die Software wurde in der Programmiersprache Python programmiert und ist für Nvidia Grafikkarten ausgelegt. DeepFaceLab ist bisher kompatibel mit Windows, Google Colab, CentOS Linux und Linux.

## Hintergrund

DeepFaceLab steht auf GitHub zur Verfügung und wird dort von einem Entwickler mit dem Pseudonym „iperov“ entwickelt.

## Ablauf / Funktion

DeepFaceLab benutzt die Machine-Learning-Framework-Open-Source-Bibliothek „TensorFlow“ von Google, die oft bei Künstlicher Intelligenz, bzw. maschinellem Lernen, zum Einsatz kommt. Für einen guten Deepfake benötigt die Software zehn bis zwanzig Sekunden Videomaterial aus ähnlichen Szenarien von beiden Personen. Außerdem ist es hilfreich zwei möglichst ähnliche Personen zu benutzen. DeepFaceLab besteht nicht aus einem einzigen Programm, sondern beinhaltet hauptsächlich viele .bat Dateien, sowie vortrainierte Modelle.

Um ein Deepfake mit DeepFaceLab zu erstellen benötigt man ein Video, das die Person beinhaltet, dessen Gesicht man benutzen möchte. Ein zweites Video beinhaltet die Person, auf welche die Gesichtsausdrücke von Person Eins übertragen werden sollen. Aus diesen Videos werden Bilder generiert, auf denen dann die Software die Umrisse des Gesichtes und wichtige Punkte wie Augen, Mund und Nase erkennt.

Sobald diese Vorbereitung abgeschlossen ist, beginnt die Künstliche Intelligenz mit dem Training der künstlichen neuronalen Netze, indem die Einzelbilder beider Videos in einem Encoder auseinandergebaut werden und danach in zwei Decoder, für jedes Video bzw. für jedes Gesicht der Personen einen, wieder zusammengebaut werden. Die Künstliche Intelligenz vergleicht am Ende für jedes Bild der beiden Videos das Original mit der Ausgabe des Decoders und modifiziert daraufhin die Gewichtungen des künstlichen neuronalen Netzes. Dieser Vorgang wird unzählige Male wiederholt, bis das Ergebnis des Decoders dem Originalbild stark ähnelt. Dieses Vorgehen nennt sich überwachtes Lernen. Im nächsten Schritt wird der Encoder der einen Person an den Decoder der anderen Person angeschlossen, um die Gesichtsausdrücke von einer Person auf die andere Person zu übertragen.

Als letztes werden diese Daten zu einem Video zusammengeführt und in einem auswählbaren Dateiformat abgespeichert.

Dieser Prozess kann je nach der gewünschten Qualität und Länge des Videos, viele Stunden oder gar Tage in Anspruch nehmen. Die Dauer des Vorgangs ist hier sehr stark von der zur Verfügung stehenden Rechenleistung von Grafikkarte und CPU abhängig.

Die Modelldateien die mit DeepFaceLab erstellt werden können auch in einer weiteren Software verwendet werden, die geeignet ist das eigene Gesicht während eines live Videoanrufs in Echtzeit zu verändern (DeepFaceLive)

