Stable Diffusion / Einrichtung / Models / Einstellungen | Hintergrund Entfernung per KI

in #deutsch2 years ago (edited)

Vorschaubild

Bilder zeichnen lassen von der KI, aber wie.
Es gibt viele Möglichkeiten, die kostenlos im Internet verfügbar sind, eine möchte ich vorstellen.
Stable Diffusion in der Version 2.1 und XL, wo ich später zeige, wie man es lokal auf dem PC installiert und bedient.
Es ist nämlich nicht nur Wörter eingeben und fertig, es kommt stark darauf an, was für Wörter und Parameter gesetzt sind und welche Modele genutzt werden.

Hinweis, ich habe die Anleitung aktualisiert, damit diese auch mit der XL Version funktioniert.

Die Installation ist recht einfach und es gibt verschiedene Möglichkeiten, ich möchte aber die Installation mit Weboberfläche zeigen.
Plant mindestens 25 GB Speicher ein.
stable-diffusion-webui auf dieser Seite befindet sich das eigentliche Programm.
Dieses kann in Linux und auch Windows genutzt werden.

Installation Windows
Installation LInux

Für Stable Diffusion XL muss hier allerdings ein weiterer Schritt gemacht werden, damit es leicht zu bedienen ist.
Mit diesen beiden Kommandos könnt ihr die Entwicklerversion auswählen und herunterladen, welche uns Vorteile bringt.
Falls ihr gerade von einer alten Version auf die neue updatet, solltet ihr das auch machen, so wird das Projekt auch auf den neusten Stand gebracht.

git checkout dev
git pull

Allerdings war es das noch nicht, um Stable Diffusion zu nutzen oder es auf GPUs mit weniger vRAM zu verwenden.
Dafür müssen wir das Model herunterladen.


Stable Diffusion XL 1.0:

stable-diffusion-xl-base-1.0
stable-diffusion-xl-refiner-1.0
stable-diffusion-xl-1.0-tensorrt

Für Stable Diffusion XL gibt es jetzt eine Base einen Refiner und eine RT Version.
Ich erkläre kurz wofür was gedacht ist.
Die Base ist gedacht, um das eigentliche Bild zu erstellen.
Der Refiner dazu da um das Bild zu verfeinern.
Die RT Version ist eigentlich nur dafür gedacht, um Grafikkarten mit RT Cores zu beschleunigen, momentan mit Grafikkarten von Nvidia verwendbar.

Ladet die sd_xl_base_1.0_0.9vae.safetensors und sd_xl_refiner_1.0_0.9vae.safetensors herunter und fügen sie dem Ordner \stable-diffusion-webui\models\Stable-diffusion hinzu.
Die VAE-Version ist eine korrigierte Version mit den VAE-Gewichten und behebt die Probleme, die es mit der normalen Version gab.

Offizielle Anleitung von AUTOMATIC1111


Version von 2.1:

Alter Version von 2.1
Neuste Version von 2.1

Am sinnvollsten ist die Installation der neusten Version, ich habe auch keine großen Unterschiede bemerkt.
Um die Version zu installieren, laden wir die v2-1_512-ema-pruned.safetensors Datei herunter und fügen sie dem Ordner \stable-diffusion-webui\models\Stable-diffusion hinzu.

Damit die Version auch funktioniert, müssen wir noch eine Config und einen Parameter dem Programm hinzufügen.
Config für die Neue Version
Dürcke STRG + S um die Datei abzuspeichern, danach bei DateiTyp * . * auswählen und bei Name einfach als v2-1_512-ema-pruned.yaml eingeben und abspeichern.
Die Datei muss auch in dem Ordner \stable-diffusion-webui\models\Stable-diffusion.

Für die alte Version müsst ihr dann einfach diese Datei nutzen und sie als v2-1_768-ema-pruned.yaml umbenennen.
Sie muss einfach gleich heißen wie die Model-Datei.

Offizielle Anleitung von AUTOMATIC1111


Ihr habt euch sicher gefragt wieso gibt es eine ema und eine no ema Version.
EMA ist eine optimierte Version für die Veröffentlichung.
Die EMA Version ist besonders für das Training interessant, sie hat nämlich noch die EMA Gewichte zu den Standard Gewichten und ist wohl etwas genauer.

Oder was ist der Unterschied zwischen einer .ckpt eine .safetensors Version.
Es handelt sich bei .ckpt um ein unsicheres Format zum Abspeichern von Model Daten, .safetensors weist keine bekannte gravierende Sicherheitslücke aus, die Code ausführen ermöglicht.
Also sollte bei nicht vertrauenswürdigen Modellen zu .safetensors gegriffen werden oder die .ckpt umgewandelt werden zu einer .safetensors Datei.
pickle — Python object serialization
huggingface/safetensors

Zu guter Letzt müssen wir noch über Windows in der webui-user.bat set COMMANDLINE_ARGS= --no-half-vae hinzufügen.
Unter Linux das gleiche in der webui-user.sh #export COMMANDLINE_ARGS="--no-half-vae".

Wer zu wenig Leistung hat, kann sich ja die Folgenden Parameter ansehen.
--medvram --lowvram --lowram --xformers usw.

Bei Command-Line-Arguments-and-Settings, gibt es mehr Parameter zu finden.

