Niestandardowa edycja obrazów
Generowanie obrazów przez AI jest samo w sobie imponujące, ale niektóre modele obsługują też niestandardową edycję obrazów – multimodalny wariant generowania, który przyjmuje zarówno prompt tekstowy, jak i obraz źródłowy. Spróbuj przekształcić ten słynny autoportret Van Gogha w postać kreskówkową Snoopy'ego, używając StableDiffusionControlNetPipeline:

Uwaga: wnioskowanie na modelach dyfuzyjnych może trwać długo, dlatego wygenerowany obraz został wstępnie załadowany. Użycie innych promptów nie spowoduje wygenerowania nowych obrazów.
Wersja obrazu przetworzona filtrem Canny'ego została już utworzona (canny_image). Klasy StableDiffusionControlNetPipeline i ControlNetModel zostały zaimportowane z biblioteki diffusers. Lista generatorów (generator) została przygotowana.
To ćwiczenie jest częścią kursu
Modele multimodalne z Hugging Face
Instrukcje do ćwiczenia
- Wczytaj
ControlNetModelz checkpointulllyasviel/sd-controlnet-canny. - Wczytaj
StableDiffusionControlNetPipelinez checkpointurunwayml/stable-diffusion-v1-5, przekazując dostarczonycontrolnet. - Uruchom pipeline, używając
prompt,canny_imageoraz dostarczonychnegative_promptigenerator.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
## 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()