Aan de slagGa gratis aan de slag

Aangepaste bewerkingen op afbeeldingen

AI-afbeeldingen genereren is al behoorlijk gaaf, maar sommige modellen ondersteunen zelfs aangepaste beeldbewerking: een multimodale variant van beeldgeneratie die zowel een tekstprompt als een bronafbeelding gebruikt. Probeer dit beroemde zelfportret van Van Gogh aan te passen zodat het de tekenfilmfiguur Snoopy wordt met de StableDiffusionControlNetPipeline:

Famous Van Gogh painting

Opmerking: Inferentie op diffusion-modellen kan lang duren, dus we hebben de gegenereerde afbeelding alvast voor je geladen. Het uitvoeren van andere prompts levert geen nieuwe afbeeldingen op.

De Canny-filterversie van de afbeelding is al voor je gemaakt (canny_image). De klassen StableDiffusionControlNetPipeline en ControlNetModel zijn geïmporteerd uit de diffusers-bibliotheek. De generatorlijst (generator) is aangemaakt.

Deze oefening maakt deel uit van de cursus

Multi-modale modellen met Hugging Face

Cursus bekijken

Oefeninstructies

  • Laad het ControlNetModel vanaf de lllyasviel/sd-controlnet-canny checkpoint.
  • Laad de StableDiffusionControlNetPipeline vanaf de runwayml/stable-diffusion-v1-5 checkpoint en geef de meegeleverde controlnet door.
  • Voer de pipeline uit met de prompt, canny_image, en de meegeleverde negative_prompt en generator.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

## 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()
Code bewerken en uitvoeren