The image facility is done. The live backfill and the owner-metered production proof still wait on decisions and tasks outside this repo. Assistant: grok Assistant-Session: 01a11ab6-1534-7d63-8606-662b92a80ed6
82 lines
2.7 KiB
Markdown
82 lines
2.7 KiB
Markdown
---
|
||
id: LLM-WP-0010
|
||
type: workplan
|
||
title: "Text-to-image rendering for square portraits"
|
||
domain: agents
|
||
repo: llm-connect
|
||
status: blocked
|
||
flavor: implementation
|
||
owner: grok
|
||
topic_slug: text-to-image-rendering
|
||
created: "2026-10-08"
|
||
updated: "2026-10-08"
|
||
related:
|
||
- message:ae2b441f-7c38-4cb5-8572-47791cb52456
|
||
state_hub_workstream_id: "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
|
||
|
||
```task
|
||
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
|
||
|
||
```task
|
||
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
|
||
|
||
```task
|
||
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
|
||
|
||
```task
|
||
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.
|
||
|
||
2026-10-08 follow-up: T01–T03 are the whole of the work this repository can
|
||
finish. No model, quote, or batch cap has been named, and no newer inbox
|
||
message supplies one. The workplan is `blocked` while T04 stays `wait`.
|