Image Generation
photo generation
realistic ai art

Photorealistic Image Generation

Photorealistic portraits, landscapes, product shots. Flux Dev/Schnell, Stable Diffusion 3.5 Large, Playground v3 are the open-weight leaders.

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%.

Setup walkthrough

  1. Install ComfyUI via Stability Matrix.
  2. ComfyUI Manager → Install Models → search "flux1-dev" → download (~23 GB).
  3. Load the default Flux Dev workflow. Resolution: 1024×1024 (or 1024×1536 for portraits).
  4. Settings: steps=20, guidance=3.5, sampler=Euler.
  5. Prompt: "Professional product photography of a ceramic coffee mug on a wooden table, morning sunlight through window, shallow depth of field, 85mm lens, photorealistic, 8K detail."
  6. First image in 10-15 seconds on RTX 3090 24 GB, 5-8 seconds on RTX 4090 24 GB.
  7. For faster iteration: use Flux Schnell (steps=4, 2-5 seconds on 24 GB) for quick previews, then switch to Flux Dev for final render.
  8. For SDXL-quality photorealism (lighter): use RealVisXL V5.0 or Juggernaut XL (~7 GB each, 8-15 seconds on 12 GB).

The cheap setup

Used RTX 3060 12 GB ($200-250, see /hardware/rtx-3060-12gb). Runs SDXL + RealVisXL at 1024×1024 in 8-15 seconds — very good photorealism for product shots, portraits, landscapes. Flux Schnell at FP8 (12 GB via GGUF) at 15-25 seconds — better text rendering and composition. Flux Dev requires FP8 quant to fit 12 GB — doable but slow (25-40 seconds). Pair with Ryzen 5 5600 + 32 GB DDR4 + 1TB NVMe. Total: ~$390-440. For photorealistic portraits, SDXL + RealVisXL on 12 GB gets you 85% of Flux quality at 2× speed.

The serious setup

Used RTX 3090 24 GB ($700-900, see /hardware/rtx-3090). Runs Flux Dev at 10-15 seconds per 1024×1024 — gold standard for local photorealism. Flux Schnell at 2-4 seconds for rapid iteration. Can also run Stable Diffusion 3.5 Large (14 GB) for alternate photorealism style. Pair with Ryzen 7 7700X + 64 GB DDR5 + 2TB NVMe. Total: $1,800-2,200. RTX 4090 24 GB ($1,600, see /hardware/rtx-4090) drops Flux Dev to 5-8 seconds and Flux Schnell to 1-2 seconds — the current single-GPU photorealism king.

Common beginner mistake

The mistake: Prompting a photorealistic model with vague, artistic descriptions ("beautiful forest, magical atmosphere, dreamy lighting") and expecting a photograph. Why it fails: The model interprets "beautiful, magical, dreamy" as artistic/illustration cues. It produces an illustrated forest with photo textures — the uncanny valley of "looks almost real but not quite." The fix: Use photography-specific language: specify camera ("shot on Sony A7III"), lens ("85mm f/1.4"), lighting ("golden hour, natural window light"), technical terms ("shallow depth of field, bokeh, 1/500 shutter speed"), and post-processing references ("edited in Lightroom"). Photography prompts produce photographs. Art prompts produce art. The model is a camera — speak its language.

Reality check

Image gen is compute-bound, not bandwidth-bound. VRAM matters for the resolution + LoRA training stack, but FP16 TFLOPS is what decides Flux throughput. The 5080's compute advantage over 5070 Ti shows here in ways it doesn't on LLM inference.

Common mistakes

  • Buying for VRAM ceiling without checking compute (16 GB Flux Dev FP16 doesn't fit anyway)
  • Skipping LoRA training requirements (24 GB minimum, 32 GB comfortable for Flux)
  • Underestimating ComfyUI's multi-model VRAM appetite vs A1111's single-pipeline
  • Using Q4 quantized image models — quality drop is more visible than on LLMs

What breaks first

The errors most operators hit when running photorealistic image generation locally. Each links to a diagnose+fix walkthrough.

Before you buy

Verify your specific hardware can handle photorealistic image generation before committing money.

Specialized buyer guides
Updated 2026 roundup