見出し画像

続キリンを描く - SDXLとGPTs Prompter編

これまで、キリンをAIで描画することに情熱を傾けてきました。今回は、SDXLを使って描画してみます。前回試したDALL-E3と良い勝負できています。

そして、画像生成のプロンプトを作成するのには、ChatGPTの有料版で使えるGPTs「Stable Diffusion Prompter」を使ってみました。「Stable Diffusion Prompter」は、なかなかツボを押さえていて良い感じでした。

戦いの歴史

なお、今回の作品を紹介する前に、これまでの歴史を振り返ってみます。DALL-E3で描くキリンは、とにかく芸術的で美しかったです。かなり満足でした。

以下、Stable Diffusion2.1とオリジナルのChatGPTのプロンプトで頑張って描いたものです。これは、それほどうまくいったとは言えませんでした。。。

今回、美しいキリンの描画に成功した例

そして、今回の作品紹介です!!まずは成功したいくつかの例を!

「雪とキリン」というプロプントで生成したキリンの絵です。

雪とキリン。美しい
振り返った感じが可愛い!

組合せで勝負

「キリンと富士山」と指定してプロンプトを作ってみました。

キリンと富士山で描いた

続けて、「SFの世界で、近未来の施設とキリン」で作ってみました。

SFとキリン

次は「遺跡とキリン」です。

遺跡とキリン
小舟の上のキリン

「迷宮の中のキリン。遺跡」で描いてもらいました。

迷宮の中のキリン。遺跡

学校と美少女とキリン

「アニメ風で、学校の中のキリン。美少女と一緒に。」で描いてもらいました。なんか、良い雰囲気です。

アニメ風で、学校の中のキリン。美少女と一緒に。

良かったのでもう一枚!

もう一枚!

変わり種

次に、少し変わり種で。「美女とキリン。南国の海で。」で描いてもらいました。

美女とキリン。南国の海で。

幻想的な景色

次に「輝く海の中にいるキリン。」で描いてみました。

「輝く海の中にいるキリン。」

図書館にいる美しいキリン。

図書館にいる美しいキリン。

以上、もっとたくさん画像を作ったのですが、気に入ったものだけ上記に貼り付けてみました。まだまだ、アイデア次第で美しいキリンを描画できそうです。しかし、SDXLが描画するキリン、かなり良いですね!

時間があったら、もっと描かせて楽しみたいです。

(memo) ColabでGoogleドライブに作った動画をどんどん保存

以下画像を保存するのに便利な関数gen()を作ったのでメモしておきます。Colabのセルに貼り付けて実行します。

# Google Driveに接続
from google.colab import drive
drive.mount('/content/drive')

# 保存先のフォルダを指定(あらかじめ作っておいてください)⭐
SAVE_DIR = "/content/drive/MyDrive/images"
!pip install diffusers --upgrade
!pip install invisible_watermark transformers accelerate safetensors
from diffusers import DiffusionPipeline
import torch
base = DiffusionPipeline.from_pretrained(
  "stabilityai/stable-diffusion-xl-base-1.0",
  torch_dtype=torch.float16,
  variant="fp16",
  use_safetensors=True
)
base.to("cuda")
refiner = DiffusionPipeline.from_pretrained(
    "stabilityai/stable-diffusion-xl-refiner-1.0",
    text_encoder_2=base.text_encoder_2,
    vae=base.vae,
    torch_dtype=torch.float16,
    use_safetensors=True,
    variant="fp16",
)
refiner.enable_model_cpu_offload()
# ここで関数を定義
from IPython.display import Image,display_png
import datetime
def gen(head, prompt, n=3, n_steps=50, high_noise_frac=0.8):
  datekey = datetime.datetime.now().strftime("%Y%m%d_%H%M%S")
  for i in range(n):
    image = base(
        prompt=prompt,
        num_inference_steps=n_steps,
        denoising_end=high_noise_frac,
        output_type="latent",
    ).images
    image = refiner(
        prompt=prompt,
        num_inference_steps=n_steps,
        denoising_start=high_noise_frac,
        image=image,
    ).images[0]
    image.save(f'{SAVE_DIR}/{head}_{datekey}_{i}.png')
    display_png(image)

そして、以下のようにプロンプトを指定して画像を生成して保存します。基本的に、3枚ずつ生成して指定したGoogle Driveのパスに保存します。

gen(
    "キリン", # ファイル保存用
    "Impressionism of a giraffe amidst a snowy landscape, with gentle snowflakes falling around and a soft, winter sun setting in the background, by Claude Monet and Camille Pissarro, cinematic composition, trending on Artstation."
)

参考

以下を参考に、Colabで使ってみたものです。


この記事が参加している募集

AIとやってみた

この記事が気に入ったらサポートをしてみませんか?