llm-connect/workplans/LLM-WP-0010-text-to-image-rendering.md
tegwick 84ba3df2d0
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
Record LLM-WP-0010 hub ids from fix-consistency
Assistant: grok
Assistant-Session: 01a11ab6-1534-7d63-8606-662b92a80ed6
2026-10-08 11:02:20 +02:00

2.5 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: wait
priority: medium
blocking_reason: "The facility is in place and covered by fake-provider tests. A paid Hall of Helix backfill still needs the founder to name the image model, the per-call quote, and the batch cap. fluid-telegram asked not to have that chosen for them."
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.