Diffusion model Stable Diffusion sinh ảnh AI cơ bản

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.

Kiến trúc Stable Diffusion U-Net denoising network

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

  1. VAE Encoder/Decoder: Nén ảnh x → latent z, giải mã z → x’. Downsampling factor f=8.
  2. 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.
  3. 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.

Forward và reverse diffusion process thêm nhiễu từng bước

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 keyword2
  • keyword từ 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.

Training pipeline DDPM noise prediction objective loss function

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 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:

Tôi là một lập trình viên IOS. Code chính là IOS nhưng thỉnnh thoảng vẫn đá sang Android hoặc web. Mặc dù không quá thông thạo nhưng tôi sẽ chia sẻ những kiến thức mà mình đã tìm hiểu, áp dụng qua.

Bài viết liên quan

Sơ đồ đồ thị LangGraph với các node và edge điều khiển luồng Agent

LangGraph: Xây dựng AI Agent stateful với graph-based workflow

LangGraph là gì? LangGraph là framework của LangChain cho phép xây dựng AI Agent có trạng thái (stateful) dựa trên đồ thị (graph). Khác với Chain đơn giản thực thi…

Xem thêm

AI Observability: Giám sát, debug và tối ưu hệ thống AI production

Hệ thống AI đưa vào production khác biệt hoàn toàn so với thử nghiệm trong lab. Trong lab, bạn đo lường accuracy, loss, perplexity trên tập test cố định. Trong…

Xem thêm
GitHub Copilot AI code review

AI Code Review tự động: GitHub Actions kết hợp LLM phát hiện bug, bảo mật, style

AI Code Review tự động: GitHub Actions kết hợp LLM phát hiện bug, bảo mật, style AI Code Review đang thay đổi cách team phát triển phần mềm duy trì…

Xem thêm
0 0 đánh giá
Article Rating
Theo dõi
Thông báo của
guest
0 Comments
Cũ nhất
Mới nhất Được bỏ phiếu nhiều nhất