Gemini 2.5 Pro/Flashにおけるマルチモーダルトークン(画像のトークン数、動画のトークン数など)計算ガイド

Gemini 2.5 Pro/Flashにおけるマルチモーダルトークン(画像のトークン数、動画のトークン数など)計算ガイド
Photo by Towfiqu barbhuiya / Unsplash

こんにちは!

本日は、Gemini 2.5 ProおよびGemini 2.5 Flashを使用する際、料金計算やコンテキストウィンドウの管理において、トークン数の正確な把握は非常に重要です。本記事では、画像、動画、音声といったマルチモーダルコンテンツのトークン計算方法について詳しく解説します。

基本概念:トークンとは

Gemini 2.5シリーズにおいて、1トークンは約4文字に相当し、100トークンは約60-80語(英語)に相当します。すべての入力と出力はトークン単位で処理され、課金もトークン数に基づいて行われます。

Gemini 2.5シリーズのモデルと料金

利用可能なモデル

  • Gemini 2.5 Pro: 高度な推論能力を持つフラグシップモデル
  • Gemini 2.5 Flash: コスト効率に優れた高速モデル
  • Gemini 2.5 Flash Image: 画像生成専用モデル

コンテキストウィンドウ

両モデルとも1,000,000トークンの大規模なコンテキストウィンドウを提供します。

料金体系(プレビュー段階)

モデル 入力料金 出力料金
Gemini 2.5 Pro $4/100万トークン $20/100万トークン
Gemini 2.5 Flash $0.30/100万トークン $2.50/100万トークン
Gemini 2.5 Flash Image - 1画像あたり1290トークン(約$0.039)

画像のトークン計算

動的タイリングシステム

Gemini 2.5シリーズでは、画像サイズに応じた動的なタイリングシステムを採用しています。

小さい画像(384ピクセル以下)

  • 両方の寸法が384ピクセル以下の画像:258トークン固定

大きい画像(384ピクセル超)

  • 768×768ピクセルのタイルに分割
  • 各タイル:258トークン
  • 総トークン数 = タイル数 × 258

実装例

from google import genai

client = genai.Client()
prompt = "この画像について説明してください"

# 画像ファイルをアップロード
image_file = client.files.upload(file="sample_image.jpg")

# トークン数をカウント
token_count = client.models.count_tokens(
    model="gemini-2.5-flash",
    contents=[prompt, image_file]
)
print(f"総トークン数: {token_count}")
# 例: 小さい画像の場合 → total_tokens: 263(テキスト5 + 画像258)

タイル数の計算方法

def calculate_image_tokens(width, height):
    if width <= 384 and height <= 384:
        return 258
    else:
        tiles_width = (width + 767) // 768
        tiles_height = (height + 767) // 768
        return tiles_width * tiles_height * 258

重要なポイント

  • File APIでアップロードした画像とインラインデータとして提供した画像で、トークン数は同じ
  • 画像の解像度に応じてトークン数が変動するため、事前の確認が重要

動画のトークン計算

固定レート方式

動画は時間ベースの固定レートでトークン化されます。

レート:1秒あたり263トークン

計算例

import time
from google import genai

client = genai.Client()
prompt = "この動画の内容を要約してください"

# 動画ファイルをアップロード
video_file = client.files.upload(file="sample_video.mp4")

# 動画処理の完了を待つ
while video_file.state.name != "ACTIVE":
    print("動画を処理中...")
    time.sleep(5)
    video_file = client.files.get(name=video_file.name)

# トークン数をカウント
token_count = client.models.count_tokens(
    model="gemini-2.5-flash",
    contents=[prompt, video_file]
)
print(f"総トークン数: {token_count}")

動画長とトークン数の関係

動画の長さ トークン数
1秒 263
10秒 2,630
1分 15,780
5分 78,900

音声のトークン計算

固定レート方式

音声も時間ベースの固定レートでトークン化されます。

レート:1秒あたり32トークン

音声長とトークン数の関係

音声の長さ トークン数
1秒 32
10秒 320
1分 1,920
5分 9,600

実践的な使用例:使用メタデータの活用

generate_contentを呼び出した後、usage_metadataから詳細なトークン情報を取得できます。

response = client.models.generate_content(
    model="gemini-2.5-flash",
    contents=[prompt, media_file]
)

# 詳細なトークン情報を取得
metadata = response.usage_metadata
print(f"入力トークン: {metadata.prompt_token_count}")
print(f"出力トークン: {metadata.candidates_token_count}")
print(f"総トークン数: {metadata.total_token_count}")

# キャッシュトークンの取得(利用可能な場合)
if hasattr(metadata, 'cached_content_token_count'):
    print(f"キャッシュトークン: {metadata.cached_content_token_count}")

