
Diffusion model là gì? Nguyên lý sinh ảnh từ nhiễu
Diffusion model là một lớp mô hình sinh (generative model) học cách khôi phục dữ liệu gốc từ nhiễu Gaussian. Khác với GAN dùng đối kháng generator-discriminator hay VAE tối ưu lower bound, diffusion model chạy quá trình forward diffusion (thêm nhiễu dần dần cho đến khi thành nhiễu thuần túy) và reverse diffusion (học mạng neural dự đoán nhiễu để khôi phục ảnh).
Ý tưởng cốt lõi: nếu biết cách thêm nhiễu, ta có thể học cách ngược lại — denoise — để sinh ảnh. Paper gốc Denoising Diffusion Probabilistic Models (DDPM) của Ho et al. 2020 đặt nền móng, sau đó Stable Diffusion (Rombach et al.) đưa latent diffusion lên production.

Stable Diffusion: Latent diffusion thay vì pixel diffusion
Stable Diffusion không hoạt động trên không gian pixel (512x512x3 = 786k chiều) mà nén ảnh xuống latent space thông qua autoencoder (VAE). Latent thường là 64x64x4 = 16k chiều — giảm 48x tính toán.
Kiến trúc 3 thành phần chính
- VAE Encoder/Decoder: Nén ảnh x → latent z, giải mã z → x’. Downsampling factor f=8.
- U-Net denoiser: Mạng neural dự đoán nhiễu ε̂(z_t, t, c) điều kiện trên timestep t và text conditioning c.
- Text Encoder (CLIP ViT-L/14): Chuyển prompt thành embedding 768-d để điều kiện U-Net.
Quá trình inference: bắt đầu từ z_T ~ N(0,I), lặp T bước (thường 20-50 với sampler hiện đại) để thu được z_0, sau đó VAE decode ra ảnh.

Các phiên bản Stable Diffusion quan trọng
| Phiên bản | Ngày | Đặc điểm nổi bật | Resolution |
|---|---|---|---|
| SD 1.5 | 10/2022 | Cơ sở, 983M params, LAION-5B subset | 512×512 |
| SD 2.1 | 12/2022 | OpenCLIP ViT-H, 768×768 native, NSFW filter | 768×768 |
| SDXL 1.0 | 07/2023 | 2.6B params, dual text encoder, 1024×1024 native | 1024×1024 |
| SDXL Turbo | 11/2023 | Adversarial distillation, 1-4 step inference | 512×512 |
| SD 3 Medium | 06/2024 | Multimodal Diffusion Transformer (MMDiT), 2B params | 1024×1024 |
Khuyến nghị 2025: SDXL 1.0 là cân bằng tốt nhất quality/speed/community. SD 3 Medium yêu cầu license non-commercial, ít ecosystem hỗ trợ.
Cài đặt chạy local: Automatic1111 WebUI
Cách phổ biến nhất cho người mới:
# 1. Clone repo
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
cd stable-diffusion-webui
# 2. Tải model SDXL (hoặc SD 1.5) về models/Stable-diffusion/
# SDXL base: https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0
# SDXL refiner: https://huggingface.co/stabilityai/stable-diffusion-xl-refiner-1.0
# 3. Chạy (Windows: webui-user.bat, Linux/Mac: ./webui.sh)
./webui.sh --listen --xformers --enable-insecure-extension-access
Truy cập http://localhost:7860. Option --xformers bật memory-efficient attention (giảm VRAM ~30%). Option --listen cho phép truy cập từ mạng LAN.
Prompt engineering cho Stable Diffusion
Khác với LLM, prompt SD tuân theo cú pháp có trọng số:
(keyword:1.2)tăng trọng số 20%[keyword1:keyword2:0.5]schedule: bước đầu dùng keyword1, sau 50% bước chuyển sang keyword2keywordtừ khóa bình thường--neg "ugly, deformed, low quality"negative prompt loại bỏ yếu tố không mong muốn
Template khuyến nghị:
masterpiece, best quality, ultra high res, (photorealistic:1.3), 8k uhd, dslr,
high quality, film grain, Fujifilm XT3 --neg (worst quality:2), (low quality:2),
(normal quality:2), lowres, bad anatomy, bad hands, normal quality, ((monochrome)),
((grayscale)), skin spots, acnes, skin blemishes, age spot, glans, extra fingers,
fewer fingers, strange fingers, too many fingers, missing fingers
Sampler, CFG scale, Steps: Chọn sao cho đúng
| Tham số | Khuyến nghị | Giải thích |
|---|---|---|
| Sampler | DPM++ 2M Karras / Euler a | DPM++ 2M Karras hội tụ nhanh, Euler a cho artistic |
| Steps | 20-30 (SDXL), 25-30 (SD 1.5) | Diminishing returns sau 30 bước |
| CFG Scale | 5-7 (SDXL), 7-9 (SD 1.5) | Càng cao càng tuân thủ prompt, nhưng dễ burn |
| Hires. fix | Bật, upscaler 4x-UltraSharp | Fix chi tiết khuôn mặt/tay ở resolution cao |
| VAE | sdxl_vae.safetensors / vae-ft-mse-840000 | VAE external cho màu sắc chính xác hơn |
ControlNet: Kiểm soát composition chính xác
ControlNet thêm điều kiện không gian (canny, depth, openpose, scribble, seg) vào U-Net qua zero-conv layers. Cho phép:
- Canny: Giữ edge map từ ảnh tham chiếu
- OpenPose: Đặt pose nhân vật từ ảnh có sẵn
- Depth: Giữ cấu trúc không gian 3D
- Tile: Upscale chi tiết lớn không thay đổi composition (SDXL)
Cài đặt: tab Extensions → Available → Load from → tìm “ControlNet” → Install → restart WebUI. Tải model ControlNet từ lllyasviel/ControlNet-v1-1.

