見出し画像

Stable Diffusionの利用を考えてみる①

はじめに

テックブログを書かねばならないとき、ネタを何にするか皆さん悩まれるかと思います。
昨今で最も世の中を賑わせている技術といてば生成系AIでしょうか。世間では業務への利用やAPIを利用したサービス開発やエンハンスメントの話題まで耳にするようになっています。弊社でも一部でこのような動きはあるようですし、このテックブログでもChatGPTは既に取り扱われています(しかも①、シリーズネタ!素晴らしい!)ので、今回はfukyoさんの記事をその構成から拝借しつつ、画像生成系AIの Stable Diffusion を取り上げたいと思います。

Stable Diffusionは、英国のStability AI社が開発した画像生成モデルで、入力されたテキスト(プロンプト)をもとに、学習済みのAIモデル(Diffusion Model)を利用使って画像を生成します。ユーザーは作成したい画像のイメージ(例えば、アマゾンのジャングル、高層ビルが建ち並ぶ都会、など)を英単語で区切って入力することで、様々な画像を作成できます。
またテキストから画像(txt2img)だけでなく、画像から画像を生成したり(img2img)、画像からテキスト(img2txt)を生成したりできます。かなり難しそうですが、工夫すれば帳票画像から帳票フォームファイルのマークアップが生成できたりするかも知れません。

現時点での課題

日本の著作権上では、文化庁・内閣府の方からAI開発・学習段階と、生成・利用する段階とで適用条文が異なるため、分けて考える必要があることや、学習段階においては基本的には原則として著作権の許諾なく利用することが可能との見解が出ています。ただし、生成・利用する段階においてはAI生成画像をアップロードして公表したり、複製物を販売したりする場合の著作権侵害の判断は、私的な鑑賞/行為などを著作権法で利用が認められている場合を除き、通常の著作権侵害となるようです。また生成された画像そのものが著作物として認められるか否かは意見が分かれるようですが、いくつか調べてみた限りではStable Diffusion のような単語の羅列の場合、著作物とは認められない可能性があるように思いました。法的には適法であっても、ルールの異なる海外では訴訟も起きており、またこのような考え方が一般化するまでは不快感を抱く著作者の方もいらっしゃるかと思います。そうした著作物を利用した生成画像の公開や製品した製品への利用に関しては辞めた方が良いでしょうし、積極的に商業利用するより、まずは技術的に何が出来るのか把握するに努めようと思います。

https://stable-diffusion-art.com/terms-of-service/

その他

今回はDreamStudio(Stable Diffusionをウェブ上で使えるようにしたサービス)ではなく、Stable Diffusionをローカル環境にインストールして試していますが、PythonやGitのインストール、必要なPCのスペック等のStable Diffusionを利用するための情報は今回は取り上げませんので、他のサイトを参考にしてください。

Stable DiffusionでinvoiceAgent風な架空のZipボタンのアイコンを作成する

とりあえず基本の何らかの画像を出力したいと思います。
弊社では製品のボタンアイコンは社内のデザイナーへ依頼し作成して貰います。ただ想像したものがすぐに出てくるとは限りませんし、やり取りに手間も掛かります。実際には上記の通り、類似性の有無の確認や著作物として認められない可能性を考慮すると実業務で使うことは考えていないのですが、便利そうだという妄想を膨らませて先に勧めたいと思います。ちなみにウェブ上ですとアイコンを作ったとの記事も散見されるので、これは楽勝ではないでしょうか!?
ちなみに数ある製品の中からinvoiceAgentを選択した理由はこちらです。

追加で学習データが必要になったとき、パッと見これだけの数が纏まって揃っていると、学習データを作るのに楽そうだなと思ったからです。
ではさっそく生成しちゃいましょう。モデルは商用利用可能なモデルでパブリックドメインの画像を利用しているとのことですので、こちらのモデルを利用しています。ライセンスもCreativeML Open RAIL-Mという良く使われているものです。
Prompt: folder, zip, simple button icon
Model: Realism Engine
Sampling method:DPM++ 2M Karras
またvae-ft-mse-840000-ema-pruned.safetensors、EasyNegativeも使っています。

"アイコン"ではあるが…ちょっと派手だったり独創的だったりしてB2B向けの弊社の製品の既存のボタンとはちょっと雰囲気が合わなそうです。ネットの記事を参考に他のモデルやプロンプトを変更してみても、やはり既存の製品向けのボタンアイコンとは合わなそうでした。デザイナーさんには当然、製品名も伝えるでしょうし、雰囲気が他の既存のボタンと合わない場合、既存のボタンを見せて作ってもらうわけなので、これはちょっと情報量が足りませんでした。…ということでinvoiceAgent(文書管理)のボタンアイコンを利用して追加学習データLoraを作成し、invoiceAgentに合ったものを作成して貰いましょう。

自作でLoraを生成するために作成したデータとキャプションファイル

追加学習のためには学習用データとその内容を示すキャプションファイルが必要ですので、ちょっと面倒なのですが作成します。

Loraの作成

作成したLoraを使って再度生成を試みます。

Prompt: <lora:icon:1.2>simple icon, folder icon, zip logo, square
Sampling method:DDIM
フォルダらしきものは散見されるのですが、zipっぽさがありません…。Promptを修正してジッパーなどの圧縮ファイルらしさを引き出そうとすると、ややリアルなファスナーが出てきました。

元の多くの学習データが512*512とのことですので、そこに含まれるアイコンも企業アイコンなどのある程度のサイズがあるものが主で、通常の画像からジッパー自体は理解できてもZipアイコンのようなボタンアイコンの学習データが少ないのかも知れません。Zipアイコンを追加で学習させれば出力出来そうですが、Zipアイコンだけの画像がたくさん手元にあるわけでもないので、今回は仕方なくガチャで対応します。枠が付いていたり、背景色が合わなかったり、フォルダの色が微妙だったりが気になったので、プロンプトは微妙に修正をつづけます。
Prompt: <lora:icon:1.2> simple icon, yellow folder icon, simple zipper logo, gray background

1800個程度生成したところで複数のフォルダをファスナーでまとめてる?画像がありましたので、こちらを採用したいと思います。

iAのボタンの一覧に作成した画像を紛れ込ませたところ。

今更ですが背景色と色合いは画像編集ソフトを使って合わせてあります…。学習データを揃えてモデルを作ったり、プロンプトをもっと工夫したりすれば違ったかもしれませんが、こういう用途が決まりきったサイズが小さくシンプルな画像は、AIなど使わず素直にデザイナーさんに依頼した方がよさそうですね。

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