6
4

【Python】AIで、ゴッホ風のイラストを生成してみたよぉ

Last updated at Posted at 2024-04-28

環境メモ
⭐️Windows 11
⭐️プロセッサ:AMD Ryzen 7 6800HS with Radeon Graphics
⭐️Python 3.12.3

ゴッホ風のイラストをAIを使って画像生成できることを知ったので、試してみたよぉ

↓↓完成内容
001.png

0020.png

スクリーンショット 2024-04-28 185029.png

スクリーンショット 2024-04-28 185146.png

↓↓↓生成したイラストは、下記、はてなブログに載せています。

1.Stable Diffusion(ステイブル・ディフュージョン)

Stable Diffusion(ステイブル・ディフュージョン)とは、Stability AI社が開発した画像生成AIサービスです。
テキスト(prompt)を入力し、それに応じたリアルな画像やアニメ風の画像まで作成します。
Stable Diffusionは、オープンソースなので使用料はかかりません。(2024/04/27時点の情報)
Stable Diffusionは、Webブラウザ上で利用する方法と、ローカル環境で利用する方法の2つがあります。

2.Hugging Face(ハギングフェイス)

Hugging Face(ハギングフェイス)とは 機械学習モデルの開発と共有、公開をするためのプラットフォームです。
Hugging Face社のオープンソースライブラリは「Hugging Face Hub」で公開されている学習済みモデルやデータセットをプログラム上で使用できます。
今回、Hugging Faceで公開されているオープンソースライブラリの画像生成タスクに特化した「Diffusers」を使用します。

Hugging FaceとDiffusersについては、下記のサイトに詳しく記載されています。
https://ledge.ai/articles/The-Al-community

3.Van Gogh Diffusion(バンゴッホ ディフュージョン)

Van Gogh Diffusion(バンゴッホ ディフュージョン) とは、ゴッホ風のイラストを生成するモデルです。
Hugging Faceで学習モデルが公開されています。
※ゴッホとは、Vincent Willem van Gogh(フィンセント・ヴィレム・ファン・ゴッホ)オランダのポスト印象派の画家のこと。

Hugging Face 公式サイト(Van Gogh Diffusion)
https://huggingface.co/dallinmackay/Van-Gogh-diffusion

4.開発環境を構築する

Stable Diffusionは、クラウド環境のGoogle Colabを使うことも可能ですが、今回、勉強のため、ローカル環境に構築しました。
Google Colabとは、Google社が提供しているブラウザ上でPythonコードを実行できる環境です。なので、環境構築が不要です。

5.PyTorchをインストールする

PyTorchのインストール方法は、こちらのサイトを参考にインストールしました。
https://zero-cheese.com/7851/

6.pipとPythonをインストールする

こちらを参考にしてpipとPythonをインストールしました。
https://zero-cheese.com/1309/

ちなみに、Hugging Faceのユーザー登録やアクセストークンが無くても使用できるようになっていました。
こちらHugging FaceのGitHubに記載されています。
https://github.com/huggingface/diffusers/issues/1447

7.Diffusersパッケージをインストールする

Diffusersと呼ばれるパッケージを使用するため、pipでDiffusersパッケージをインストールします。
Diffusersは、Stable Diffusionのような、拡散モデルによる画像生成を実行できるフレームワークです。

下記コマンドでDiffusersパッケージをインストールします

$ pip install torch diffusers transformers scipy ftfy

8.ゴッホ風のイラストを生成する

以下のコマンドで実行します。

out_putフォルダの中にpng画像が出力されます。

gogh.rb
import torch
from torch import autocast
from diffusers import StableDiffusionPipeline
from datetime import date
import datetime

# 出力サイズ
image_size_height=720
image_size_width=1280

#ゴッホ風のイラストを生成するモデル
model_id = "dallinmackay/Van-Gogh-diffusion"
pipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16)
pipe = pipe.to("cuda")

#高品質へと調整する
negative_prompt = "EasyNegative"

#キーワードlvngvncntは必須です。
#prompt = "lvngvncnt, night sky, Lake"

#実行日時
today = datetime.datetime.now()
output_date = today.strftime("%Y%m%d%H%M")


# 出力枚数
image_cunt = 10
for i in range(image_cunt):
    with autocast("cuda"):
       image = pipe(prompt, negative_prompt=negative_prompt, height=image_size_height, width=image_size_width).images[0]
       # 出力先
       image.save(f"./out_put/image_{output_date}_{i}.png")

6
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4