hitode909の日記

以前はプログラミング日記でしたが、今は子育て日記です

AI元年なのでAIに絵のテーマを考えてもらいそのままAIに作画してもらってデスクトップの壁紙に設定する

AI元年なのでデスクトップ壁紙もAIに描いてもらおうと思い立った。

最新ニュースを1枚の画像にしたい

世相を反映したらいいと思ったので、最新のニュースをテーマにした画像を作ってもらおうと思った。
いきなりプログラムを書く前に、Chat GPTに聞いてアウトプットを観察してみる。
「NHKニュースから最新のニュースを要約して1枚の画像に変換して」とか聞いてみたら、Bingで検索して結果、震災の画像を作ろうとして、危険、暴力な画像なので、と断られてしまった。
「NHKニュースから最新のニュースを取得して、一番平和なニュースを選んで、1枚の画像に変換して」の結果がこれ。 何の画像か全然分からないけど、NHK短歌のコーナーを表現しているらしい。

AIが決めたお題をAIが描く

世相反映は不確実で手に負えないのであきらめて、お題もAIが決めるし、自分で決めたお題をもとに作画する、くらいをゴールにしてみる。
それなら技術的な不確実さもないので、ここからAPI経由でスクリプトを書いていく。と言っても、これも、Chat GPTに、「こういうことをやるスクリプトを書いて」で書いてもらって、手直しして動かしていく。
最初は、「世界遺産の画像を生成して」みたいな依頼をするスクリプトを書いた。結果がこれ。

いいんだけど、Wikipediaの挿絵にしか見えない。Instagramで映えるamazingな世界遺産、をお願いしたら、こうなってしまった。

映画監督をセットで考えてもらう

デフォルトのモデルはdall-e-2なのだけど、デスクトップ壁紙に使うには低画質。
model=dall-e-3、size=1792x1024、quality=hd、などを指定するとアウトプットが高品質になってきた。
撮影した映画監督もセットで考えてもらったら、ちょっとそれっぽくなった。
クエンティン・タランティーノが描く六本木ヒルズ。これはキル・ビルっぽい。

クエンティン・タランティーノが描くエベレスト山。ここに星が飛んできたらそのままパラマウントのロゴになりそう。

画家とセットで考えてもらう

画家と、その画家が描きそうにないテーマを考えてください、みたいなことをお願いした。
草間彌生の描く、ハリネズミの楽園。

溶ける夢の国。CGアート感が強くて、こんなのはもう見飽きたよ、と思って、胃もたれする。あとで気づいたのが、styleというパラメータがあって、デフォルトがvivid、naturalにも指定できるようだった。家電量販店のテレビの輝度が100%、コントラストも100%に設定されてる、みたいなもので、派手な方が性能がよく見えるのかもしれない。

生前描かなかったテーマを描いて、とかお願いしたら、ゴッホが描くロボットのロマンスがでてきた。

わりといいと思ったのだけど、ここからゴッホばかりでてきてしまう。個性的な作風というとゴッホくらいしかない、ということなのか?VRゴーグルがぽんと置かれてるのはちょっとおもしろい。

どうやってゴッホを避けるかというと、「ゴッホは見飽きたので避けてください」、CGを避けるために「油絵のお題を考えてください」「民族的な表現を取り入れてください」とか言って無理やりCGから離れさせようとした。めちゃくちゃヒューリスティック。

けどすぐにツルツルのCGがでてきたり、アリと骸骨とキノコの画像みたいな、気持ち悪さ全開の画像が出てきたりする。

これはBinary Blossoms under a Neon Sky。普通に生きててBinary Blossoms under a Neon Skyを書こうと思っても恥ずかしくて完成させられないと思うのだけど、堂々と作ってくれるのがすごい。生成された瞬間、ダサっって口に出してしまった。

民族調の表現をしてもらう

最終的なお願いは以下のようになった。

リビングルームに飾るための、独創的な絵のお題を考えてください。タイトルと内容、画風の参考とするための、画家やアーティスト名、スタイルを生成してください。CGやデジタルイラストも避けて、絵の具を使った表現にしてください。ゴッホは見飽きたので避けてください。世界各国の民族的なスタイルも取り入れてください。インターネットなど、現代テクノロジーのモチーフも織り交ぜてください。応答は英語で、結果は1行で、1件だけ出力してください。

ただ民族調だとおもしろくないので、テクノロジックな要素を入れてもらうようにした。
民族調、そしてテクノロジー、の結果、アフロフューチャリズムな画像がどんどん出てくる。これもおもしろ恥ずかしいのだけど、マイルス・デイヴィスのアルバムジャケットとかこういう感じで普段から恥ずかしいので、ギリギリ耐えられている。

これはマイルス・デイヴィスのアルバム。一緒ですね。
Live-evil

こういうインターネットの魅力が描かれた絵が出てきたりしておもしろい。インターネットが開通した直後に建てられた小学校の壁画とかはこんな感じになっていると思う。



割といいなと思ったのは、トライバルなマスクの模様だけどWiFiマークが混ざっている、というもの。
AIが考えた、この絵のお題は"Wireless Totem"/ A collage of tribal masks from global cultures, interwoven with symbols of modern technology (like Wi-Fi signals and emojis), painted in the rich, cubist style of Pablo Picasso。で、画像生成AIによる説明は、Wireless Totem: A collage of diverse tribal masks from global cultures, interwoven with symbols of modern technology such as Wi-Fi signals and emojis. The painting captures the complexity in overlapping geometric shapes, vibrant colors and unconventional viewpoints typical of pre-1912 cubism, the primary medium being oil painting.、とのこと。

PNGファイルのメタデータに、APIからのレスポンスを埋め込んでいるので、この画像のお題は何だったの?と思ったらidentifyコマンドであとから観察できるようにしている。

定期実行する

こうしてできた生成スクリプトを1時間に1回、xbar経由で実行するようにした。最新の実行結果を格納するディレクトリと、過去の画像も全て置いておくディレクトリを用意して、前者はデスクトップ画像、後者はスクリーンセーバーに使うことにした。
xbarが便利なのは、おかしいときその場でリトライできる。cronの代わりの実行&管理ツール、として使える。

今のペースでは月間600ドル使う

1時間に1回、デスクトップの壁紙が新たな画像が切り替わるので、どれどれ、どんなのになったかな、と見に行く、というサイクルになってしまい、気が散って仕事にならない。また、10ドルくらいチャージしておいてもすぐに使い切ってしまう。
今のペースだと月間600ドルくらい使ってしまうので、早く飽きて、定期実行を止めるか、1日1回など、頻度を下げたりしたい。

使ってみたいよ、という方は、Gistに置いてるのでどうぞ。
Chat GPTに質問して大枠を書いてもらって、VSCodeに貼り付け、不明点はCopilotに聞いたりして修正して作った。
AIにコードを書いてもらうと、変なコードはリファクタリングしよう、というパワーが働かず、AIに作ってもらっただけの、ありあわせのコードだし、こんなもんでいいよ、という日曜大工感が出てくるのも良いと思う。仕事のコードは、AIに補完してもらったあと、まわりの雰囲気と合わせて手直ししたりするけど、趣味ならこれでいいと思う。

Automatic Desktop Image Generator via OpenAI · GitHub