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'controlnet
fourni. - Exécutez le pipeline à l'aide des fichiers
prompt
,canny_image
,negative_prompt
etgenerator
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()