Share:

AI Photo Generation Research

Iconic by AI — Findings from 15+ test rounds, web research, and community analysis • 10 March 2026

Best Method
LoRA Direct
Prompt tuning only
Top Face Score
90%
Sarah — Full Body R33
Shot Types
3
Close / Half / Full
Film Stock
Portra 400
Warm, flattering skin
Rounds Complete
15+
Across 8 subjects

1. The 3 Shot Types — Our Production Standard

After 15+ rounds of testing, we've locked in three shot types. Each requires a different LoRA scale to hold face identity as the camera pulls back.

Close-Up / Selfie
0.9
LoRA Scale
Portrait framing. Face fills the frame. Highest face scores — the sweet spot for identity.
Avg 82%+ face score
Half Body
1.1
LoRA Scale
Three-quarter framing. Waist up. Shows outfit and context while keeping face large enough for identity.
Avg 72%+ face score
Full Body + Feet
1.3
LoRA Scale
Full figure head to shoes, bit of ground underneath. Highest LoRA needed to compensate for smaller face.
Avg 65%+ face score

Key finding: LoRA scale MUST increase with camera distance. The face gets smaller in frame, so the model needs stronger identity reinforcement. 0.9 → 1.1 → 1.3 is the confirmed ladder. Going above 1.3 risks a waxy, over-fitted look (max is 2.0).

LoRA 0.7 — Confirmed Too Low

Round 39 tested LoRA 0.7 on close-ups. Result: 39% avg — identity completely drifts. Never go below 0.9.

2. LoRA Scale — The Complete Picture

LoRA ScaleShot TypeAvg ScoreBest ScoreRoundNotes
0.7Close-up39%52%R39Way too low — identity drifts completely
0.9Close-up82%89%R27-29Sweet spot for portraits
0.9Full body55%68%R30Too low for full body
1.0Three-quarter72%85%R28Good for half body
1.1Full body72%90%R33Breakthrough — massive jump from 0.9
1.3Distance61%76%R37Helps weak LoRAs, but camera can drift far
1.3Extreme distance6%18%R38Environment-first prompt — too far back

3. Methods Tested — What Works, What Doesn't

LoRA Direct Generation
WINNER — 72-90% face scores
Generate the photo directly with the LoRA model. Control output through prompt engineering, LoRA scale, and camera settings. Only method that reliably holds identity.
Scene Backgrounds via LoRA
WORKS — avg 78%, all scenes ≥70%
10 scene backgrounds (Paris Cafe, Tokyo Neon, Amalfi Coast, etc.) generated directly with LoRA. No post-processing needed. Best: Tokyo Neon 85%, Art Gallery 83%.
Kontext Pro Scene Swap
DEAD END — 19% face score
Take a good LoRA portrait and swap the background using Kontext Pro. Result: different person, obvious AI artifacts. The scene swap destroys identity.
Portrait → Outpaint Down
DEAD END — creates collages
Generate close-up portrait (good face), expand canvas downward, fill body with flux-fill-pro. Result: multiple small figures in a collage, not one extended body. Fill model has no identity awareness.
Face Swap (post-processing)
DEAD END — tested early on
Generate generic photo, swap face on after. Results were inconsistent and looked artificial. LoRA direct is better.
Inpainting Face Fix
DEAD END — makes it worse
Use inpainting to fix bad faces on otherwise good photos. The inpainting model doesn't have the LoRA identity, so it generates a different person.
Bottom Line

The path to 85%+ is prompt tuning with LoRA direct generation. Every post-processing approach (face swap, inpainting, scene swap, outpainting) loses identity. Prompt engineering is the only lever that works.

4. Body Proportions — Research Findings

When generating full body shots, Flux has known issues with body proportions, particularly on women (exaggerated hips/butt) and neck areas that look unnatural.

What the Community Says

The 7-Part Prompt Formula (from community research)

  1. Subject — who (OHWX + identity)
  2. Body type — specific build description
  3. Outfit — clothing with specific detail (shoes!)
  4. Pose — concrete action ("walking", "laughing", not "posing")
  5. Environment — where they are
  6. Camera — lens, aperture, distance
  7. Film stock — Portra 400, grain level
Known Issues Still Open

Hips/butt exaggeration on women — Flux bias. Fix with "natural body proportions" + body type descriptor.
Neck area — often looks unnatural in full body. May improve with anatomy anchors.
Distance uniformity — Flux picks random distance per shot even with same prompt. Composition anchors help but don't fully solve.

5. Film Stock — Why Portra 400 Is Right

The film stock specified in the prompt directly affects skin tone rendering, colour palette, and grain. This isn't cosmetic — it fundamentally changes how the subject looks.

