ComeçarComece de graça

Edição personalizada de imagens

A geração de imagens por IA já é bem legal, mas alguns modelos até permitem editar imagens personalizadas, uma versão multimodal da geração de imagens que usa tanto um texto quanto uma imagem original. Tenta modificar este famoso autorretrato de Van Gogh para que fique parecido com o personagem de desenho animado Snoopy usando o site StableDiffusionControlNetPipeline:

Pintura famosa de Van Gogh

Observação: A inferência em modelos de difusão pode demorar um pouco, então a gente já carregou a imagem gerada pra você. Executar diferentes comandos não vai gerar novas imagens.

A versão da imagem com o filtro Canny foi criada pra você (canny_image). As classes StableDiffusionControlNetPipeline e ControlNetModel foram importadas da biblioteca diffusers. A lista de geradores (generator) já tá pronta.

Este exercício faz parte do curso

Modelos multimodais com Hugging Face

Ver curso

Instruções do exercício

  • Carregue o arquivo “ ControlNetModel ” a partir do ponto de verificação “ lllyasviel/sd-controlnet-canny ”.
  • Carregue o arquivo “ StableDiffusionControlNetPipeline ” do ponto de verificação “ runwayml/stable-diffusion-v1-5 ”, passando o nome do arquivo “ controlnet ” que foi fornecido.
  • Execute o pipeline usando o prompt, canny_image e os arquivos negative_prompt e generator fornecidos.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

# Load a ControlNetModel from the pretrained checkpoint
controlnet = ____("____", torch_dtype=torch.float16)

# Load a pretrained StableDiffusionControlNetPipeline using the ControlNetModel
pipe = ____(
    "____", controlnet=____, torch_dtype=torch.float16
)
pipe = pipe.to("cuda")

prompt = ["Snoopy, best quality, extremely detailed"]

# Run the pipeline
output = pipe(
    ____,
    ____,
    negative_prompt=["monochrome, lowres, bad anatomy, worst quality, low quality"],
    generator=____,
    num_inference_steps=20,
)

plt.imshow(output.images[0])
plt.show()
Editar e executar o código