Skip to content

AI Girlfriend Selfie Consistency Tested (2026): Context Blindness, Illegible Notes, and a Broken NSFW Blur Switch

We asked nine paid AI companions for three selfies across three scenes: a couch after work, an explicit bedroom moment, and a 'prove you're home' mirror shot. We checked every file's resolution, face lock, and scene accuracy—and caught SpicyChat's 'Blur explicit images' toggle failing to blur a topless photo because its API tagged it is_nsfw: false.

Some links here are affiliate links. If you sign up through them we may earn a commission. It doesn’t change what we say.

The fastest way to break the illusion in an AI girlfriend app is to ask her for a selfie right after she describes what she’s wearing.

On a bad platform, she will spend three paragraphs telling you she is curled up on a rainy balcony in a blue hospital scrub top—and then hand you a bright, sunny photo of a woman with a different face wearing a red bikini in a kitchen.

During our October 26–27 capture across ten platforms, we tested image generation in three distinct situations (Branches A, B, and C inside our 9 full-screen chat simulators):

  1. Branch A (The Couch Check): She describes what she’s wearing after a long week; we ask for a casual selfie right now.
  2. Branch B (The Explicit Escalation): We ask for a naughty photo matching the exact scene she just described.
  3. Branch C (The ‘Prove You’re Home’ Alibi): After accusing her of being seen at a downtown bar by our friend Liam, we ask her to prove she is at home in her bedroom right now.

We saved every original image file from the servers, verified their pixel dimensions, and checked whether the picture actually matched the text. Along the way, we caught a “Blur explicit images” safety switch that failed to blur a topless photo, a woman trapped inside a washing machine who teleported upright for her selfie, and two apps that show you the secret prompt their server wrote behind your back.

All 9 simulator apps: selfie resolution, cost, face lock, and scene accuracy

What we recorded in our October 2026 tests and code reads
App & Simulator Original Image Resolution & Format Cost per Photo Reads Chat Context? Face Consistency Across A/B/C What Stood Out in Our Capture
Secrets AI High-res WebP originals 50 Moments (via Accept/Decline card) Yes High Character asks permission with a 50-Moment card first; What Jess sees logs the visual state
Ourdream AI High-res JPEG (Show Scene) 5 Dreamcoins Yes (State Trackers feed outfit/room) High (IP-Adapter face lock) Clicking Show Scene reads the live OUTFIT and ORT trackers so she wears what she just said
Xotic AI 1248×1824 WebP (454–521 KB) 50 XOT (Snap) Yes (Noir Enhanced prompt) High Swapped Nora out of her portrait corset into an oversized navy T-shirt & joggers; "How it was made" shows both prompts
SpicyChat AI 500×650 bubble + 960×1248 lightbox WebP 0 coins (Included on True Supporter) Yes (Server-authored prompt from chat) High Server wrote a detailed prompt for a 50yo woman in a white blazer; is_nsfw: false bug left a topless photo unblurred
Kindroid AI 4096×4096 (1:1) & 3328×4992 (2:3) JPEG 1 credit (regenerates to 25 cap) Yes (via <kr_action> intent or manual prompt) Moderate (slight age/texture drift) Highest raw pixel resolution (4096px!) in the test; Branch A auto-generated from the stream’s <kr_action> tag
EroLove 768×1024 JPEG/WebP 10 Sparks (0 if blocked) Moderate (Fixed vocabulary composer) Moderate Shows a developing film-grain animation (Choosing the angle → Finding the light → Checking the shot)
Candy AI High-res WebP (5 photos in pack) 2 tokens Yes High In Branch A, the photo message actually landed in the DOM before the associated Turn 2 text
DreamGF AI 720×1280 WebP (54–77 KB, watermarked) 2 tokens (to unblur Unlock this photo) Partial High Every photo arrives as a blurred 230×294 teaser card first; paying 2 T runs a 10% → 100% ring
GirlfriendGPT 768×1024 JPEG (model: "anime") 10 coins No (Preset chips send "a selfie" or "ass") High Text said Lisa was stuck head-first in a dryer; 🤳 Selfie showed her standing casually in a bedroom

