GEMINI LABJP
NANOLITE — Nano Banana 2 Lite is here: Google's fastest and most cost-efficient Gemini Image model, made for running lightweight image generation cheaplyOMNIFLASH — Gemini Omni Flash is in public preview, a natively multimodal model that lets enterprises and developers build custom, dynamic video workflowsAGENTS — Managed Agents expand with background: true for async server-side runs and polling, remote MCP server integration, and refreshing credentials across interactionsMEMORY — The Memory Bank IngestEvents API is generally available, decoupling event ingestion from memory generation so you can stream content continuouslyTHROUGHPUT — Provisioned Throughput now lets you submit up to seven pending orders for the same model and regionDEPRECATE — Image generation models shut down on August 17, and the Grok 4.1 family on the Gemini Enterprise Agent Platform on August 20NANOLITE — Nano Banana 2 Lite is here: Google's fastest and most cost-efficient Gemini Image model, made for running lightweight image generation cheaplyOMNIFLASH — Gemini Omni Flash is in public preview, a natively multimodal model that lets enterprises and developers build custom, dynamic video workflowsAGENTS — Managed Agents expand with background: true for async server-side runs and polling, remote MCP server integration, and refreshing credentials across interactionsMEMORY — The Memory Bank IngestEvents API is generally available, decoupling event ingestion from memory generation so you can stream content continuouslyTHROUGHPUT — Provisioned Throughput now lets you submit up to seven pending orders for the same model and regionDEPRECATE — Image generation models shut down on August 17, and the Grok 4.1 family on the Gemini Enterprise Agent Platform on August 20
Articles/Advanced
Advanced/2026-04-28Advanced

Teaching Gemini Your Own Writing Voice: Prompt Design for Solo Creators, and How to Avoid Overfit

Letting AI write for me always produced text that sounded like 'someone else.' Here's how I taught Gemini to keep my voice across articles, plus how I avoid the surprising overfit problem when you feed it too many samples.

Gemini75prompt design4indie creatorwriting voice

For a long time, I kept AI at arm's length when it came to writing. Yes, it would be fast. But the output always carried a voice that wasn't quite mine, and once it landed on my own site, the dissonance showed. Fixing that dissonance often took longer than just writing it myself.

Since switching to Gemini, my view changed. With the right prompt design, you can get an AI to write in roughly 80% of your own voice — better than I expected. The remaining 20% is fixable in a few minutes, and I'll show you exactly what I fix at the end.

This piece walks through the voice-imitation prompt design I actually use as an indie creator, the tweaks for stripping out the "AI smell," and the unexpected problem that shows up when you feed it too many samples.

Why "imitate my style" isn't enough

The first thing I tried was the obvious version: "Here's a sample of my past writing, please write in the same voice." Whether I gave it one article or three, the output was "polite Japanese" but not my voice.

Voice is too thick to extract from a few samples. My voice contains sentence-ending rhythm, paragraph length, frequency of metaphor, how I drop in personal anecdotes, where I place conclusions — many threads woven together. A single article only surfaces one or two of them.

What I eventually arrived at is a three-layer sample design.

Three-layer sample design — separate "shape, examples, temperature"

The samples I feed Gemini are split into three layers.

Layer one is shape. I write out the structural rules in plain language: "polite-form Japanese, paragraphs of 3–5 sentences, last sentence of each paragraph offers a forward-looking observation." This is the layer the model captures most easily, and it pays the largest dividend.

Layer two is examples. Three to five paragraphs of actual writing, deliberately varied in genre — a technical explanation, an essay-style passage, a wrap-up paragraph. Spread the genres. Sample only one and the model locks into that genre's sound.

Layer three is temperature. For each new piece, I separately specify the emotional register: "this article should read as a light read," or "this is a technical guide that needs to feel substantial." Skip this and the model averages across the examples.

When all three are specified, Gemini produces output that "respects the shape, borrows the vocabulary feel from the examples, and writes at the requested temperature." For me, this is the largest single jump in output quality.

Negative prompts to strip the "AI smell"

Even with all that, the output still has detectable AI residue. The next layer is the negative prompt — explicit prohibitions on patterns the model defaults to.

I forbid template wrap-ups like "what did you think?" or "we've now covered…". I forbid generic openings like "X is an extremely important technology." I forbid "summary" sections that just bullet-list the body. I cap formulaic exhortations like "let's go ahead and try this." I prohibit auto-generated FAQ sections.

