Generate until it passes. Prove every pixel.
ProofFrame is a control plane for production generative media. It turns a creative brief and a machine-readable acceptance policy into an auditable Genblaze run:
- Generate a candidate.
- Evaluate it against explicit quality and brand checks.
- Feed structured failures back into the next prompt.
- Promote only the passing artifact.
- Store candidates, evaluator reports, and a canonical manifest in Backblaze B2 using content-addressed object keys.
The web dashboard makes the complete lineage reviewable: candidate scores, rejection reasons, runtime and cost, parent-linked retries, policy results, object paths, and manifest hashes. The offline judging path generates three distinct PNGs and derives every policy score from the resulting bytes: WCAG contrast, wordmark inset, palette similarity, greenhouse pixels, dimensions, and SHA-256. No fixture score is hard-coded.
npm install
npm run devThe app runs at http://localhost:3000.
npm ci
npm test
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
python -m pip install -r requirements.txt
python -m unittest discover -s services -p "test_*.py"
python services/proofframe_pipeline.pyThe Python command runs the complete three-attempt Genblaze loop in clearly
labeled fixture mode when provider and B2 credentials are absent. Attempt one
fails a measured 2.33:1 contrast ratio, attempt two fails a measured 14px safe
zone, and attempt three passes all six checks. It verifies the parent-linked
manifest chain and reports b2_released: false rather than pretending that an
upload occurred.
The reference run d9918cc2-f90e-429f-b163-f2c23ae3388a completed the same
three-attempt loop with the B2 sink enabled. It uploaded the three
content-addressed PNGs and their parent-linked canonical manifests to the
private evidence bucket proofframe-genblaze-turbonexic-2026 in
us-east-005. The final asset is stored at:
proofframe/assets/d1/fa/d1fa1ce0176d5acb9829d894d7a51e82a58b4f69c9ad17aaf7d64712a5f80d21.png
The final canonical manifest is stored at:
proofframe/manifests/d9918cc2-f90e-429f-b163-f2c23ae3388a.json
The public dashboard exposes the release summary, exact object keys, SHA-256 values, and byte-identical review mirrors without exposing B2 credentials.
app/— public ProofFrame control-room UIservices/proofframe_pipeline.py— Genblaze AgentLoop and evaluator workflowservices/artifact_evaluator.py— deterministic fixtures and pixel policyservices/b2_release.py— content-addressed Backblaze B2 release sink.openai/hosting.json— Sites deployment metadata
The public UI is deployed as a Cloudflare Worker-compatible vinext app. The Python worker receives optional NVIDIA and Backblaze B2 credentials through its runtime environment; credentials are never committed. Without those values, the worker and dashboard remain usable in visibly labeled fixture mode. The checked-in reference manifest records a real B2 release while keeping the private bucket and scoped application key out of the client bundle.