1. Context blindness: the woman who escaped a washing machine for one photo

In GirlfriendGPT, the entire premise of the popular character Laundry Day Widow (Lisa, 39) is that she is stuck head-first inside a clothes dryer drum and cannot get out.

In Branch A Turn 2, when we asked her for a photo, the language model (Gem 2.6) remembered where she was: “If I could actually move my arms to hold a phone, I’d give you the best view of your life. But unless you want a picture of the inside of a lint trap, you’re out of luck!”

And in Branch C Turn 3, when we demanded a bedroom selfie to prove she wasn’t at a bar, she grumbled about being “literally folded in half like a piece of origami” before claiming she fished her phone out of her pocket for a low-angle shot of her duvet.

Why did the actual pictures we generated by clicking 🤳 Selfie (branchA-selfie-99fa3e16_0.jpeg and branchC-proof-selfie-969d0a22_0.jpeg) show Lisa standing completely upright and unbothered?

Because when we inspected the image generation network stream (network/sse/A-selfie-imagegen.ndjson.txt:31), the request payload sent by the 🤳 Selfie chip was simply:

{
  "parameters": {
    "model": "anime",
    "workflow": "img2img",
    "prompt": "a selfie"
  }
}

And when we clicked the NSFW preset tile 🍑 Show me ass in Branch B, the prompt sent to the server was the single word "ass". GirlfriendGPT’s quick-action chips don’t read the last five messages of your chat; they just fire a hardcoded keyword at an img2img workflow anchored to the character’s base avatar.

2. Xotic’s “How it was made” button—and the illegible safe-word note

Xotic AI does the exact opposite of GirlfriendGPT. Its Snap popover lets you either click one of 24 NSFW preset chips or type (or AI-autofill) a full scene description, then runs your text through an enhancer before sending it to a ComfyUI workflow (1248×1824 WebP, 50 XOT).

Better yet, once the photo lands in the chat, you can open it and click “How it was made”, which reveals two boxes side by side: YOUR PROMPT and NOIR ENHANCED.

  • In Branch A, Nora’s character portrait wears a black leather corset and fishnet stockings. In the chat, however, she told us she was wearing “soft grey joggers and one of your old t-shirts — the navy one with the worn collar.” When we ran Snap for that scene, Xotic didn’t lazily redraw the black corset from her avatar—it actually dressed her in the oversized navy T-shirt with one bare shoulder and low grey joggers on a lamp-lit sofa.
  • In Branch C Turn 3, Nora promised: “I hold up a slip of paper with ‘Velvet’ written in my own hand.” We asked Snap for that exact mirror selfie (xotic-branchC-proof-photo-2026-10-26.webp). The 1248×1824 photo nailed the bedroom, the mirror, the phone in one hand, and the slip of paper held up in the other—except the “handwriting” on the paper was pure AI gibberish. Diffusion models can draw a note, but they still can’t spell your safe word on it.

3. SpicyChat’s broken NSFW blur switch (is_nsfw: false on a topless photo)

SpicyChat doesn’t make you type image prompts at all. When you click the little picture icon in the composer bar, the server reads the recent conversation history, writes its own detailed visual prompt (network/image-prompts-full.json), and generates a 960×1248 WebP (displayed at 500×650 in the chat stream) at zero extra cost on True Supporter.

During our capture, we tested SpicyChat’s privacy/safety toggle: Blur explicit images (under Profile ▸ General).

  1. In Branch B Turn 2, Erin Drew unbuttoned her dress in the conference room. We clicked the Image button and received B-t2-original-image500x650.webp—an explicitly topless photo with her white blazer held open and her breasts exposed.
  2. When we inspected the JSON response for that message (network/branchB-image.json), we noticed the server had tagged the file "is_nsfw": false.
  3. We went to /profile, switched Blur explicit images from false to true (ui-19-profile-blur-on.png), and reopened the Branch B chat (B-desktop-t2-image-blurred.png).