LoRA: Fine-tuning nhẹ cho style/character
LoRA (Low-Rank Adaptation) train thêm ma trận low-rank A, B vào attention layers, chỉ ~0.1-1% params. File LoRA thường 8-200 MB, load động:
prompt bình thường
Nguồn LoRA: Civitai (community lớn nhất), Hugging Face. Luôn kiểm tra license (thường là CreativeML OpenRAIL-M cho base model, LoRA tùy tác giả).
Tối ưu VRAM cho GPU consumer
| VRAM | Cấu hình khuyến nghị |
|---|---|
| 8 GB (RTX 3070/4060) | SD 1.5: –medvram –xformers; SDXL: –lowvram –xformers –opt-split-attention-v1 |
| 12 GB (RTX 3060 12GB/4070) | SDXL base + refiner: –xformers; có thể tắt –medvram |
| 16-24 GB (RTX 3080/3090/4080/4090) | Full SDXL + ControlNet + Hires fix không lo VRAM |
Mac Apple Silicon (M1/M2/M3): dùng Fooocus hoặc MPS backend, unified memory cho phép chạy SDXL tại 16-24 GB RAM.
So sánh nhanh: Stable Diffusion vs Midjourney vs DALL-E 3
| Tiêu chí | Stable Diffusion | Midjourney v6 | DALL-E 3 |
|---|---|---|---|
| Chi phí | Miễn phí (local), pay-per-use (cloud) | $10-30/tháng | $20/tháng (ChatGPT Plus) |
| Kiểm soát | Tuyệt đối (ControlNet, LoRA, inpaint) | Hạn chế (–cref, –sref) | Hạn chế (chỉ prompt) |
| Chất lượng nghệ thuật | Tùy model/LoRA, cần tuning | Rất cao out-of-box | Rất cao, tuân thủ prompt tốt |
| NSFW | Cho phép (local) | Chặn | Chặn nghiêm ngặt |
| Offline | Có | Không | Không |
Kết luận
Diffusion model Stable Diffusion là nền tảng sinh ảnh AI mạnh mẽ, mở (open-weight), chạy được local trên GPU consumer. Hiểu rõ latent diffusion, prompt engineering, sampler/CFG, ControlNet, LoRA giúp bạn tận dụng tối đa công cụ này cho thiết kế, concept art, marketing, hoặc nghiên cứu. Cộng đồng Civitai/Hugging Face cung cấp hàng nghìn model/LoRA miễn phí — điểm mạnh lớn nhất so với các dịch vụ closed-source.
Tham khảo thêm:
- Stable Diffusion GitHub: github.com/Stability-AI/stablediffusion
- Automatic1111 WebUI: github.com/AUTOMATIC1111/stable-diffusion-webui
- Civitai model hub: civitai.com
- Prompt guide: openart.ai/promptbook
