見出し画像

OpenAIの生成AIで画像を作ってみよう!

こんにちは!!やどかりの松澤です。毎日少しづつ勉強し実験しています。

前回は少しパラメータをいじってみたりしながら、送った内容で動きが変わっていくところまでを確認ができた。
OpenAI続き。動いたのでmessagesやroleパラメータをいじってみる

前回の内容ではチャットのやりとりとしてのOpenAIの可能性や、凄さの入り口が見えた感じがする。もう少し深掘りしてみてもいいかなとも思ったのだが、今回は面白そうだと思い画像作成をチャレンジしてみることにする。

例によってドキュメントを読みます

from openai import OpenAI
client = OpenAI()

response = client.images.generate(
  model="dall-e-3",
  prompt="a white siamese cat",
  size="1024x1024",
  quality="standard",
  n=1,
)

image_url = response.data[0].url

サンプルを実行するとこれだけで白いシャム猫が表示されるらしい。ただテンプレ通りも面白くはないので少しだけ例によっていじってみる。

from openai import OpenAI
client = OpenAI()

response = client.images.generate(
  model="dall-e-3",
  prompt="日本人でいけてる社長",
  size="1024x1024",
  quality="standard",
  n=1,
)

image_url = response.data[0].url
print(image_url)

responseのデータとしては画像のURLか、base64エンコードの画像生データが取得できるらしい。ちゃんとしたプログラムを書くならbase64のデータが望ましいけど、ちょっとお試しならURLのほうが楽なので、URLをprintで出力だけしてみて、ブラウザで開いてみることにする。

(openai-env) MacBook-Pro-4:openai takayukimatsuzawa$ python3 openai-image.py
https://oaidalleapiprodscus.blob.core.windows.net/private/org-0ekLqtNEztsCrawpFZPv5CJY/user-BZnBPsiDyUVwmIxlKy2ed8HI/img-bk4Is1jrPQsc8Xm7kF00AHgW.png?st=2023-11-10T03%3A42%3A21Z&se=2023-11-10T05%3A42%3A21Z&sp=r&sv=2021-08-06&sr=b&rscd=inline&rsct=image/png&skoid=6aaadede-4fb3-4698-a8f6-684d7786b067&sktid=a48cca56-e6da-484e-a814-9c849652bcb3&skt=2023-11-10T00%3A18%3A00Z&ske=2023-11-11T00%3A18%3A00Z&sks=b&skv=2021-08-06&sig=OK7bTXsbw1dUCYUqkcZRf0dFhBrm64Fd6a0sLxF4kRI%3D

試してみるとURLが返却された。このURLは1時間だけみることができるとのこと。

実際のURLを開いて見た結果がこちら。

日本人でいけてる社長!!

はじめに「いけてる社長」とだけの記載だと外国人のいけてる社長が帰ってきたので、日本人のを追加してみてこの結果となった。リアルすぎて、ほんとにどこかにいそうな気がしてくる。

動いたので、ここから指定したパラメータの意味を調べてみる。

model="dall-e-3",

dall-e-2とdall-e-3とが選べるらしい
設定できる文字数に差があるようで、dall-e-3のほうが4000文字と多い。いろいろ調べてみるとdall-e-3のほうが新しく、クオリティも高いため、深くは考えずに新しいほうがよさそう。

prompt="日本人でいけてる社長",

ここで欲しいイメージの指示を出す。細かく具体的な指示にしたほうが、よりイメージに近づいていくので、ここの指示の出し方がキモにはなる。

size="1024x1024",

作成される画像のサイズ。dall-e-3の場合は1024x1024, 1792x1024, 1024x1792の3つが選べるとのこと。

quality="standard",

指定しないとstandardになるが、hdの方がqualityが高くなりそうな記載なので試してみる。

n=1,

作成される画像の枚数が指定できるようだが、dall-e-3の場合は1枚のみしか指定できないようだ

quality="hd"だけ気になったので、そこを変えて試してみた。

hdの指定で生成された画像

なんだろう、、、同じような人が出てきたのでわかりやすいが、高品質になったというよりは、少しだけ不気味な感じが出てしまったような気がする。なにがっていうのが説明しにくいが、個人的にはstandardのほうが人間っぽい感じがした。

あとはサンプルでは指定されていなかったが、ドキュメントをみるとstyleというパラメータがあるらしい。指定しないとvivid(鮮やか?)の指定らしいので、natural(自然?)を指定してみることにする。(比較のためにqualityもstandardに戻します)

style=naturalでの生成画像

なぜか女性に、、、、そして個人的な感想だが「日本人でいけてる社長」のオーダーからすると若干の違和感は感じる。この辺りは想像するいけてる社長のイメージに個人差があるかもしれない。

今回のいろいろ試してみた私なりの結論としては、パラメータで調整するよりもpromptでもう少し具体的なイメージを伝える必要があるし、そこの伝え方がキモになるんだと改めて感じた。まあわかりやすい例かどうかはわからないけど、Googleで検索するときの、検索ワードをなんて入れると求めている答えに近づくのかに似ている。まあそういう意味では今回のpromptのパラメータは雑だった気がする。比較のためにGoogleの画像検索で「日本人でいけてる社長」という検索もしてみたが、イメージの世界とリアルの世界の差も面白かった。

次回はもう少し応用編に辿り着けるといいな


株式会社やどかりは仲間を探しています。

自分の仕事に誇りを持っている人、楽しく仕事ができる人。
入社年数に関わらず、スキルによって様々な仕事のチャンスがある会社です。やどかりのことをもっと知りたい方はこちらをクリック!

事業内容:スマートフォン・タブレットアプリの開発/Webサイト開発/ITコンサルティング
業種一覧:Androidエンジニア/iOSエンジニア/サーバエンジニア/フロントエンジニア/ディレクター

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