DALL-E 3は、自然言語のプロンプトに基づいて画像を生成する、OpenAIによって開発された最新の生成AIモデルだ。
そんな最新のDALL-E 3を、誰でも、数クリックだけで簡単に、速攻で試せるGoogle Colaboratoryのノートブックを作ったので、この記事で使い方を紹介する。
マンガやアニメのようなイラストから、Webデザインで使用できるアイコンやロゴ、リアルな写真まで、幅広い高品質な画像を生成することができる。
月額20ドルのChatGPT Plusに入会すれば、ChatGPT内で、DALL-E 3を使って画像を生成するように指示をすることが可能だが、月額契約をしていないユーザーや、アプリの中にDALL-E 3を組み込みたいといったような用途の場合には、OpenAIが提供するAPIキーを使って、従量課金でDALL-E 3を利用することになる。
APIで画像生成をリクエストするには、若干のプログラミングの知識が必要だ。
また、プログラミングの知識がある人であっても、単にサクッと試したい場合に、いちいちコードを書くのが面倒という場合もあるだろう。
Google Colaboratoryは、Googleアカウントさえ持っていれば、誰でも簡単に使えるPython環境だ。
どんな初心者であっても、DALL-E 3をサクッと試すことができるようにしたので、ぜひ試してみてほしい。
そもそもDALL-E 3とは何か?ChatGPTとの違いは?
DALL-EシリーズはOpenAIによって開発されている画像生成AIだ。
Midjourneyや、Stable Diffusionと並び、代表的な画像生成AIモデルの一つである。
最初のバージョンは2021年1月に発表され、DALL-E 3はこのシリーズの3番目のモデルで、2023年10月に発表されたばかりの最新版である。
これらのモデルは、自然言語入力、つまり「バナナを持ったゴリラのイラスト」のようなプロンプトを解釈し、これを画像として生成してくれる。
DALL-E 3をAPIで利用した場合の画像生成にかかる料金は、以下の通りだ。
クオリティ | 解像度 | 料金 |
---|---|---|
Standard | 1024×1024 | $0.04 |
Standard | 1792×1024 | $0.08 |
HD | 1024×1024 | $0.08 |
HD | 1792×1024 | $0.12 |
スタンダードモードの場合、1024×1024の画像なら1枚あたり4セント、1792×1024の画像なら1枚あたり8セントで生成できる。
ChatGPTは月額20ドルがかかるので、ChatGPTを契約するよりは、ずいぶん安く使える。1ヶ月あたり250枚以上生成するなら、ChatGPTを使った方がお得な計算になる。
また、ChatGPTは、確かにDALL-E 3を呼び出して画像生成が可能ではあるものの、ユーザーが打ち込んだプロンプトを直接DALL-E 3に伝えるのではなく、ChatGPTがいい感じに書き換えた上でDALL-E 3に伝える仕組みになっている。
従って、同じプロンプトを少しずつ変えて、画像がどのように変化するかを確認したい場合など、厳密にプロンプトをユーザーが指示するためには、APIで直接DALL-E 3をコントロールする方がよい。
まずはOpenAIのAPIキーを発行して、Google Colabに登録
APIキーは、一人一人に発行されるパスワードのようなもの。
このキーを読み込ませた上で、DALL-E 3にプロンプトを送ると、画像を送り返してくれる。そして、その分の料金が、そのキーの持ち主に請求されるという仕組みだ。
OpenAIの公式サイトでアカウント登録をして、あなた専用の支払い方法を登録することでAPIキーを発行できる。
以下の記事の中で、詳細なアカウントの作り方を解説しているので、APIキーをまだ持っていない人は、そちらを参照してほしい。
Google Colaboratoryを開いて、左側のサイドメニューにある鍵のマークをクリックすると、「シークレット」というメニューが開き、ここに自分が持っている色々なAPIキーを登録することができるようになっている。
ここに、「openai_api」という名前をつけて、あなたのAPIキーを登録することで、以下で紹介するGoogle Colabノートブックで、DALL-E3を動かせるようになる。
この機能は、最近Google Colabに追加されたばかりの機能だが、他人にコードを教えたり、一々コードの中に自分のAPIキーを書き込むことなく、他の人が作成したノートブック上で自分のAPIキーを呼び出せるので非常に便利だ。
「すべてのセルを実行」するだけで、UIが起動
DALL-E 3を動かすGoogle Colaboratoryのノートブックは、以下からアクセスできる。
APIキーを、上述の方法で登録さえしておけば、上部のメニューの「ランタイム」-「全てのセルを実行」するだけで、DALL-E 3に画像生成のプロンプトを指示できるテキストボックスが表示されるようになっている。
セルを実行するに際して、「シークレット」に保存したあなたのAPIキーへのアクセスを許可するかどうかを尋ねられるので、「アクセスを許可」をクリックする。
「全てのセルを実行」をクリックしてから20秒ほど待っていると、全てのセルの実行が完了して、画面の一番してに、画像生成のプロンプトを打ち込むためのテキストボックスが現れるはずだ。
テキストボックスの横にある「Generate」ボタンをクリックすることで、画像を生成できる。
それでは実際に画像を生成してみよう。
ビジネスミーティングの様子を示すシンプルなベクターデザインを作成してみるため、以下のようなプロンプトを打ち込んだ。
Minimalist vector art of a business meeting. It is drawn mainly with simple lines and the background is white.
すると、10秒ほどで画像が生成され、テキストボックスの下に画像のサムネイルが表示された。
サムネイルをクリックすると、生成された画像をブラウザの別タブでフルサイズで閲覧できるようになっている。
新しい画像を生成したいときは、このまま新しいプロンプトを打ち込めば次の画像を生成してくれるので、さまざまなプロンプトを直感的なインターフェースで試すことができて便利だ。
ただし、新しい画像を生成すると、前の画像が消えてしまうので、忘れずに保存しておくようにしよう。
生成する画像の解像度を変更する方法
生成される画像のサイズは、デフォルトでは、横長の1792×1024にしてある。
これを変更したい場合には、とても簡単ではあるものの、コードの一部を書き換える必要がある。
上記のノートブックで、セクション3「生成画像の解像度の設定」がその設定をしている箇所だ。
DALL-E 3は、1024×1024、1024×1792、1792×1024のいずれかの解像度のみ対応しており、正方形の画像を作成したいのか、縦長の画像を作成したいのか、横長の画像を作成したいかによって、この設定を変える必要がある。
書き換えた場合には、各セルを実行しなおさないと設定が反映されないので、忘れずに「ランタイム」-「全てのセルを実行」をしてほしい。
APIだからこそできる実験:プロンプトの言語の違いは出力結果に影響するか?
ChatGPTで画像の生成をお願いすると、ユーザーが入力したCHatGPTに対するプロンプトに基づいて、DALL-E 3に英語でプロンプトが送られ、画像が生成される。
間接的なプロセスなので、ユーザーが入力したプロンプトそのものではなく、ChatGPTが間に入っているのだ。
たとえ日本語で指示をしたとしても、勝手に翻訳されてしまっていることになる。
APIの場合、プロンプトをユーザーが直接指定するので、完全にコントロールできるのが利点の一つだ。
そこで、一つの実験として、DALL-E 3へのプロンプトは、同じ内容のプロンプトであっても、英語、日本語、中国語、ドイツ語という4つの異なる言語を使った場合、出力される結果に影響されるのかを試してみた。
例えば、首都の駅前通りの画像を生成させた時、英語で生成するか、中国語で生成するかによって首都の駅前のイメージが変わるのではないかと考えたからだ。
以下は、4つの言語での同じ意味を持つはずのプロンプトと、そのプロンプトを使ってAPIから生成された画像である。
まずは英語から。
Streets in front of the capital's train station
次は、日本語のプロンプト。心なしか、手前にアジア人が多いような気はしなくはないが、街並みは洋風だ。
首都の駅前の通り
3つ目は、中国語のプロンプト。こちらも街並みは洋風。
首都火车站前的街道
最後に、ドイツ語のプロンプト。
Straßen vor den Bahnhöfen der Hauptstadt
それぞれ何回か繰り返し生成してみたものの、言語による影響は無さそうだった。
DALL-E 3は、まだリリースから日が浅いこともあって、プロンプトの言語によって、ポリシーフィルターによるブロックが英語以外の言語で厳しすぎるという問題が報告されたりしていたが、現在はすでに修正されている。
OpenAIは言語によるバイアスなどにかなり気を使っているのかもしれない。
ということは、MidjourneyやStable Diffusionなど、英語でしかプロンプトを出すことのできない画像生成AIが多い中で、DALL-E 3は多言語対応しており、日本語でも精密なプロンプトを行うことができる貴重なモデルだとも言える。
英語のプロンプトだと、どうもDeepLによる翻訳や、ChatGPTによる翻訳を噛ませることもあって、本当に自分の発想と直結でプロンプトを書き出すのは結構難しい。
これからは、日本語でプロンプトを書いて、自分の思い通りの画像が生成されるまで試行錯誤できそうだ。