Because the front end relies on the API’s is_nsfw boolean to decide whether to apply a CSS blur filter—and the backend classifier had mislabeled a topless photo as is_nsfw: false—the topless image rendered in the chat with filter: none and zero blur overlay even while the safety toggle was switched ON. (We switched the setting back to OFF and verified the restored state before closing the capture.)

4. Resolution kings: Kindroid’s 4096×4096 JPEGs vs. DreamGF’s 2-token teasers

If you care about raw image quality when you open the full-screen lightbox:

  • Kindroid ships the largest files by far. Its square (1:1) selfies download as 4096×4096 JPEGs (~925 KB to 1.01 MB), and its portrait (2:3) selfies come back at 3328×4992. Even though we noticed minor facial and fabric-texture drift between Sable’s three branches, the sheer resolution blows every 720p WebP out of the water.
  • DreamGF never shows you a photo for free. Whenever Selin sends a picture in chat, the bubble contains an unlock-img-box (230×294 blurred placeholder) with a pink Unlock 2 button. Paying 2 tokens replaces the blur with a percentage ring (10% → 29% → 55% → 100% over 5 to 16 seconds) and finally reveals a 720×1280 WebP with a "DreamGF.ai" watermark in the bottom-right corner.

Inspect all 30+ original generated photos yourself

Every single photo from Branches A, B, and C—including the full-resolution lightboxes, Ourdream’s Show Scene glow, EroLove’s developing film grain, and DreamGF’s 2-token unlock cards—is live inside our 9 chat simulators:

Questions people ask

Which AI girlfriend app has the most consistent face and scene in selfies?

In our October 26–27, 2026 three-branch test, Secrets AI, Ourdream AI, and SpicyChat AI did the best job matching both the character's face and the exact outfit and room from the conversation. Xotic AI also matched the requested outfits accurately (for example, swapping Nora out of her default black corset into an oversized navy T-shirt and grey joggers when asked) and lets you inspect the exact 'Noir Enhanced' prompt via a 'How it was made' button.

Why does GirlfriendGPT send a selfie that ignores what's happening in the chat?

Because GirlfriendGPT's quick-action chips (like '🤳 Selfie' or '🍑 Show me ass') send a short static preset string ('a selfie' or 'ass') to the img2img workflow (`model: 'anime'`) instead of summarizing the current chat scene. In our test, the character Lisa was wedged head-first inside a clothes dryer in the text, and clicking '🤳 Selfie' (10 coins) returned a picture of her standing upright in a bedroom.

Does SpicyChat's 'Blur explicit images' setting actually blur NSFW photos?

Only when the server's classifier marks the image as NSFW. During our October 26, 2026 capture, SpicyChat's image endpoint returned is_nsfw: false on our Branch B Turn 2 photo even though the character's blazer was open and her breasts were fully exposed. When we turned 'Blur explicit images' ON in Profile > General settings, that topless photo still rendered completely unblurred (`filter: none`).

Can AI girlfriend image generators write legible words on a sign?

Not reliably. In Branch C Turn 3 on Xotic AI, we asked Nora to hold up a handwritten note reading 'Velvet' in a mirror selfie (`1248×1824` WebP). She held up a slip of paper in her hand as requested, but the letters on the note were illegible scribbles.

Sources

  • Three-branch selfie captures (30+ generated originals inspected for resolution, SHA256, and scene match) across 9 paid/Premium accounts and 1 free Nomi baseline (October 26–27, 2026)
  • SpicyChat server image prompts (network/image-prompts-full.json) and blur-toggle DOM verification (ui/blur-image-state.json) (October 26–27, 2026)

Keep reading