image-gin 0.3.0 Published

Image Gin 0.3.0 — your house style, on Recraft V4.1, with a settings tab that finally shows up

Image Gin moves to Recraft V4.1, keeps every generated image in one house style, and rebuilds its settings so all of them are visible and searchable.

Image Gin turns an image_prompt in your note's frontmatter into a matched set of banner, portrait, and square images. 0.3.0 makes that set look like it came from one illustrator, every time.

Requires Obsidian 1.13 or later. The settings tab now uses Obsidian's new declarative settings API. If you're on an older version, update Obsidian first.

Why care?

If you publish from Obsidian, your notes need share images: an OpenGraph banner, a tall card for iMessage and WhatsApp, a square for social. Generating them is easy now. Generating them so they look like they belong to the same site is not. Every request rolls new dice on palette, texture, and technique, and a blog that looks like twelve different illustrators reads as twelve different blogs.

0.3.0 gives Image Gin a house style: a few example images you already like become a reusable style on Recraft, and every image you generate after that follows it.

What's new

  • Recraft V4.1, Recraft's current default model: sharper, better at following prompts, prompts up to 10,000 characters. The full lineup is selectable, including Pro (2K), Utility, Flash ($0.007 an image), Vector (editable SVG), and the new V4 Styles line. V3 remains available.

  • Build a style from images already in your vault. List vault images (or paste ![[embeds]]) as style references and click Create style. Image Gin sends the images to Recraft directly, so nothing needs hosting, and fills in the style ID for you.

  • Brand colors, background color, and one shared seed per run, so a banner, portrait, and square from the same prompt come out as a family instead of three unrelated palettes.

  • A settings tab you can search. Every Image Gin setting now appears in Obsidian's settings search.

  • ImageKit folders that roll over by month. Write /images/{YYYY}-{MM} and each upload lands in its own month's folder. {DD} works too.

  • WebP or PNG output, and the right file extension on every image (Recraft sends WebP and SVG; 0.2.x saved everything as .png).

  • Over-long prompts and missing styles are caught before Recraft bills you.

Set up a house style in two minutes

  1. Pick 2–10 images with the look you want: past illustrations, brand art, anything.

  2. Settings → Image Gin → Model: choose V4 Styles.

  3. Style reference URLs: one per line, as a vault path (Visuals/old-banner.jpg), an embed (![[old-banner.jpg]]), or a public URL.

  4. Click Create style ($0.005, once). The Custom style ID fills in.

  5. Generate as usual.

A style only works with the model it was created for. Keep your example images; they're the recipe if you ever need to rebuild it.

Fixed

  • Generating with Recraft could freeze Obsidian after Recraft had already charged for the image. Downloaded images are now written straight to disk instead of taking a slow base64 round trip on the main thread.

  • On Obsidian 1.14, half the settings tab was missing. It stopped drawing at the old "Style presets" JSON editor, hiding ImageKit, Magnific, Ideogram, cache, drop-gate, and Imgur settings. Obsidian now draws the tab from declarative definitions, so one bad row can't hide the rest.

  • "Convert local images to remote" skipped custom sizes like banner_image_taller. It now converts every key your size presets write.

  • Recraft error messages now reach you instead of a generic "request failed."

Under the hood

  • Settings: getSettingDefinitions() replaces a 1,100-line imperative display(). Nested keys use dot paths via getControlValue/setControlValue; size presets are a native list with add, delete, and reorder. The unused "Style presets" JSON editor is gone; V3 preset styles get real dropdowns.

  • Recraft service: model-aware request building (ratio sizes valid on every model, style_id or style_reference_urls, controls.colors, random_seed, image_format), POST /v1/styles, vault references as data URLs, and the raw-buffer save path.

  • Tests: Image Gin's first test suite, 54 tests, run by Node's built-in runner through esbuild with no new dependencies. They cover Recraft's request contract (written from Recraft's API docs), ImageKit folder placeholders, and the full settings definition tree.

  • Toolchain: obsidian types 1.13.1, ESLint 10.12, typescript-eslint 8.71, eslint-plugin-obsidianmd 0.4.2, esbuild 0.28.2. TypeScript stays on 6.0 (typed linting doesn't support 7 yet) and @types/node on 22 (the oldest Electron runtime an Obsidian 1.13 user can have).

  • Version: 0.3.0 across manifest.json, package.json, and versions.json; minAppVersion 1.8.10 → 1.13.0.

If Image Gin saves you time, buy us a coffee.