অধ্যায়Phase 6 · মডার্ন AI ভিশন
6.3 22 মিনিট পড়া
Stable Diffusion Basics
Latent diffusion কীভাবে কাজ করে।
🎬 গল্প দিয়ে শুরু
Midjourney, DALL·E 3, Stable Diffusion — text লিখলেই ছবি। GAN থেকে rule পাল্টে দিল Diffusion Model। কিভাবে noise থেকে ছবি তৈরি হয়?
মূল আইডিয়া — ছবিকে noise বানিয়ে আবার বানানো
- Forward process: ছবিতে ধাপে ধাপে Gaussian noise যোগ — শেষে pure noise।
- Reverse process: একটি network শেখে noise predict করতে → noise বিয়োগ করে ছবি ফিরিয়ে আনে।
- Inference-এ pure noise থেকে শুরু → ধাপে ধাপে denoise → নতুন ছবি।
text
x₀ (real) → +noise → x₁ → ... → x_T (pure noise)
x_T → predict noise → x_{T-1} → ... → x₀ (generated)Latent Diffusion — Stable Diffusion-এর চাবি
512×512 pixel-এ diffusion = ভয়াবহ ব্যয়বহুল। সমাধান: একটি VAE encoder দিয়ে ছবিকে 64×64 latent-এ নামাও → সেখানে diffusion করো → decoder দিয়ে pixel-এ ফেরাও। ৪৮× দ্রুত!
text
Image 512x512x3 ─VAE Enc─► latent 64x64x4
│
text ─CLIP─► cross-attn
▼
UNet (denoise, T steps)
│
latent ─VAE Dec─► Image৪টি মূল component
- Text Encoder (CLIP/T5) — prompt-কে vector-এ রূপান্তর।
- UNet — denoising network, text-এর সাথে cross-attention।
- VAE — pixel ↔ latent রূপান্তর।
- Scheduler (DDIM, DPM++) — কত step, কীভাবে noise কমাবে।
Diffusers library — ১০ লাইনে generate
bash
pip install diffusers transformers accelerate torchpython
sd_generate.py
from diffusers import StableDiffusionPipeline
import torch
pipe = StableDiffusionPipeline.from_pretrained(
"runwayml/stable-diffusion-v1-5",
torch_dtype=torch.float16,
).to("cuda")
img = pipe(
"a serene tea garden in Sylhet at sunrise, cinematic, 4k",
num_inference_steps=30,
guidance_scale=7.5,
).images[0]
img.save("out.png")Guidance scale
higher = prompt-এর প্রতি আনুগত্য বেশি কিন্তু creativity কম (typical 6–9)।
Image-to-Image ও Inpainting
python
from diffusers import StableDiffusionImg2ImgPipeline, StableDiffusionInpaintPipeline
# img2img — sketch থেকে রঙিন painting
# inpaint — mask এলাকা নতুন করে generate (object removal, replace)Fine-tuning কৌশল
- DreamBooth — ৫–১০টি photo দিয়ে নিজের মুখ/বস্তু শেখানো।
- LoRA — হালকা adapter, কম GPU-তে style train (~50 MB)।
- Textual Inversion — নতুন token শেখা।
- ControlNet — pose/edge/depth দিয়ে precise control।
পরবর্তী প্রজন্ম
- SDXL, SD3 — আরও বড় UNet, ভালো text rendering।
- Flux — DiT (Diffusion Transformer) backbone।
- Video diffusion — Sora, Veo, Runway।
প্র্যাকটিস টাস্ক
- SD 1.5 দিয়ে ১০টি Bangladesh tourism poster বানান।
- ControlNet (Canny) দিয়ে sketch থেকে rendered illustration বানান।
- LoRA train করে নিজের লোগো-style ছবি generate করুন।