トークン、画像、秒、クレジットを混ぜない
読む目安:約8分。教材としての制作提案です。生成・性能・料金の比較実験は実行していません。
この章で身につけること
- 利用量と請求額と品質を分ける
- 比較実験を再現可能な形で記録する
- 例示と実測を見分ける
計測と解釈を分けて記録する
- 1仮説と固定条件
- 2失敗を含む試行
- 3成果物と使用量の証拠
- 4品質と待ち時間と人の作業時間
- 5単位と日付付き費用
- 6範囲を限定した結論
- 1計測値がない
- 2nullと状態を保持
- 3根拠の不足を明示
自作の証拠の流れ図です。取得と解釈を分けています。結論まで欠測を隠さず残し、採用数がゼロなら採用品あたりの費用は未定義とします。
仕事の役割
- 制作担当:試行と採用判断を記録
- 開発者:使用量と性能を計測
- プロデューサー:総時間と費用で判断
入力
- 比較したい仮説
- 固定する条件と変更する条件
- モデル・設定・日付
- 取得できる利用量と料金表
制作工程
- 用途に合う評価基準を先に決める
- 同じ入力条件でベースラインを残す
- 一つの変数を変えて複数試行する
- 使用量、待ち時間、修正時間、採用を記録する
- 品質と総費用の両方から次の変更を決める
出力
- 実験記録JSON
- 成果物とログへの参照
- 限界と次の仮説
トークンは共通通貨ではない
テキスト入力と出力、画像入力と生成画像、音声、動画などは、同じサービスでも異なる計量や単価を持つ場合があります。画像一枚を一定のトークン数へ一律換算しません。生成動画の秒数、処理待ち時間の秒数、GPUを借りた時間も別物です。クレジットはサービス内の単位で、換算規則が分からなければ他サービスと直接比較できません。
費用の取り方
可能ならAPIレスポンスのusage、請求明細、実行ログを保存します。取得できなかった利用量は未取得と表示し、0にしません。料金表はモデル、設定、日付、通貨を合わせて参照します。定額契約の月額を一回ごとの限界費用と混同せず、按分する場合はその規則を明記します。無料枠の利用でも計算資源の使用がゼロだったとは言えません。
一つの出力より採用品あたりを見る
候補を十枚作り一枚を採用したなら、候補全部の費用と修正時間を含めて、採用品一枚の制作コストを考えます。API料金だけが安くても、形を直す時間が多ければ制作全体では高くなります。品質点、採用率、所要時間、料金を別々に記録すると、自分の用途に合う方法を判断できます。
実験は一度で一般化しない
同じ題材で複数の試行を行い、変更する条件を一つにします。モデルの更新、端末、画面解像度、背景処理などが結果へ影響する場合があります。良い例だけを残さず失敗も記録し、サンプル数が小さいことを表示します。主観評価は評価者と基準を記録し、客観的性能の数値と区別します。
教材の表示ルール
実測はログや成果物を伴って実際に行った結果、例示は仕組みを説明する仮の値、未実行は計画だけの状態です。未取得は実行したがその値を取れなかった状態です。これらを同じ色や同じラベルで表示しません。本教材の課題は未実行であり、プロンプト例が特定品質を保証したり、生成テストを済ませたことを意味しません。
品質チェック
- 未知の値が0に置き換わっていない
- モデルと料金表の日時が明確
- 失敗と再試行を費用から除外していない
- 実測、例示、予測が明示
- 機密画像や秘密情報を公開ログへ含めない
失敗を切り分ける
| 症状 | 原因 | 次にすること |
|---|---|---|
| 安いモデルが結局高くつく | 再試行と修正を数えていない | 採用品あたりの総費用と人の作業時間を比較 |
| 同じデモなのにFPSが違う | 端末、解像度、状態などの条件差 | 条件を揃えフレーム時間の分布も残す |
実験課題:制作手法を二つ比較する
状態:未実行(not-run)。実測結果ではなく、これから取り組む課題です。
課題:同じ用途を方法AとBで作る計画を立てる。実行前に品質基準、最大予算、停止条件を決め、未実行の行を実測として表示しない。
成果物:比較計画と実験記録
完了条件:コストの単位、出所、採用率、未取得値を説明できる
何を数えているかを先に確認する
教材に提供元の価格は固定しません。モデル、設定、日付、通貨を合わせて最新の公式料金表を取得してください。
| 計量単位 | 記録すること | 注意 |
|---|---|---|
テキストの入力・出力トークン (text_tokens) |
入力、出力、キャッシュ等をAPIの定義どおり分ける | 入力総数にキャッシュが含まれるAPIで二重計上しない |
画像の入力・出力トークン (image_tokens) |
利用可能なら画像分のusageを保存 | ピクセル数や画像枚数と一律換算しない |
生成画像枚数 (image_count) |
サイズ、品質、候補数、再試行 | 枚数課金かトークン課金かを料金表で確認 |
生成映像や音声の尺 (output_seconds) |
秒数、解像度、モデル、音声の有無 | 生成待ち時間ではない。単位と設定は提供元依存 |
計算資源の利用時間 (compute_seconds) |
GPU種別、利用秒数、待機を含むか | ローカル実行にAPIトークン単価を勝手に当てない |
サービス内クレジット (credits) |
実行前後差分と換算規則の取得日 | 単位名が同じでもサービス間で価値は同じでない |
人の修正時間 (human_minutes) |
選別、編集、実装、検査の時間 | 自分の時給を使うなら仮定だと明示 |
総API見積額 = Σ(重複のない課金項目の利用量 ÷ その単価の基準単位 × 単価)。採用品あたり = 再試行を含む合計 ÷ 採用品数。採用品数0では未定義と表示。
計算だけを学ぶ例示
計算だけを学ぶ仮の例。実在サービスの料金ではありません。 (illustrative)
仮定
| 項目 | 記録値 |
|---|---|
| 生成画像枚数 | 6 |
| 採用画像枚数 | 2 |
| 架空の画像単価(円) | 10 |
| 人の修正時間(分) | 20 |
6枚 × 仮の10円 = 60円、採用2枚なら1枚あたり30円。人の修正20分は別記。
この計算に含まないもの
- 税
- 定額料金の按分
- 機器費用
- 電気代
- 人件費
再現できる実験の手順
- 用途に合う仮説と合格条件を事前に書く
- 入力、モデル、設定、参照、端末を記録する
- 変更条件を一つにし、比較元を残す
- 全試行と失敗を保存する
- 品質、待ち時間、費用、人の時間を別々に評価する
- 結論の適用範囲と次の仮説を書く
必要な来歴
- 実行日時
- 実行者または環境
- モデル識別子と取得できるバージョン
- 入力と参照素材の出所・利用許可
- 設定とseedの対応状況
- 成果物またはログの参照
- 利用量の出所と単位
- 料金表のURLと取得日
- 評価基準と評価者
記録する項目と値の型
以下はクリエイティブ実験記録の全項目を示す仕様であり、実施済みの結果ではありません。書き出すときは識別子をそのまま使い、未知の測定値はnullで記録します。
| 項目 | 記録する値 |
|---|---|
id |
string |
status |
not-run | measured | illustrative |
hypothesis |
string |
taskType |
image | image-edit | 3d | realtime | video | workflow |
runAt |
ISO 8601 | null |
provider |
string | null |
modelId |
string | null |
modelVersion |
string | null |
input.prompt |
string |
input.referenceAssets |
array of {id,source,permission,hash?} |
input.parameters |
object |
input.seed |
number | string | null |
input.seedSupported |
boolean | null |
environment.appVersion |
string | null |
environment.device |
string | null |
environment.os |
string | null |
environment.browser |
string | null |
environment.renderResolution |
string | null |
environment.gitCommit |
string | null |
outputs |
array of {assetId,pathOrUrl,hash?} |
usage |
array of {kind,quantity:number|null,unit,source,status:measured|not-collected|not-run} |
cost.amount |
number | null |
cost.currency |
string | null |
cost.kind |
billed | estimated | illustrative | not-collected |
cost.priceSourceUrl |
string | null |
cost.priceCheckedAt |
date | null |
cost.formula |
string | null |
timing.latencySeconds |
number | null |
timing.humanEditingMinutes |
number | null |
timing.sampleDurationSeconds |
number | null |
quality.rubric |
array of {criterion,scale} |
quality.scores |
array of {criterion,value,evaluator} |
quality.accepted |
boolean | null |
quality.failureNotes |
string[] |
performance.medianFrameMs |
number | null |
performance.p95FrameMs |
number | null |
performance.measurementMethod |
string | null |
conclusion |
string | null |
limitations |
string[] |
まだ実行していない比較計画
次の計画には実測した成果物、利用量、価格、時間、品質点、フレーム時間がありません。空の一覧とnullは証拠がないことを示し、利用資源が0だったことを表しません。
| 項目 | 記録値 |
|---|---|
id |
ocean-wave-comparison-plan |
status |
not-run |
hypothesis |
小さな波を法線側へ分けると、頂点数を増やすより軽く見た目を足せるか |
taskType |
realtime |
runAt |
不明・未取得(null) |
provider |
不明・未取得(null) |
modelId |
不明・未取得(null) |
modelVersion |
不明・未取得(null) |
input.prompt |
同じカメラと画面サイズで、頂点のみの波と法線を組み合わせた波を比較する |
input.referenceAssets |
記録なし(未実行) |
input.parameters |
記録なし(未実行) |
input.seed |
不明・未取得(null) |
input.seedSupported |
不明・未取得(null) |
environment.appVersion |
不明・未取得(null) |
environment.device |
不明・未取得(null) |
environment.os |
不明・未取得(null) |
environment.browser |
不明・未取得(null) |
environment.renderResolution |
不明・未取得(null) |
environment.gitCommit |
不明・未取得(null) |
outputs |
記録なし(未実行) |
usage |
記録なし(未実行) |
cost.amount |
不明・未取得(null) |
cost.currency |
不明・未取得(null) |
cost.kind |
not-collected |
cost.priceSourceUrl |
不明・未取得(null) |
cost.priceCheckedAt |
不明・未取得(null) |
cost.formula |
不明・未取得(null) |
timing.latencySeconds |
不明・未取得(null) |
timing.humanEditingMinutes |
不明・未取得(null) |
timing.sampleDurationSeconds |
不明・未取得(null) |
quality.rubric |
criterion: 波の輪郭と照明の整合性 / scale: 1〜5の主観評価。採点者を記録 |
quality.scores |
記録なし(未実行) |
quality.accepted |
不明・未取得(null) |
quality.failureNotes |
記録なし(未実行) |
performance.medianFrameMs |
不明・未取得(null) |
performance.p95FrameMs |
不明・未取得(null) |
performance.measurementMethod |
不明・未取得(null) |
conclusion |
不明・未取得(null) |
limitations |
未実行のため性能差は未確認; 端末、解像度、シェーダー実装に依存 |
実験記録表
実行を計画するとき、以下を手元のJSONファイルへ写します。このサイトは記録を保存せず、モデルも呼び出しません。schemaの識別子はそのまま使います。空配列とnullは根拠がない状態で、利用量ゼロではありません。usageには出所、単位、measured/not-collected/not-runの状態を添えて追加し、実行後の記録を作るときも元の計画を残します。
{
"id": "creative-comparison-plan",
"status": "not-run",
"hypothesis": "比較したい問いへ置き換える",
"taskType": "workflow",
"runAt": null,
"provider": null,
"modelId": null,
"modelVersion": null,
"input": {
"prompt": "",
"referenceAssets": [],
"parameters": {},
"seed": null,
"seedSupported": null
},
"environment": {
"appVersion": null,
"device": null,
"os": null,
"browser": null,
"renderResolution": null,
"gitCommit": null
},
"outputs": [],
"usage": [],
"cost": {
"amount": null,
"currency": null,
"kind": "not-collected",
"priceSourceUrl": null,
"priceCheckedAt": null,
"formula": null
},
"timing": {
"latencySeconds": null,
"humanEditingMinutes": null,
"sampleDurationSeconds": null
},
"quality": {
"rubric": [],
"scores": [],
"accepted": null,
"failureNotes": []
},
"performance": {
"medianFrameMs": null,
"p95FrameMs": null,
"measurementMethod": null
},
"conclusion": null,
"limitations": [
"比較は未実行で、結果はまだありません。"
]
}関連するCatalog候補と実践
先に読む章:AIを条件付きの提案器として使う
ブラウザ内で動く海のシェーダー実習は、ローカル配布のThree.js 0.186.1とWebGLRendererを使い、モデルAPIを呼び出しません。平面、頂点の波、近似した光と色の三段階を扱います。物理的な海洋シミュレーション、実際の反射・屈折、岸の泡は実装していません。開いただけでは比較課題の完了にも、別端末の性能確認にもなりません。
一次資料
- OpenAI API Pricing — 確認日: 2026-10-03
- OpenAI Image generation guide — 確認日: 2026-10-03
- MDN requestAnimationFrame — 確認日: 2026-10-03
2026-10-04に確認した出典の範囲
現在の料金表 はモデルと入出力の種類を分けています。この確認から実測の請求額や将来の単価は得られません。許可された比較の設計・実行時に、該当単価、課金単位、取得日を記録表へ写します。
リンク先の海の実習は独立した実践素材です。後で測るときは版、端末、実際の段階名を記録します。この章の課題と総合制作課題は未実行のままです。
MENTAL MODEL / 考える順序
一度に、すべてを変えない。
何を伝える画像か。媒体とサイズ、残したい意味を先に決める。
出典
公開日は資料の日付、確認日は内容を参照した日です。コミュニティの観測は公式の確定事項と区別します。
01