cd /news/artificial-intelligence/how-i-built-a-free-image-to-prompt-t… · home topics artificial-intelligence article
[ARTICLE · art-64281] src=dev.to ↗ pub= topic=artificial-intelligence verified=true sentiment=↑ positive

How I Built a Free Image-to-Prompt Tool with Next.js and a Vision Model

A developer built ImagePromptNow, a free tool that uses a vision-language model to generate detailed prompts from uploaded images, enabling reverse engineering of styles for AI art platforms like Midjourney and Stable Diffusion. The project, built with Next.js and deployed on a VPS, emphasizes localization with six languages and a friction-free user experience.

read2 min views59 publishedJul 18, 2026

Recently, I kept hitting the same wall in AI art: I'd find an image with a style I loved, but recreating it in Stable Diffusion or Midjourney meant guessing at the prompt for far too long. Writing prompts from scratch is slow and inconsistent.

So I built the reverse: a tool where you upload an image and get a detailed, ready-to-use prompt back. This post walks through how it works and the decisions behind it.

Live version: ImagePromptNow Instead of prompt → image, go image → prompt. Feed a picture into a vision-language model, and format its output into a prompt describing the subject, style, lighting, and composition — something you can paste straight into Midjourney, Flux, Stable Diffusion, or DALL-E.

The whole product is really just three things:

Nothing exotic. The interesting parts were the prompting and the deployment, not the framework.

The naive approach — "describe this image" — gives you a caption, not a prompt. A caption reads like "a man sitting on a yellow swing." A prompt needs structure: subject, setting, style, lighting, camera, mood.

The fix was instructing the model to return the description in a specific order and level of detail, then post-processing it into a clean prompt. I also expose a "structured breakdown" so users can see how each element maps back to the image, which makes it easier to tweak specific parts.

A few lessons:

I added next-intl and 6 languages sooner than most people would. The payoff showed up fast in search: non-English pages started ranking within days, in markets where competitors only ship English. If you're building anything content-adjacent, localization is underrated distribution.

The site runs on a CWP7pro VPS behind Apache with a Next.js reverse proxy. One sharp edge: AutoSSL renewals would wipe the proxy vhost config and take the site down with a 403. The fix was a small watchdog cron that re-inserts the ProxyPass block if it goes missing. Not glamorous, but it turned a recurring outage into a non-issue.

Another one specific to Next.js on a monorepo: apps/web

had "type": "module"

in its package.json, so any helper Node scripts inside it had to use the .cjs

extension or they'd throw ESM errors.

I made three deliberate choices that shaped everything:

These aren't just nice-to-haves — they're the product. The friction-free path is what makes people actually use and share a tool like this.

The most requested feature so far is an inline-editable prompt with the ability to "lock" certain visual elements before regenerating — keep the subject, change the style, that kind of thing. That's next on my list.

If you want to try it, it's here: ImagePromptNow — no signup, and I'd genuinely welcome feedback, especially on prompt quality versus what you'd write by hand. Thanks for reading!

── more in #artificial-intelligence 4 stories · sorted by recency
── more on @imagepromptnow 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/how-i-built-a-free-i…] indexed:0 read:2min 2026-07-18 ·