CommencerCommencer gratuitement

Édition d’image personnalisée

La génération d’images par IA est déjà impressionnante, mais certains modèles prennent aussi en charge l’édition d’images personnalisée : une variante multimodale de la génération d’images qui accepte à la fois un prompt textuel et une image source en entrée. Essayez de modifier ce célèbre autoportrait de Van Gogh pour le transformer en personnage de dessin animé, Snoopy, en utilisant StableDiffusionControlNetPipeline :

Famous Van Gogh painting

Remarque : l’inférence sur les modèles de diffusion peut être longue, nous avons donc préchargé l’image générée pour vous. Exécuter des prompts différents ne générera pas de nouvelles images.

La version de l’image filtrée avec Canny a été créée pour vous (canny_image). Les classes StableDiffusionControlNetPipeline et ControlNetModel ont été importées depuis la bibliothèque diffusers. La liste de générateurs (generator) a été créée.

Cet exercice fait partie du cours

Modèles multimodaux avec Hugging Face

Afficher le cours

Instructions

  • Chargez ControlNetModel depuis le checkpoint lllyasviel/sd-controlnet-canny.
  • Chargez StableDiffusionControlNetPipeline depuis le checkpoint runwayml/stable-diffusion-v1-5, en passant le controlnet fourni.
  • Exécutez le pipeline en utilisant le prompt, le canny_image, ainsi que le negative_prompt et le generator fournis.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# 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()
Modifier et exécuter le code