Dieses Projekt zeigt, wie man Bilder mithilfe von Stable Diffusion generiert, indem ComfyUI auf Amazon SageMaker Inference gehostet wird. Es handelt sich um ein Entwurfsmuster, das das Hinzufügen von GenAI-Bildgenerierungsfunktionen zu Ihrer Anwendung ermöglicht.
ComfyUI ist eine der beliebtesten GUIs und Backends, mit der Sie Bilder mithilfe von Stable Diffusion generieren können. Einige der wichtigsten Funktionen:
Durch das Hosten von ComfyUI mit Amazon SageMaker Inference kann es besonders geeignet sein, wenn Sie Folgendes möchten:
Es gibt eine Lambda-Funktion zum Aufrufen des SageMaker-Inferenzendpunkts (auf dem ComfyUI ausgeführt wird) zum Generieren von Bildern. Zur Veranschaulichung ist die Lambda-Funktions-URL so konfiguriert, dass Sie die Bildgenerierung testen können, indem Sie diesen dedizierten HTTPS-Endpunkt aufrufen.
Der einfachste Weg besteht darin, eine EC2-Instanz von g5.xlarge
zu starten, auf der AMI Deep Learning OSS Nvidia Driver AMI GPU PyTorch 2.3.0 (Amazon Linux 2)
ausgeführt wird. Stellen Sie mit Session Manager eine Verbindung zur Instanz her und fügen Sie dann den Benutzer zum Gruppen- docker
hinzu, indem Sie den folgenden Befehl ausführen.
sudo usermod -a -G docker $( whoami )
Trennen Sie die Verbindung und stellen Sie erneut eine Verbindung her, damit die aktualisierte Gruppenmitgliedschaft wirksam wird.
- Wenn Sie ComfyUI nicht lokal ausführen, funktionieren auch Nicht-GPU-Instanzen wie
t3.small
.- Wenn Sie das FLUX.1-Modell ausführen möchten, verwenden Sie mindestens
g5.2xlarge
oder höher für die fp8-Version. Verwenden Sie mindestensg5.4xlarge
für die fp16-Version.
AWS Cloud9 oder ein lokaler Computer funktionieren ebenfalls, stellen Sie jedoch sicher, dass Folgendes ordnungsgemäß installiert ist.
Hinweise: Apple M1/M2/M3 funktioniert nicht, da die architekturübergreifende Erstellung von Containern noch nicht unterstützt wird. Sie müssen auf x86_64 aufbauen, das dem SageMaker-Endpunkt entspricht.
Schritt 1 – Projekt klonen:
git clone https://github.com/aws-samples/comfyui-on-amazon-sagemaker.git
Schritt 2 – Passen Sie die folgenden Dateien an (optional):
FLUX.1 - Wenn Sie FLUX.1-Modelle ausprobieren möchten:
- Kommentieren Sie hier oder hier, um die Modelle herunterzuladen.
- Aktualisieren Sie hier, um
SAGEMAKER_INSTANCE_TYPE
auf mindestensml.g5.2xlarge
zu ändern.- Verwenden Sie in der API-Anfrage die entsprechende Eingabeaufforderungsdatei
flux1-dev-fp8-ckpt.json
“ oderflux1-schnell-fp8-ckpt.json
.
Schritt 3 – Führen Sie „deploy.sh“ aus. Die Fertigstellung dauert in der Regel weniger als eine Stunde.
./deploy.sh
Zur Veranschaulichung ist die Lambda-Funktions-URL aktiviert, sodass Sie die Bildgenerierung testen können, indem Sie diesen dedizierten HTTPS-Endpunkt aufrufen. Die Endpunkt-URL finden Sie unter ComfyUIFunctionUrl
in der Stack-Ausgabe.
AWS_IAM
Authentifizierung ist standardmäßig für den Aufruf der Lambda-Funktions-URL konfiguriert, daher müssen Sie jede HTTP-Anfrage mit AWS Signature Version 4 (SigV4) signieren. Tools wie awscurl, Postman und AWS SigV4 Proxy bieten integrierte Möglichkeiten zum Signieren Ihrer Anfragen mit SigV4. Sie können die Authentifizierung deaktivieren, indem Sie LAMBDA_URL_AUTH_TYPE
in „deploy.sh“ auf NONE
setzen. Dies ist jedoch gefährlich, da die Funktions-URL für alle zugänglich ist.
Beispiel einer AWS-Signaturautorisierung mit Postman:
Und hier ist ein Beispiel für einen Anfragetext:
{
"positive_prompt" : " hill happy dog " ,
"negative_prompt" : " hill " ,
"prompt_file" : " workflow_api.json " ,
"seed" : 11245
}
Ein erfolgreicher Aufruf, bei dem das generierte Bild angezeigt wird:
Löschen Sie die folgenden von „deploy.sh“ bereitgestellten Ressourcen.
comfyui
)comfyui-sagemaker-<AWS_ACCOUNT_ID>-<AWS_REGION>
)comfyui-sagemaker
) Siehe ENTWICKLUNG
Weitere Informationen finden Sie unter BEITRAGEN.
Diese Bibliothek ist unter der MIT-0-Lizenz lizenziert. Siehe die LICENSE-Datei.