▸ English

Stable Diffusion Outpainting: Einfache Bilderweiterung für Eilige

von Andreas Kuhr

Die Outpainting-Funktion der Benutzeroberfläche Forge WebUI und AUTOMATIC1111 erweitert die Größe bestehender Bilder, indem sie den Bildinhalt und die Texteingabe analysiert und versucht, die Bildelemente sinnvoll zu verlängern. Dabei beziehen sich die Bildelemente in der Erweiterung auf Stil, Inhalt und Farbgebung der Bildquelle.

Für die Bilderweiterung mit Forge WebUI und AUTOMATIC1111 gibt es unterschiedliche Methoden:

Einfache Outpainting-Methode:

Die schnellsten Ergebnisse liefert die direkte Bilderweiterung mit den vorinstallierten Outpainting-Skripten „Poor man‘s outpainting“ oder „Outpainting mk2“. Sie ist damit auch für Anfänger geeignet.

Die Inhalte im erweiterten Bildbereich beziehen sich hier zwar auf die Elemente der Bildquelle und den Text-Prompt, bleiben aber insgesamt dem Zufall überlassen. Oft sind mehrere Versuche mit unterschiedlichen Einstellungen nötig, bis ein brauchbares Ergebnis vorliegt. Die sichtbaren Mängel lassen sich gut reparieren, indem man sich Variationen des erweiterten Bildes mit der img2img-Funktion erstellen lässt.

Komplexe Outpainting-Methode:

Benötigen Sie mehr Kontrolle über den Inhalt der Bilderweiterung, können Sie die Bildquelle zunächst in einem Bildbearbeitungsprogramm, wie  Affinity Photo, Photoshop, Gimp oder Photopea erweitern und skizzenhaft darstellen, welche Elemente Sie in der zusätzlichen Fläche sehen wollen. Anschließend generieren Sie das erweiterte Bild mit der img2img-Funktion und einem Text-Prompt in Forge WebUI oder AUTOMATIC1111. Mit der ControlNet-Funktion von ForgeWebUI oder dem entsprechenden Addon für AUTOMATIC1111 erhalten Sie zusätzliche Kontrolle über die neuen Bildelemente.

In dieser Anleitung geht es darum, ohne langwierige Installationsprozesse und Parameterwüstendurchquerungen schnell und unkompliziert zu einem Ergebnis zu kommen. Die einfache Outpainting-Methode führt zwar meistens nicht direkt zu herausragender Bildqualität, mit der img2img-Funktion lassen sich die Mängel aber problemlos beheben.

Die Stable Diffusion Outpainting Anleitung

Die Outpainting-Funktion finden Sie in der Benutzeroberfläche ForgeWebUI und AUTOMATIC1111 unter dem img2img-Reiter:

Übersicht der Outpainting-Benutzeroberfläche

1. Ein Bild hochladen

Ein Bild, das Sie mit txt2img erzeugt haben, können Sie dort mit dem „Send to img2img“-Button an die img2img-Funktion senden. Dabei werden auch gleich die Prompts und die Bildeinstellungen übertragen.

Stammt das generierte Bild nicht aus der aktuellen Sitzung, ist es am einfachsten, die PNG-Datei unter dem „PNG“-Reiter zu importieren und nicht unter „img2img“. Sie können die Datei dort per Drag-and-Drop auf das dafür vorgesehene Feld schieben oder auf „Source“ klicken und die Datei öffnen. Die „PNG“-Funktion liest nun sämtliche Erzeugungsdaten der Datei aus, die Sie dann mit dem „Send to img2img“-Button an die inpaint-Funktion weiterreichen können.

Alle anderen Bilddateien ziehen Sie unter „img2img“ auf das dafür vorgesehene Feld (1) oder Sie klicken auf „Source“ und öffnen die Datei auf Ihrem Rechner.

2. Das Modell (Checkpoint) auswählen

Wählen Sie zuerst oben links das Modell aus, mit dem Sie arbeiten wollen. In der Regel verwenden Sie das selbe Modell, das Sie für die Generierung des Bildes mit „txt2img“ oder „img2img“ verwendet haben.