# 思考トークンの取得(思考モデルを使用している場合のみ)
if hasattr(metadata, 'thoughts_token_count'):
    print(f"思考トークン: {metadata.thoughts_token_count}")

コスト最適化のベストプラクティス

1. 事前のトークン数確認

# generate_contentを呼ぶ前にトークン数を確認
estimated_tokens = client.models.count_tokens(
    model="gemini-2.5-flash",
    contents=contents
)
if estimated_tokens > threshold:
    # コンテンツを調整または警告を表示
    pass

2. 画像の最適化

  • 不必要に大きい画像は避ける(タイル数が増えるため)
  • 384ピクセル以下の画像は258トークン固定なので、小さいサムネイルで十分な場合は活用

3. 動画・音声の長さ管理

  • 動画:必要な部分のみを切り出して使用
  • 音声:動画より効率的(同じ1秒で32トークン vs 263トークン)

4. コンテキストキャッシング

Gemini 2.5シリーズでは、コンテキストキャッシングを活用することでトークン使用量を削減できます。キャッシュされたトークンは通常の半額で課金されます。

5. モデルの使い分け

  • 複雑なタスク:Gemini 2.5 Pro
  • 高速処理が必要な場合:Gemini 2.5 Flash
  • コスト重視:Gemini 2.5 Flash(Proの約1/7の入力コスト)

まとめ

Gemini 2.5 Pro/Flashのマルチモーダルトークン計算は以下のルールに従います。

  • 画像: 384px以下は258トークン、それ以上はタイル数×258トークン
  • 動画: 1秒あたり263トークン
  • 音声: 1秒あたり32トークン
  • コンテキストウィンドウ: 両モデルとも100万トークン

これらの計算方法を理解することで、APIの使用コストを予測し、コンテキストウィンドウを効率的に管理できます。特に大規模なマルチモーダルアプリケーションを開発する際は、事前のトークン数確認とコンテンツの最適化が重要です。

参考リンク

より詳細な情報については、Gemini API公式ドキュメントをご参照ください。

関連情報

・OpenAI GPTシリーズの画像トークン消費量計算

【OpenAI API】Vision対応LLMの画像トークン消費量計算法 2025年最新版
こんにちは! OpenAIのVision対応(つまり画像も入力できるLLM)モデルは、画像をトークンに変換する際に2つの異なる計算方式を採用しています。 最新のGPT-5系列やGPT-4.1系列では、従来のタイル方式とは異なるパッチベース方式が導入されました。この変更により、画像処理の効率性が大幅に向上し、より細かな制御が可能になっています。 2つの計算方式の違い OpenAIは現在、パッチベース方式とタイルベース方式という2つの計算方法を並行して運用しています。 パッチベース方式は、GPT-4.1-mini、GPT-4.1-nano、GPT-5-mini、GPT-5-nano、o4-miniといった新世代モデルで採用されています。この方式では画像を32×32ピクセルという非常に小さなパッチに分割します。従来のタイル方式が512×512ピクセルだったことを考えると、約256分の1のサイズで処理することになり、より精密な画像理解が可能になりました。 一方、GPT-4o、GPT-4.1、GPT-5、o1、o3などの主力モデルは引き続きタイルベース方式を採用しています。こちらは

・Anthropic Claudeシリーズの画像トークン消費量計算

Claude 4.5 APIにおける画像入力のトークン数計算と最適化ガイド
こんにちは! 今回は、Claude 4.5 sonnet/haiku、Claude 4.1 OpusをAPIからつかうときの画像のトークン数計算方法について詳しく解説します。 画像トークン数の計算方法 Claude 4.5 APIに送信する画像は、テキストと同様にトークンとしてカウントされ、料金計算の基礎となります。画像がAPIのサイズ制限内でリサイズ不要な場合、以下の簡単な計算式でトークン数を推定できます。 基本計算式 トークン数 = (横幅px × 縦幅px) ÷ 750 この計算式を使用することで、アップロード前にコストを予測し、必要に応じて画像を最適化することが可能になります。例えば、1000×1000ピクセルの画像は約1334トークンを消費し、Claude 4.5の料金体系では、画像1枚あたりのコストを事前に計算できます。1092×1092ピクセル(1.19メガピクセル)の画像であれば約1590トークンとなり、これを基準にバッチ処理のコストも見積もることが可能です。 画像サイズの制限と最適化 Claude 4.5 APIには画像サイズに関するいくつかの重要な

Read more

企業セキュリティはなぜ複雑になったのか? 〜AD+Proxyの時代から現代のクラウド対応まで〜

企業セキュリティはなぜ複雑になったのか? 〜AD+Proxyの時代から現代のクラウド対応まで〜

