VTRyo Blog

一歩ずつ前に進むブログ

金も時間も画力もないからStable Diffusion × Google Colab × Canvaを使って無料で同人誌表紙をつくった

「俺は絵が描けない」という課題は、同人誌を製作する上で常に付き纏っていた問題だった。

プロのデザイナーにお願いすることはあるが、やはり、自分の思ったものに近い絵を自分でつくり出したいというモチベーションは創作家にはつきもの。

2022年、世界を震撼させた画像生成AIサービス「Stable Diffusion」のオープンソース化によって、その理想がぐっと現実的になったのでないだろうか。

chizaizukan.com

ロンドンを拠点とするAIスタートアップ・Stability AI社は2022年8月22日(現地時間)、画像生成AIサービス「Stable Diffusion(ステーブル・ディフュージョン)」をオープンソースとして全世界に公開した。

成果物

ここまで完全に無料でやりきったので、経済的にダメージはない。

時間としては、Google Colabにプログラムを記述したり生成したりするのに30分。描かせたい絵を表現するための「呪文」検討に1時間。Canvaでタイトル検討と作成に15分。といったところである。
締め切り(頒布当日)が来週なので、正直時間のなさは異常。

pattern 1

pattern 2

この成果物は何枚か生成(ガチャ)させたうちの中でよかったものを厳選してタイトル付与している。

なお、ガチャしたものは記録として残してある。呪文ニュアンスをあとで検討できるようにするためだ。

用意するもの

以下の登録が済んでいなければ実施する必要がある。もちろん全部無料。

https://huggingface.co/

絵作りステップ

Stable diffusion

CompVis/stable-diffusion-v1-4 · Hugging Face

Stable diffusionのAccess Token準備

Hugging faceへのSign Upが終わったら、Access Tokenをつくる。

ページ右上のプロフィール設定メニューからSettingsを開き、Access Tokenページに飛ぶ。
Sign Upしたときに飛んでいるEmail承認を済ませていれば、Tokenを発行できるようになっているはず。

huggingface.co

権限をREADにして発行すれば、無事Token準備完了。

https://huggingface.co/settings/tokens

リポジトリの利用同意

この手順を飛ばすと後でプログラムを実行するときにアクセス権限エラーが出る。手順を飛ばさないように。

ライセンスについて読んだらAgree and access repositoryを押すことでリポジトリにアクセスできるようになる。

huggingface.co

Google Colab

Google Colab

ノートブックを作成する

マイドライブからでもGoogle Colabへのアクセスでも良いので、新規で作成する。

drive.google.com

colab.research.google.com

Google driveから作成する場合

するとこのページになるので、編集 - ノートブックの設定を押す。

ハードウェア アクセラレータをGPUに変えて保存しておく。

コーディング

基本的には公式手順通りでも動く。

huggingface.co

diffusersはこのブログを書いた時点での最新v0.7.2を指定。

github.com

以下のようにコピペするだけで動く。

  • 1セル目
    • ftfyはUnicodeを修正してくれるライブラリ
!pip install diffusers==0.7.2 transformers scipy ftfy
  • 2セル目
    • <YOUR_ACCESS_TOKEN>には、事前に作成したAccess Tokenを記述する
    • promtに書きたい絵の指示を書く。今書かれているのは成果物で貼ってある絵を書くために指示した内容
    • for num in range(2)で絵の生成を2枚実行させる。10枚ほしければ10に変えればよし
import torch
from torch import autocast
from diffusers import StableDiffusionPipeline

model_id = "CompVis/stable-diffusion-v1-4"
device = "cuda"

pipe = StableDiffusionPipeline.from_pretrained(model_id, use_auth_token='<YOUR_ACCESS_TOKEN>')
pipe = pipe.to(device)

# Write what you want to draw
prompt = "Back view of beautiful girl, walking far away looking at map, elaborate modern building background, hopeful, concept art, comic, wallpaper, by Makoto Shinaki"

num = 0
for num in range(2):
  with autocast("cuda"):
      image = pipe(prompt, guidance_scale=7.5).images[0]

  image.save(str(num) + "_girl.png")
  image

そんなわけで実行していくとこうなるはず。

install library

generate

画像の保存をimage.save(str(num) + "_girl.png")でやっているので、左のフォルダアイコンを押すとそのような名前で生成されている。ファイル名をダブルクリックすると表示されるので、ダウンロードするなりコピーするなりしておこう。

呪文の吟味

これは自分でやったというよりは、先人の知恵を借りながら試行錯誤した。

パワーワードについての章が役に立つ。

note.com

Canva

https://www.canva.com/

編集する

絵をつくったので、表紙として成立させたい。Webデザイナーとかではないので、気の利いたアプリケーションは持っていない。せいぜいKeynoteで頑張るくらいしかなかったのだが、Canvaが無料で充分にがんばれそうな雰囲気を出してたので採用した。なにせ他を吟味する時間がない。締め切り(頒布当日)は来週なのだ。

ダウンロードしてきた画像をCanvaにアップロードする。(が、その前にA5サイズになっててほしかったのでリサイズした)

CanvaのUIがわかりやすいので難しいことは何もいらなかった。

  • 画像をアップロードし、ページに貼り付ける
  • 文字フォントをクリックするとページに貼り付けられるので、そのテキストボックスを修正してタイトルを差し込む
  • 白文字だけだと寂しいので、エフェクトをつけた
  • タイトルが白のままだと背景に溶け込んで見にくいので、影素材を置いた

エフェクト - ネオン

素材 - 影

あとはダウンロードするだけだ。

ファイル - ダウンロード

完成……!

おまけ

ジブンノセツメイショとは

さっきからお前は一体なんの本の表紙を作っているんだという話をすると、これは2022年11月20日(日)11:00〜16:00に開催される技術書博覧会2022で頒布予定のGrowthfaction新刊ジブンノセツメイショの表紙だったのだ!

gishohaku.dev

これまでGrowthfactionとして合同同人誌を書いてきた。

  • 成長
  • 挫折
  • 覚悟

growthfaction.booth.pm

最新は自己理解をテーマに4名が執筆している。


自分を理解しさらに前に進むため「自分の説明書」を作れるようになろうという気持ちを込めてある。
そして今回は同人誌らしく、あらゆる形で自己理解を深められるように著者が形式を工夫した。

  • 技術書形式(理論と実践のための手順で進められるパート)
  • TRPG形式(遊びながら進められるパート)
  • 小説形式(物語を読みながら理解を深めるパート)

ぜひ、自分を知るきっかけになる本となれば幸いだ。

P.S. 今回諸事情で物理本はないけれど、著者(僕)は物理なのでぜひ話しかけにでも来てください(ブースに来たら買わなきゃいけないってわけじゃないので)。

このブログを書くにあたっての参考記事

note.com