Python KI-Malerei

In diesem Artikel stellen wir vor, wie Sie Ihr eigenes KI-Bildgenerierungstool auf Basis einiger Entwicklungs-APIs oder Open-Source-Bibliotheken erstellen.


Text-zu-Bild-API

Mit der Text-zu-Bild-API können Sie anhand von Textbeschreibungen brandneue Originalbilder erstellen.

Alibaba Cloud Bailian bietet zwei große Modellreihen:

  • Tongyi Qianwen (Qwen-Image): Gut beim Rendern komplexer chinesischer und englischer Texte. Dieses Kapitel verwendet dies als Beispiel.
  • Tongyi Wanxiang (Wan-Serie): Wird zur Erzeugung realistischer Bilder und visueller Effekte auf fotografischem Niveau verwendet.

Installieren Sie das DashScope Python SDK, indem Sie den folgenden Befehl ausführen:

# 如果运行失败,您可以将pip替换成pip3再运行
pip install -U requests dashscope

Wir müssen den Alibaba Cloud Bailian-Modellservice aktivieren und einen API-KEY erhalten.

Wir können zunächst das Hauptkonto von Alibaba Cloud verwenden, um auf die Bailian-Modellserviceplattform zuzugreifen:https://bailian.console.aliyun.com/, und dann oben rechts auf Anmelden klicken. Klicken Sie nach der Anmeldung oben rechts auf das Zahnradsymbol ⚙️, wählen Sie API-Schlüssel aus und kopieren Sie dann den API-Schlüssel. Wenn Sie keinen haben, können Sie auch einen API-Schlüssel erstellen:

Die Aktivierung von Alibaba Cloud Bailian verursacht keine Gebühren. Nur Modellaufrufe (nach Überschreitung des kostenlosen Kontingents), Modellbereitstellung und Modell-Tuning verursachen entsprechende Kosten.

Um die API jetzt zu nutzen, müssen Sie tokenbasiert abgerechnet werden. Zum Glück ist es nicht teuer. Wir können zuerst das günstigste Paket kaufen:Alibaba Cloud Bailian Large Model Service Platform。

Als Nächstes generieren wir Bilder, indem wir Prompts festlegen:

Beispiel

from http import HTTPStatus
from urllib.parse import urlparse, unquote
from pathlib import PurePosixPath
import requests
from dashscope import ImageSynthesis
import os

prompt = "Ein elegantes und feierliches Spruchpaar hängt in der Halle. Der Raum ist eine ruhige, klassische chinesische Einrichtung, mit etwas blau-weißem Porzellan auf dem Tisch. Auf der linken Seite des Spruchpaars steht: 'Rechtschaffenheit ist angeboren, Menschen und Maschinen teilen denselben Weg und sind gut darin, neu zu denken'; auf der rechten Seite steht: 'Wolken vermitteln Weisheit, Himmel und Erde bringen Zahlen hervor, und hohe Ambitionen reichen weit'; die horizontale Schriftrolle lautet: 'Weisheit erleuchtet Tongyi'. Die Kalligrafie ist fließend und elegant. In der Mitte hängt ein Gemälde im chinesischen Stil, dessen Inhalt der Yueyang-Turm ist."

# Bitte verwenden Sie den Bailian-API-Schlüssel
api_key = "sk-xxx"

print('---- Synchroner Aufruf, bitte warten Sie, bis die Aufgabe ausgeführt wird ----')
rsp = ImageSynthesis.call(api_key=api_key,
                          model="qwen-image",
                          prompt=prompt,
                          n=1,
                          size='1328*1328',
                          prompt_extend=True,
                          watermark=True)
print('Antwort: %s' % rsp)
if rsp.status_code == HTTPStatus.OK:
    # Speichere das Bild im aktuellen Verzeichnis
    for result in rsp.output.results:
        file_name = PurePosixPath(unquote(urlparse(result.url).path)).parts[-1]
        with open('./%s' % file_name, 'wb+') as f:
            f.write(requests.get(result.url).content)
else:
    print('Synchroner Aufruf fehlgeschlagen, status_code: %s, code: %s, message: %s' %
          (rsp.status_code, rsp.code, rsp.message))

Das Ausgabeergebnis ähnelt dem folgenden. Sie werden einen URL-Parameter sehen. Wir können darauf zugreifen, um das durch den Prompt beschriebene Bild herunterzuladen:

