Este projeto demonstra como gerar imagens usando Stable Diffusion hospedando o ComfyUI no Amazon SageMaker Inference. É um padrão de design que permite adicionar capacidade de geração de imagens GenAI à sua aplicação.
ComfyUI é uma das GUI e back-end mais populares que permite gerar imagens usando Stable Diffusion. Alguns dos principais recursos:
Ao hospedar o ComfyUI usando o Amazon SageMaker Inference, ele pode ser particularmente adequado quando você deseja:
Existe uma função Lambda para invocar o endpoint de inferência do SageMaker (que está executando o ComfyUI) para gerar imagens. Por exemplo, o URL da função Lambda é configurado para que você possa testar a geração da imagem chamando esse endpoint HTTPS dedicado.
A maneira mais fácil é iniciar uma instância EC2 de g5.xlarge
executando AMI Deep Learning OSS Nvidia Driver AMI GPU PyTorch 2.3.0 (Amazon Linux 2)
. Conecte-se à instância usando Session Manager e adicione o usuário ao grupo docker
executando o seguinte comando.
sudo usermod -a -G docker $( whoami )
Desconecte-se e conecte-se novamente para que a adesão ao grupo atualizada tenha efeito.
- Se você não executar o ComfyUI localmente, instâncias não GPU, como
t3.small
também funcionarão.- Se você deseja executar o modelo FLUX.1, use pelo menos
g5.2xlarge
ou superior para a versão fp8. use pelo menosg5.4xlarge
para a versão fp16.
AWS Cloud9 ou máquina local também funcionam, mas certifique-se de que os itens a seguir estejam instalados corretamente.
Observações: Apple M1/M2/M3 não está funcionando porque a construção de contêiner entre arquiteturas ainda não é suportada. Você deve construir em x86_64 que corresponda ao endpoint do SageMaker.
Passo 1 – Clone o projeto:
git clone https://github.com/aws-samples/comfyui-on-amazon-sagemaker.git
Passo 2 - Personalize os seguintes arquivos (opcional):
FLUX.1 - Se você quiser experimentar os modelos FLUX.1:
- descomente aqui ou aqui para baixar os modelos.
- atualize aqui para alterar
SAGEMAKER_INSTANCE_TYPE
para pelo menosml.g5.2xlarge
.- use o arquivo de prompt correspondente
flux1-dev-fp8-ckpt.json
ouflux1-schnell-fp8-ckpt.json
na solicitação da API.
Etapa 3 – Execute o deploy.sh. Geralmente leva menos de uma hora para ser concluído.
./deploy.sh
Por exemplo, o URL da função Lambda está habilitado para que você possa testar a geração de imagem chamando esse endpoint HTTPS dedicado. O URL do endpoint pode ser encontrado em ComfyUIFunctionUrl
na saída da pilha.
A autenticação AWS_IAM
é configurada por padrão para invocar o URL da função lambda, portanto, você deve assinar cada solicitação HTTP usando o AWS Signature versão 4 (SigV4). Ferramentas como awscurl, Postman e AWS SigV4 Proxy oferecem maneiras integradas de assinar suas solicitações com SigV4. Você pode desativar a autenticação definindo LAMBDA_URL_AUTH_TYPE
como NONE
em deploy.sh, mas é perigoso porque o URL da função está aberto a todos.
Exemplo de autorização do AWS Signature usando Postman:
E aqui está um exemplo de corpo de solicitação:
{
"positive_prompt" : " hill happy dog " ,
"negative_prompt" : " hill " ,
"prompt_file" : " workflow_api.json " ,
"seed" : 11245
}
Uma invocação bem-sucedida vendo a imagem gerada:
Exclua os seguintes recursos implementados por deploy.sh.
comfyui
)comfyui-sagemaker-<AWS_ACCOUNT_ID>-<AWS_REGION>
)comfyui-sagemaker
) Veja DESENVOLVIMENTO
Consulte CONTRIBUINDO para obter mais informações.
Esta biblioteca está licenciada sob a licença MIT-0. Veja o arquivo LICENÇA.