Supershipの名畑です。「週刊少年ジャンプ史上最も重要なマンガ20選」から始まった、最近はてな匿名ダイアリーで盛り上がっている「史上最も重要なマンガ◯選」シリーズが大好きです。
はじめに
先日、Stability AIがStable Diffusion 3.5をリリースしました。
Stable Diffusion 3.5 をご紹介します。このオープンリリースには、Stable Diffusion 3.5 Large や Stable Diffusion 3.5 Large Turbo など、複数のモデルのバリエーションが含まれています。さらに、Stable Diffusion 3.5 Medium は10月29日 (EU/US時間)にリリースされる予定です。
こちらのお知らせの中に「我々の分析では、Stable Diffusion 3.5 Large はプロンプト順守において市場をリード」という記載がありましたので、プロンプトの反映度合いにおいて各社でどれだけの差があるのかを比較してみたというのが今回の記事となります。
判断は主観だらけです。
単純に書いたプロンプトでは思い通りの生成結果が得られないということの参考程度でお楽しみください。
今回対象とする生成AI
- Stable Diffusion 3.5 Large by Stability AI
- FLUX1.1 [pro] by Black Forest Labs
- Imagen 3 by Google
- DALL·E 3 by OpenAI
- Adobe Firefly by Adobe
原則として試行回数は各プロンプトにおいて各1回です。複数画像が同時に生成される場合は「左上」を選んでいます。
Stable Diffusion 3.5 Large と FLUX1.1 [pro] はWeb API経由での生成です。その他はブラウザ上での生成となります。Imagen 3であればImageFX、DALL·E 3であればChatGPT。
FireflyについてはFirefly Image 3を用いており、高速モードはOFFとして、生成後にアップスケールをしています。そのため、Fireflyだけは生成画像が2048x2048です。他は1024x1024です。
FLUX1.1 [pro] での生成に用いたコードは過去記事「Stable Diffusionのオリジナル開発陣による画像生成AIモデル最新版FLUX 1.1 [pro]のWeb APIを呼んでいくつかの画像を生成してみた」を使用しています。サイズのみ1024x1024に変更しました。
Stable Diffusion 3.5 Largeでの生成に用いたコードは以下です。Pythonです。STABILITY_API_KEYは環境変数に保存されたAPI Keyです。詳しくはAPI Referenceをご覧ください。
import os
import requests
import time
api_host = os.getenv('API_HOST', 'https://api.stability.ai')
api_key = os.getenv("STABILITY_API_KEY")
prompt = "ここにプロンプトを記述する"
# API Keyの取得確認
if api_key is None:
raise Exception("Missing Stability API key.")
# API呼び出し
response = requests.post(
f"{api_host}/v2beta/stable-image/generate/sd3",
headers={
"Accept": "image/*",
"Authorization": f"Bearer {api_key}"
},
files={"none": ''},
data={
"prompt": prompt,
"output_format": "png",
"model": "sd3.5-large"
},
)
# 画像保存。ファイル名にはタイムスタンプを含めています
if response.status_code == 200:
with open(f"./{int(time.time())}.png", "wb") as file:
file.write(response.content)
else:
raise Exception(str(response.json()))
では、以下、結果となります。
No.1 - 1本のバナナ
1本のバナナ問題というものがあります。
「写真の中に写るバナナは2本である」というバイアスは、AIが持つ小さなバイアスの一例である、とフック氏。Midjourneyなどの画像生成AIが学習するために用いるデータセットにはバナナが写った画像が含まれ、そこには「バナナ」とラベル付けされています。しかし、たとえ「バナナ」とラベル付けされていても、「○本のバナナ」とはラベル付けされていない可能性が高く、バナナを見たことがないMidjourneyがバナナの姿形を学習しても、バナナの本数は学習できないことになります。
最近だとストロベリー問題も話題になりました。
ということでまずは、以下のプロンプトで比較してみました。
プロンプト
There is a single banana on the table.There is a single banana hanging from the ceiling.There is a single banana placed on the chair.There is a man with a single banana on his head.There is a woman washing a single banana.
プロンプト(日本語訳)
テーブルの上に1本のバナナがある。天井から1本のバナナがぶら下がっている。椅子の上に1本のバナナが置かれている。1本のバナナを頭に乗せた男性がいる。1本のバナナを洗っている女性がいる。
Stable Diffusion 3.5 Large
FLUX1.1 [pro]
Imagen 3
DALL·E 3
Adobe Firefly
一言
全部ダメですね。
プロンプトが悪すぎましたか。
なんかごめんなさい。
SD 3.5 Large | FLUX1.1 [pro] | Imagen 3 | DALL·E 3 | Firefly |
---|---|---|---|---|
× | × | × | × | × |
No.2 - 1本のバナナ 再挑戦
プロンプトをシンプルにしてもう一度挑戦してみます。
プロンプト
A single banana placed in the center of a white background. The banana should be ripe, with a bright yellow peel and a few brown spots, indicating its ripeness. The shape of the banana should be curved in a natural way, and it should be clearly identifiable as one piece of fruit without any additional objects or bananas in the image.
プロンプト(日本語訳)
白い背景の中央に1本のバナナ。バナナは熟していて、明るい黄色の皮にいくつかの茶色い斑点があり、熟していることがわかるようにする。バナナの形は自然な曲線を描き、画像内に他の物やバナナがない状態で、1本の果物として明確に識別できるようにする。
Stable Diffusion 3.5 Large
FLUX1.1 [pro]
Imagen 3
DALL·E 3
以下のエラーで生成できませんでした。
I couldn't generate the requested image because it didn't align with the content policy. If you have another idea or request, feel free to share, and I'll do my best to create it!
Adobe Firefly
一言
むしろStable Diffusion Large 3.5だけが露骨におかしい結果ですね。一つ目のプロンプトでの生成結果もよく見ると同様な傾向が出ています。
Imagen 3は熟している感が薄い気はしますし、Fireflyのバナナもどこか違和感はあるのですが、プロンプトを反映していないとまでは言えないのでOKとします。
DALL·E 3はなにがコンテンツポリシーに引っかかったのだろうか。
SD 3.5 Large | FLUX1.1 [pro] | Imagen 3 | DALL·E 3 | Firefly |
---|---|---|---|---|
× | ◯ | ◯ | - | ◯ |
No.3 - 宇宙戦闘
趣向を変えてみます。
非現実的なものを描いてもらいます。
プロンプト
A large-scale space battle between two fleets of futuristic spaceships. Lasers and missiles are being fired, with explosions happening in the background. The scene takes place in deep space, with a distant galaxy visible in the background and some debris floating nearby.
プロンプト(日本語訳)
2つの未来的な艦隊間で繰り広げられる大規模な宇宙戦闘。レーザーとミサイルが発射され、背景では爆発が起こっている。このシーンは深宇宙で行われ、遠くに銀河が見え、周囲には浮かぶ破片が描かれている。
Stable Diffusion 3.5 Large
FLUX1.1 [pro]
Imagen 3
DALL·E 3
Adobe Firefly
一言
比較が難しい。
画像によってレーザーとミサイルの両方が描かれていると視認するのが難しかったり、対戦している感が薄かったり。
SD 3.5 Large | FLUX1.1 [pro] | Imagen 3 | DALL·E 3 | Firefly |
---|---|---|---|---|
△ | △ | △ | △ | △ |
No.4 - スチームパンクな発明品
また架空なものを描いてみてもらいます。
スチームパンク(Steampunk)とはSFのジャンルのひとつ。レトロフューチャーのサブジャンルとして捉えることもできる。
プロンプト
An intricate steampunk device on a workbench, made of brass, gears, and glass tubes. The device is emitting a faint steam cloud, with tiny dials and gauges displaying various readings. Nearby, a pair of leather gloves and a set of old blueprints are scattered on the wooden table.
プロンプト(日本語訳)
作業台の上にある複雑なスチームパンク装置で、真鍮、歯車、ガラス管で作られている。装置は薄い蒸気を放ち、小さなダイヤルと計器がさまざまな値を表示している。近くには一組の革の手袋と古い設計図が木のテーブルの上に散らばっている。
Stable Diffusion 3.5 Large
FLUX1.1 [pro]
Imagen 3
DALL·E 3
Adobe Firefly
一言
どれもよく表現されていると感じるのですが、DALL·E 3は設計図が散らばっている感がないのと手袋がペアじゃないです。
Fireflyは革の手袋が登場していませんね。
SD 3.5 Large | FLUX1.1 [pro] | Imagen 3 | DALL·E 3 | Firefly |
---|---|---|---|---|
◯ | ◯ | ◯ | × | × |
No.5 - チビ風キャラクター
次は特徴のあるキャラクターを描いてみてもらいます。
プロンプト
A chibi-style character of a smiling young girl with big eyes, short pink hair, and a school uniform. She is holding a small cat in her arms, standing on a grassy hill under a bright blue sky with fluffy clouds.
プロンプト(日本語訳)
大きな目と短いピンク色の髪で学生服で笑顔の女の子のチビ風キャラクター。腕の中に小さな猫を抱きながら、明るい青い空とふわふわした雲の下で、茂った草の丘の上に立っている。
Stable Diffusion 3.5 Large
FLUX1.1 [pro]
Imagen 3
DALL·E 3
Adobe Firefly
一言
Imagen 3は髪の色がピンクではなくて、DALL·E 3は猫を抱いてはいない。
Fireflyは猫耳になっていて、手や猫の描画もおかしいです。
Stable Diffusion 3.5 Largeは基本的には正しいのですが、猫の体型など描画の不自然さがやや目立つので△で。
SD 3.5 Large | FLUX1.1 [pro] | Imagen 3 | DALL·E 3 | Firefly |
---|---|---|---|---|
△ | ◯ | × | × | × |
No.6 - 色とりどりなサンゴ礁
次は美しい景色を生成してもらいました。
プロンプト
A colorful underwater scene featuring a coral reef filled with vibrant fish, sea turtles, and a few small sharks. Sunlight beams are penetrating through the water's surface, illuminating the sea life and creating a beautiful, serene atmosphere.
プロンプト(日本語訳)
色とりどりの魚、ウミガメ、数匹の小さなサメがいる、サンゴ礁を特徴とした色鮮やかな水中シーン。太陽の光が水面から差し込み、海洋生物を照らし、美しく静かな雰囲気を作り出している。
Stable Diffusion 3.5 Large
FLUX1.1 [pro]
Imagen 3
DALL·E 3
Adobe Firefly
以下のエラーで生成できませんでした。
このプロンプトは処理できません。
> 編集して再試行するか、レビューのフラグを設定してください。
> レビューのフラグを設定した場合、プロンプトデータが収集されます。
一言
FLUX1.1 [pro] はウミガメが見当たらず、Imagen 3はウミガメとサメが複数おらず、DALL·E 3はサメが見当たらない。
Fireflyはなにがエラーの理由だったのかは不明です。
ちなみに、今回のプロンプトではないですが、試しているとImagen 3も生成できないことが多いですね。
SD 3.5 Large | FLUX1.1 [pro] | Imagen 3 | DALL·E 3 | Firefly |
---|---|---|---|---|
◯ | x | × | x | - |
No.7 - 茶道
最後です。
日本の茶道について生成してもらいます。特定の文化がどれだけ再現されるか。
プロンプト
A traditional Japanese tea ceremony taking place in a tatami room. A woman in a kimono is gracefully preparing tea, while a guest kneels in front of her, observing respectfully. The room is decorated with traditional Japanese art and sliding shoji doors.
プロンプト(日本語訳)
畳の部屋で行われる伝統的な日本の茶道のシーン。着物を着た女性が優雅にお茶を点て、前に座る客が礼儀正しく見守っている。部屋は日本の伝統的な絵画や障子戸で装飾されている。
Stable Diffusion 3.5 Large
FLUX1.1 [pro]
Imagen 3
DALL·E 3
Adobe Firefly
一言
茶道として正しいかどうかは今回は置いておきます。その観点まで入れると全部xになるため。
Stable Diffusion 3.5 Largeはお茶をどちらが用意しているかわからないのと、障子戸が一般的なものからかけ離れすぎているかと。
DALL·E 3は畳などの歪みが目立ちすぎています。
Fireflyは見守るお客さんがいないですし、障子戸や畳の描画も他と差があります。
SD 3.5 Large | FLUX1.1 [pro] | Imagen 3 | DALL·E 3 | Firefly |
---|---|---|---|---|
x | ◯ | ◯ | x | x |
最後に
結果を表にまとめると以下となります。
SD 3.5 Large | FLUX1.1 [pro] | Imagen 3 | DALL·E 3 | Firefly | ||
---|---|---|---|---|---|---|
1 | 1本のバナナ | × | × | × | × | × |
2 | 1本のバナナ 再挑戦 | × | ◯ | ◯ | - | ◯ |
3 | 宇宙戦闘 | △ | △ | △ | △ | △ |
4 | スチームパンクな発明品 | ◯ | ◯ | ◯ | × | × |
5 | チビ風キャラクター | △ | ◯ | × | × | × |
6 | 色とりどりなサンゴ礁 | ◯ | x | × | x | - |
7 | 茶道 | x | ◯ | ◯ | x | x |
かなり主観まみれな調査ではありますが、少なくとも今回の結果だけでStable Diffusion 3.5 Largeが他より優れていると結論づけるのは無理そうです。
精度でざっくりグループ分けすると、以下な感じでしょうか。
- 反映度S
- FLUX1.1 [pro]、Imagen 3
- 反映度A
- Stable Diffusion 3.5 Large
- 反映度B
- DALL·E 3、Firefly
改めてわかったこととしては、意図通りの画像を生成してもらうのは本当に難しい。
本当の本当の本当に難しい。
ただし、進化のすごさは日々感じています。
宣伝
SupershipのQiita Organizationを合わせてご覧いただけますと嬉しいです。他のメンバーの記事も多数あります。
Supershipではプロダクト開発やサービス開発に関わる方を絶賛募集しております。
興味がある方はSupership株式会社 採用サイトよりご確認ください。