> ## Documentation Index
> Fetch the complete documentation index at: https://dripart-docs-comfy-router-docs.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 同時実行制限

> 同時実行制限がアカウント上のパートナーノード同時リクエストをどのように制御するかを説明します。

同時実行制限は、アカウントが同時に処理できるリクエスト数を制御します。上限を超えたリクエストは `429` エラーコードで拒否されます。同時実行の上限は生涯支払い総額に基づいて決まり、呼び出すすべてのエンドポイントにわたってプラットフォーム全体で適用されます。

<Note>
  同時実行制限は、プラットフォームをすべてのユーザーにとって高速かつ信頼性の高い状態に保つため、時間の経過とともに調整されます。このページの具体的な値は現在の構成を反映したものであり、変更される場合があります。
</Note>

## 仕組み

リクエストを送信すると、プラットフォームは同時実行制限に対してカウントします。上限を超えると、処理中のリクエストが完了するまで、追加のリクエストは `429` エラーで拒否されます。

## パートナーノードの同時実行とクラウドジョブの同時実行

このページでは、パートナーノード呼び出しの同時実行制限について説明します。これは **クラウドジョブの同時実行** とは別に、独立して適用される制限です。クラウドジョブの同時実行は、同時に実行できる Comfy Cloud ワークフローの数を制御し、生涯支払い総額ではなくクラウドプランまたはサブスクリプションティアによって設定されます。

2つの制限は独立して適用されるため、実効的なスループットは、先に到達した方の制限によって決まります。高いクラウドプランだけでは、パートナーノードの同時実行制限は引き上げられません。パートナーノードの制限は、以下の生涯支払いティアによって別途管理されます。

## 同時実行ティア

同時実行の上限は**生涯支払い総額**（Comfy Cloud とパートナーノード全体でのクレジット購入とサブスクリプション支払いの合計）に基づいて決まります。この合計はアカウントの存続期間を通じて累積し、リセットされたり、一定期間のみを遡って計算されたりすることはありません。

| 生涯支払い総額      | 同時実行制限 |
| :----------- | -----: |
| \$0（購入履歴なし）  |      1 |
| $0 超 $100 以下 |      5 |
| \$100 以上     |     10 |
| \$500 以上     |     20 |
| \$1,000 以上   |     40 |

この表の見方：

* **最初に一致した項目が適用されます。** 行は最も具体的なものから一般的なものの順に評価されます。チームが設定したカスタム制限は支払いティアより優先され、支払いティアは未払いアカウントの下限より優先されます。生涯支払い総額が \$1,200 の場合は 40 が適用され、下位のティアは考慮されません。
* **生涯ベースであり、ローリングウィンドウではありません。** 数か月前の支払いでもティアにカウントされます。支払いが時間の経過とともに期限切れになったりリセットされたりすることはありません。
* **クラウドとパートナーノードの両方の支払いがカウントされます。** クラウドのサブスクリプションに支払ったか、パートナーノードのクレジットに支払ったかは関係なく、両方が同じ生涯合計に貢献します。
* **1 回支払うだけで下限を超えられます。** 支払いに一度も成功していないアカウントは、同時呼び出しが 1 件に制限されます。支払いに 1 回成功するとデフォルトティア（5）になり、$100 / $500 / \$1,000 のしきい値を超えるとさらに引き上げられます。
* **カスタム制限は表より優先されます。** チームがアカウントに特定の制限を設定している場合（例：エンタープライズ契約やポリシー制限）、支払いベースのすべての行より優先され、0（パートナーノードアクセス無効）まで引き下げることもできます。

セルフサービスの上限は、\$1,000 のティアで最大 **同時 40 リクエスト** までスケールします。

## モデルベースの制限

コストの高いモデルでは、許可される同時実行数が低くなります。1 リクエストあたり **5 ドル以上** のモデルを呼び出す場合、そのモデルの同時実行制限はアカウントのティア上限の **4 分の 1**（切り捨て、最小 1）になります。低コストモデルへのリクエストは引き続きアカウントの全制限が使用され、2 つの制限は独立して追跡されます。

