Cloudflare Workers AI text-to-image 無料プランの制限:Neurons換算で1日何回使えるか

Cloudflare Workers AI text-to-image 無料プランの制限:Neurons換算で1日何回使えるか

※本記事にはプロモーション(広告・アフィリエイトリンク)を含みます。

Cloudflare Workers AIには無料枠があるが、「1日に何枚の画像を生成できるか」はドキュメントをそのまま読んでも即座には分からない。制限の単位がリクエスト数ではなく Neurons(ニューロン) という独自指標で、モデルごとの換算を経ないと実質的な上限が見えない構造になっているからだ。本記事では公式ドキュメントをもとに制限の仕組みを整理し、代表的なtext-to-imageモデルの実質リクエスト上限を試算する。

制限の単位は「Neurons」—リクエスト回数ではない

Workers AIのすべての使用量は Neurons という独自指標で計測される。テキスト生成モデルなら入出力トークン数に応じて少量ずつ積み上がるが、画像生成モデルは1リクエストあたり固定の大きなかたまりとして計上される。

公式ドキュメントによると(執筆時点)、プラン別の日次上限は以下のとおり。

プラン 日次Neurons上限 上限到達後の動作
Workers Free 10,000 Neurons/日 エラーを返す(自動課金なし)
Workers Paid 10,000 Neurons/日まで無料 超過分を $0.011/1,000 Neurons で課金

Freeプランでは上限超過時に自動課金が発生せず、リクエストがエラーになって処理が止まる。 夜間バッチで画像生成を回す場合、消費がこの上限に達した時点でジョブが中断する。最新値は Cloudflare Workers AI Pricing で確認されたい。数値は変更されうる。

text-to-imageモデル別のNeurons消費と実質上限

Cloudflareはモデルカタログで各モデルのNeurons消費量を公開している。代表的なtext-to-imageモデルを公式情報をもとに整理すると以下のとおりだ(執筆時点・変更される可能性あり)。

モデルID Neurons/リクエスト(目安) 1日上限(試算)
@cf/stabilityai/stable-diffusion-xl-base-1.0 約3,500 約2〜3回
@cf/bytedance/stable-diffusion-xl-lightning 約1,800 約5〜6回
@cf/lykon/dreamshaper-8-lcm 約450 約22回
@cf/runwayml/stable-diffusion-v1-5 約250 約40回

計算式は floor(10,000 ÷ Neurons/リクエスト) で、1日の上限リクエスト数が逆算できる。

SDXLは標準的なDDIMサンプラーで20〜50ステップの推論を要するモデルであり、Neurons消費が大きい。無料プランでは実質1日2〜3枚が上限となる計算だ。LCM(Latent Consistency Model)は4〜8ステップと推論ステップを大幅に削減した設計であり、同じ無料枠で約10倍以上のリクエストが可能になる試算だ。

注意: Neurons消費量はCloudflare側の変更で予告なく変わりうる。正確な消費量はダッシュボードの Workers AI → Analytics か後述のREST API経由で確認することを推奨する。

Workerからtext-to-imageを呼び出す最小実装

wrangler.toml でAIバインディングを有効にしてから呼び出す。

# wrangler.toml
[ai]
binding = "AI"

Neurons上限超過時も例外として投げられるため、try/catch で必ずハンドリングしておく。

// worker.ts
export interface Env {
  AI: Ai;
}

export default {
  async fetch(request: Request, env: Env): Promise<Response> {
    try {
      const image = await env.AI.run(
        "@cf/stabilityai/stable-diffusion-xl-base-1.0",
        { prompt: "a serene mountain landscape at sunset", num_steps: 20 }
      );
      return new Response(image, {
        headers: { "Content-Type": "image/png" },
      });
    } catch (e: unknown) {
      const msg = e instanceof Error ? e.message : String(e);
      return new Response(JSON.stringify({ error: msg }), {
        status: 503,
        headers: { "Content-Type": "application/json" },
      });
    }
  },
} satisfies ExportedHandler<Env>;

