all projects
imaginator
telegram bot + CLI for AI image generation — provider-pluggable across azure openai and gemini behind one interface.
a telegram bot (and CLI) that generates images from a text prompt and a style pick. image generation sits behind an ImageProvider interface with two implementations — azure openai and google gemini — swapped with one environment variable, sharing the same styles, bot flow, and CLI workflow either way.
what it does
- provider abstraction — one
ImageProviderinterface, two backends (azure openai’sgpt-image-1, gemini’sgemini-2.5-flash-image). adding a third provider means implementing the interface, not rewriting the bot. - telegram bot —
/generatewalks the user through an inline-keyboard style picker, then a free-text subject, then returns the generated image./stylesand/helpround out the UX. - 16 built-in styles — logo, watercolor, cyberpunk emblem, vintage poster, photographic, cartoon, and more — shared across both providers.
- CLI mode — batch generation from the command line, with output organized into timestamped session folders.
- auth — azure ad (
DefaultAzureCredential) or a plain api key for azure; api key for gemini.
why it matters for interviews
this is the running counter-example to “no production history with AI image generation pipelines”: a real multi-provider image service with the exact adapter-boundary shape used everywhere else in the portfolio (llm-batcher, aissist) — one interface, swappable backends, a chat surface in front of it.