novitalabs/comfyui-worker:v0.0.1 als Beispiel, um zu zeigen, wie Sie einen Async Serverless Endpoint erstellen und aufrufen.
1. Container-Image vorbereiten
Paketieren Sie Ihre Laufzeitumgebung in ein Docker-Image und laden Sie es vorab in eine Image-Registry hoch. Sowohl öffentliche als auch private Image-Registries werden unterstützt. Private Registries erfordern Anmeldedaten zum Abrufen des Images.- Sie können Ihr Image zu Docker Hub hochladen. Die Plattform stellt derzeit einen Image-Warm-up-Service für Docker-Hub-Images bereit.
novitalabs/comfyui-worker:v0.0.1. Das Image enthält ComfyUI und das Novita worker SDK. Die Aufgabeneingabe ist ein ComfyUI-Workflow-JSON, und der Worker-Handler gibt generierte Bildergebnisse zurück. Wir empfehlen, Umgebungsvariablen für Objektspeicher wie BUCKET_ENDPOINT_URL zu konfigurieren, damit generierte Bilder und Videos in Ihren Bucket hochgeladen und in der Job-Ausgabe als URLs zurückgegeben werden können.
2. Instanzspezifikation auswählen
Async Serverless Endpoint unterstützt derzeit die folgenden GPU-Instanztypen:- RTX 4090 24GB
- H100 SXM 80GB
comfyui-worker-Beispiel empfehlen wir RTX 4090 24GB.
Für zusätzliche Anforderungen kontaktieren Sie uns.
3. Cloud-Speicher erstellen (optional)
Wenn Sie gemeinsamen oder persistenten Speicher benötigen, erstellen Sie Cloud-Speicher auf der Speicherverwaltungsseite und mounten Sie den Speicher anschließend beim Erstellen des Endpoints. Weitere Informationen finden Sie unter Cloud-Speicher verwalten.4. Endpoint erstellen
- Gehen Sie zur Seite Async Serverless GPUs, wählen Sie einen Instanztyp aus und klicken Sie auf „Create Endpoint“.
- Schließen Sie die Parameterkonfiguration des Endpoints ab.
- Endpoint-Name: Wird verwendet, um den Endpoint eindeutig zu identifizieren. Er ist beim Erstellen von Jobs Teil der URL. Das System generiert einen zufälligen Standardnamen. Sie können ihn anpassen, die Verwendung des Standardnamens wird jedoch empfohlen.
- Worker-Konfiguration
| Konfigurationselement | Beschreibung |
|---|---|
| Minimale Worker-Anzahl | Die minimale Anzahl von Worker-Instanzen, die für den Endpoint vorgehalten werden. Ein höheres Minimum reduziert die Kaltstartzeit. Wenn der Wert auf 0 gesetzt ist, gibt es keine inaktiven Worker, wenn keine Anfragen vorliegen. Dies kann die Antwortlatenz für neue Anfragen erhöhen. Verwenden Sie 0 in latenzsensiblen Szenarien mit Vorsicht. |
| Maximale Worker-Anzahl | Die maximale Anzahl von Worker-Instanzen, auf die der Endpoint hochskalieren kann. Wenn das Anfragevolumen steigt, erhöht die Plattform die Anzahl der Worker automatisch bis zu diesem Maximum. Dieses Limit hilft, die Kosten zu kontrollieren. |
| Idle Timeout (Sekunden) | Wenn ein Worker aufgrund einer Herunterskalierung kurz vor der Freigabe steht, behält die Plattform ihn für das konfigurierte Idle Timeout bei, damit er schnell auf neue Anfragen reagieren kann. Während dieses Zeitraums werden Ihnen Kosten für den Worker berechnet. |
| Maximale gleichzeitige Anfragen | Die maximale Anzahl gleichzeitiger Anfragen, die von einem Worker verarbeitet werden. Wenn dieser Wert überschritten wird, werden Anfragen an andere Worker weitergeleitet. Wenn alle Worker vollständig ausgelastet sind, werden überschüssige Anfragen in die Warteschlange gestellt, bis die Ausführung möglich ist. |
| GPUs / Worker | Anzahl der GPU-Karten, die jedem Worker zugewiesen werden. |
| CUDA-Version | Vom Worker verwendete CUDA-Version. |
GPUs / Worker auf 1.
- Typ:
- Wählen Sie Async aus.
- Elastische Richtlinie:
- Wählen Sie Queue request policy aus.
- Setzen Sie Single worker target concurrency auf
1. Der ComfyUI-Worker in diesem Beispiel verarbeitet jeweils einen Job. Wenn die in der Warteschlange befindlichen Anfragen die aktuelle Worker-Kapazität überschreiten, skaliert die Plattform Worker basierend auf der Anzahl der Warteschlangenanforderungen, bis die maximale Worker-Anzahl erreicht ist.
- Image-Konfiguration:
- Image-Adresse:
novitalabs/comfyui-worker:v0.0.1. - Anmeldedaten für das Image-Repository: Wenn das Image privat ist, geben Sie Anmeldedaten zum Abrufen des Images an. Sie können Anmeldedaten auf der Verwaltungsseite für Sicherheitsanmeldedaten erstellen.
- HTTP-Port: HTTP-Port des Workers.
- Container-Startbefehl: Befehl, der beim Starten des Containers ausgeführt wird.
- Image-Adresse:
- Speicherkonfiguration:
- Systemdisk: Größe der Systemdisk pro Worker-Instanz.
- Cloud-Speicher: Wählen Sie Cloud-Speicher aus, wenn Sie ihn mounten müssen. Weitere Informationen finden Sie unter Cloud-Speicher verwalten.
- Sonstiges:
- Health-Check-Pfad: Dieser Parameter ist derzeit nicht aktiviert.
- Umgebungsvariablen: Legen Sie die vom Service benötigten Umgebungsvariablen fest. Beispiel für eine S3-Konfiguration:
comfyui-worker empfehlen wir dringend, Objektspeicher zu konfigurieren, damit Ausgabebilder in einen Bucket hochgeladen und als URLs zurückgegeben werden.
- Prüfen Sie die Preise und klicken Sie auf „Deploy with One Click“.
5. Auf den Service zugreifen
- Suchen Sie auf der Seite Async Serverless GPUs den neu erstellten Endpoint und stellen Sie sicher, dass sein Status „Running“ ist.
- Stellen Sie sicher, dass mindestens ein Worker im Endpoint ausgeführt wird.
- Stellen Sie sicher, dass Sie einen API Key zur Authentifizierung haben. Der Endpoint-Ersteller und der API-Key-Inhaber müssen demselben Team angehören.
API Key abrufen:
- Melden Sie sich bei der Novita-Konsole an.
- Gehen Sie zur Seite API Key / Key Management.
- Erstellen Sie einen API Key und kopieren Sie den generierten Wert
sk_.... - Stellen Sie sicher, dass sich der API-Key-Inhaber und der Endpoint-Inhaber im selben Team befinden.
5.1 Job erstellen und Ausgabe per Curl abrufen
Die folgende Anfrage ist ein ausführbarescomfyui-worker-Beispiel und entspricht dem getesteten Fall. Ersetzen Sie 0f43a6867e05fddd in der URL durch Ihren tatsächlichen Endpoint-Namen und ersetzen Sie sk_xxxx durch Ihren tatsächlichen API Key.
Die maximale Job-Größe, die von Async Serverless Endpoint akzeptiert wird, beträgt 4 MiB.
id die job_id ist:
Die maximale Ausgabegröße, die von der Async Serverless Endpoint
status API zurückgegeben wird, beträgt 4 MiB. Um diese Einschränkung zu vermeiden, konfigurieren Sie Umgebungsvariablen für Objektspeicher und geben Sie URLs hochgeladener Dateien in der Ausgabe zurück.Job-Ergebnisse werden nach Abschluss bis zu 6 Stunden im Async Serverless Endpoint aufbewahrt.5.2 Job erstellen und Ergebnisse über das Novita SDK abrufen
Installieren Sie das SDK:novita-gpus SDK ist https://async-public.serverless.novita.ai/v1.