feat(models): register Gemini image models for hero_slides Generate All #67
No reviewers
Labels
No labels
prio_critical
prio_low
type_bug
type_contact
type_issue
type_lead
type_question
type_story
type_task
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
lhumina_code/hero_aibroker!67
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "development_mik"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #66.
Summary
Adds two model entries to
modelsconfig.ymlunder the openrouter provider:gemini-3.1-flash-image-preview→google/gemini-3.1-flash-image-preview(regular tier, $0.5/$3.0 per Mtoken)gemini-3-pro-image-preview→google/gemini-3-pro-image-preview(premium tier, $2.0/$12.0 per Mtoken)Both OpenRouter slugs verified against the live catalog (
https://openrouter.ai/api/v1/models); both models declaremodalities in: [image, text]andmodalities out: [image, text]. Pricing pulled directly from the OpenRouter model entries.Why
hero_slides_lib::models::BASIC_IMAGE_MODEL_ID(andPRO_IMAGE_MODEL_ID) hardcode these two slugs as the canonical image-generation models for the slides pipeline. Today the dashboard's Generate All button reaches aibroker → no entry by that name → cheapest-routing falls through to a Qwen image model → upstream returnsHTTP 400: property 'image_config' is unsupportedbecause Qwen doesn't speak Gemini's image-config shape.With these entries registered, by-name lookup succeeds, OpenRouter passes
image_configthrough verbatim to Gemini, and Generate All produces images on any workstation that hasOPENROUTER_API_KEYin hero_proc secrets.Why
capabilities: [vision](not[tool_calling, vision]like gemini-flash)These models output images, not chat with tool calls.
visionmatches the existing convention for image-aware models in the file. Capability strings are free-form (no enum) and nothing in the broker filters image lookups by capability today, so this is descriptive only — but more honest than tagging an image-generation model astool_calling.Verification
OPENROUTER_API_KEYin hero_proc secrets: restart hero_aibroker, confirmmodels.listincludes the two new entries..pnglands in the deck'soutput/andproc logs get hero_aibrokershows the outbound OpenRouter call to agoogle/gemini-3.*-image-previewslug (no Qwen fallback).Out of scope
Signed-off-by: mik-tf