পাঠ ২৯ · ৩৫-এর মধ্যে · মডিউল ৪
Home / AI Courses / Computer Vision / Stable Diffusion

Stable Diffusion — image generation

Stable Diffusion — open-source text-to-image generation
৯ মিনিট পড়া উচ্চ · Advanced diffusers কোড

এই পাঠে যা শিখবেন

  • Diffusion model basics — forward + reverse process
  • Latent diffusion — efficiency trick
  • U-Net + CLIP cross-attention
  • Practical use — Hugging Face diffusers

১ · Diffusion model intuition

Diffusion modelDiffusion ModelGenerative model — image-এ gradually noise add (forward), reverse-এ denoise step by step (reverse). DDPM (Ho et al., 2020) original formulation. two process:

  • Forward: image → gradually noise add → pure Gaussian noise.
  • Reverse: noise → gradually denoise → image.

Train: at any noise level, network predict noise added. Inference: start from noise, denoise iteratively.

কেন্দ্রীয় ধারণা

Generation = "iterative denoising". Each step small refinement. 1000-step process (DDPM) → 20-50 step (DDIM, Euler) modern. Quality vs speed trade-off.

২ · Forward diffusion

$$x_t = \sqrt{\alpha_t} x_0 + \sqrt{1 - \alpha_t} \epsilon, \quad \epsilon \sim \mathcal{N}(0, I)$$

  • $x_0$: original image.
  • $x_t$: noisy version at step $t$।
  • $\alpha_t$: noise schedule (small for high noise).
  • $\epsilon$: random Gaussian noise.
  • $t = 0$ original, $t = T$ pure noise.

৩ · Reverse process — denoise

Network $\epsilon_\theta$ — predict noise added. Iteratively:

$$x_{t-1} = \frac{1}{\sqrt{\alpha_t}} \left( x_t - \frac{1 - \alpha_t}{\sqrt{1 - \bar{\alpha}_t}} \epsilon_\theta(x_t, t) \right) + \sigma_t z$$

  • $\epsilon_\theta$ trained to predict noise.
  • $z$: random Gaussian (stochasticity).
  • Step by step — clean image emerge.

৪ · Loss function

$$\mathcal{L} = \mathbb{E}_{x_0, t, \epsilon} \big[ \| \epsilon - \epsilon_\theta(x_t, t) \|^2 \big]$$

  • Training: take random image, random noise level, predict noise.
  • Simple MSE — surprisingly effective.

৫ · Latent diffusion — Stable Diffusion-এর key

Pixel-space diffusion expensive (1024×1024 = 3M pixel). Stable Diffusion idea:

  1. VAE encoder: 1024×1024 image → 128×128 latent (factor 8).
  2. Diffusion in latent space: 64x compute reduce.
  3. VAE decoder: denoised latent → image.

Original DDPM 4 days A100, SD same quality 1 day. Hardware affordable.

৬ · Architecture

  • VAE: Image ↔ latent (4×64×64 for 512×512 image).
  • U-Net: Latent + text + time → noise prediction. ~860M params.
  • CLIP text encoder: text prompt → embedding for cross-attention.
  • Scheduler: noise schedule (DDIM, Euler, DPM++).

৭ · Cross-attention with text

  • U-Net-এর each block — self-attention (image-internal).
  • + Cross-attention — image query, text key+value.
  • Text guides denoising.
  • "A cat" — denoise toward cat-like pattern.
Stable Diffusion = "sculptor with text instruction". Block of marble (random noise) → clear sculpture (image). Each chisel stroke (denoise step) refine. Text prompt = sculptor's intent.
Stable Diffusion — text-to-image generation 📝 "A cat" CLIP Text embedding 🌫 Random noise Latent 4×64×64 (8x smaller) U-Net Denoiser ~860M params cross-attn with text predict noise 20-50 step iterate Latent denoised VAE Decoder → 512×512 cat Latent diffusion — pixel-space-এর 64x সাশ্রয় LAION-5B trained, ~860M params, runs on consumer GPU SDXL, SD3, FLUX — progressive improvements
Stable Diffusion — VAE, U-Net, CLIP-এর integration. Latent space-এ diffusion compute-affordable.

৮ · Hugging Face diffusers

Python · diffusers
# pip install diffusers torch
from diffusers import StableDiffusionPipeline
import torch

model_id = "runwayml/stable-diffusion-v1-5"
pipe = StableDiffusionPipeline.from_pretrained(
    model_id,
    torch_dtype=torch.float16
).to("cuda")

prompt = "A photo of a Bengali cat sitting on a rickshaw, sunset, Dhaka"
image = pipe(
    prompt,
    num_inference_steps=30,
    guidance_scale=7.5,
).images[0]

image.save("output.png")
print("Generated!")

    
Few line of code, professional-quality image generate. 30 step typical. Guidance scale — text adherence (7-15).

