É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 :

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
Instructions
- Chargez
ControlNetModeldepuis le checkpointlllyasviel/sd-controlnet-canny. - Chargez
StableDiffusionControlNetPipelinedepuis le checkpointrunwayml/stable-diffusion-v1-5, en passant lecontrolnetfourni. - Exécutez le pipeline en utilisant le
prompt, lecanny_image, ainsi que lenegative_promptet legeneratorfournis.
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()