始める無料で始める

カスタム画像編集

AI による画像生成はそれだけでも魅力的ですが、モデルによってはカスタム画像編集にも対応しています。これは、テキストプロンプトと元画像の両方を入力に取る、マルチモーダルな画像生成の一種です。StableDiffusionControlNetPipeline を使って、有名なゴッホの自画像を漫画キャラクターの Snoopy に変えてみましょう。

Famous Van Gogh painting

注意: 拡散モデルでの推論は時間がかかるため、生成済み画像をあらかじめ読み込んであります。異なるプロンプトを実行しても新しい画像は生成されません。

Canny フィルター版の画像(canny_image)は用意済みです。StableDiffusionControlNetPipelineControlNetModel クラスは diffusers ライブラリからインポートされています。ジェネレーターのリスト(generator)も作成済みです。

この演習はコースの一部です

Hugging Face で学ぶマルチモーダルモデル

コースを見る

演習の手順

  • lllyasviel/sd-controlnet-canny チェックポイントから ControlNetModel を読み込みます。
  • 提供された controlnet を渡して、runwayml/stable-diffusion-v1-5 チェックポイントから StableDiffusionControlNetPipeline を読み込みます。
  • 用意された promptcanny_imagenegative_promptgenerator を使ってパイプラインを実行します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

## 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()
コードを編集して実行