Zacznij terazZacznij za darmo

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:

Famous Van Gogh painting

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

Zobacz kurs

Instrukcje do ćwiczenia

  • Wczytaj ControlNetModel z checkpointu lllyasviel/sd-controlnet-canny.
  • Wczytaj StableDiffusionControlNetPipeline z checkpointu runwayml/stable-diffusion-v1-5, przekazując dostarczony controlnet.
  • Uruchom pipeline, używając prompt, canny_image oraz dostarczonych negative_prompt i generator.

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()
Edytuj i uruchom kod