Modification personnalisée des images
La génération d'images par IA est déjà très impressionnante, mais certains modèles prennent même en charge l'édition d'images personnalisées, une variante multimodale de la génération d'images qui utilise à la fois une invite textuelle et une image source. Essayez de modifier ce célèbre autoportrait de Van Gogh pour en faire le personnage de bande dessinée Snoopy à l'aide de l'StableDiffusionControlNetPipeline:

Note : L'inférence sur les modèles de diffusion peut prendre un certain temps, c'est pourquoi nous avons préchargé l'image générée pour vous. L'exécution de différentes invites ne générera pas de nouvelles images.
Une version de l'image avec le filtre 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 des générateurs (generator) a été créée.
Cet exercice fait partie du cours
Modèles multimodaux avec Hugging Face
Instructions
- Chargez le fichier
ControlNetModelà partir du point de contrôlelllyasviel/sd-controlnet-canny. - Chargez l'
StableDiffusionControlNetPipelineà partir du point de contrôlerunwayml/stable-diffusion-v1-5, en transmettant l'controlnetfourni. - Exécutez le pipeline à l'aide des fichiers
prompt,canny_image,negative_promptetgeneratorfournis.
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()