৯ · Stable Diffusion versions

  • SD 1.4/1.5: 512×512, original.
  • SD 2.0/2.1: 768×768, OpenCLIP.
  • SDXL (২০২৩): 1024×1024, dual encoder, 6.6B params.
  • SD 3 (২০২৪): 8B params, T5 + CLIP, MMDiT architecture.
  • FLUX (Black Forest Labs, ২০২৪): 12B, current SOTA open.

১০ · Practical features

  • Image-to-image: input image + text → modified image.
  • Inpainting: mask region + text → fill in.
  • ControlNet: pose/depth/edge conditioning.
  • LoRA: efficient fine-tune for style.
  • DreamBooth: personalize on few subject images.
  • Textual inversion: learn new concept token.

১১ · Sampling schedulers

  • DDPM (1000 step): original, slow, high quality.
  • DDIM (50 step): deterministic, fast.
  • DPM-Solver++: 20 step competitive.
  • Euler: simple, popular.
  • UniPC, LCM: 1-4 step, real-time.

১২ · Bangladesh applications

  • Bangla art digitization.
  • Cultural content (festivals, rural scenes).
  • Educational visualization.
  • Marketing material generation.
  • Game asset for Bangla content creators.
  • Bangladesh-specific finetune — jamdani style, Dhaka skyline.
Stable Diffusion-এর responsibility — copyright, deepfake, NSFW concern. Bangladesh law gradually addressing. Personal/research use OK, commercial — license check.

ভাবনার প্রশ্ন

প্র ০১ "Latent diffusion" — pixel-space-এ diffusion থেকে কতটা সাশ্রয়? Quality compromise কী?

SD-এর key innovation. Trade-off carefully designed.

Pixel-space diffusion (DDPM):

  • 512×512 RGB = 786K dimension.
  • U-Net process this directly.
  • Compute O(786K × layer × step).
  • Training expensive — months on multi-GPU.

Latent diffusion:

  • VAE encode 512² → 4×64²= 16K dim. 48x reduction.
  • U-Net process 16K dim.
  • ~50x compute savings.
  • Single GPU training feasible.

VAE quality:

  • Encode-decode round-trip near-lossless.
  • 4-channel latent — semantic preserved.
  • Subtle texture lose minor.
  • Acceptable for generation quality.

Limitations:

  • Fine detail (text, eyes) — sometimes inaccurate.
  • Latent VAE bottleneck.
  • Pixel-space diffusion (Imagen, Sora) sometimes higher quality.

Modern variant:

  • SDXL: 4×128² latent (1024² image).
  • SD3: continuous latent (DiT-based).
  • FLUX: 16-channel latent.

Quality benchmark:

  • SD 1.5 FID 22.65.
  • SDXL FID 12.32.
  • FLUX FID 9.6.
  • Imagen (pixel) — 7.27.

Practical:

  • Affordable open access > marginal quality gain.
  • SD democratized image generation.

মূল উপলব্ধি: "Compress and process" — efficiency principle. Quality acceptable trade for accessibility.

প্র ০২ Guidance scale 7.5 — কেন এই specific value? Higher দিলে কী হয়?

Classifier-free guidance (CFG) — diffusion-এর crucial concept.

CFG mechanism:

  • Two prediction: conditional ($\epsilon_c$ with text), unconditional ($\epsilon_u$ empty prompt).
  • Combined: $\epsilon = \epsilon_u + s \cdot (\epsilon_c - \epsilon_u)$।
  • $s$ = guidance scale.
  • $s = 1$: condition-only baseline.
  • $s > 1$: amplify text influence.

Effect of scale:

  • $s = 1$: faithful to text but vague.
  • $s = 5$: good balance.
  • $s = 7.5$: sweet spot — text strong, quality.
  • $s = 15$: over-saturated, artifacts.
  • $s = 30$: "burnt" appearance, unnatural.

Why over-amplification bad:

  • Push prediction far from learned distribution.
  • Out-of-distribution image.
  • Quality degrade.

Empirical guidance scale by version:

  • SD 1.5: 7-8 default.
  • SDXL: 7-8.
  • SD 3: 7-9.
  • FLUX: 3.5 (different scale).

Negative prompts:

  • "low quality, ugly" — push away from these.
  • $\epsilon = \epsilon_u + s \cdot (\epsilon_c - \epsilon_n)$ where $n$ = negative.
  • Quality boost typically.

Tuning practice:

  • Photorealistic: 5-7.
  • Stylized: 8-12.
  • Abstract: 3-5.
  • Test variations.

মূল উপলব্ধি: CFG — text adherence dial. Tuning matters more than people realize.

প্র ০৩ SD-এর LAION-5B training data — copyright, bias. Stability AI কী legal challenge face করছে?

Generative AI legal landscape — actively evolving.

LAION-5B description:

  • 5 billion image-text pair.
  • Web-scraped (Common Crawl).
  • Includes copyrighted artwork, photo.
  • Released for research.

Major lawsuits:

  • Getty Images v. Stability AI (২০২৩): 12M Getty images allegedly trained. UK lawsuit.
  • Artist class action (২০২৩): Sarah Andersen, Karla Ortiz — copyright.
  • EU AI Act: training data transparency required.