Wer keine GPU hat, kann sich mal diese beiden Versionen ansehen:
stable-diffusion-cpuonly oder diese Diskussion

Es gibt auch Docker Versionen und mehr auf GitHub, Docker könnte interessant sein für den einen oder anderen.

Jedenfalls, wenn alles eingerichtet ist, können wir die Installation abschließen, in dem wir den Server mit webui-user.bat Windows webui-user.sh Linux starten.
Unter der IP localhost:7860 ist unser Server nach der Installation erreichbar.


Bei Stable Diffusion checkpoint, wählen wir nun unser Model (stable-diffusion-xl-base-1.0), welches wir installiert haben.
Für Stable Diffusion XL können wir noch das Refiner Model festlegen und aktivieren bei Generation -> Refiner (anklicken) -> sd_xl_refiner_1.0_0.9vae.safetensors Checkpoint auswählen.
Um die Stärke zu bestimmen kann einfach Switch at Regler verschoben werden.

Danach können wir bei txt2img unser erstes Bild generieren.
In die Eingabe könnt ihr euere Bildbeschreibung einfügen, seid dabei so genau wie möglich.
Die Beschreibung muss ohne Übersetzungs-Erweiterung in Englisch sein.
Als negative Eingabe könnt ihr zum Beispiel das nutzen, was viele benutzen und in meinem Fall die Bilder deutlich verbessert hat.

bad anatomy, bad proportions, blurry, cloned face, cropped, deformed, dehydrated, disfigured, duplicate, error, extra arms, extra fingers, extra legs, extra limbs, fused fingers, gross proportions, jpeg artifacts, long neck, low quality, lowres, malformed limbs, missing arms, missing legs, morbid, mutated hands, mutation, mutilated, out of frame, poorly drawn face, poorly drawn hands, signature, text, too many fingers, ugly, username, watermark, worst quality

Hinweis: Ohne oder mit Punkten und Kommas kann zu anderen Ergebnissen führen, da die KI es möglicherweise anderes interpretiert, vielleicht sogar falsch oder besser, die Eingabe muss also für die KI verständlich sein und auch mit den Trainingsdaten Sinn ergeben.

Die negative Eingabe sagt der KI, was sie nicht generieren soll.

Mit den Sampling steps könnt ihr festlegen, mit wie viel Aufwand und welcher Qualität euer Bild erzeugt wird.
Bei der Sampling method könnt ihr einfach mal herumprobieren, womit euer Bild am besten aussieht.
Die Unterschiede sind aber unter den meisten Sampling Methoden nicht so hoch.
Der Seed ist für den Zufall zuständig, wird der gleiche Seed bei gleichen Einstellungen genutzt kommt immer das gleiche Bild raus.
CFG Scale, macht viel bei der Qualität aus, ein geringer Wert führt größtenteils zu einem besseren Bild als ein höherer.
Die Auflösung könnt ihr bei Width, Height einstellen, was geht, hängt von Hardware und Einstellungen ab.
Batch count, Batch size, kann super genutzt werden, um Grids zu genieren, also mehrere Bilder.
Bei Extra finden wir Variation strength, damit lassen sich abweichende Versionen von einem Bild erstellen und bestimmen wie stark die Abweichung ist.
Auch hier können wir wenn wir wollen einen Variation seed festlegen.
Resize seed from width, Resize seed from height, damit kann die Position eines Bildes geändert werden.

Bei Img2img ist auch die Variation vielleicht noch interessant, versucht beispielsweise diese Person auf dem Bild oder gebt eine andere Person mit ähnlicher Beschreibung ein.
Hier interessant Denoising strength, was die Stärke der Vermischung einstellt, ein geringer Wert bedeutet größtenteils Originalbild und ein hoher ist dann größtenteils das neu erstellte Bild von der KI.
Masken können auch interessant werden, um gewisse Bereiche zu berücksichtigen.
Hier habe ich auch gesehen, dass manche unter Settings -> User interface ->
Quicksettings list inpainting_mask_weight hinzufügen, um hier noch ein wenig bessere Ergebnisse zu erzielen.

Falls ihr Models für euere KI sucht, findet ihr die bei https://huggingface.co.
Und ihr könnt diese Modelle auch kombinieren bei Checkpoint Merger und festlegen wie die hoch die Wichtigkeit ist, von den Gewichten.

An sich ist Stable Diffusion ein großartiges Tool, welches in seiner Weboberfläche noch mehr Funktionen bereithält.
Ich wollte aber nur auf die wichtigsten eingehen und hoffe ihr habt Spaß beim Experimentieren.


Eine nette Kleinigkeit habe ich natürlich auch für euch, ich baue momentan meine Dienste auf meiner Webseite aus.
Ich nutze auch ein neues KI-Tool, welches den Hintergrund automatisch ausscheiden kann.
Die Besonderheit an diesem Tool, ihr könnt es auf eurem PC ausführen, sogar mit Docker.
Es funktioniert zwar nicht immer so perfekt wie die Bekannten, aber die Ergebnisse waren überzeugend für mich.
github.com - danielgatis/rembg

Auch vielleicht interessant, Meta hat ein Tool zum Freistellen von Bildelementen veröffentlicht.
Segment Anything Model (SAM) - GitHub
Demo

Mein Dienst:
https://heldendesbildschirms.de/removebg/

Artikel als Audio