Vlastní úprava obrázků
Generování obrázků pomocí AI je samo o sobě skvělé, ale některé modely podporují i vlastní úpravu obrázků – multimodální variantu generování, která jako vstup přijímá textový prompt i zdrojový obrázek. Zkus upravit tento slavný autoportrét Van Gogha tak, aby zobrazoval kreslenou postavičku Snoopyho, a to pomocí StableDiffusionControlNetPipeline:

Poznámka: Inference na difuzních modelech může trvat dlouho, proto jsme pro tebe vygenerovaný obrázek předem načetli. Spuštění jiných promptů nové obrázky nevygeneruje.
Verze obrázku zpracovaná Canny filtrem je již připravena (canny_image). Třídy StableDiffusionControlNetPipeline a ControlNetModel jsou naimportovány z knihovny diffusers. Seznam generátorů (generator) je také připraven.
Toto cvičení je součástí kurzu
Multi-Modal Models with Hugging Face
Pokyny k cvičení
- Načti
ControlNetModelz checkpointulllyasviel/sd-controlnet-canny. - Načti
StableDiffusionControlNetPipelinez checkpointurunwayml/stable-diffusion-v1-5a předej mu připravenýcontrolnet. - Spusť pipeline s použitím
prompt,canny_imagea připravených parametrůnegative_promptagenerator.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
## 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()