Wenn Sie ein Bild bearbeiten wollen, das Sie nicht mit Stable Diffusion erzeugt haben, sollten Sie im Archiv von Civitai oder Huggingface nach einem Modell (Checkpoint) suchen, das dem Stil Ihrer Bildquelle entspricht. Laden Sie die „saftensors“-Datei herunter und speichern Sie diese in Ihrem Modell-Verzeichnis.

Haben Sie ein Bild mit txt2img erzeugt, ist bereits ein Text vorhanden, den Sie nun Schritt für Schritt verändern können, um Variationen zu erzeugen

3. Die Texteingabe (Prompt)

In der Eingabeaufforderung „Prompt“ beschreiben Sie, was auf dem Bild in welchem Stil dargestellt werden soll. Haben Sie ein Bild mit txt2img oder img2img erzeugt, reicht es in der Regel aus, diesen Text zu übernehmen. Nur wenn dies zu unerwarteten Ergebnissen führt, sollten Sie den Text ändern und nur den gewünschten Inhalt der Bilderweiterung beschreiben.

Entsprechend beschreiben Sie im „negative Prompt“ Inhalte, Fehler und Genres, die Sie in Ihrem Bild ausschließen wollen. In diesem Fall nutzen Sie die negative Texteingabe aber vor allem, um Inhalte im Outpainting-Bereich zu entfernen oder zu verändern. 

4. Resize Mode - Die Methode zur Änderung der Bildgröße

Da die Outpainting-Funktion das Bild verlängert, müssen Sie festlegen, wie Sie  mit dem Seitenverhältnis der Bildquelle umgehen wollen, damit es nicht verzerrt wird. Sie haben zwei Möglichkeiten:

  1. „Just resize“: Das Bild wird automatisch um den Outpainting-Bereich erweitert den Sie unter „Script“ angeben. Sie müssen nichts weiter tun.
  2. „Resize and fill“: Das Bild wird auf die Maße vergrößert, die Sie unter „Resize to“ angeben. Dazu müssen Sie zur Breite bzw. Höhe der Bildquelle die Anzahl der Pixel addieren, um die Sie das Bild erweitern wollen. Die Zahl sollte durch 64 teilbar sein.

5. Denoising strength - Das Mischungsverhältnis zwischen Bildquelle und Zufall

Die „Denoising strength“ ist die wichtigste Einstellung für die Bilderweiterung. Sie regelt, in welchem Ausmaß die Bildquelle Einfluß auf die Bilderweiterung nimmt. Da sich der Inhalt im erweiterten Bereich mehr oder weniger deutlich vom Bildinhalt der Quelle unterscheiden soll, erlauben wir dem Prozess maximale Kreativität.

Deshalb sollte der Wert für „Denoising strength“ möglichst hoch, also zwischen 0.75 und 1 liegen.

6. Poor man‘s outpainting: Bilderweiterung für Faule

Das „Poor man‘s outpainting“-Skript ist die einfachste Methode, um ein Bild zu erweitern.

In unserem Beispiel wurde mit der txt2img-Funktion ein Bild von einem meditierenden Mönch vor einem Bergpanorama generiert und an die img2img-Funktion gesendet.

ethereal fantasy concept art of a monk, meditating on a mountain, mountain range in background, moutain tops covered with snow, sunset, dramatic lighting

Bildquelle meditierender Mönch vor Bergpanorama

Model: juggernautXL_v8Rundiffusion
Sampler: DPM++ 2M Karras
Steps: 30

Das Model, die Sampling-Methode und die Sampling-Schritte wurden ebenfalls aus der txt2img-Generierung übernommen.

Um die Qualität zu verbessern, können Sie den Wert für „Sampling steps“ auf 50-80 Schritte erhöhen.

Nachdem die Bildquelle geladen ist und der Text-Prompt steht, können Sie das Skript ganz unten links unter „Script“ (6) aktivieren. Unter dem Auswahlmenü erscheinen nun verschiedene Einstellungen zur Bildgenerierung:

7. Pixels to expand - Größe der Bilderweiterung

Unter „Pixels to expand“ geben Sie an, um wieviel Pixel das Bild erweitert werden soll. Der Standardwert von 128 Pixel ist hier ein guter Anfang. Wenn Sie minderwertige Ergebnisse bekommen, sollten Sie diese Einstellung reduzieren. Dabei sollte der Wert durch 64 teilbar sein.