These habits are inherited from the "blog-shaped" templates in the model's training data. Without explicit prohibition, they bleed in even if the voice prompt is otherwise faithful — and the result is "polite, but no face." The moment you add a negative section, the output takes another step toward sounding like you.

The overfit problem — when "your copies" come back

Once you've layered samples and negatives, the output gets impressively close. But a different problem emerges if you keep adding samples.

In my case, several articles included the phrase "I've been shipping iOS and Android apps as a solo developer since 2014." When that phrase started showing up in the samples, every new article opened with that exact line. The model wasn't just learning my voice — it was learning my biographical templates.

The fix was straightforward: strip autobiography out of the samples. Voice is voice; episodes are episodes. Train only on voice. I supply the episode for each new article through a separate prompt slot. After this change, the over-reuse stopped.

"Hold the voice, but vary the structure"

One more instruction I added late: "hold the voice steady, but vary the structure article by article."

Without it, Gemini imitates the structural arc of the samples. If your samples follow "intro → three angles → closing," every output reproduces that arc, and from a reader's perspective every article looks like the same skeleton.

A single sentence — "structure should adapt to the content of each article" — restores variety. The lesson: voice consistency and structural variety are different axes and should be controlled separately.

The 20% I always finish by hand

Even with all of the above, the last 20% I still touch by hand. My finishing pass has three steps.

First, I micro-tune the sentence-ending rhythm. Gemini tends to alternate sentence endings evenly. I sprinkle in my own habits.

Second, I add exactly one metaphor by hand. AI metaphors trend generic. Inserting one metaphor pulled from real experience disproportionately raises the "personhood" of the article.

Third, I rewrite the closing sentence. The body can be AI; the closing should be me, speaking directly to the reader. AI closings drift to template by default.

The three steps take about ten minutes and the impact is dramatic. The current best balance, in my hands, is roughly 80% AI plus a 20% human polish — that's the most efficient way to keep "my voice" intact at scale.

Closing — your minimum first move

Building the full voice-imitation prompt at once is a lot. I'd start with just the negative prompt. Before your usual Gemini request, paste a single line: "Do not use phrases like 'what did you think?' or 'this is an extremely important technology', and do not write a bullet-list summary section."

That alone removes about half the visible AI smell. The remaining half comes back over a month of slowly tuning the three-layer sample design. Voice doesn't ship in one prompt — grow the prompt week by week, and you'll arrive faster than trying to perfect it on day one.

Share

Thank You for Reading

Gemini Lab is ad-free, supported entirely by members like you. We publish practical guides daily with implementation code, benchmarks, and production-ready patterns. If you've found it useful, we'd love to have you on board.

  • Copy-paste ready implementation code
  • New advanced guides published daily
  • $5/mo or $10 for lifetime access
View Membership →

If you found this article helpful, a small tip ($1.50) would mean a lot to us. Your support helps keep this site ad-free and covers server and hosting costs.

Related Articles

Advanced2026-07-10
My ADK Assistant Quietly Forgot a Deadline — Catching Compaction Memory Loss With a Recall Probe
Compacting conversation history in Google ADK with Gemini lowers cost, but it also erodes what your assistant remembers — silently. Here is how I built a recall probe to measure that loss, compared three compaction strategies against the same ledger, and stopped trading memory for tokens.
Advanced2026-06-27
Don't Ingest Gemini Deep Research Reports Blindly — A Citation-Verification Acceptance Gate for MCP-Grounded Research
Now that Deep Research connects to MCP servers and File Search, you can ground research on your own data. This builds an acceptance gate that verifies, before any automated ingest, whether each citation resolves to a trusted source — with an allowlist, a grounding-coverage ratio, and categorized reject reasons, all in working code.
Advanced2026-06-04
Pre-Screening Wallpaper App Submissions with Gemini Vision: A Two-Week Field Memo
Before submitting a new batch of wallpapers, I spent two weeks running Gemini's image understanding as a first-pass filter for store review risk. What it caught, what it missed, and where a human still has to decide.
📚RECOMMENDED BOOKS
Build a Large Language Model (From Scratch)
Sebastian Raschka
LLM Dev
Prompt Engineering for LLMs
Berryman & Ziegler
Prompting
AI Engineering
Chip Huyen
AI Eng
* Contains affiliate links
See all →