こんにちは! ChatGPTやClaudeといった生成AIサービスが業務に浸透し始めた今、 「AIに機密情報を送ってしまうリスク」 が新たなセキュリティ課題として浮上しています。 この課題に向き合う中で、私たちは改めて「企業のセキュリティアーキテクチャはどう変遷してきたのか」を振り返る機会がありました。 すると、ある疑問が浮かんできます。 「なんでこんなに複雑になってるんだっけ?」 企業のセキュリティ担当者なら、一度は思ったことがあるのではないでしょうか。 アルファベット3〜4文字の製品が乱立し、それぞれが微妙に重複した機能を持ち、設定は複雑化し、コストは膨らみ続けています。 当社ではAIセキュリティ関連プロダクトをご提供しておりますが、AI時代のセキュリティを考える上でも、この歴史を理解することは重要ではないかと考えました。 本記事では、企業ネットワークセキュリティの変遷を振り返りながら、「なぜこうなったのか」を整理してみたいと思います。 第1章:観測点を集約できた時代 ― オンプレAD + Proxy(〜2010年代前半) 統制しやすかったモデル かつ

By Qualiteg コンサルティング, Qualiteg AIセキュリティチーム
【IT温故知新】WS-* の栄光と黄昏:エンタープライズITはいかにして「実装」に敗北したか

【IT温故知新】WS-* の栄光と黄昏:エンタープライズITはいかにして「実装」に敗北したか

こんにちは。 —— 2003年のSOAから、2026年のAIへ —— この記事は、過去の技術動向を振り返り、そこから学べる教訓について考察してみたものです。 歴史は常に、後から見れば明らかなことが、当時は見えなかったという教訓を与えてくれます。 そして、今私たちが「正しい」と信じていることもまた、20年後には違う評価を受けているかもしれません。 だからこそ、振り返ることには意味があるとおもいます。同じ轍を踏まないために。 はじめに:20年前の熱狂を覚えていますか 2000年代初頭。 私はSOA(サービス指向アーキテクチャ)に本気で取り組んでいました。 当時、SOAは「次世代のエンタープライズアーキテクチャ」として、業界全体が熱狂していました。 カンファレンスに行けば満員御礼、ベンダーのブースには人だかり、書店にも関連の書籍がちらほらと。 SOAP、SOAP with attachments、JAX-RPC、WS-Security、WS-ReliableMessaging、WS-AtomicTransaction... 仕様書の山と格闘する日々でした。 あれから

By Qualiteg コンサルティング
DockerビルドでPythonをソースからビルドするとGCCがSegmentation faultする話

DockerビルドでPythonをソースからビルドするとGCCがSegmentation faultする話

こんにちは!Qualitegプロダクト開発部です! 本日は Docker環境でPythonをソースからビルドした際に発生した、GCCの内部コンパイラエラー(Segmentation fault) について共有します。 一見すると「リソース不足」や「Docker特有の問題」に見えますが、実際には PGO(Profile Guided Optimization)とLTO(Link Time Optimization)を同時に有効にした場合に、GCC自身がクラッシュするケースでした。 ただ、今回はDockerによって問題が隠れやすいという点もきづいたので、あえてDockerを織り交ぜた構成でのPythonソースビルドとGCCクラッシュについて実際に発生した題材をもとに共有させていただこうとおもいます 同様の構成でビルドしている方の参考になれば幸いです TL;DR * Docker内でPythonを --enable-optimizations --with-lto 付きでソースビルドすると GCCが internal compiler error(Segmentati

By Qualiteg プロダクト開発部
サブスクビジネス完全攻略 第2回~「解約率5%」が1年後に半分の顧客を消す恐怖と、それを防ぐ科学

サブスクビジネス完全攻略 第2回~「解約率5%」が1年後に半分の顧客を消す恐怖と、それを防ぐ科学

こんにちは! Qualitegコンサルティングです! 前回の第1回では、サブスクリプションビジネスの基本構造と、LTV・ユニットエコノミクスという革命的な考え方を解説しました。「LTV > 3 × CAC」という黄金律、覚えていますか? サブスクビジネス完全攻略 第1回~『アープがさぁ...』『チャーンがさぁ...』にもう困らない完全ガイドなぜサブスクリプションモデルが世界を変えているのか、でもAI台頭でSaaSは終わってしまうの? こんにちは! Qualitegコンサルティングです! 新規事業戦略コンサルタントとして日々クライアントと向き合う中で、ここ最近特に増えているのがSaaSビジネスに関する相談です。興味深いのは、その背景にある動機の多様性です。純粋に収益モデルを改善したい企業もあれば、 「SaaS化を通じて、うちもデジタルネイティブ企業として見られたい」 という願望を持つ伝統的な大企業も少なくありません。 SaaSという言葉が日本のビジネスシーンに本格的に浸透し始めたのは2010年代前半。それから約15年が経ち、今やSaaSは「先進的な企業の証」のように扱われています。

By Qualiteg コンサルティング