エラーハンドリングを省くと、上限到達時にWorkerがランタイムエラーのまま500を返してしまう。キャッシュ済み画像へのフォールバックや「サービス一時停止」メッセージへの誘導を実装しておくとよい。

実消費量の確認方法

Cloudflare Dashboard

Cloudflare Dashboard → Workers AI → Analytics に日次・時間別のNeurons消費グラフがある。モデル別の内訳も表示されるため、SDXLとLCMでどれだけ差があるかを視覚的に把握できる。

REST API経由での確認

REST APIを直接叩く場合、レスポンスのメタデータにNeurons消費量が含まれる(形式はモデルや時期によって異なるため公式ドキュメントで要確認)。

curl https://api.cloudflare.com/client/v4/accounts/{ACCOUNT_ID}/ai/run/@cf/stabilityai/stable-diffusion-xl-base-1.0 \
  -H "Authorization: Bearer {API_TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{"prompt": "a blue mountain"}' \
  --output image.png

バインディング経由(Worker内部からの呼び出し)ではNeurons消費量の詳細が取得しにくい場合があるため、精密な計測が必要なら REST API 経由の確認を優先する選択もある。

無料プランで使い続けるための設計指針

モデルをLCMに切り替える

@cf/lykon/dreamshaper-8-lcm のようなLCMモデルに変更するだけで、同じ無料枠で10倍以上のリクエストが可能になる計算だ。SDXLほどの品質は出ないが、アイコン・サムネイル・スケッチ用途では十分なケースが多い。

生成結果をキャッシュする

同一プロンプトで繰り返し生成する場面は、R2 や KV に保存して2回目以降はWorkers AIを呼ばない設計にするとNeurons消費を大幅に削減できる。

大量生成にはPaidプランか自前GPU

1日数十枚以上のSDXL生成が必要な用途には無料プランは向かない。Workers Paidへの移行か、自前のGPUサーバーでの推論が現実的になる(Wan2.1 T2V VRAM 12GBの設定手順は自前GPU運用の参考になる)。Workers Paidでも、SDXLで1,000枚/日(約3,500,000 Neurons相当)を生成すると月$1,000超の試算になるため、大規模生成ほど専用インフラのコスト優位性が増す可能性がある。

まとめ

  • Workers AI 無料プランの上限は 1日10,000 Neurons(執筆時点)
  • SDXL(@cf/stabilityai/stable-diffusion-xl-base-1.0)は1リクエスト約3,500 Neuronsのため 1日2〜3回が目安
  • LCMモデルは約450 Neuronsのため 1日20回超が目安
  • Freeプランは上限到達でエラー返却(自動課金なし)、Paidプランは自動課金
  • 正確な消費量は Workers AI → Analytics ダッシュボードで確認できる

まず Cloudflare Dashboard → Workers AI → Analytics を開き、現在のNeurons消費量と残量を確認してほしい。実際の消費ペースを把握したうえで、無料枠に収まる設計に調整するか Paid プランへ移行するかを判断するのが確実な次のステップだ。

よくある質問

Cloudflare Workers AI 無料プランでtext-to-imageは1日何回使えますか?

公式ドキュメント記載の数値から逆算すると、SDXLは1リクエスト約3,500 Neuronsのため1日2〜3回、LCMモデルは約450 Neuronsのため1日20回超が目安です。消費量は変更されうるためダッシュボードで随時確認してください。

Workers AI 無料プランのNeurons上限に達したとき課金されますか?

Workers Freeプランでは自動課金は発生せず、上限に達するとリクエストがエラーになって処理が止まります。Workers Paidプランの場合は超過分が$0.011/1,000 Neuronsで自動課金されます(執筆時点)。

Cloudflare Workers AIのtext-to-imageで消費Neurons数を確認するには?

Cloudflare DashboardのWorkers AI → Analyticsで日次・時間別の消費グラフを確認できます。REST API経由で呼び出した場合はレスポンスのメタデータにも含まれる場合があります(形式は公式ドキュメントで要確認)。