自分が時間をかけて作った画像を、AI に「これは何ですか」と尋ねるのは、思っていたより落ち着かない体験でした。
普段は壁紙アプリの素材や UI のスクリーンショットを Gemini Vision に渡しています。けれども、表現として意図を込めた作品を渡したとき、AI が何を拾い、何を取りこぼすのかは、純粋に確かめてみたいテーマでした。2025 年末から 2026 年にかけて、実際に試してきたことをここに書きます。
Gemini Vision に渡した 4 枚のアートワーク
Gemini Vision に渡したのは、自分の作品の中から意図的に選んだ 4 枚です。
- 作品 A: 光の散乱をテーマにした抽象画。神社で撮影した写真から色彩を抽出し、デジタルで再構成したもの
- 作品 B: 群衆の動きを記録した長時間露光写真。「集団心理の可視化」を意図した作品
- 作品 C: 余白を大量に使ったシンプルな構図。和紙の質感を模したテクスチャが特徴
- 作品 D: 壁紙アプリで高評価を得ているパターン系の作品。アプリ内でユーザーからよく選ばれているシリーズの一枚
4 枚を選んだ理由は「AI が何を見るか」のスペクトルを広げたかったからです。意図が明確な作品、意図が複数ある作品、意図を隠した作品、ビジネス的に成功した作品、それぞれを混ぜました。
Gemini Vision の分析コード(Python)
分析には Gemini 2.5 Flash を使いました。Flash は応答が速く、画像 1 枚あたりのコストが抑えられるため、複数枚を試すのに向いています。
import google.generativeai as genai
from pathlib import Path
import json, base64
genai.configure(api_key="YOUR_GEMINI_API_KEY")
model = genai.GenerativeModel("gemini-2.5-flash")
def analyze_artwork(image_path: str, mode: str = "general") -> dict:
"""アートワークを Gemini Vision で分析する"""
prompts = {
"general": """
この画像を視覚的に分析してください。
以下の観点で JSON 形式で答えてください:
- "dominant_colors": 支配的な色 3〜5 色(hex コードと名称)
- "composition_style": 構図の特徴(3 文以内)
- "emotional_tone": 感情的なトーン(例: 内省的・静寂・緊張)
- "visual_focus": 視線が最初に向かう場所
- "cultural_hints": 文化的・地域的な要素があれば
- "keywords": タグとして使える英語キーワード 5〜7 個
""",
"wallpaper_fit": """
この画像がスマートフォン壁紙として機能するか評価してください(JSON形式):
- "suitability_score": 壁紙適合度 1〜10
- "target_mood": 想定されるユーザーの気分・場面
- "icon_readability": アイコンの視認性への影響(良い・普通・悪い)
- "suggested_category": 壁紙カテゴリの提案
- "improvement_hints": 改善の提案(あれば)
"""
}
image_bytes = Path(image_path).read_bytes()
encoded = base64.b64encode(image_bytes).decode()
ext = Path(image_path).suffix.lower()
mime_map = {
".jpg": "image/jpeg", ".jpeg": "image/jpeg",
".png": "image/png", ".webp": "image/webp"
}
mime_type = mime_map.get(ext, "image/jpeg")
response = model.generate_content([
prompts[mode],
{"mime_type": mime_type, "data": encoded}
])
text = response.text
start, end = text.find("{"), text.rfind("}") + 1
if start != -1 and end > start:
return json.loads(text[start:end])
return {"raw_response": text}
# 使用例
result = analyze_artwork("artwork_a.jpg", "general")
print(json.dumps(result, ensure_ascii=False, indent=2))
# 期待する出力例:
# {
# "dominant_colors": [{"hex": "#F5E6C8", "name": "温かみのある白"},...],
# "emotional_tone": "内省的・静寂",
# "visual_focus": "画面中央やや上"
# }実行時間は 1 枚あたり 1.5〜3 秒、コストは 1 枚あたり約 0.003 円(2026 年 5 月時点の Flash 料金)です。複数枚を一気に試すには十分に軽い処理でした。
何が正確で、何がずれていたか
結果を正直に書きます。
作品 A(光の散乱・抽象画): Gemini の分析はかなり的確でした。「支配的な色」として返ってきた 5 色はほぼ意図通りで、「感情的なトーン」も「内省的・静寂」と返ってきました。ただし、この作品で意図していたのは、静けさの奥にある張り詰めた感覚でした。表面的な「静寂」は拾えていたものの、その奥にある緊張感までは読み取れていませんでした。
作品 B(群衆・長時間露光): ここが一番面白かったです。Gemini は「視線が最初に向かう場所」として画面中央ではなく、左上の光源を指摘しました。私自身は中央の群衆の流れを意図していたのに、AI は別の場所を優先した。後から作品を見直すと、確かに左上への引力があります。自分では意識していなかった構成要素を、Gemini が抽出していました。
作品 C(余白・和紙): キーワードとして "minimalism", "Japanese aesthetic", "meditative" が返ってきました。これは悪くありません。ただ「壁紙適合度」は 6/10 と低く、「アイコンの視認性への影響: 普通」という評価でした。アート作品としては正しく読まれているのに、壁紙という用途に対しては保守的な評価が出ました。
作品 D(パターン・商業的に好調): 壁紙適合度が 9/10 と高く評価されました。「target_mood: 日常使いでリラックスできる」「suggested_category: Nature / Texture」という結果は、実際にアプリ内でユーザーからよく選ばれるカテゴリと一致していました。ビジネス的に成功した作品を、AI も適切に評価していた点は興味深い確認でした。
壁紙アプリへの実用的な応用
この実験を経て、個人開発で続けている壁紙アプリの開発ワークフローに、私自身も Gemini Vision を組み込んでいます。具体的には以下の 2 つです。
アプリ説明文の自動生成
App Store の壁紙説明文は、これまで手動で書いていました。同じような文言が続くと SEO 的にも不利ですし、何より飽きます。今は Gemini Vision の分析結果をベースに説明文を生成しています。
def generate_app_description(analysis: dict, locale: str = "ja") -> str:
"""分析結果から App Store 向け説明文を生成"""
model = genai.GenerativeModel("gemini-2.5-flash")
if locale == "ja":
prompt = f"""
以下のアートワーク分析データをもとに、
壁紙アプリ向けの説明文を日本語 80 字前後で書いてください。
ユーザーが壁紙を使うシーンを想起させ、SEO キーワードを自然に含める形で。
分析データ: {json.dumps(analysis, ensure_ascii=False)}
"""
else:
prompt = f"""
Write a 50-word App Store description for a wallpaper app.
Based on: {json.dumps(analysis)}
Evoke the scene where users would use this wallpaper. Include natural SEO keywords.
"""
return model.generate_content(prompt).text.strip()実際に使ってみると、作り手の視点ではなく「壁紙を使う人の朝」を書いてくれることが多く、ユーザー視点の説明文が出やすいと感じています。
カテゴリタグの自動付与とパフォーマンス予測
suggested_category と keywords を組み合わせてカテゴリ候補を自動生成するようにしました。正答率はおよそ 85〜90% で、残りの 10〜15% を自分でレビューしています。また suitability_score と実際のダウンロード数を比較したところ、スコア 7 以上の作品はダウンロード数が高い傾向がありました。完全な予測ツールにはなりませんが、一次スクリーニングとして機能しています。詳しい実装については壁紙アプリの自動カテゴリ分類の実装例も参考になります。
Gemini Vision の現在の限界
正直に書いておくべきことがあります。
抽象表現の「意図」は読めない: Gemini は形と色は読めますが、作品に込められた概念的な意図は取れません。作品 B の「集団心理の構造」という主題は、どうやっても分析テキストには出てきませんでした。文化的な文脈、制作者の意図、作品の背景知識が必要な読み取りは、現状では人間の目が必要です。
「アート的価値」と「機能的価値」を混同する: 壁紙として優秀かどうかと、アートとして優れているかどうかは別物です。Gemini は前者を評価するのが得意ですが、後者の判断は苦手です。この区別を明確にして使うことが重要だと感じています。
光の質感の表現に限界がある: 言語化しにくい光の体験を画像として渡しても、Gemini はそれを「glare effect」「lens flare like pattern」と表現します。機能的な説明はできても、体験の核心には届きません。この限界は批判ではなく、確認です。Gemini Vision がどこまでできて、どこからは人間の判断が必要か、その境目が明確になったことは大きな収穫でした。
不正確さを制作のフィードバックに変える — 問いの立て方
ここまでは「分析させる」使い方でしたが、もう一歩進めて「問い返してもらう」使い方も試しています。「この画像を分析してください」という問いは、平らな説明文しか返ってきません。作り手として受け取る価値のある言葉に変えるには、問いの形そのものを変える必要がありました。
手応えのあった問いの立て方は三つです。
- 視線の順番を聞く: 「最初に目が行く場所、次に行く場所、最後に行く場所を順に挙げてください」。見慣れて気づけなくなった動線の偏りが返ってきます。
- ぶつかり合いを聞く: 「この画面の中で、互いに引っ張り合っている要素はどこですか」。意図していなかった緊張や不調和が見えます。
- 連想を聞く: 「この画像から連想する場所・時間・記憶を三つ挙げてください」。込めたつもりのない文化的な読みが返ってきます。
def critique_artwork(image_path: str) -> dict:
"""三つの問いで作品にフィードバックをもらう"""
framings = {
"gaze_order": "最初に目が行く場所、次、最後の順に3点を挙げ、理由を一言添えてください。",
"tension": "画面内で互いに引っ張り合っている要素の組を2つ挙げてください。",
"association": "この画像から連想する場所・時間・記憶を3つ挙げてください。",
}
image_bytes = Path(image_path).read_bytes()
encoded = base64.b64encode(image_bytes).decode()
out = {}
for key, q in framings.items():
resp = model.generate_content([
q, {"mime_type": "image/jpeg", "data": encoded}
])
out[key] = resp.text.strip()
return out大事なのは、返ってきた答えそのものではなく、答えどうしのズレを読むことだと感じています。Vision が自信を持って外しているところに、自分が無意識に置いた意図が潜んでいることが多いからです。作品 B で視線の起点を取り違えたときのように、誤読は制作メモより雄弁なことがあります。
一つだけ気をつけているのは、Vision が好む方向へ作品を寄せないことです。AI が「整っている」と評価する構図に最適化していくと、作品は静かに平均へ近づきます。鏡として使い、演出家にはしない。この線引きだけは外さないようにしています。
「見る」と「読む」— 検証で残った問い
この検証で一番印象に残ったのは、技術的な精度の話ではありませんでした。
AI が「見る」とき、それは常に既存の言語化されたパターンへの照合です。色とテクスチャと構図を、既知の概念に結びつける処理です。一方、作品を作るときの自分は、むしろ既存の言葉に収まらないものを画面に残そうとしています。直感が先にあり、言葉はその後を追う、という順序です。
Gemini はこの順序を逆にたどります。言葉から始めて、視覚へ向かう。どちらが正しいという話ではなく、この方向性の違いそのものが「見ている」という動詞の意味を問い直させます。納得できない解釈に出会ったとき、「なぜ Gemini はそう読んだのか」という問いが残り、その問いの先に、自分が無意識に込めていた意図が見つかることがあります。AI の不完全な読み取りが、制作のフィードバックとして働き始めているわけです。
使ってみた総評
Gemini Vision は、作り手の判断を「代替する」ツールではなく、「量を処理する」ツールとして優秀です。
月に 50〜100 枚のアートワークをアプリに追加しています。それぞれに説明文を書き、カテゴリを付け、壁紙としての適合性を評価する。この作業をすべて手作業でやっていたのが、Gemini Vision によって 3 分の 1 程度に圧縮されました。
一方で、「この作品の何が人の心を動かすか」という問いには、まだ AI は答えられません。その問いと向き合うのは、変わらず自分の仕事です。完璧でないからこそ、使い続ける理由がある、というのが今の実感です。
マルチモーダル API の基本的な使い方や応用例はGemini マルチモーダル API 実践ガイドで、Vision で分析した素材を派生展開する手法はGemini 3.2 Pro × Imagen 4 で自作アートを壁紙 120 種類に展開した 30 日で、それぞれ詳しく触れています。
同じようにアプリ運営と創作活動を並行している方の参考になれば幸いです。