You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Added
Creative Studio image generation (visual layer). A new creative_studio_* MCP tool family generates text-free ad key visuals
through a pluggable, BYO-API-key image provider abstraction (OpenAI
gpt-image, Google Gemini image, fal.ai FLUX, plus third-party providers via
the mureo.image_providers entry point). creative_studio_providers_list
reports configured providers and their capabilities; creative_studio_generate_visual renders candidate PNGs into a run
directory with a provenance manifest. Provider keys live in a new creative_studio credentials section (or the OPENAI_API_KEY / GEMINI_API_KEY / FAL_KEY env vars), calls are rate-limited, and the
family can be disabled with MUREO_DISABLE_CREATIVE_STUDIO=1.
Creative Studio composition (typography layer). The creative_studio_*
family gains the layout half of the pipeline: creative_studio_compose
composites headline/body/CTA/badge/logo over a text-free key visual using
three professional Jinja2 HTML/CSS templates (hero_overlay, split, minimal_badge) rendered by headless Chromium, so Japanese typography is
pixel-perfect across every banner format (per-format safe areas keep copy
clear of platform UI chrome). A lightweight brand kit
(./BRAND_KIT/kit.yml, surfaced by creative_studio_brand_kit_get) supplies
colours, fonts, and a logo — degrading field-by-field to tasteful defaults so
output quality never depends on config hygiene. A Japanese-font pipeline
bundles Noto Sans JP + Zen Kaku Gothic New, downloaded once into ~/.mureo/fonts with checksum-locked provenance and a system-font fallback
when offline. creative_studio_edit_visual refines a visual through a
provider's edit path for the art-direction loop. Composition dependencies
(jinja2, playwright) install via the new mureo[creative] extra and
are lazily imported, so the core install stays lean.
Creative Studio guided workflow (/creative-generate) + documentation. A
new bundled skill encodes the 6-step, quality-first workflow — brief (Persona /
USP / Brand Voice, optional landing-page analysis), agent-authored copy,
text-free visual generation, an art-direction scoring loop that Reads each PNG
and grades it on the 7-dimension creative-refresh rubric (pass bar: no dimension
≤ 3 and total ≥ 28/35, max 3 edit rounds), per-format composition, and delivery
handing approved banners to the existing upload tools. The creative-refresh
skill cross-links to it. New docs/creative-studio.md / docs/creative-studio.ja.md
cover the 3-layer architecture, install (pip install 'mureo[creative]' + playwright install chromium), provider keys, the BRAND_KIT/kit.yml schema,
the format matrix, and safety notes.
Creative Studio visual prompt engineering. The creative-generate skill
gains a Visual prompt engineering section — a fill-in prompt scaffold, a
style-discipline menu, five genre presets (beauty / B2B SaaS / real estate /
food-EC / recruiting), provider-dialect notes, and anti-patterns — to raise
the ceiling of generated visuals. creative_studio_generate_visual takes an
optional template argument (hero_overlay / split / minimal_badge) that
appends template-aware negative-space guidance to the provider prompt so the
copy zone is enforced mechanically, and records the chosen template in the run
manifest.
Creative Studio dashboard credentials section. The mureo configure
dashboard's Setup tab gains a first-class Creative Studio (image
generation) section for the three image-provider API keys
(OPENAI_API_KEY / GEMINI_API_KEY / FAL_KEY): a labelled masked input
per provider, a ✓/✗ configured indicator, a Save that persists each
non-blank key (leave-blank-to-keep), and a Remove for the whole creative_studio credentials section — reusing the existing env-var write
and section-remove endpoints, so keys no longer have to be hand-exported or
entered through the generic advanced env form.
Fixed
Creative Studio review follow-ups. Font resolution during compose runs
off the event loop (asyncio.to_thread) and a failed download is
negative-cached for 24h, so an offline / egress-filtered host no longer
re-blocks on every compose call. Malformed provider 200 bodies now surface
as normalized, redacted provider errors instead of raw KeyError / binascii.Error. creative_studio_compose deduplicates requested formats
(and the schema declares uniqueItems). Dropped the unused pillow
dependency from the creative extra.