Este proyecto demuestra cómo generar imágenes utilizando Stable Diffusion alojando ComfyUI en Amazon SageMaker Inference. Es un patrón de diseño que permite agregar la capacidad de generación de imágenes GenAI a su aplicación.
ComfyUI es una de las GUI y backend más populares que le permite generar imágenes utilizando Stable Diffusion. Algunas de las características clave:
Al alojar ComfyUI mediante Amazon SageMaker Inference, puede resultar especialmente adecuado cuando desea:
Hay una función Lambda para invocar el punto final de inferencia de SageMaker (que ejecuta ComfyUI) para generar imágenes. A modo de ilustración, la URL de la función Lambda está configurada para que pueda probar la generación de imágenes llamando a este punto final HTTPS dedicado.
La forma más sencilla es iniciar una instancia EC2 de g5.xlarge
que ejecute AMI Deep Learning OSS Nvidia Driver AMI GPU PyTorch 2.3.0 (Amazon Linux 2)
. Conéctese a la instancia usando Session Manager , luego agregue el usuario a docker
del grupo ejecutando el siguiente comando.
sudo usermod -a -G docker $( whoami )
Desconéctate y conéctate nuevamente para que la membresía del grupo actualizada surta efecto.
- Si no ejecuta ComfyUI localmente, una instancia que no sea de GPU, como
t3.small
también funciona.- Si desea ejecutar el modelo FLUX.1, utilice al menos
g5.2xlarge
o superior para la versión fp8. use al menosg5.4xlarge
para la versión fp16.
AWS Cloud9 o la máquina local también funcionan, pero asegúrese de que lo siguiente esté instalado correctamente.
Notas: Apple M1/M2/M3 no funciona porque la compilación de contenedores entre arquitecturas aún no es compatible. Debe compilar en x86_64 que coincida con el punto final de SageMaker.
Paso 1 : clonar el proyecto:
git clone https://github.com/aws-samples/comfyui-on-amazon-sagemaker.git
Paso 2 : personaliza los siguientes archivos (opcional):
FLUX.1 - Si quieres probar los modelos FLUX.1:
- descomentar aquí o aquí para descargar los modelos.
- actualice aquí para cambiar
SAGEMAKER_INSTANCE_TYPE
a al menosml.g5.2xlarge
.- utilice el archivo de aviso correspondiente
flux1-dev-fp8-ckpt.json
oflux1-schnell-fp8-ckpt.json
en la solicitud de API.
Paso 3 : ejecute implementar.sh. Por lo general, tarda menos de una hora en completarse.
./deploy.sh
A modo de ilustración, la URL de la función Lambda está habilitada para que pueda probar la generación de imágenes llamando a este punto final HTTPS dedicado. La URL del punto final se puede encontrar en ComfyUIFunctionUrl
en la salida de la pila.
La autenticación AWS_IAM
está configurada de forma predeterminada para invocar la URL de la función lambda, por lo que debe firmar cada solicitud HTTP utilizando AWS Signature Version 4 (SigV4). Herramientas como awscurl, Postman y AWS SigV4 Proxy ofrecen formas integradas de firmar sus solicitudes con SigV4. Puede deshabilitar la autenticación configurando LAMBDA_URL_AUTH_TYPE
en NONE
en implementar.sh pero es peligroso ya que la URL de la función está abierta a todos.
Ejemplo de autorización de firma de AWS utilizando Postman:
Y aquí hay un ejemplo de cuerpo de solicitud:
{
"positive_prompt" : " hill happy dog " ,
"negative_prompt" : " hill " ,
"prompt_file" : " workflow_api.json " ,
"seed" : 11245
}
Una invocación exitosa viendo la imagen generada:
Elimine los siguientes recursos implementados por implementar.sh.
comfyui
)comfyui-sagemaker-<AWS_ACCOUNT_ID>-<AWS_REGION>
)comfyui-sagemaker
) Ver DESARROLLO
Consulte CONTRIBUCIÓN para obtener más información.
Esta biblioteca tiene la licencia MIT-0. Ver el archivo de LICENCIA.