- ›
/image— generate logos, brand assets, and marketing imagery from a text prompt - ›
Gemini-backed— uses the latest Gemini image model under the hood - ›
Brand-consistent output— pair with /brand and Naïve enforces palette, font, and style across every render - ›
Stock media included— search Pexels for free photos and videos within the same primitive - ›
Composes with /social, /video, /brand— the full visual stack ships from one Employee - ›
Commercial-use safe— Naïve filters outputs against trademark and likeness violations before returning
Today we're launching /image — the primitive that gives an AI Employee on-demand image generation. Logos, social cards, product mockups, marketing imagery — all composed with /brand for visual consistency, and all routed through the latest Gemini image model so output quality improves automatically.
The problem: image generation without brand consistency is noise
Most agent-run businesses generate hundreds of images per week. Without a brand discipline, the output drifts — every social card looks slightly different, every logo iteration loses something, every marketing asset has a slightly different palette. The result is a brand that looks AI-generated, not professional.
The status quo:
- Per-creator tools (Midjourney, Ideogram) — built for humans iterating in Discord or a UI. Not designed for agent loops.
- Raw model APIs (Gemini, OpenAI Images, Stability) — work, but you're now building a brand-consistency layer, a moderation layer, and a stock-media fallback yourself.
- Generic stock libraries — limited, expensive at scale, and inconsistent with the rest of your visual output.
The reason brand-consistent agent imagery has stayed hard is that the model and the brand have lived in different layers. With /image composed with /brand, they're a single primitive call.
How /image works
The workflow is three steps:
- Establish brand — generate a
/brandkit for the Company. Palette, fonts, style direction, tone — captured once. - Generate —
generate_imageswith a prompt and an optionalbrandIdreference. The runtime applies brand-consistent style guidance. - Use — pass the image URL to
/socialfor distribution,/videofor assembly into video, or/emailfor embedded marketing.
Two ways to generate: CLI or API
1. CLI
naive images generate \
"social card announcing /image launch, our brand palette" \
--model fal-ai/flux/schnell \
--wait
The CLI generates the image using the specified model and returns the URL when ready. List available models with naive images models.
2. API
const response = await fetch("https://api.usenaive.ai/v1/images/generate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.NAIVE_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
prompt: "minimalist logo for a faceless YouTube channel called Lumen Letters",
model: "fal-ai/flux/schnell",
}),
});
const { jobId } = await response.json();
// Poll with: naive images status <jobId>
The job is async — poll with naive images status <job_id> or GET /v1/images/generate/<job_id> until the image URL is returned.
Brand-consistent output
When a brandId is referenced, the runtime applies the brand's palette, typography pairing, and style direction to every image:
// Reference the brand palette in the prompt for consistent output
const response = await fetch("https://api.usenaive.ai/v1/images/generate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.NAIVE_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
prompt: "a clean OG card for our weekly newsletter, using palette #0F172A #3B82F6 #F59E0B",
model: "fal-ai/flux/schnell",
}),
});
const { jobId } = await response.json();
This is the difference between AI-generated noise and an actual brand. Compose /image with /brand and the autonomous content business looks professional from week one.
Stock media in the same primitive
Sometimes the right asset isn't a generated image — it's a real photograph of a coffee cup or a city skyline. /image includes search_stock_media, backed by Pexels:
naive images stock "modern office workspace" --type photo --orientation landscape
Free, commercial-use-safe, in the same CLI surface as the generative tool. The agent decides whether to generate or search.
Trademark and likeness safety
Every generation runs through a safety pass that filters:
- Registered trademarks (the agent shouldn't render the Disney logo by accident)
- Public-figure likenesses without consent (politicians, celebrities, athletes)
- Copyrighted character designs (Marvel, DC, Studio Ghibli, etc.)
- Common brand assets the model has memorized (Apple/Google glyph styles)
When a generation matches one of these patterns, the runtime returns a structured rejection and suggests a safer prompt. This isn't censorship — it's the same diligence a human designer would do before publishing.
What you can build with /image
Generate a logo and brand kit at Company creation — Compose /image with /brand and /llc so a newly-formed Company has a logo, palette, and visual identity within seconds of formation.
Produce per-post social imagery at distribution scale — Pair /image with /social so every cross-posted message has a native, brand-consistent image attached — auto-sized per platform.
Mock up product variants for ecommerce stores — A drop-shipping Employee renders SKU mockups in lifestyle settings, runs them through ad APIs, and attributes results back to the producer Employee.
Generate hero imagery for landing pages, blog posts, and emails — Same Employee, same brand, dozens of consistent assets without a designer in the loop.
Test creative hypotheses at the speed of generation — Produce 50 variations of an ad creative concept, run them through /social ad APIs, and feed engagement data back into the next generation.
Get started
- Read the docs: usenaive.ai/docs/guides/images
- Quickstart: usenaive.ai/docs/getting-started/quickstart
- Background reading: Gemini image model overview and the Pexels API.
- Join the community on Discord