連続した背景の作成

生成AI

以前、Parallax Scrolling Backgroundに挑戦しました。

背景を2D化する。多重背景スクロール。Infinite Parallax Scrolling Backgroundに挑戦(Unity6)
今作っているのは、横スクロールアクションです。つまり、横に移動はするが奥に行ったりしません。なので、Terrainなどの広大なものは必要ない。のでTerrainやめて奥の背景は2D、手前のキャラクターがいるところは3Dオブジェクトにしていき...

この背景のように右と左につながっているようなものを作成したいと考えました。
いろんなステージ、バイオームなどを作成したいですね。

あとはゲームデザインをするうえで、ゲームの雰囲気、テイストなどを決めるのにも役に立ちそうです。

背景の作成

まず背景を作成しようと思います。背景を作成したあと右端と左端をつなげてみようかと思います。

モデル選び、Lora選び

今回は、綺麗に実写でもイラストでもいけるSDXLにしようと思います。自分の作りたいテイストにあったモデル、Loraを選択するとよいでしょう。

SD XL - v1.0 VAE fix | Stable Diffusion XL Checkpoint | Civitai
Originally Posted to Hugging Face and shared here with permission from Stability AI. SDXL consists of a two-step pipelin...

ちなみにですがStable Diffusionのtiling機能を使ってみましたが、上下にもシームレスになりうまくいきませんでした。ComfyUIの「Seamless tiling」にはつなげる方向をXかYか両方か選択できるようなので、いずれそっちを試してみたいと思います。

Prompt

背景画像で使えそうなものをチョイスしてみました。

必須Prompt

これはモデルごとに違うので以下の記事を参照してみてください。

各BASE MODELで綺麗に出力するための必須プロンプト(Prompt)-Stable Diffusion
各BaseModelを使用して出力するときに、入れておくと出力に有効なPromptがあります。主にPositive Promptには傑作とか写真のようなみたいな単語を入れておくことで綺麗に出力されます。またNegative Promptには...

背景にするためのPrompt

風景に関するPrompt
風景に関するPromptまず、風景だという単語Landscape次に、どんな風景、背景にするのか候補のワードを調べてみました。草原に関するワードGrass(草)Meadow(草原)Field(畑、広野)Green(緑)Rolling hil...

    設定

    Promptができたら、設定です。今回360度ViewにするLoraを入れているので正方形だと魚眼レンズでとった写真見たくなってしまいます。なのでできるだけ横に長い画像にします。

    今回は2048×512で作成してみました。

    画像生成

    とりあえず草原を作ってみます。設定を以下のようにしました。あくまで参考です。promptに「oil painting」(油絵)を追加したら以下のようになりました。

    Positive Prompt

    masterpiece,high score,great score,absurdres,Grass,Serene Meadow,Vast Field,Green,Rolling hills,Wildflowers,Nature,oil painting,

    Negative Prompt

    lowres,bad anatomy,text,error,extra digits,fewer digits,cropped,worst quality,low quality, low score,bad score,average score,signature,watermark,username,blurry

    出してみるとこんな感じです。

    まあ悪くないです。2枚つなげてみました。

    この画像は左右つながっていません。2つを並べてみると

    境目が見えます。これを加工して消してみようと思います。

    完全なシームレス画像にする

    半分に切って入れ替える

    ペイント関連のツールを使って入れ替えます。Gimpを使ってやりましたが、やりかたはお任せします。入れ替えられればなんでも良いですし、切る場所も正確に真ん中でなくてもよいです。繋げたら綺麗になればいいのです。

    そうするとそうするとあわせたところに、もともとあった境界が出てきます。

    これをimg2imgを使って消します。

    img2img

    img2imgにタブを移動します。モデルは同じもの、PromptもLoraを外して同じです。

    InPaintを選択し、合わせ目のところを塗ります。塗ったとこだけ再描画してもらいます。

    サイズを元の画像と同じ2048x512にして、Samplarも併せて実行します。Seedも合わせた方がいいかもしれません。

    こんな感じになりました。

    合わせ目は、若干違和感がありますが、わからなくなったと思います。

    いろいろ試して出すしかありません。何せパラメータが大量にあって、Promptやシードでも結果が変わってくるのでちゃんとした正解はありませんので・・・

    コメント

    タイトルとURLをコピーしました