This article is a spinoff of Local image generation on Mac: 10 models compared, my top pick flipped. Per-model deep dive, v4.
TL;DR
- Stable Diffusion 3.5 Medium is Stability AI's 2024 mid-weight DiT-family model
- On Mac M1 Max 64GB / Apple MPS, ~5 min per image (28 step / 1024px / bf16), 4+ min to load
- Textbook "passes the thumbnail test, fails the full-resolution test." DiT detail rendering is half-baked
- License: Stability Community License — commercial OK if you make less than $1M/month
- Verdict: OK for thumbnails / SNS, weak as full-resolution illustration. Tough position post Flux / Qwen
Why include this model
The latest from Stability AI, the DiT (Diffusion Transformer) entry. I gave it a slot to test "how far did SD 3.5 actually progress" — Stability AI's own answer.
What I expected:
- Resolution and composition improvements from the DiT shift
- Text rendering improvements via T5-XXL text encoder (same as Flux family)
- Whether SDXL's "element-addition habit" is gone
What disappointed me:
- 5GB model takes 5 min per image: bf16 + DiT is slow on Apple MPS
- Even DiT-based, 1024-trained — looks weird on close inspection: pixel-level is sharp, but body / object placement is awkward
- License is mildly tangled: Stability Community License is "free commercial, but enterprise license required above $1M/month"
Verdict: "stable mid-tier." It's the legitimate evolution of SDXL base, but with Flux family around, this mid-weight slot is a hard sell.
Environment setup
pip install diffusers==0.37.1 torch==2.11.0 transformers
Load code:
from diffusers import StableDiffusion3Pipeline
import torch
pipe = StableDiffusion3Pipeline.from_pretrained(
"stabilityai/stable-diffusion-3.5-medium",
torch_dtype=torch.bfloat16, # ★ bf16 recommended
).to("mps")
image = pipe(
prompt="...",
num_inference_steps=28,
guidance_scale=4.5,
height=1024,
width=1024,
).images[0]
Hardware requirements:
| Item | Value |
|---|---|
| Mac | M1 Max / 64GB |
| Model | 5GB (bf16) |
| Resolution | 1024x1024 |
| Per image | ~5 min (28 step / 1024px / MPS) |
| Load time | ~4 min (model + T5-XXL + everything) |
| HF gated repo | Requires application (Stability AI license consent) |
stabilityai/stable-diffusion-3.5-medium is a gated repo on HF. Wait a few hours to a day after applying.
All 8 prompts
| # | Prompt | Image | Time |
|---|---|---|---|
| 01 | a cute cat sitting on a wooden bench in a sunny park | ![]() |
5m38s |
| 02 | a bowl of ramen with chashu and soft-boiled egg | ![]() |
5m1s |
| 03 | a wooden sign with "LOCAL AI" | ![]() |
5m0s |
| 04 | a developer's t-shirt with "M1 MAX 64GB" retro 80s style | ![]() |
4m57s |
| 05 | a woman developer working at a laptop | ![]() |
4m57s |
| 06 | a glowing AI brain made of circuits and neon | ![]() |
4m57s |
| 07 | three robots playing chess in a sunlit library | ![]() |
5m2s |
| 08 | a wooden izakaya sign with the kanji "居酒屋" | ![]() |
5m4s |
Total for 8 images: ~40 min. Faster than Flux dev (96 min), slower than SDXL base (8 min). "Heavy for a mid-weight" is SD 3.5's defining feel.
Per-prompt evaluation
01 Cat — pretty good, passes the thumbnail bar
Tabby, bench, natural light, depth of field. Clearly beats SDXL base / SD 1.5 on photorealism. Holds up as a thumbnail; zoom in at full resolution and the fur texture gets a bit mushy.
| Flux dev (2024) | Qwen Lightning (2025) | SD 3.5 Medium (2024) |
|---|---|---|
![]() |
![]() |
![]() |
| Drifts to anime / illustration | Mostly photorealistic, slight illustration feel | Thumbnail OK, fur mushy at full size |
02 Ramen — chashu reads as ham/salami
No cilantro, single egg ✓ — culturally OK, but the chashu reads as ham/salami with zero braised feel. The "Japanese ramen" vibe is there, but the meat texture leaks "Western interpretation."
| Flux dev (2024) | Qwen Lightning (2025) | SD 3.5 Medium (2024) |
|---|---|---|
![]() |
![]() |
![]() |
| Cilantro included (SE Asian crossover) | Just the green vegetable, otherwise perfect | Chashu reads as ham/salami |
03 LOCAL AI — extra "L" prefix → L LOCAL AI
The sign reads L LOCAL AI — extra "L" prefixed. SDXL's "element-addition habit" carried over to SD 3.5. Text rendering itself improved a lot vs SD 1.5, but the "let me add one more" tic isn't gone.
| SDXL base (2023) | Flux dev (2024) | SD 3.5 Medium (2024) |
|---|---|---|
![]() |
![]() |
![]() |
| Degrades to "LOCAL LL" | "LOCAL AI" perfect, even has lens flare | Extra "L" prefixed |
→ SDXL → SD 3.5 → Flux family = the staircase of text rendering improvement. SD 3.5 is at "spells, but adds."
04 M1 MAX 64GB t-shirt — t-shirt vanishes, only the logo floats
Prompt says "developer's t-shirt." What came out: just the logo floating on a blue background. The t-shirt fully vanished. Same symptom as SDXL base's robot-character output — textbook example of the text encoder failing to interpret "t-shirt with text printed on it."
Text:
- "M1" → became "M1 1" (digit duplicated)
- "MAX" → reflected ✓
- "64GB" → reflected ✓
| SDXL base (2023) | Flux dev (2024) | SD 3.5 Medium (2024) |
|---|---|---|
![]() |
![]() |
![]() |
| T-shirt vanishes → robot character | Perfect print on t-shirt, 80s synthwave | T-shirt vanishes → logo on blue background |
→ The "t-shirt + text" prompt collapse on SDXL family / SD 3.x is a structural problem. Only when you reach Flux family's T5-XXL does "t-shirt with text printed on it" actually parse correctly.
05 Woman developer — textbook "thumbnail OK, full size weird"
Looks fine at first. Zoom in at full resolution:
- Paper cup placed on top of the laptop keyboard (a spilled drink = several hundred dollars of damage)
- Fingers holding the coffee cup are clipping through it
- Hair detail is slightly mushy
| Qwen Lightning (2025) | Flux dev (2024) | SD 3.5 Medium (2024) |
|---|---|---|
![]() |
![]() |
![]() |
| OK as stock photo | Photorealistic, perfect | Thumbnail OK, full-size NG (cup-on-PC, fingers clipping) |
→ This is the "looks fine as a thumbnail, falls apart when you zoom in." SNS thumbnails or article headers shrink it enough to hide the issues; full-size use loses points.
06 AI brain — holds up, but loses to Flux dev
Neon circuit brain. Mid-tier vs SDXL base / Flux dev. Vibe is there, but resolution and particle feel are dominated by Flux dev.
| Flux dev (2024) | Qwen Lightning (2025) | SD 3.5 Medium (2024) |
|---|---|---|
![]() |
![]() |
![]() |
| Particles, light streaks, top of local | Practical, improved over Full | Has vibe, cleaner than SDXL base |
→ For abstract art, SD 3.5 lands mid-tier in local. It loses on particles / resolution to top-tier Flux dev, but is cleaner than SDXL base. For cyberpunk / neon priority, go to Flux dev.
07 Robots and chess — drops the count (3 → 2), regression from SDXL base
Prompt says "three robots." Output: two robots. SDXL base could draw 3 here, but the successor SD 3.5 Medium regresses to 2. And this is despite using T5-XXL.
| SDXL base (2023) | Flux dev (2024) | SD 3.5 Medium (2024) |
|---|---|---|
![]() |
![]() |
![]() |
| Three drawn correctly | 3 (count holds, plus rich expression) | 2 (count regresses) |
→ T5-XXL is the same in SD 3.5 and Flux family. Yet Flux family handles "three" cleanly. SD 3.5 dropping the count is likely a DiT capacity issue, not text encoder. Worth remembering as a "regression from the previous SDXL base" phenomenon.
08 Izakaya — vibe is good but kanji is fake "未学夏"
Atmospheric wood storefront, paper lantern, night alley. Slightly better vibe than SDXL base, but the kanji on the sign is fake characters that look like "未学夏". Kanji rendering is unsolved territory until Qwen family ships.
| Flux dev (2024) | Qwen Lightning (2025) | SD 3.5 Medium (2024) |
|---|---|---|
![]() |
![]() |
![]() |
| Upscale wooden teahouse aesthetic (wrong category — see v6) + fake "典桔" | "居酒屋" perfect, storefront and warm light complete | Has vibe, fake kanji "未学夏"-ish |
What worked
- Composition improved via DiT shift: SDXL's "added elements" reduced (not gone)
- T5-XXL clearly improves text rendering: clean step up over SDXL base / SD 1.5
- Holds up in abstract art: AI brain, cyberpunk vibe come out reasonably
- 5GB mid-weight: coexists with other Mac work
- Stability Community License: commercial OK if revenue < $1M/month (covers most individuals / SMBs)
What didn't
- "Thumbnail OK, full-size weird": cup-on-PC, finger clipping, etc.
- 5GB but 5 min/image: bf16 is slow on Apple MPS, inefficient
- Element-addition habit lingers: extra "L" in "L LOCAL AI," reduced robot count
- Asian elements still weak: fake "未学夏," chashu-as-ham
- Tough position post Flux family: Flux schnell at the same size is Apache 2.0 and higher quality
Where this model still earns its keep
Honestly: SD 3.5 Medium quality isn't at 2026 practical standards.
- 02 ramen's chashu reads as ham/salami, zero braised feel
- 03 LOCAL AI gets an extra "L"
- 04 the t-shirt vanishes, only the logo floats
- 05 cup on the PC, fingers clip through the cup
- 07 reduces "three" to "two"
- 08 fake kanji "未学夏"
- 5 min per image (2.5× Flux schnell, on par with Qwen Lightning)
These never happen with Flux schnell / Flux dev / Qwen Lightning. SD 3.5 Medium is not a "modern illustration candidate." Reasons to still use it:
- ✅ SNS thumbnails / article headers: shrunk, the full-size issues hide; lighter than Flux family
- ✅ 5GB mid-weight: when Flux family (23GB) won't fit your VRAM
- ✅ Abstract art / key visuals: 06 AI brain loses to Flux dev but is cleaner than SDXL base
- ❌ Article illustrations (full size): zoom-in problems. Use Flux dev / Qwen Lightning
- ❌ Part of this article's adoption plan: SD 3.5 doesn't fit (English-circle = Flux dev / Asian = Qwen Lightning)
Gotchas / tips
1. Always specify bf16
# ❌ fp16 loses precision in some layers and breaks
pipe = StableDiffusion3Pipeline.from_pretrained(model_id, torch_dtype=torch.float16)
# ✅ bf16 is the SD 3.5 standard
pipe = StableDiffusion3Pipeline.from_pretrained(model_id, torch_dtype=torch.bfloat16)
SD 3.5 was trained in bf16. Running fp16 degrades quality on some images. bf16 is slow on Apple MPS, but quality requires it.
2. Expect 4-min loads
T5-XXL and surrounding components are heavy — initial load takes 4+ min. You pay this every script start, so process multiple prompts in one session.
3. Don't forget the HF gated-repo application
stabilityai/stable-diffusion-3.5-medium is gated on HF. Sign in to Hugging Face and apply → wait a few hours to a day. Same trap as Flux dev.
4. License trap: Stability Community License
Free commercial OK, but revenue above $1M/month requires a separate enterprise license. Personal blogs / SMBs are fine; large-scale commercial needs care.
5. SD 3 / SD 3.5 / SD 3.5 Large
| Model | Size | Released | Position |
|---|---|---|---|
| SD 3 | 8GB | Jun 2024 | Anatomy collapse, controversy, deprecated |
| SD 3.5 Medium | 5GB | Oct 2024 | This article's subject, stable |
| SD 3.5 Large | 17GB | Oct 2024 | High-resolution version, out of scope |
Going for SD 3 and landing on SD 3.5 is the correct path. SD 3 had ugly anatomy, SD 3.5 fixed it.
Comparison article and next models
Related articles in this series:
- v2 SDXL base 1.0 — Mid-tier stability with a habit of adding elements (previous-gen mid-tier)
- v5 Flux.1 [schnell] — Apache 2.0 with 4-step distillation (same-size rival)
- v6 Flux.1 [dev] — Top photorealism for local (upper alternative)
Test environment: Mac M1 Max 64GB / macOS 25.4 / Python 3.14 / Diffusers 0.37.1 / PyTorch 2.11 (MPS) Run log: 2026-04-29, SD 3.5 Medium (stabilityai/stable-diffusion-3.5-medium, 28-step / guidance 4.5 / bf16 / 1024px)























