llm-connect/workplans/LLM-WP-0010-text-to-image-rendering.md
tegwick e1bab67bd1
Some checks failed
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Has been cancelled
Apply the image decision tree to missing hall portraits
A hall visual that stays on the general branch uses the Efficient model
from the 2026-10-08 intelligence-radar tree. render-hall writes only
portraits whose files are still absent.

Assistant: grok
Assistant-Session: 01a11ab6-1534-7d63-8606-662b92a80ed6
2026-10-08 16:44:43 +02:00

3.1 KiB

id type title domain repo status flavor owner topic_slug created updated related state_hub_workstream_id
LLM-WP-0010 workplan Text-to-image rendering for square portraits agents llm-connect active implementation grok text-to-image-rendering 2026-10-08 2026-10-08
message:ae2b441f-7c38-4cb5-8572-47791cb52456
205485de-a74d-57bd-8f84-e91b8623adeb

LLM-WP-0010 — Text-to-image rendering for square portraits

Founder-approved request from fluid-telegram (2026-10-08) for the Hall of Helix portrait backfill. This workplan adds the facility. It does not choose the production model or the live budget, and it does not render the hall.

Library, OpenRouter client, and spend gate

id: LLM-WP-0010-T01
status: done
priority: high
state_hub_task_id: "f7f5b10e-f78e-53b0-ba0e-a52d91b701c8"

llm_connect.images renders one square image of at least 1024 pixels and returns bytes plus a receipt: provider, model, SHA-256 prompt digest, and cost. A per-call or batch cap requires a quote and refuses before the provider call. OpenRouter POST /api/v1/images is the only client. The model is required. The API key is resolved the same way as the chat adapter and is not copied onto the receipt. Contract: contracts/functional/images.md.

CLI

id: LLM-WP-0010-T02
status: done
priority: high
state_hub_task_id: "7532cca3-2198-52ae-9891-2e95d97d76b0"

llm-connect image render writes --output or a JSONL --batch of prompt / output_path lines. Receipts go to stdout. Exit 2 stops a batch on a cap. Existing files are not replaced unless --force.

HTTP

id: LLM-WP-0010-T03
status: done
priority: high
state_hub_task_id: "7b824e20-7ebf-591b-84e5-eea8154ca778"

POST /images is registered only when python -m llm_connect.server is started with --image-model, --image-max-cost-usd, and --image-quote-usd. The response is the receipt plus base64 bytes. /execute is unchanged. The process-lifetime batch cap is shared by concurrent requests.

Live backfill

id: LLM-WP-0010-T04
status: progress
priority: medium
blocking_reason: "The founder pointed at the 2026-10-08 intelligence-radar image decision tree. Hall portraits that stay on the general branch use Efficient (google/gemini-nano-banana-2.1, quote 0.04 USD, cap 0.08 USD). The backfill command is llm-connect image render-hall. A paid run is still in progress until every missing portrait file exists."
state_hub_task_id: "e69a1f53-a1d5-540e-a926-0f2a32ae4f54"

Do not run a paid render, deploy a new image, or write hall portraits until that choice is recorded. Reply to fluid-telegram used this workplan id.

2026-10-08 decision: use the intelligence-radar OpenRouter tree in llm_connect.image_selection. A hall visual that does not ask for vector output, editing, readable text, or a brand system is general / Efficient. llm-connect image render-hall --hall <hall-of-helix> renders only entries whose portrait file is absent, writes visuals/, stores a receipt under visuals/receipts/, and uncomments the portrait line. It does not change status. Text-heavy prompts stay on the tree's Frontier row.