## 同時実行スロットの仕組み

パートナーノード呼び出しは、リクエストが受け付けられてからプロバイダーが結果を返すまで、1 つの同時実行スロットを使用します。動画や 3D の生成では、結果が返るまで数分かかることがあります。呼び出しが完了すると、スロットはすぐに解放されます。

処理中の呼び出しのみが上限にカウントされます。完了した呼び出しはすぐにスロットを解放するため、実行中に多数のパートナーノード呼び出しを行うワークフローでも正常に完了できます。ただし、同時に実行中の呼び出し数は上限を超えられません。

## 上限に達するとどうなるか

すべての同時実行スロットが使用中の場合に別のパートナーノード呼び出しを行うと、その呼び出しは即座に拒否され、HTTP `429` ステータスと、既存のリクエストの完了を待つように促すメッセージを含むレスポンスボディが返されます。

* **ブロックされたアカウントでは代わりに 403 が返されます。** アカウントでパートナーノードアクセスが無効になっている場合（カスタム制限が 0）、呼び出しは HTTP `429` ではなく HTTP `403` で拒否されます。
* **同時実行はクレジット残高とは別です。** 同時実行スロットは、同時に実行できる呼び出しの数のみを管理します。クレジット残高がゼロになると、クレジットを使い果たしているため呼び出しは失敗します。空きの同時実行スロットがいくつあるかとは関係ありません。実行を継続するには、残高をプラスに保ってください。
* スロットルされた呼び出しが自動的に再試行されるかどうかは、API の呼び出し方法によって異なります。使用している特定のノードまたはクライアントの動作を確認してください。

## 同時実行レスポンスヘッダー

パートナーノードのレスポンスには、リクエストが処理された時点での同時実行状況を反映するヘッダーが含まれます。これらのヘッダーは、成功したレスポンスとスロットリングされたレスポンスの両方に設定され、API キーとその他の呼び出し元の両方に適用されます。

| ヘッダー                      | 意味                    |
| :------------------------ | :-------------------- |
| `X-Concurrency-Limit`     | 実効的な同時実行制限            |
| `X-Concurrency-Current`   | 現在実行中の呼び出し（この呼び出しを含む） |
| `X-Concurrency-Remaining` | まだ利用可能なスロット数          |

無制限のカスタム制限を持つアカウントには、これらのヘッダーは返されません。また、値はベストエフォートで提供されます。状況の把握やデバッグには役立ちますが、正確なスケジューリングシグナルとして使うことを意図したものではありません。

## 上限の引き上げ

同時実行を 40 以上にする場合は、サポートチームまでお問い合わせください。

<Card title="サポート" icon="life-ring" href="https://support.comfy.org/">
  同時実行上限の引き上げに関するサポート
</Card>

## よくある質問

<AccordionGroup>
  <Accordion title="制限はリクエスト単位、分単位、それとも同時呼び出し単位ですか？">
    同時（処理中）呼び出し単位です。総ボリュームや時間あたりのリクエスト速度に上限はなく、同時に実行できる呼び出し数のみが制限されます。
  </Accordion>

  <Accordion title="支払い額は期限切れになりますか？">
    いいえ。ティアは生涯支払い総額に基づくため、過去の支払いは常にカウントされ続けます。
  </Accordion>

  <Accordion title="高いクラウドプランを使っているのに、パートナーノード呼び出しがスロットリングされます。なぜですか？">
    2 つの制限は別々です。高いクラウドジョブの同時実行数は、パートナーノードの同時実行制限を引き上げません。パートナーノードの制限は生涯支払い総額によって決まります。[パートナーノードの同時実行とクラウドジョブの同時実行](#パートナーノードの同時実行とクラウドジョブの同時実行)を参照してください。
  </Accordion>
</AccordionGroup>
