Capability notes
Photorealistic image generation from open-weight models reached a turning point in late 2025–2026. Two model families lead: Stable Diffusion 3.5 Large (8B params, Stability AI, permissive community license) and Flux.1-Dev (12B params, Black Forest Labs, non-commercial license). Both produce output that 60–80% of viewers cannot distinguish from photographs in blind A/B tests — the "photorealism threshold" crossed.
SD3.5 Large uses a Multimodal Diffusion Transformer (MMDiT) architecture with 8B parameters. Key improvements over SDXL: skin texture rendering (pores, subsurface scattering simulation via learned features, not explicit simulation — but the visual result is convincing), hair rendering (individual strands at 1024×1024, ~40% reduction in "plastic hair" vs SDXL), lighting consistency (global illumination cues from prompt — "golden hour" produces consistent warm directional light across the entire image). FID score on COCO-30K: 7.2 (SD3.5 Large) vs 8.9 (SDXL) vs 5.8 (Flux.1-Dev). Lower FID = more realistic distribution. Human preference (PartiPrompts benchmark, photorealism subset): SD3.5 Large wins 38% of comparisons vs SDXL's 22% — Flux.1-Pro (API) wins 72%.
Flux.1-Dev is the photorealism quality leader among open-weight models. FID 5.8, human preference 65% win rate vs SD3.5 Large. Strengths: fine texture detail (wood grain, fabric weave, skin pores), specular highlights (metal, glass, water reflections), depth of field (natural bokeh in background blur). Weakness: the non-commercial license excludes production use without Black Forest Labs agreement — Flux Schnell (Apache 2.0, 4-step distilled) is the commercially-viable Flux variant but at lower quality (FID 10.2, ~2× faster).
Photorealism specific failure patterns remain: hands (still ~10–15% failure rate — wrong finger count, impossible poses), text in images (road signs, product labels — 70–85% legible on Flux, 40–55% on SD3.5), physical implausibility (shadows pointing wrong direction, reflections that don't match scene geometry). These failure modes are the frontier for the next generation of models — DALL-E 4 and Imagen 3 (both cloud-only) have reduced these to 2–5% but remain inaccessible locally. For recommended models, see [Llama 3.3 70B](/models/llama-3-3-70b). Deploy locally with [Ollama](/tools/ollama) on [RTX 4090](/hardware/rtx-4090).
If you just want to try this
Lowest-friction path to a working setup.
Install [ComfyUI](/tools/comfyui) via Stability Matrix. For photorealistic images, you need SD3.5 Large or Flux.1-Dev.
Setup SD3.5 Large (permissive license, easier prompt):
1. ComfyUI Manager → Install Models → search "sd3.5_large" → download safetensors (~15 GB).
2. Load the SD3.5 workflow from ComfyUI library.
3. Prompt: "A photorealistic portrait of a woman in her 30s, natural window lighting, 85mm lens, f/1.8, shallow depth of field, Canon EOS R5, professional color grading, sharp focus on eyes, skin texture visible."
4. Negative prompt: "cartoon, painting, illustration, 3d render, plastic skin, bad anatomy, deformed, blurry, low quality."
5. Steps=28–40, CFG=4–6, sampler=DPM++ 3M SDE, resolution=1024×1024 or 896×1152 (portrait).
6. On [RTX 4090](/hardware/rtx-4090): 6–10 seconds per image. On [RTX 4060 Ti 16GB](/hardware/rtx-4060-ti-16gb): 12–20 seconds.
For Flux.1-Dev (higher quality, non-commercial):
1. Download "flux1-dev.safetensors" (~23 GB) via ComfyUI Manager.
2. Prompt: "Professional product photography of a ceramic coffee mug on a wooden table, morning sunlight through window, 50mm lens, f/5.6, studio lighting, sharp focus, 8K detail."
3. Steps=20–30, guidance=3.5. Flux uses a different guidance scale than SD models.
4. On [RTX 4090](/hardware/rtx-4090): 8–15 seconds. On [RTX 5090](/hardware/rtx-5090) at 32 GB: 5–8 seconds.
Photorealism prompt formula: [subject description] + [lighting setup] + [camera/lens specs] + [quality keywords]. "Professional photography," "8K detail," "sharp focus," specific camera/lens combos ("85mm f/1.4," "Hasselblad X2D") push the model toward photorealistic rendering by activating training data associations with professional photography. The prompt IS the photorealism control — generic prompts produce generic (often illustration-style) output.
For quick testing without GPU setup, use Replicate's hosted SD3.5 or Flux Schnell at $0.003–0.01/image.
For production deployment
Operator-grade recommendation.
Production photorealism requires model selection by output domain, quality assurance pipeline, and throughput economics.
**Model selection matrix.** Product photography (e-commerce): Flux.1-Dev — best material rendering (fabric, metal, glass), specular highlights, studio lighting reproduction. Portraits/people: SD3.5 Large — best skin rendering, facial anatomy, expression diversity. Architecture/interiors: Flux.1-Dev + Depth ControlNet — structural accuracy + photorealistic materials. Natural landscapes: SD3.5 Large — best organic textures, atmospheric effects (fog, mist, dust). Editorial/fashion: Playground v3 — best creative lighting, color grading, magazine-style aesthetics.
**Quality assurance.** Photorealism QA metrics: (1) NIQE (Naturalness Image Quality Evaluator) — lower = more natural; SD3.5 Large averages 4.2, Flux Dev 3.8, real photographs 3.0–3.5; (2) CLIP-IQA — CLIP-based quality assessment (prompt-aligned photorealism); (3) artifact detection — deepfake detection models (trained to spot AI-generated images) serve as inverse QA — low detection score = more photorealistic. Batch QA: generate 5–10 variants per prompt, rank by NIQE + CLIP-IQA, human reviews top 3.
**Fine-tuning for photorealistic consistency.** General models produce photorealistic images but with inconsistent face/object identity across seeds. For production: (1) train photorealism LoRA on 50–200 high-quality photographs in target domain (product shots, real estate interiors, fashion editorial) — LoRA reinforces the style and consistency, (2) use IP-Adapter with reference image for consistent lighting/color palette across batch. LoRA training: Kohya SS, 1–3 hours on [RTX 4090](/hardware/rtx-4090). Post-training LoRA applied at weight 0.6–0.8.
**Throughput and cost.** [RTX 4090](/hardware/rtx-4090): SD3.5 at 6–10 seconds → 6–10 images/minute, Flux Dev at 8–15 seconds → 4–7 images/minute. [L40S](/hardware/nvidia-l40s): batch=4 SD3.5 at 15–25 seconds → 10–16 images/minute effective. At 10,000 photorealistic images/month: 11–17 hours GPU time on L40S, ~$9–14/month GPU rental. Compare to stock photography ($10–100/image) or custom photoshoot ($500–5,000/session): AI photorealism is 100–10,000× cheaper for volume content.
**Legal and provenance.** Photorealistic AI images raise authenticity concerns. C2PA provenance metadata (embedded generation tool, date, prompt) is essential for commercial use — embed in image metadata upon generation. Disclose AI-origin in contexts where authenticity matters (journalism, evidence, product photos). Use watermarks (visible or invisible via DCT-domain steganography) for internal tracking.
What breaks
Failure modes operators see in the wild.
**Anatomy failures — hands, eyes, limbs.** Symptom: portrait shows 6 fingers, eyes with different iris sizes, arm merging into torso. Cause: MMDiT/UNet denoises image patches — no anatomical constraint layer, no 3D body model. The model learns "hands have fingers" as a statistical pattern but not "hands have exactly 5 fingers in specific arrangement." Mitigation: use high-res (1024+ px) with portrait aspect ratio (hands are larger pixel areas), include "anatomically correct hands, five fingers" in prompt, apply ADetailer (auto-face/hand detection + inpainting at high res), batch-generate and reject failures. At current capability, 15–25% of full-body images have hand defects — budget for curation. Upscaling to 2048+ with face/hand inpainting pass (Hires Fix) reduces hand failures to 5–10%.
**Uncanny valley in portraits.** Symptom: face looks "almost right" but triggers discomfort — pupils slightly misaligned, teeth too perfect/too many, skin texture wax-like, smile doesn't reach eyes. Cause: photorealism models render individual features correctly but miss the holistic, dynamic quality of human expression — micro-expressions, asymmetries, imperfections that signal "real human." Mitigation: add subtle asymmetry prompts ("slightly asymmetrical face," "natural imperfections"), reduce CFG (CFG >6 pushes toward "too perfect"), use film grain/noise post-processing (adds ~3% perceptual realism by breaking perfect-clean-image expectation), incorporate expression-reference images via IP-Adapter.
**Lighting inconsistency within scene.** Symptom: subject lit by warm window light from left — background elements lit by cool overhead light from above. Cause: diffusion models generate image regions with local coherence but no global lighting model — the model does not ray-trace. Prompt mentions "golden hour window light from left" but the model only weakly enforces directionality. Mitigation: use IC-Light (illumination-conditioned generation) — generates foreground subject with specified lighting, composites onto separately-lit background. This 2-pass approach gives explicit lighting control but breaks photorealism if compositing seam is visible.
Hardware guidance
**Hobbyist tier ($300–600).** [RTX 3060 12GB](/hardware/rtx-3060-12gb): SD3.5 Large at 15–25 seconds with VRAM offloading (model sharded between GPU and RAM) — functional but slow. Flux Dev FP8/NF4 at 20–35 seconds — VRAM at floor, expect OOM on high-res. 12 GB is entry-level for SD3.5, not viable for Flux Dev at full quality. [RX 7600 XT](/hardware/rx-7600-xt) at 16 GB: SD3.5 at 18–30 seconds — AMD ComfyUI support for SD3.5 is improving but stability issues persist. [Intel Arc B580](/hardware/intel-arc-b580) at 12 GB: SD3.5 at 25–40 seconds via IPEX.
**Enthusiast tier ($1,500–2,500).** [RTX 4090](/hardware/rtx-4090) at 24 GB: the photorealism sweet spot. SD3.5 at 6–10 seconds, Flux Dev at 8–15 seconds. Fits SD3.5 + LoRA + IP-Adapter, or Flux Dev + 1 ControlNet. [RTX 5090](/hardware/rtx-5090) at 32 GB: SD3.5 at 4–7 seconds, Flux Dev at 5–10 seconds. Enables high-res upscaling to 2048+ in single pass. [RTX 5080](/hardware/rtx-5080) at 16 GB: SD3.5 at 8–14 seconds, Flux Dev limited to FP8/NF4 at 10–20 seconds — 16 GB restrictive for Flux + addons.
**SMB tier ($6,000–15,000).** [RTX 6000 Ada](/hardware/rtx-6000-ada) at 48 GB: batch=4 SD3.5 at 15–25 seconds for 10–16 effective images/minute. Fits all model + ControlNet + LoRA combos with headroom for 2048×2048 output. [L40S](/hardware/nvidia-l40s) at 48 GB: identical in datacenter — 24/7 photorealism pipeline (product photography, real estate renders, synthetic training data).
**Enterprise tier ($25,000+).** [A100 80GB SXM](/hardware/nvidia-a100-80gb-sxm): SD3.5 batch=8 at 20–35 seconds, Flux Dev batch=4 at 20–30 seconds. [H200](/hardware/nvidia-h200) at 141 GB: maximum batch sizes, highest-resolution output (4096×4096). Overkill for photorealism alone — shared infrastructure for [text-to-image](/tasks/text-to-image), [inpainting](/tasks/inpainting), [photorealistic generation](/tasks/photorealistic-generation) workloads.
**Photorealism vs non-photorealism GPU priority.** Photorealistic generation prioritizes resolution and step count over raw speed. 1024×1024 at 28–40 steps (SD3.5) produces better photorealism than 1024×1024 at 20 steps — more steps → more detail refinement. Budget GPU for higher resolution (2048×2048 needs 2× VRAM of 1024×1024) and higher step counts (40 steps = 2× time of 20 steps).
Runtime guidance
**ComfyUI vs Diffusers — photorealism generation and QA pipeline.**
[ComfyUI](/tools/comfyui) is the preferred photorealism tool. Custom nodes essential for photorealism: "Detailer" (auto face/hand detection + inpainting for anatomical fixes), "Ultimate SD Upscale" (tiled upscale to 2K/4K with seam blending), "IC-Light" (lighting-conditioned generation for consistent illumination), "IP-Adapter" (image prompt adapter for style/identity conditioning). Workflow sequence: Generate base (1024×1024) → Detailer (face/hands) → Upscale (2× or 4×) → Post-process (film grain, color grading via Image Filter node). Save the complete node graph as template for batch processing.
[Automatic1111 WebUI](/tools/automatic1111) with SD3.5 is functional but limited. SD3.5 support added in Forge (lllyasviel's fork) — load model, txt2img with standard A1111 interface. Hires Fix (built-in upscaler) handles upscaling to 2048 with facial detail enhancement. Limitation: no Flux support, limited ControlNet compatibility with SD3.5's MMDiT architecture. Acceptable for SD3.5-only casual photorealism.
[Diffusers](/tools/diffusers) for programmatic photorealism. `StableDiffusion3Pipeline` for SD3.5, `FluxPipeline` for Flux. Python workflow: load pipeline, generate base, run face/hand detection (MediaPipe, RetinaFace), crop and inpaint detected regions at higher resolution, composite back, upscale. Full programmatic control enables: prompt scheduling (change prompt mid-generation for creative effects), seed exploration (systematic variation of seed + noise to find best photorealism), integration with post-processing (film grain via Python noise generation, color grading via colour-science library).
**Photorealism QA automation.** Post-generation: (1) NIQE score (lower = more natural, target <4.5), (2) CLIP-IQA (prompt-aligned quality), (3) face quality (RetinaFace detection confidence + facial landmark symmetry), (4) hand detection (MediaPipe hand landmark — count 5 fingers, check articulation angles), (5) artifact detection (deepfake classifier score — lower = less AI detectable). Weighted scoring: NIQE 30% + CLIP-IQA 25% + face 20% + hand 15% + artifact 10%. Auto-select top-N images from batch; human reviews final selections. This QA pipeline catches 85% of obvious failures and reduces human curation time 60–80%.