LeonardoAiにはSeed値というものが存在します。
他の画像生成Aiでも多くあるSeed値ですがどのように活用すればいいのでしょうか?
そんな悩みの種(seed)をこの記事を読んでスッキリさせましょう。
Seed値って何?
そもそもSeedとは何かというところですが、直訳すると
- 植物の種子: 植物の成長を始めるための胚を含む部分で、将来的に新しい植物を育てるための基盤となるもの。
- 始まりや出発点: 何か新しいプロジェクトやアイデアの始まりや出発点を指すことがあります。「種を蒔く」という表現が使われ、将来の成長や発展を意味します。
- データや情報の初期値: コンピュータ科学やテクノロジー分野では、ランダムな値や初期化されたデータを指すことがあります。例えば、ランダムな数値の列を「乱数の種(seed)」と呼ぶことがあります。
- スポーツや競技におけるトーナメントの順位付け: スポーツのトーナメントで、選手やチームを順位付けする際に使われる「シード」。上位の選手やチームに与えられる順位や位置を指します。
- バックアップやコピーの元データ: データベースやファイルのバックアップやコピーを取る際に、元のデータを「シードデータ(seed data)」と呼ぶことがあります。
こんな感じなようです。何かの始まりや出発点という意味を持っています。コンピューターが発達する前からあることばだと考えると種が大元の意味なのでしょうか。
Google Bardに聞いてみた
コンピューターにおけるSeedとは、ランダム値を生成するのに使用される値です。
シード値は、同じシード値を使用すると常に同じランダム値が生成されますが、シード値を変えると異なるランダム値が生成されます。
シード値は、ゲームやシミュレーションなどのアプリケーションでよく使用されます。
シード値を変えることで、同じプログラムでも異なる結果を生成することができます。
これにより、ゲームやシミュレーションをより面白くしたり、より現実に近づけたりするのに役立ちます。
シード値は、暗号技術でも使用されます。
シード値は、暗号鍵を生成するのに使用されます。
暗号鍵は、データを暗号化したり、復号化したりするために使用されます。
シード値を変えることで、異なる暗号鍵を生成することができ、データをより安全に保護することができます。
シード値は、幅広いアプリケーションで使用される重要な概念です。
シード値を理解することで、より効果的にシード値を活用することができます。
Seed値とはランダム要素に割り当てられる乱数を数値化したものものです。
個別に与えられるIDのようなものと認識しておけばいいでしょう。
Seedは直訳すると種となります。同じ種からは同じ種別の植物が育ちますが、大きさや成長速度などは異なります。ある程度分類されたものだと考えるとわかりやすいです。
画像生成AiにおけるSeed値とは
では画像生成AiにおけるSeed値とは具体的に何を示しているものなのでしょうか。
LeonardoAiのメニューバーではSeed値を固定する機能があり、そこには特定のSeed値を入力することが出来ます。
説明では乱数発生時の決定的な数値と記載されています。
画像生成AiはAiが元の画像を学習して分類分けすることでプロンプトの指示に対し、分類分けした物から該当するものを選び出力しています。
この時に画像を生成するアルゴリズム(コンピュータによる計算やその他の問題解決操作において従うべきプロセスまたは一連のルールのこと)、作成の手順を制御するために使用される乱数がSeed値ということになります。
これにより同じ生成アルゴリズムから生成される画像は、Seed値によって異なります。
難しく考える必要はあまりありません。
生成された画像を作った際の乱数の値だと考えておけば大丈夫です。
同一のプロンプトで生成された画像のSeed値をみてみましょう。
以下の画像は一度に4枚画像生成をした際の画像になります。Seed値はすべて同一の330194944といなっています。同時に生成したので当たり前と言えば当たり前なのですが、これはプロンプトに対して画像生成をした時のランダム値が同じであることを示しています。
同じSeed値でも生成される画像は大きく異なっていますね。
上の画像は同じSeed値ではありますが、プロンプトの作り方が大雑把だったので帽子の色が違ったり
トレーラーのカラーが違ったりしています。プロンプトを作りこめば大枠の画像は似てきます。
それでも複数枚生成したときには若干の違いが出てきます。
近い将来もっとプロンプトによって細かい描写ができる生成Aiに進化していくだろうと予想しています。ものすごく楽しみですね。
Seed値を固定することでできること
Seed値を固定することで生成する画像の再現性が高まります。
Seed値が特定の値に設定されると、画像生成AIがその値に関連する画像を生成するようにプログラムされているためです。
同じプロンプトでも生成される画像は異なることは先ほどの画像からわかります。
中には大きく違うものも生成されてなんだよ!って思うことがあるかと思います。
私はかなりの頻度でちがーうと心の中で叫んでます。
Generateボタンを押して処理待ちから画像が出てくるドキドキ感から奈落の底に落とされる瞬間はなんとも形容しがたいものがあります。
Seed値を固定することで生成される画像を絞り込むことが出来ます。
微修正などはSeed値をうまく活用することで可能になります。
Seed値は画像生成ごとに変わる
プロンプトが同じなんだから出力されるものも同じでしょう?と思われるかもしれませんが同一プロンプトでもSeed値は生成するごとに異なるものとなっています。
テーマはレンガの塀の上に立つスコティッシュフォールドで作成しました。
プロンプト
A Scottish Fold cat, cute, perched atop a brick wall, anime-style, illustration, light pouring, around city backgraund,8k,masterpiece
Seed:940902656
Seed:723787776
左の猫がお気に入りです。この子だけ目が青色なのですが、突然変異の部類に入ります。
再現性が低い目の色になります。
Seed:89063424
Seed:183124736
画像生成を行うごとに画像が少し変わります。Seed値も変わっていますね、構図なども変わっています。
これはランダム要素が画像生成の度に選択されるためです。プロンプトを同じにしても毎回異なる結果が出てきます。
これではプロンプトを同じにしていても気に入った猫をもう少し好みの画像に直したいというときにはプロンプトを追加しても違う猫が出てきます。
同じ猫を出すにはどうしたらいいのか?Seed値を固定することで同じ画像を出すことが可能です。
Seed値の固定の方法
生成済みのプロンプトからシード値、プロンプト、ネガティブプロンプト、resolution(サイズ)をコピーしておきます。メモに貼り付けでもいいですし、タブを2つ使用して片方でコピーしたものを別のタブのアプリに貼り付ける方法でもいいでしょう。
コピーしたものをそれぞれ貼りつけしておきます。
今回はこの子をもう一度召喚します。Seed値は723787776です。
Seed値の入力欄に生成されたSeed値を入力します。
隠れている場合はshow Adovancced Settingsの右側に▼があるのでクリックすると出現してきます。
Seed値を有効にします。Use fixed seed の右側で切り替えてください。
プロンプト、ネガティブプロンプト、サイズは必ず生成されたものと同じものを入力してください。
左から2番目に同じ画像が生成されています。
Seed値を固定していたとしても毎回同じ画像がでてくるとは限らないようです。
しかし生成される範囲が狭まるので高確率で同じものが生成されます。
Seed値を変えるとどうなる?
Seed値を固定することで再現性を高めることが出来ました。
ではSeed値を変えるとどうなるのか?
色々調べましたが出てくるのはSeed値を固定した場合の記事ばかりです。
これは先ほど同じプロンプトでも画像生成ごとにSeed値が違うもの=違う画像が出来上がることの結果からも似て非なるものと考えていいようです。
今のところSeed値を意図的に変えることは画像を生成するにあたってはあまり効果がないようです。
なぜならSeed値を変えてもどういう結果になるか想像ができないからです。
Seedって便利だな! Seed値を固定して画像を修正しよう!
先ほどの猫をもう一度召喚してみたいと思います。
背景を昼のお城に変えます。目の色が黄色が選択されがちなので目の色を指定します。
プロンプト
A Scottish Fold cat, cute, atop a brick wall, blue eyes, noon, anime-style, illustration, light pouring, around castle backgraund,8k,masterpiece
少し雰囲気は変わりましたが、前の猫に似た猫が生成されました。
スカーフが無くなったのは少し残念です。
こちらは4枚を同時に生成したのですが、少しづつテイストや構図が変わっていました。
別の画像でも試してみることにします。
ネガティブプロンプトはすべて同じです。プロンプトの1単語だけ変えています。
Seed固定:元画像
プロンプト変更
プロンプト変更2
一番左が元の画像です。Seed値を固定して一か所プロンプトの変更して生成されたものから構図が似ているものを選択はしています。
変えたプロンプトは月明りの色指定です。月の影の位置と月の位置などはなどは大きく変わっていません。
Leonarod.Aiはどこか一部のカラーを指定すると全体の調和を図ろうとするので全体が似たようなカラーになりがちです。
これは全体のプロンプトの前の記述が強く反映されるルールからきているためです。
今回は月明りを指定しているのでより陰影に反映されています。
このプロンプトの反映ルールを分割してそれぞれのオブジェクトに反映することが出来るようになると生成Aiはさらに進化してくるだろうと予測しています。
すでにStable DiffusionではBRAEKのプロンプトでプロンプトの分割により再現性を高めています。
こちらがLeonarod.Aiに実装されるとさらに面白くなると思います。
Seedを固定しない場合は大きく構図が異なります。
寺院のような描写が城なのかピラミッドのようになっています。月の位置や大きさも変わってしまっていますね。
このようにSeed値を固定することで元の画像からの変化を抑えることが可能です。
Seed値を固定すると出来ること
- 自分好みのキャラクターに違うポーズをとらせることが出来る
- 似たキャラクターやテイストになるのでオリジナル学習モデルの元の素材が作れる
- 細かい修正がプロンプトで可能になる。AiCanvasでも可能
今回はSeed値とは何か、Seed値を固定するとどうなるのか?について紹介いたしました。
毎回大きく変わるという場合はSeed値を固定してプロンプトを追加や修正で手直しすることが出来ます。
Seed値を使って画像を修正する以外に元の画像を修正する方法には
Ai Canvasの機能を使う方法もあります。
Ai Canvasの使い方はこちら
Ai Canvasで色を変える方法はこちら
最後までお付き合いいただきありがとうございます。
コメント