GPT-4o が発表されたので ChatGPT でプリン描いてみた

昨日 OpenAI の最新モデル GPT-4o が発表されました。
zenn.dev

制限はあるものの、なんと無料で遊べるようです。そこで早速遊んでみました。
とにかく自分で遊んでみたい!という人は↓から飛んでください。
https://chatgpt.com/?model=gpt-o4

まずはちょっとした質問

ちょうどトイレに行きたかったので、この緊急事態に対処する方法について質問してみました。

すると、あたかも最初から想定していたかのように、爆速で答えが返ってきました。

完璧ですね。こちらの状況を伝えていないにもかかわらず、どのような状況でも冷静に行動できるようにアドバイスしてくれました。特に最後は最悪の事態に陥った場合に備えたアドバイスまでしてくれています。抜かりないですね。

ちなみにチャットルームのタイトルは "Toilet Emergency: Quick Solutions" になりました。

絵って描けたっけ?

GPT-3.5 だと絵は描けなかった記憶だったので、描けるか聞いてみました。

なんと!基本的な絵なら描けるという驚きの返答が。ついに無料版でも絵を描けるようになったのか・・・となると、試すことは一つです。

おお!すぐに絵を描いてくれました!
これまでAIに絵を描かせたことがなかったので、これが初めてAIに描いてもらった絵になります。

GPT-4o 謹製、ぷるぷるプリンの絵はこちら!!!!!

・・・・・・・・・・・・・・・・・・・・は???????

納得がいかない

いやいや、絵描けるって言ってたやん!!!いやまあ絵といえば絵か・・・いやでもこれはぷるぷるのプリンではない!!!!

全く納得がいかないので、png にしてもらうようお願いしてみました。

やっぱり絵は描けないのか、少し残念・・・
でもその代わりに、プリンの絵を生成する Python スクリプトを作ってくれたようです。それがこちら。

import matplotlib.pyplot as plt
import numpy as np

# Create figure and axis
fig, ax = plt.subplots()

# Plate
plate = plt.Circle((0.5, 0.5), 0.4, color='gray', fill=False, linewidth=2)
ax.add_patch(plate)

# Pudding
pudding_height = 0.2
pudding_width = 0.2
pudding = plt.Rectangle((0.4, 0.5 - pudding_height/2), pudding_width, pudding_height, color='sandybrown')
ax.add_patch(pudding)

# Wobble effect - adding some sine waves to indicate wobbling
x = np.linspace(0.4, 0.6, 100)
y = 0.5 + 0.01 * np.sin(20 * np.pi * x)
ax.plot(x, y, color='sandybrown')

# Set limits and aspect
ax.set_xlim(0, 1)
ax.set_ylim(0, 1)
ax.set_aspect('equal')

# Remove axes
ax.axis('off')

# Save as PNG
plt.savefig("pudding.png", bbox_inches='tight')

plt.show()

・・・うーん、ダメそうな予感しかない。
あまり期待せず、コピペして実行してみました。出た画像がこちら

う~~~~ん、これは・・・・・・
おいしそうなプリンだなぁ (混乱)

コードを見ると "Wobble effect" (ぷるぷる効果) とかいてある部分がありますが、この絵を見てもどこがプルプルしているのか全然わかりません。そこでプリンの部分をコメントアウトしてみると・・・

お前そんなとこにおったんかい!!分からんわ!!!!!

やはり納得がいかない

ちょっと自分が知っているプリンとはかけ離れた絵だったので、もうすこしクオリティを上げるよう追加でお願いしてみました。

お、もっといい Python スクリプトができたそうです。それがこちら。
さっきよりはいろいろ手が込んでそうです。plt.Circle とかも見えるので、なんかいい感じの絵が期待できそうです。

import matplotlib.pyplot as plt
import numpy as np

# Create figure and axis
fig, ax = plt.subplots()

# Plate
plate_radius = 1
plate = plt.Circle((0, 0), plate_radius, color='lightgrey', fill=True)
ax.add_patch(plate)

# Pudding parameters
pudding_radius = 0.4
pudding_height = 0.6
pudding_base = plt.Circle((0, 0), pudding_radius, color='goldenrod', fill=True)
pudding_top = plt.Circle((0, pudding_height), pudding_radius * 0.8, color='goldenrod', fill=True)

# Pudding shape
pudding_shape = plt.Polygon([(-pudding_radius, 0), 
                             (pudding_radius, 0), 
                             (pudding_radius * 0.8, pudding_height), 
                             (-pudding_radius * 0.8, pudding_height)], 
                            color='goldenrod', fill=True)

ax.add_patch(pudding_shape)
ax.add_patch(pudding_base)
ax.add_patch(pudding_top)

# Caramel layer
caramel_height = 0.1
caramel = plt.Circle((0, pudding_height + caramel_height / 2), pudding_radius * 0.8, color='saddlebrown', fill=True)
ax.add_patch(caramel)

# Set limits and aspect
ax.set_xlim(-plate_radius, plate_radius)
ax.set_ylim(-plate_radius, plate_radius)
ax.set_aspect('equal')

# Remove axes
ax.axis('off')

# Save as PNG
plt.savefig("realistic_pudding.png", bbox_inches='tight')

plt.show()

上記を実行してみた結果がこちら。

これは!!!誰がどう見ても!!!プリンだ!!!
AIすげえ絵が上手!!!すごい!!!!!! (錯乱)

Game Over

と、ここで無料版で GPT-4o を使える上限に達してしまいました。続きを遊ぶには、またしばらく待つ必要があるようです。おそらくコードをたくさん出力した分だけ、上限にすぐに達してしまったのかなと想像しています。有料版ならもっと上限はゆるやかなようなので、もっと遊び倒したい人は有料版がよさそうですね。私は無料版でアホみたいな遊びができたので満足です。

ではまた。