Omost(オモスト)とは?
Omost(オモスト)とは、ControlNetやStable Diffusion WebUI Forge、Foocusの開発者として著名なlllyasviel氏が開始した、新しいオープンソースプロジェクトです。
https://github.com/lllyasviel/Omost
Omostは、 LLMを利用して、画像生成AIが生成する画像のコーディングをしよう という試みで、簡単に言ってしまえば「Omostを使うことで、Stable Diffusionにレイアウト指定をほとんど制御できる」――「ほとんどできる」から、AlmostでOmost…という洒落のようです。
ご存じの通り、画像生成AIというのは、どんなに厳密なプロンプトを組んだり、ComifyUIを使って緻密なノードを組んだとしても、完全に制御できるものではありません。それはこのOmostを使っても同じことです。そこには「生成AIに共通する入力に対する出力のゆらぎ」のようなものがあります。
それでもOmostを使うと、それまで偶然に頼ることが多かったtxt2Imgでの画像生成に対して、かなり再現性の高いレイアウトを指定することができるようです。
lllyasviel氏の過去作「Fooocus」でも多くの内部最適化と品質改善がGPT-2をベースに組み込まれています。
https://github.com/lllyasviel/Fooocus
Fooocusで使われている技術詳細は こちら
https://github.com/lllyasviel/Fooocus?tab=readme-ov-file#tech_list
書籍「画像生成AI Stable Diffusionスタートガイド」でも、最初の段階でこちらの日本語版を扱っています。
書籍[画像生成AI Stable Diffusionスタートガイド]
Book-StartGuideSDXL/Fooocus_onColab.ipynb at main · aicuai/Book-StartGuideSDXL
さて、今回紹介する「Omost」は、より上を目指す、ちょっとマニアックなツールになりますが、幸いなことにHuggingFace Spaceで試すことができます。さっそく使用感を見ていきましょう。
上手に使えると、こんな高度なポージングをした画像が再現性高く生成できます。

Omostを準備する
Spaceを使う場合
一番お手軽に使う方法はHuggingFaceのSpaceを利用することです。下のURLからアクセスできます。
Omost — a Hugging Face Space by lllyasviel
使ってみた印象では、ちょっと試すぐらいならSpaceを使うとよいと思います。スピードはローカルと変わらないぐらい速いです。
ローカル環境にインストールする場合
Omostは、お使いのWindows PCが8GB以上のVRAMを搭載しているNVIDIA製のビデオボードを搭載していれば、ローカル環境で動かすことができます。
ローカル環境で動かすためのインストールの方法は、Omostのリポジトリより Get Started( https://github.com/lllyasviel/Omost#get-started)より確認してください。
Omostをインストールする前に、事前に以下の環境が整っていることが必要です。
- Git for Windows
- AnacondaのWindowsローカル環境(Python 3.10)
- CUDA 11.8 もしくは 12.5
- インストールしたCUDAに対応したPyTorch
これらがコマンドプロンプトから動作するように、適切にWindowsの環境変数が設定されていることも必要です。
もし頑張ってインストールする場合には、ChatGPTなどに相談しながらやるとよいでしょう。
ここではOmostのインストールは終わっているものとして、進めます。
Omostを使ってみる
Omostのメイン画面は以下のようなものです。
レイアウトを指示する

画面右下の「Submit」ボタンの横にチャットウィンドウがあります。そこに、欲しいイラストの内容を指定します。この指定は日本語でもいけます。LLMのおかげですね!
せっかくですので、以下のような面倒くさいイラストを指定してみましょう。
白い髪のバニーガールの少女が、異次元空間に浮かんでいる開いたドアの中をのぞき込み、ドアの中から光の珠(素晴らしい未来の象徴)を取り出そうとしている。
少女の表情は好奇心に溢れていつつも、心持ち不安げ。不安げなのは、未来に何が待っているのかまだわからないから。
異次元空間は真っ暗で、ドアが沢山浮かんでいる。
少女の表情と仕草をイラストの中心として、ダイナミックな構図で表現すること。
異次元空間なので、少女が立つ地平線は斜めに傾いている。
16:9の横長のコンポジションで作画すること。

イラストは16:9で指定しているので、左側にある Omostの「Image Diffusion Model」内の Image Width を「1920」と Image Hight も「1080」になるように指定をしておくと、後ほどチェックするのに便利です。


ここまで終わったら、「Submit」ボタンを押して実行します。
するとその上の「Omost」というウィンドウ内に、延々とCanvasと呼ばれるオブジェクトが書かれていきます。これがOmostが生成AIに与えるイラストのレイアウト指示になっています。

画像を生成する
ここでCanvasの生成が終わったら、左側に「Render the Image!」というボタンが追加されます。このボタンを押すと、今Canvasに設定された画像が続いて生成されます。




いくつかサイズも変えて生成してみたところ、大体、白髪のウサギ少女、ドア、オーブが配置されたイラストになります。2枚目が典型的ですね。
皆さんはうまく生成できましたか?
生成されたキャンバスの説明の生成も興味深いです。
AICUではOmostに関してさらなる活用方法を調査中です。
続報をお楽しみに!
この記事が面白かったらフォローやいいねをお願いします!
Originally published at https://ja.aicu.ai on July 12, 2024.
Comments