Google ColabからDALL-E のAPIを使ってアプリのアイコンを作ってみた

開発したアプリのアイコンは、そのアプリをイメージする大切なものですが、意外と作るのが大変です。これをOpenAIの画像生成モデルDALL-Eと、ChatGPTを使って作っていきます。

通常は、サービスサイト(Labs interface)から使えばいいのですが、無料のクレジットをあっという間に使い切ってしまったので、GoogleColabからAPIを直接叩きます。こちらも有料ではありますが、サービスサイトのクレジットが$15からなのに対して、APIの場合は、1枚単位で課金されます($0.020/image)。今回はちょっと試したいだけだったので、APIを使いたいと思います。

DALL-E

OpenAIのDALL-Eは、通常以下のサイトから使えます。

DALL-E モデル ベータ版

公式のモデルの説明は以下のとおりです。

DALL·E is a AI system that can create realistic images and art from a description in natural language. We currently support the ability, given a prommpt, to create a new image with a certain size, edit an existing image, or create variations of a user provided image.

The current DALL·E model available through our API is the 2nd iteration of DALL·E with more realistic, accurate, and 4x greater resolution images than the original model. You can try it through the our Labs interface or via the API.

https://platform.openai.com/docs/models/dall-e

生成されるサイズと価格は以下の通りとなっています。

Image models

ResolutionPrice
1024×1024$0.020 / image
512×512$0.018 / image
256×256$0.016 / image
https://openai.com/pricing

DALL-E API

DALL-EのAPIの使い方は非常に簡単です。

Google Colabratoryからはライブラリをインストールして、以下のコマンドを叩くだけです。今回は、画像の入力も使いたいので、予めGoogleDriveもアクセスできるようにしておきます。

まず、ライブラリをインストールして、キーを設定しておきます。これはChatGPTのAPIの時と同じです。

!pip install openai

import openai
openai.organization = "org-<Your key>"
openai.api_key = "sk-<Your key>"

画像の生成

str_promptに画像の説明文を入力し、APIを叩くだけです。一度に生成する画像の数(n)と、画像のサイズ(size)を指定します。画像のサイズは、1024×1024、512×512、256×256の3種類のみです。

プロンプトは英語に翻訳した方が良い結果が得られそうです。


str_prompt = "fluffy golden retriever"
response = openai.Image.create(
  prompt=str_prompt,
  n=1,
  size="1024x1024"
)
image_url = response['data'][0]['url']
print(image_url)

表示されたURLを叩くと、画像が表示されます。このURLは1時間で消えてしまうので、気に入ったものがあれば画像を保存しておきます。

ゴールデンレトリバーを何枚か作成してみましたが、一つ目の画像が作りたいイメージにあっています。

この画像をベースにもう少しバリエーションを増やしていきます。

Google Driveにimage_workというフォルダを作り、先ほど生成したお気に入りの画像を"golden_retriever.png"という名前で保存しておきます。

その後に、以下のコードを実行します。

response = openai.Image.create_variation(
  image=open("drive/MyDrive/image_work/golden_retriever.png", "rb"),
  n=3,
  size="1024x1024"
)
image_url = response['data'][0]['url']
for i in range(3):
  print(response['data'][i]['url'])

面倒なので、3枚ほど同時に作ってみました。

気に入った画像を作成するには、プロンプトの作り方にコツがいるようです。

アプリのアイコンを生成する

それでは、本題のアイコン生成について試してみます。

先ほどのようにイメージする画像が頭の中にあればプロンプトを修正しながら試行錯誤を繰り返し、ある程度気に入った画像ができたらそれを元にバリエーションを作成するという方法がよさそうに思います。

ただ、アプリのアイコンの場合には、イメージが頭の中にない状態なので、画像AIに入力するプロンプトをChat GPTに生成してもらいました。

ChatGPTによるプロンプトの作成

まず、ChatCPT(GPT-4)に以下のように入力しました。

画像生成AIを使ってアプリのアイコンを作るプロンプトを英語で書いてください。対象となるアプリは、音声認識を使ってメモを取ることのできるアプリです。シンプルなアイコンが良いです。

Create a simple and clean app icon using an image generation AI for a voice recognition note-taking application. The design should represent the core function of the app, which is capturing and organizing spoken thoughts and ideas, while maintaining a minimalistic and modern aesthetic.

日本語に翻訳すると以下のようになります。

音声認識メモアプリの画像生成AIを使って、シンプルできれいなアプリアイコンを作成します。 デザインは、ミニマルでモダンな美学を維持しながら、話された考えやアイデアをキャプチャして整理するアプリのコア機能を表す必要があります。

出来上がったアイコンは、以下のようなものでした。

謎の文字がついていますが、イメージとしては悪くありません。

先ほどのopenai.Image.create_variationを使って、出来上がった画像を入力として、類似の画像を生成してみます。

画像生成AIは何度でも作り直してくれるので、いつかは気にいるものが生成されるかと思います。あとはそれを選択する本人のセンスが問われるのでしょう。