Skip to content

v0.2.0 — designed thumbnails + learned taste

Choose a tag to compare

@Q00 Q00 released this 07 Jul 09:46

Designed thumbnails and a personalization loop: the harness now remembers what the director likes and gets better every round.

What's Changed

Features

  • Thumbnail pro pathoc thumbnail --persona <photo|dir> preserves the real speaker's identity via gpt-image edit; --style clean|editorial|bold|keynote curated art-direction presets; a structured gpt-image-2 prompt builder (labeled Scene/Subject/Details/Change+Preserve/Constraints slots, reference images labeled by role, photography facts instead of quality words, anti-slop constraints); --prompt-note per-render art direction; --quality low|medium|high
  • --composite — the no-AI path: rembg cutout of the real persona photo on a flat studio background with a measured headline budget. Zero generated pixels, zero cost, instant
  • --render-text — let gpt-image-2 typeset the headline itself; the designer contract mandates a character-by-character spelling check per render
  • Local typography engine — heavy CJK-capable font stack, | line-break and *word* accent markup, gradient scrim or print-cover dark text, width-fit autoscaling
  • oc taste show|note|evolve|revert — GEPA-style learned taste memory per domain: human verdicts accumulate against the active guidance generation; an agent reflects them into the next generation with lineage, scoreboards, and rollback. Storage: $OPENCLIP_HOME → repo toolbox/ (team opt-in) → ~/.openclip (plugin default)
  • oc-thumbnail-designer worker — taste-first design loop with an anti-slop self-review checklist and gpt-image-2 prompting rules, shipped for Claude Code, Codex, and the skills catalog

Bug Fixes

  • Relative --out paths resolve against the project root on every verb (previously the process CWD)
  • input_fidelity is only sent to models that accept it (gpt-image-2 rejects it)
  • The SubagentStop evidence gate now covers oc-thumbnail-designer, with drift-guard tests asserting every evidence-demanding contract is gated and both runtimes (Claude Code + Codex) wire the same hook

Docs

  • Multilingual READMEs (ko, zh-CN, ja, es); English-only examples and language-neutral phrasing across agent contracts

Full Changelog: v0.1.0...v0.2.0