# Images 2.6 pilot: preregistered protocol

Date: 2026-11-05 (Asia/Shanghai). Site: ai-anime-generator.io.

Purpose: compare four direct OpenAI API models for a specific original adult anime character. These calls bypass the site's generation, moderation and credits pipeline; they do not validate a production integration.

## Execution and budget

1. Read-only model-list access probe; model listing alone does not prove generation access.
2. One 2.6 Flare smoke: 1024×1024, low quality, explicit high complexity, PNG. Inspect before expansion.
3. Four matched static requests: one per model, identical prompt, medium quality, 1024×1024, PNG. Alternate versions within each family. Explicit high complexity for 2.6; omit this unsupported/unverified control for 2.5. This is a practical settings comparison, not proof of identical internal computation.
4. Four single-step edits: same input PNG (the 2.5 Flare medium static result), same edit prompt, size and quality. Each model receives the identical reference, not its own output. Record reference SHA-256. This measures one edit, not multi-step identity retention.
5. Two text-to-GIF requests: one per 2.6 model, identical prompt, low quality, high complexity, 832×832 per frame, nine frames, 200 ms/frame. No reference image; no claim of photo-to-GIF validation.

Maximum 11 generation/edit POSTs; no automatic retries. Approximately $10 ceiling. Before each call reserve $1 (static/edit) or $3 (GIF) on top of calculated completed usage. These are conservative planning reserves, not a provider-enforced spending limit; the Images endpoint does not expose a verified max-dollar parameter. Stop on missing usage, ambiguous outcome, authentication/quota failure, or budget guard. No concurrent POSTs. No repeat calls to replace an unattractive result.

## Evaluation specified before review

Static: inspect face/eyes, hair and clip, five-finger hand plausibility (occlusion is not a pass), map geometry, exact MOON POST text, cel-shaded style and background. Describe visible failures instead of assigning unsupported percentage gains.

Edit: compare reference and result for face proportions, hair shape/color, clip side/shape, eye color, hoodie/drawstrings, fox patch; check red ticket in subject's right hand and suitcase in left. Distinguish retained attributes from broad resemblance. No biometric metric or inter-rater agreement is claimed.

GIF: decode all frames; count frames and timing, verify nonidentical frames; inspect ordered contact sheets for blink, head motion, identity drift, hands if visible, and first/last seam. Pixel difference is only a diagnostic and cannot prove perceptual smoothness. Do not call 5 fps smooth by default.

Speed: wall-clock time from immediately before HTTP request to full response body received, including network and base64 transfer; excludes saving/decoding and is not model-only inference latency. One sample per cell supports case observations only, no median/p95 or universal speedup claim.

## Evidence and accounting

Every run keeps request.json, original response.json, decoded output, record.json and SHA-256. results.csv includes successful and failed requests with blank unknown fields. A transport timeout is unknown, not a confirmed free failure. Do not resubmit an uncertain request.

Calculated cost = (text input × $5 + image input × $8 + image output × $30) / 1,000,000. Preserve full usage alongside flattened values. Do not infer cache discounts for direct Images API requests. `billed_usd` remains blank until reconciled to provider billing; calculated cost is not an invoice. Errors without usage have unknown charge, not a measured $0.

## Official source verification

Canonical sources and fetched snapshots are under sources/. The official guide and pricing page, read on the test date, establish:

- IDs: gpt-image-2.5-flare, gpt-image-2.5-sunburst, gpt-image-2.6-flare, gpt-image-2.6-sunburst.
- Standard rates match across these four models; equal rates do not ensure equal token consumption.
- GIF uses POST /v1/images/generations, output_format=gif, frame_count (2–64), frame_duration_ms (20–2000, rounded to 10 ms). Edits do not output GIF.
- 2.6 complexity accepts low/medium/high, default high; quality is separate. No separate complexity fee does not mean equal total generation cost.

The generated API reference still lists raster-only output enum and a legacy usage description. For the new GIF parameters use the explicit updated guide, then verify actual API behavior. No unsupported seed, duration, fps, image-to-GIF, or claimed 50% speedup is assumed.

## Publication gate

The requested English title is reserved for the report. Publish no invented winners, billed costs or percent improvements. If a stage fails, keep its error row and describe untested sections honestly. No production deployment or pricing changes are part of this pilot.
