Retouche d'images personnalisée
La génération d'images par IA est déjà impressionnante, mais certains modèles prennent aussi en charge la retouche d'images personnalisée, une variante multimodale de la génération qui utilise à la fois une invite textuelle et une image source. Essayez de modifier ce célèbre autoportrait de Van Gogh pour qu'il représente le personnage de bande dessinée Snoopy en utilisant StableDiffusionControlNetPipeline :

Remarque : L'inférence avec les modèles de diffusion peut être longue, donc nous avons préchargé l'image générée pour vous. L'exécution d'invites différentes 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 de la bibliothèque diffusers. La liste du générateur (generator) a été créée.
Cette activité fait partie du cours
Modèles multimodaux avec Hugging Face
Instructions de l’exercice
- Chargez
ControlNetModelà partir du point de contrôlelllyasviel/sd-controlnet-canny. - Chargez
StableDiffusionControlNetPipelineà partir du point de contrôlerunwayml/stable-diffusion-v1-5, en passant lecontrolnetfourni. - Exécutez le pipeline en utilisant le
prompt,canny_image, ainsi que lesnegative_promptetgeneratorfournis.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
## 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()