IniziaInizia gratis

Modifica personalizzata di immagini

La generazione di immagini con l’AI è già molto interessante, ma alcuni modelli supportano anche la modifica personalizzata delle immagini: una variante multi-modale della generazione che accetta sia un prompt testuale sia un’immagine di origine. Prova a trasformare questo famoso autoritratto di Van Gogh nel personaggio dei cartoni animati Snoopy usando la StableDiffusionControlNetPipeline:

Famous Van Gogh painting

Nota: L’inferenza con i modelli di diffusione può richiedere tempo, quindi abbiamo già precaricato l’immagine generata per te. Eseguire prompt diversi non genererà nuove immagini.

La versione con filtro Canny dell’immagine è stata creata per te (canny_image). Le classi StableDiffusionControlNetPipeline e ControlNetModel sono state importate dalla libreria diffusers. La lista del generatore (generator) è stata creata.

Questo esercizio fa parte del corso

Modelli multi-modali con Hugging Face

Visualizza il corso

Istruzioni dell'esercizio

  • Carica il ControlNetModel dal checkpoint lllyasviel/sd-controlnet-canny.
  • Carica la StableDiffusionControlNetPipeline dal checkpoint runwayml/stable-diffusion-v1-5, passando il controlnet fornito.
  • Esegui la pipeline usando il prompt, canny_image e i negative_prompt e generator forniti.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

## NOTE: no imports are required for this exercise
# 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()
Modifica ed esegui il codice