Defendant arguments:

  • "Fair use" for transformative purpose.
  • Model doesn't store image directly.
  • Statistical pattern, not copy.

Plaintiff arguments:

  • Output sometimes near-copy of training image.
  • Style mimicry harmful.
  • Commercial use without permission.

Outcomes-so-far:

  • ২০২৪-এর অনেক case ongoing.
  • Some companies opt-out tools (NoAI metadata).
  • Adobe Firefly — licensed-only data training.
  • OpenAI DALL-E — partial license deal.

Bias issues:

  • "CEO" → mostly white male generate.
  • "Nurse" → mostly female.
  • Race, gender, geography bias clear.
  • Underrepresented culture (Bangladesh) — limited samples.

NSFW filter:

  • SD safety classifier.
  • Some users disable — controversy.
  • Deepfake concern.

Bangladesh implications:

  • Local artist style mimicry — copyright unclear.
  • Religious-cultural sensitivity.
  • No specific regulation yet.
  • Best practice: Bangladesh-specific dataset finetune (licensed).

Future direction:

  • Training data transparency mandates.
  • Opt-in/opt-out tools.
  • Compensation models (Adobe paid contributors).
  • License-only model proliferate.

মূল উপলব্ধি: Generative AI ethical-legal pipeline still developing. Engineer responsibility — informed deployment. "Just because possible doesn't mean ethical."

প্র ০৪ Bangladesh-এ Stable Diffusion local finetune — কীভাবে? "Bangladesh-themed" image generate-এ কী strategy?

Real opportunity for Bangladesh creators.

Why local finetune:

  • Default SD weak on Bangladesh imagery.
  • "Dhaka street" — stereotypical Asian street, wrong.
  • "Jamdani sari" — generic floral, missing actual pattern.
  • "Eid prayer" — partial Middle East pattern, not Bangladesh.

Finetune approach 1 — Full finetune:

  • 10K+ Bangladesh-themed image.
  • Full model (860M params) update.
  • Cost: $500-2000 cloud GPU.
  • Most flexible.

Approach 2 — DreamBooth:

  • 5-20 image of specific subject.
  • "Sks rickshaw" → trained tag.
  • Cost: $5-50.
  • Subject-specific.

Approach 3 — LoRA (most popular):

  • Low-rank adaptation — small additional weights.
  • 50-200 images per concept.
  • Cost: $5-20.
  • Easy combine multiple LoRAs.

Approach 4 — Textual inversion:

  • Learn new token embedding.
  • Few image.
  • No model weight change.
  • Smallest cost.

Bangladesh dataset sources:

  • Public domain art (museums).
  • Wikimedia Bangladesh photos.
  • Creative Commons galleries.
  • Custom photography.
  • Museum partnership (Bangladesh National Museum).

Concept categories:

  • Architecture: Lalbagh, Ahsan Manzil, Sundarbans.
  • Festival: Pohela Boishakh, Eid, Durga Puja.
  • Clothing: jamdani, panjabi, lungi.
  • Food: biryani, hilsa, pithas.
  • Vehicle: rickshaw, CNG, nouka.
  • Nature: Padma, tea garden, paddy field.

Toolkits:

  • Hugging Face autotrain.
  • Kohya_ss (popular LoRA trainer).
  • OneTrainer.
  • Cloud: RunPod, Vast.ai.

Quality assurance:

  • Cultural review by Bangladeshi artists.
  • Avoid stereotype reinforcement.
  • Religious sensitivity check.
  • Test diverse demographic prompts.

Distribution:

  • Hugging Face / CivitAI publish.
  • Open license (Apache 2.0) preferred.
  • Community contribution.

Business opportunity:

  • Local marketing — culturally accurate visual.
  • Educational content.
  • Game/comic creator support.
  • Tourism promotion visual.

মূল উপলব্ধি: Foundation model + local finetune = Bangladesh creative AI ecosystem. Investment small, impact significant. Cultural representation critical.

অনুশীলন

  1. SD inference: Hugging Face diffusers দিয়ে একটি simple text-to-image generate.

    Code section ৮-এ। Free Colab GPU দিয়ে চালানো যায়।

  2. Img-to-img: input image + prompt, modify.
    from diffusers import StableDiffusionImg2ImgPipeline
    pipe = StableDiffusionImg2ImgPipeline.from_pretrained("...", torch_dtype=torch.float16).to("cuda")
    result = pipe(prompt="anime style", image=src_image, strength=0.7).images[0]
  3. ভাবুন: Bangladesh marketing agency — SDXL Bangla theme content generate. Workflow design করুন।

    (1) LoRA finetune — local culture. (2) Prompt template Bangla concept-এ। (3) ControlNet pose-অনুযায়ী। (4) Manual curation. (5) Cultural review committee.

আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ

কোড রানার কাজ না করলে? Google Colab use করুন।
পূর্ববর্তী পাঠ
পাঠ ২৮ · DETR