----同步调用,请等待任务执行----
response: {"status_code": 200, "request_id": "1968746e-f434-4f77-9f8c-9b1adb80e8d7", "code": null, "message": "", "output": {"task_id": "d85c65d9-c4ff-4d66-a895-7c7746620b0c", "task_status": "SUCCEEDED", "results": [{"url": "https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/7d/05/20250916/8d68e658/d85c65d9-c4ff-4d66-a895-7c7746620b0c-1.png?xxxxxxxxx", 
...

Das durch das obige Beispiel generierte Bild sieht wie folgt aus:

Weitere Inhalte finden Sie in der offiziellen Dokumentation:https://help.aliyun.com/zh/model-studio/text-to-image


Stable Diffusion

Die zu verwendende Open-Source-Bibliothek ist Stable Diffusion web UI, eine Stable-Diffusion-Browseroberfläche basierend auf der Gradio-Bibliothek.

Stable Diffusion web UI GitHub-Adresse:https://github.com/AUTOMATIC1111/stable-diffusion-webui

Das Ausführen von Stable Diffusion erfordert relativ hohe Hardwareanforderungen und verbraucht zur Laufzeit erhebliche Ressourcen, insbesondere die Grafikkarte.

Installation in der Windows-Umgebung

Die lokale Umgebung erfordert die Installation von Python 3.10.6 oder höher, und es sollte zu den Umgebungsvariablen des Rechners hinzugefügt werden.

Laden Sie den GitHub-Quellcode von Stable Diffusion web UI herunterhttps://github.com/AUTOMATIC1111/stable-diffusion-webui。

git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git

Wenn Git nicht installiert ist, können Sie das Zip-Paket in der oberen rechten Ecke herunterladen.

Entpacken Sie stable-diffusion-webui und wechseln Sie in das Verzeichnis stable-diffusion-webui.

Als Nächstes müssen wir das Modell herunterladen. Download-Adresse:https://huggingface.co/CompVis/stable-diffusion-v-1-4-original

Verschiebe das heruntergeladene Modell in dasstable-diffusion-webui/models/Stable-diffusionVerzeichnis.

Wechseln Sie in das Verzeichnis stable-diffusion-webui:

Windows: als Nicht-Administrator ausführen:

webui-user.bat

Führen Sie für Linux- und Mac-OS-Umgebungen den folgenden Befehl aus:

./webui.sh

Als Nächstes wird das Programm automatisch installiert und gestartet. Nach erfolgreichem Start sehen Sie eine erreichbare URL-Adresse.http://127.0.0.1:7860:

Besuchen Siehttp://127.0.0.1:7860, die Oberfläche sieht wie folgt aus:

Hinweis:Wenn die Installation hängen bleibt, liegt es wahrscheinlich an einem Problem beim Herunterladen des GitHub-Quellcodes. Sie können einige GitHub-Mirrors verwenden, um das zu lösen. Derzeit gibt es keinen sehr stabilen Mirror, daher wird empfohlen, bei Google zu suchen. Am 6. April 2023 habe ich die folgende Mirror-Adresse verwendethttps://hub.fgit.ml, öffnen Sie die Datei launch.py im Verzeichnis stable-diffusion-webui und ersetzen Sie die GitHub-Adresse im folgenden Teil des Codes (der Code befindet sich ungefähr zwischen den Zeilen 230 und 240):

Einführung in Civitai

Civitai hat viele angepasste Modelle, und sie können kostenlos heruntergeladen werden. Wir verwenden dasGuofeng 3Modell zum Testen. Download-Adresse:https://civitai.com/models/10415/3-guofeng3?modelVersionId=36644

Nach dem Herunterladen verschieben wir das Modell in dasstable-diffusion-webui/models/Stable-diffusionVerzeichnis und starten stable-diffusion-webui neu:

./webui.sh

Auf diese Weise können wir dasGuofeng 3Modell in der Modellliste auswählen:

Nach der Auswahl können wir zur Modellvorstellungsseite gehen, um einige Prompts und Testparameter zu kopieren:

Um schneller zu generieren, habe ich sowohl die Höhe als auch die Breite halbiert und klicke dann auf die Schaltfläche Generieren:

Um den vollständigen Generierungsprozess anzusehen, können Sie unserem WeChat-Videokanal folgen:

Andere Erweiterungen