Ist der Hintergrund nicht allzu komplex, kann man durchaus größere Schritte wagen. In unserem Beispiel wurde die Quelle zunächst um 256 Pixel nach links verlängert.

8. Mask blur - die Rand-Unschärfe der Maske

Um nahtlose Übergänge zwischen der Bilderweiterung und der Bildquelle zu garantieren, erhält der Rand der Bildverlängerung einen unscharfen Bereich. Der „Mask blur“ legt die Breite dieses Überblendungsbereichs in Pixeln fest. Den Standard-Wert von 4 Pixeln sollten Sie schrittweise erhöhen, bis der Übergang zwischen Erweiterung und Quelle kaum noch wahrnehmbar ist. In den meisten Fällen wird dieser nicht vollständig verschwinden. Das ist aber kein Problem, da wir das Outpainting-Ergebnis zum Schluß mit der img2img-Funktion überarbeiten können.

9. Masked content - der Inhalt der Bilderweiterung

Die Einstellung „Mask content“ legt fest, mit welchem Inhalt die Berechnung im Erweitungsbereich gestartet werden soll:

fill Generierung mit den Farben des Bildes starten
original Generierung mit dem vorhandenen Bildinhalt starten
latent noise Generierung mit zufälligen Bildrauschen starten
latent nothing Generierung ohne Inhalt starten

Da die Outpainting-Funktion in der Regel zur Erweiterung des Hintergrunds genutzt wird, sollten Sie hier die Einstellung „fill“ verwenden.

10. Outpainting direction - die Richtung der Bilderweiterung

Unter Outpainting direction geben Sie an, in welche Richtung die Bildquelle erweitert werden soll. Die besten Ergebnisse erzielen Sie, wenn Sie nur eine Richtung zur Zeit generieren.

Die Bildgenerierung mit Outpainting

Das „Poor man‘s outpainting“-Skript ignoriert die Einstellung „Batch count“ und generiert nur ein Bild.

In unserem Beispiel wurden zunächst 256 Pixel auf der linken Seite hinzugefügt. Die Einstellungen für die „Sampling method“ (DPM++ 2M Karras) und die „Sampling steps (Wert = 30) wurden aus der txt2img-Bilderzeugung übernommen. Für die „Denoising strength“ blieb es bei dem Standardwert von 0,75, während „Mask blur“ auf 8 Pixel erhöht werden musste, um den Übergang von Bildquelle zur Erweiterung zu verbessern.

Outpainting um 256 Pixel nach links

Wer genau hinsieht, wird den Übergang zur Outpainting-Fläche nach wie vor wahrnehmen. Für unsere Zwecke ist die Qualität aber erstmal ausreichend.

Das so generierte Bild wurde dann mit dem „Send to img2img“-Button in die Arbeitsfläche übernommen und in vier 256-Pixel-Schritten nach rechts erweitert. Dabei wurde die „Denoising strength“ auf 0,85 erhöht, um mehr Variation im Hintergrund zu erhalten.

Bilderweiterung um 4 x 256 Pixel nach rechts

Zum Schluß wurde noch einmal die linke Seite um 256 Pixel verlängert.

Erweitertes Bild vor Überarbeitung mit img2img

Überarbeitung des Outpainting-Ergebnisses mit der img2img-Funktion

Da die Übergänge zu den Bilderweiterungen nach wie vor sichtbar sind, senden wir unser Outpainting-Ergebnis ein letztes Mal an die img2img-Arbeitsfläche. Um die Übergänge zu korrigieren, wollen wir das Bild nur geringfügig verändern.

Dazu wählen Sie ganz unten links unter „Script“ die Option „None“ und tragen im Feld darüber die „Seed“ ein, indem Sie auf den grünen „Recycling“-Button rechts neben dem Feld klicken.

Da wir nicht viel verändern wollen, reduzieren wir die „Denoising strength“ (5) auf einen Wert zwischen 0,3 und 0,4. Die Übergänge sollten im generierten Bild nun verschwunden sein.

Outpainting Ergebnis mit img2img überarbeiten

Und hier ist das Ergebnis:

Erweitertes Bild nach der Übearbeitung mit img2img

11. Das "Outpainting mk2"-Skript

Das „Outpainting mk2“-Skript bietet andere Einstellmöglichkeiten als „Poor man‘s outpainting“. Es kommt dann zum Einsatz, wenn das Arme-Leute-Skript nicht zu brauchbaren Ergebnissen führt oder Sie mehr Optionen benötigen. Die Einstellungen für „Pixels to expand“, „Mask blur“und „Outpainting direction“ wurden oben unter „Poor man‘s outpainting“ erklärt.

Übersicht der Benutzeroberfläche unter dem Outpainting mk2-Skript

12. Sampling Einstellungen für Outpainting mk2

Wenn Sie das „Outpainting mk2“-Skript einsetzen, sollten Sie vorzugsweise die „Euler a“-Sampling-Methode verwenden und die „Sampling steps“ auf einen Wert zwischen 80 und 100 setzen.

13. Fall-off exponent - der Detailtiefen-Exponent

Der „Fall-off exponent“ reduziert die Menge an Details im Erweiterungsbereich des Bildes. Ein Exponent von 1 übernimmt die Detailtiefe der Bildquelle. Ein höherer Wert verringert die Anzahl der Details, während ein geringerer Wert die Detailtiefe erhöht.

Der Standardwert 1 generiert in der Regel die besten Ergebnisse.

14. Color variation - die Farbvariation

Mit dem „Color variation“-Regler steuern Sie die Abweichung des Farbschemas im Erweiterungsbereich des Bildes im Verhältnis zur Bildquelle. Je niedriger dieser Wert ist, desto mehr stimmen die Farben in der Outpainting-Fläche mit dem Farbschema des Originals überein.

Dieses Beispiel wurde mit der txt2img-Funktion generiert und an die img2img-Funktion gesendet:

painting by jack vittriano, portrait of a beautiful woman standing at the beach, red couture dress, looking at viewer, (smiling:0.2), sunrise, vivid colors

Bildquelle für das Outpainting mk2-Skript

Model: artium_v20
Sampler: DPM++ 2M Karras
Steps: 30

Das Bild wurde um den Standardwert 128 Pixel erweitert. Als Sampling-Methode wurde „Euler a“ mit 100 Sampling Schritten gewählt. Um die Qualität des Übergangs von der Bildquelle zur Erweiterung zu verbessern, wurde die Randunschärfe (Mask blur) auf 10 Pixel erhöht. Es waren relativ viele Versuche nötig, um auf das hier gezeigte Ergebnis zu kommen. Im generierten Bild ist deutlich ein Versatz zwischen Bildquelle und Erweiterung zu erkennen, vor allem am Arm und am Kleid. Das läßt sich aber ohne Weiteres mit der img2img-Funktion reparieren.

Mit outpainting mk2 erweitertes Bild vor Überarbeitung mit img2img

Überarbeitung des Bilderweiterungs-Ergebnisses mit der img2img-Funktion

Auch in diesem Beispiel ist der Übergang zur Bilderweiterung nach wie vor sichtbar. Wie oben beschrieben, senden wir unser Outpainting-Ergebnis noch einmal an die img2img-Arbeitsfläche, wählen ganz unten links unter „Script“ die Option „None“ und tragen mit einem Klick auf den grünen „Recycling“-Button rechts neben dem „Seed“-Feld die „Seed“ ein. Die „Denoising strength“ reduzieren wir auf einen Wert zwischen 0,3 und 0,4.

Um ein bestmögliches Ergebnis zu erhalten, wurden die Einstellungen für Model, Sampling Methode und Sampling Schritte wieder auf die Werte zurückgesetzt, mit denen die Bildquelle unter der txt2img-Funktion generiert wurde, also:

Model: artium_v20
Sampler: DPM++ 2M Karras
Steps: 30

Auch hier sollten die Übergänge im erzeugten Bild nun verschwunden sein.

Mit dem Newsletter nichts mehr verpassen!

Lassen Sie sich alle Neuigkeiten und Updates per E-Mail zusenden. Kein Spam, keine Werbung, kein Influencing.



Diese Seite teilen:

E-Mail Facebook Reddit Whatsapp