Kodak Portra 160
Similar to 400 but finer grain, slightly cooler
Skin tones: Very similar to Portra 400, marginally cooler.
Best for: Studio/controlled lighting. Less useful for outdoor scenes.
Verdict: Could work as alternative but 400 is more versatile.
Fuji Pro 400H
Cool, pastel, airy — fashion editorial look
Skin tones: Cooler with green undertones. Can make skin look less warm.
Colours: Pastel, desaturated, dreamy.
Best for: Fashion editorial, not natural portraits.
Verdict: Wrong for our use case — we want warm and natural, not cool and editorial.
Kodak Ektar 100
Vivid, punchy, high saturation
Skin tones: Can over-saturate — orange/red push. Unflattering for portraits.
Colours: Extremely vivid, punchy. Great for landscapes, terrible for people.
Verdict: Avoid for portraits. Will make skin look unnatural.
CineStill 800T
Tungsten-balanced, halation glow, cinematic
Skin tones: Blue/cyan shift in daylight. Only looks right under tungsten/neon lighting.
Colours: Heavy colour cast, halation around highlights.
Verdict: Night scenes only. Never use for daytime portraits.
Fuji Superia
Green-shifted, contrasty, consumer film
Skin tones: Greenish cast that's unflattering for portraits.
Colours: High contrast, green bias.
Verdict: Consumer film — avoid for professional portraits.

Critical rule: Never mix film stocks in one prompt (e.g., "Portra colours with Ektar saturation"). This confuses the model and produces inconsistent results. Pick one stock and stick with it.

6. Pose & Movement — What Works Best

Pose/ActionAvg ScoreNotes
Walking55%Natural movement, face forward. Best action pose
Laughing56%Natural expression, engaging. Joint winner
Standing naturally50%Safe default. Can look stiff if not worded well
Leaning47%Slightly lower — body angle can affect face detection
Looking away48%Kills face scores — face turned from camera defeats ArcFace

Visual anchors matter more than actions. "Shoes visible on the ground, full figure from head to shoes" is more effective than just saying "full body". Concrete physical descriptions anchor the composition.

7. Distance Control — What We Learned

Flux does not understand distance measurements ("15 metres away"). The model responds to prompt structure instead.

TechniqueResultRound
"Photographed from a distance" suffixCamera sometimes ignores it entirelyR36-37
"Subject 15 metres away"Model doesn't understand metric distanceR36
Environment-first prompt (heavy detail) → subject last (minimal)Works but went too extreme — 6% avgR38
LoRA scale increase (1.1 → 1.3)Helps identity at distance, but doesn't control distance itselfR33-37
Distance Shots — Parked

The environment-first approach works for pushing the subject back, but Round 38 at 6% avg shows it needs fine-tuning. We're focusing on the 3 proven shot types (close-up, half body, full body with feet) before revisiting distance shots.

8. Testing Timeline — Key Rounds

Rounds 27-29 — Close-Up Portraits
Baseline established: 82% avg at LoRA 0.9
Smiling expressions, random styles. Confirmed portrait framing as strongest type.
Round 30 — Full Body at LoRA 0.9
Full body drops to 55% avg
Face too small in frame for identity. LoRA scale too low for this distance.
Round 32 — Portrait → Outpaint Down
Dead end — flux-fill-pro creates collages
Fill model has no identity awareness. Generates random people, not body extensions.
Round 33 — Full Body at LoRA 1.1
BREAKTHROUGH — 72% avg, Sarah 90%
Massive jump from 55% to 72% just by increasing LoRA scale. Confirmed the distance-scale relationship.
Round 34 — Pose & Movement Test
Walking (55%) and Laughing (56%) are best poses
Looking Away kills scores. Concrete visual anchors (shoes on ground) improve consistency.
Rounds 36-37 — Distance at LoRA 1.3
61% avg — "from a distance" doesn't work reliably
Model ignores distance measurements. Camera distance varies randomly per shot.
Round 38 — Environment-First Distance
6% avg — too extreme
Rich environment description first, subject last. Pushed subject to a tiny dot. Approach works but needs dialing back.
Round 39 — LoRA 0.7 Close-Up
39% avg — confirmed 0.7 is too low
Even at close-up range, 0.7 LoRA loses identity. Minimum is 0.9.

9. Subject Performance

SubjectGenderBest ScoreAvg (Portrait)Notes
SarahFemale90%89%Strongest LoRA — holds identity even at full body
MikeMale86%86%Very strong, consistent across framing types
EmilyFemale85%84%Strong and reliable
Chloe 2Female88%84%New session — better than original Chloe
ScottMale86%82%Good baseline, consistent
ChloeFemale80%80%Solid performer
Neil 1Male74%74%Weaker LoRA — more variable
Neil 2Male70%70%Different session — slightly weaker

10. Current Prompt Formula

Our production prompt structure:

[Framing] OHWX [identity details] [body type], [outfit with shoes], [pose/action], [environment]. [Camera: 85mm f/2.8 or similar]. Kodak Portra 400 colour palette, slight natural film grain. Photorealistic.

What to include

What NOT to do

Report generated 10 March 2026 • Iconic by AI • Data from 15+ test rounds across 8 subjects