novitalabs/comfyui-worker:v0.0.1 como ejemplo para mostrar cómo crear y llamar a un Endpoint serverless asíncrono.
1. Preparar la imagen del contenedor
Empaqueta tu entorno de ejecución en una imagen de Docker y súbela por adelantado a un registro de imágenes. Se admiten registros de imágenes públicos y privados. Los registros privados requieren credenciales para extraer la imagen.- Puedes subir tu imagen a Docker Hub. Actualmente, la plataforma proporciona un servicio de precalentamiento de imágenes para imágenes de Docker Hub.
novitalabs/comfyui-worker:v0.0.1. La imagen incluye ComfyUI y el SDK de worker de Novita. La entrada de la tarea es un JSON de flujo de trabajo de ComfyUI, y el handler del worker devuelve los resultados de las imágenes generadas. Recomendamos configurar variables de entorno de almacenamiento de objetos como BUCKET_ENDPOINT_URL, para que las imágenes y videos generados puedan subirse a tu bucket y devolverse como URLs en la salida del trabajo.
2. Seleccionar la especificación de la instancia
Async Serverless Endpoint admite actualmente los siguientes tipos de instancias GPU:- RTX 4090 24GB
- H100 SXM 80GB
comfyui-worker, recomendamos RTX 4090 24GB.
Para requisitos adicionales, contáctanos.
3. Crear almacenamiento en la nube (opcional)
Si necesitas almacenamiento compartido o persistente, crea almacenamiento en la nube en la página de administración de almacenamiento y luego monta el almacenamiento al crear el endpoint. Para más detalles, consulta Administrar almacenamiento en la nube.4. Crear endpoint
- Ve a la página GPU serverless asíncronas, selecciona un tipo de instancia y haz clic en “Crear endpoint”.
- Completa la configuración de parámetros del endpoint.
- Nombre del endpoint: Se usa para identificar de forma única el endpoint. Forma parte de la URL al crear trabajos. El sistema genera un nombre predeterminado aleatorio. Puedes personalizarlo, pero se recomienda usar el nombre predeterminado.
- Configuración del worker
| Elemento de configuración | Descripción |
|---|---|
| Recuento mínimo de workers | El número mínimo de instancias de worker que se mantendrán para el endpoint. Establecer un mínimo más alto ayuda a reducir el tiempo de arranque en frío. Si se establece en 0, no habrá workers inactivos cuando no haya solicitudes, lo que puede aumentar la latencia de respuesta para nuevas solicitudes. Usa 0 con precaución en escenarios sensibles a la latencia. |
| Recuento máximo de workers | El número máximo de instancias de worker al que puede escalar el endpoint. Cuando aumenta el volumen de solicitudes, la plataforma incrementa automáticamente los workers hasta este máximo. Este límite ayuda a controlar los costos. |
| Tiempo de espera inactivo (segundos) | Cuando un worker está a punto de liberarse debido a una reducción de escala, la plataforma lo mantiene durante el tiempo de espera inactivo configurado para que pueda responder rápidamente a nuevas solicitudes. Se te cobrará por el worker durante este período. |
| Solicitudes concurrentes máximas | El número máximo de solicitudes concurrentes gestionadas por un worker. Si se supera, las solicitudes se enrutan a otros workers. Si todos los workers están completamente ocupados, las solicitudes excedentes se ponen en cola hasta que sea posible ejecutarlas. |
| GPU / worker | Número de tarjetas GPU asignadas a cada worker. |
| Versión de CUDA | Versión de CUDA usada por el worker. |
GPUs / Worker en 1.
- Tipo:
- Selecciona Async.
- Política elástica:
- Selecciona política de solicitudes en cola.
- Establece concurrencia objetivo de un solo worker en
1. El worker de ComfyUI de este ejemplo procesa un trabajo a la vez. Cuando las solicitudes en cola superan la capacidad actual de los workers, la plataforma escala los workers según el recuento de solicitudes en cola hasta alcanzar el recuento máximo de workers.
- Configuración de imagen:
- Dirección de imagen:
novitalabs/comfyui-worker:v0.0.1. - Credenciales del repositorio de imágenes: Si la imagen es privada, proporciona credenciales para extraer la imagen. Puedes crear credenciales en la página de administración de credenciales de seguridad.
- Puerto HTTP: Puerto HTTP del worker.
- Comando de inicio del contenedor: Comando ejecutado cuando se inicia el contenedor.
- Dirección de imagen:
- Configuración de almacenamiento:
- Disco del sistema: Tamaño del disco del sistema por instancia de worker.
- Almacenamiento en la nube: Selecciona almacenamiento en la nube si necesitas montarlo. Para más detalles, consulta Administrar almacenamiento en la nube.
- Otros:
- Ruta de comprobación de estado: Este parámetro no está habilitado actualmente.
- Variables de entorno: Establece las variables de entorno requeridas por el servicio. Ejemplo de configuración de S3:
comfyui-worker, recomendamos encarecidamente configurar almacenamiento de objetos para que las imágenes de salida se suban a un bucket y se devuelvan como URLs.
- Revisa los precios y haz clic en “Implementar con un clic”.
5. Acceder al servicio
- En la página GPU serverless asíncronas, busca el endpoint recién creado y asegúrate de que su estado sea “En ejecución”.
- Asegúrate de que al menos un worker del endpoint esté en ejecución.
- Asegúrate de tener una API Key para la autenticación. El creador del endpoint y el propietario de la API Key deben pertenecer al mismo equipo.
Obtener una API Key:
- Inicia sesión en la consola de Novita.
- Ve a la página API Key / Key Management.
- Crea una API Key y copia el valor
sk_...generado. - Asegúrate de que el propietario de la API Key y el propietario del endpoint estén en el mismo equipo.
5.1 Crear un trabajo y recuperar la salida mediante Curl
La siguiente solicitud es un ejemplo ejecutable decomfyui-worker y coincide con el caso probado. Reemplaza 0f43a6867e05fddd en la URL por el nombre real de tu endpoint, y reemplaza sk_xxxx por tu API Key real.
El tamaño máximo de trabajo aceptado por Async Serverless Endpoint es de 4 MiB.
id es el job_id:
El tamaño máximo de salida devuelto por la API
status de Async Serverless Endpoint es de 4 MiB. Para evitar esta limitación, configura variables de entorno de almacenamiento de objetos y devuelve URLs de archivos subidos en la salida.Los resultados de los trabajos se conservan en Async Serverless Endpoint durante un máximo de 6 horas después de completarse.5.2 Crear trabajo y obtener resultados mediante el SDK de Novita
Instala el SDK:novita-gpus es https://async-public.serverless.novita.ai/v1.