Stable Diffusion ইন্সটলেশন এবং সেটআপ

Latest Technologies - স্টেবল ডিফিউশন (Stable Diffusion)
67
67

Stable Diffusion ইন্সটল এবং সেটআপ করার জন্য আপনার একটি GPU এবং CUDA সাপোর্টেড সিস্টেম থাকতে হবে। Stable Diffusion একটি শক্তিশালী মডেল যা PyTorch ফ্রেমওয়ার্ক এবং ডিফিউশন মডেল ব্যবহার করে ইমেজ জেনারেশন করে। নিচে ধাপে ধাপে ইন্সটলেশন এবং সেটআপ গাইড দেওয়া হলো:

ধাপ ১: প্রয়োজনীয়তা চেক করা

  1. Python (3.8 বা তার উপরে): আপনার সিস্টেমে Python ইন্সটল থাকতে হবে।
  2. CUDA এবং NVIDIA GPU: Stable Diffusion মডেলগুলো ট্রেনিং এবং ইনফারেন্সের জন্য GPU ব্যবহার করে, তাই CUDA সমর্থিত NVIDIA GPU থাকতে হবে।
  3. PyTorch: PyTorch ফ্রেমওয়ার্ক ইন্সটল করতে হবে যা GPU এবং CUDA সাপোর্ট করে।

ধাপ ২: পরিবেশ তৈরি করা (Optional, কিন্তু সুপারিশযোগ্য)

Stable Diffusion এর জন্য একটি আলাদা Python পরিবেশ তৈরি করা ভালো, যাতে অন্যান্য লাইব্রেরির সাথে সংঘর্ষ এড়ানো যায়। আপনি Anaconda বা Virtualenv ব্যবহার করতে পারেন।

Anaconda ব্যবহার করে:

conda create -n stable_diffusion python=3.9
conda activate stable_diffusion

Virtualenv ব্যবহার করে:

python -m venv stable_diffusion_env
source stable_diffusion_env/bin/activate  # Linux/ Mac
stable_diffusion_env\Scripts\activate  # Windows

ধাপ ৩: PyTorch ইন্সটল করা

PyTorch এবং CUDA ইন্সটল করুন। PyTorch-এর অফিসিয়াল ওয়েবসাইটে ইনস্টলেশন কমান্ড দেওয়া আছে। সাধারণভাবে, নিচের মতো একটি কমান্ড PyTorch এবং CUDA ইন্সটল করতে পারেন:

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

নোট: উপরের কমান্ডে cu118 নির্দেশ করছে যে এটি CUDA 11.8 এর জন্য PyTorch ইনস্টল করছে। আপনার GPU এবং CUDA ভার্সনের সাথে এটি সামঞ্জস্যপূর্ণ কিনা তা নিশ্চিত করুন।

ধাপ ৪: প্রয়োজনীয় লাইব্রেরি ইন্সটল করা

Stable Diffusion চালাতে কয়েকটি অতিরিক্ত লাইব্রেরি প্রয়োজন:

pip install transformers diffusers accelerate scipy ftfy
  • transformers: এটি Hugging Face-এর ট্রান্সফরমার লাইব্রেরি, যা মডেল পরিচালনা করতে সাহায্য করে।
  • diffusers: Stable Diffusion মডেলের জন্য Hugging Face-এর ডিফিউশন মডেল লাইব্রেরি।
  • accelerate: মডেলের ট্রেনিং এবং ইনফারেন্সে একাধিক GPU ব্যবহারের জন্য।
  • scipy এবং ftfy: সাপোর্ট লাইব্রেরি যা ইমেজ প্রসেসিং এবং টেক্সট প্রম্পট প্রসেসিংয়ে ব্যবহৃত হয়।

ধাপ ৫: মডেল ডাউনলোড করা

Hugging Face-এর Diffusers লাইব্রেরি ব্যবহার করে Stable Diffusion মডেল ডাউনলোড করা যায়। প্রথমে আপনাকে Hugging Face-এ একটি একাউন্ট তৈরি করতে হবে এবং API টোকেন সংগ্রহ করতে হবে।

pip install huggingface_hub
huggingface-cli login

আপনার API টোকেনটি ইনপুট করুন এবং লগইন সম্পন্ন করুন।

ধাপ ৬: Stable Diffusion মডেল লোড এবং ইন্সটল করা

Stable Diffusion মডেল লোড করতে নিচের কোড ব্যবহার করুন:

import torch
from diffusers import StableDiffusionPipeline

# মডেল লোড করা
pipe = StableDiffusionPipeline.from_pretrained("CompVis/stable-diffusion-v1-4").to("cuda")
  • CompVis/stable-diffusion-v1-4 হলো মডেলের নাম যা Hugging Face-এর ডিফিউজার লাইব্রেরি থেকে পাওয়া যায়। আপনি চাইলে অন্য সংস্করণও ব্যবহার করতে পারেন।
  • .to("cuda") দিয়ে মডেলটিকে GPU তে পাঠানো হচ্ছে।

ধাপ ৭: একটি ইমেজ জেনারেট করা

Stable Diffusion দিয়ে একটি ইমেজ জেনারেট করতে নিচের কোড ব্যবহার করুন:

prompt = "A futuristic cityscape at sunset, cyberpunk style"
image = pipe(prompt).images[0]

# ইমেজ সেভ করা
image.save("generated_image.png")

এই কোডে:

  • একটি প্রম্পট দিয়ে ইমেজ তৈরি করা হয়।
  • জেনারেট করা ইমেজটি .save() ফাংশনের মাধ্যমে সেভ করা হয়।

ধাপ ৮: মডেলের গতি বাড়ানো (Optional)

মডেলটির পারফরম্যান্স উন্নত করার জন্য আপনি half-precision (fp16) ব্যবহার করতে পারেন, যা GPU মেমোরি কম ব্যবহার করে এবং ইনফারেন্স দ্রুত করে:

pipe = StableDiffusionPipeline.from_pretrained("CompVis/stable-diffusion-v1-4", torch_dtype=torch.float16).to("cuda")

ধাপ ৯: সম্ভাব্য সমস্যা সমাধান

  1. CUDA Compatibility Issue: যদি CUDA ভার্সন বা ড্রাইভার সমস্যায় পড়েন, NVIDIA এর অফিসিয়াল ওয়েবসাইট থেকে CUDA এবং ড্রাইভার আপডেট করুন।
  2. Out of Memory Error: বড় ইমেজ বা হাই-রেজোলিউশনের জন্য GPU মেমোরি কম হলে half-precision (fp16) ব্যবহার করতে পারেন।

সারসংক্ষেপ

Stable Diffusion সেটআপ করতে:

  1. Python পরিবেশ তৈরি করুন।
  2. PyTorch এবং CUDA ইন্সটল করুন।
  3. প্রয়োজনীয় লাইব্রেরি যেমন diffusers, transformers ইন্সটল করুন।
  4. Hugging Face-এর মাধ্যমে Stable Diffusion মডেল ডাউনলোড এবং সেটআপ করুন।
  5. একটি প্রম্পট ব্যবহার করে ইমেজ জেনারেট করুন।

এভাবে, আপনি সহজেই আপনার সিস্টেমে Stable Diffusion সেটআপ করতে পারবেন এবং এটি দিয়ে সৃজনশীল ইমেজ তৈরি করতে পারবেন।

Stable Diffusion ইন্সটলেশন: Windows, Linux, এবং macOS

80
80

Stable Diffusion একটি শক্তিশালী ডিফিউশন মডেল যা উচ্চমানের ইমেজ জেনারেশন করতে ব্যবহৃত হয়। এটি Windows, Linux, এবং macOS-এ ইন্সটল করা যায়। নিচে প্রতিটি প্ল্যাটফর্মের জন্য ইন্সটলেশন প্রক্রিয়া আলোচনা করা হলো:

Windows-এ Stable Diffusion ইন্সটলেশন

Stable Diffusion Windows-এ ইন্সটল করার জন্য আপনাকে Python এবং কিছু নির্দিষ্ট লাইব্রেরি ইন্সটল করতে হবে।

ধাপ ১: Python এবং Git ইন্সটল করা

  1. Python (3.8 বা তার উপরের ভার্সন) ইন্সটল করুন। Python ডাউনলোড লিংক
    • ইন্সটল করার সময় "Add Python to PATH" চেকবক্সটি সিলেক্ট করুন।
  2. Git ইন্সটল করুন। Git ডাউনলোড লিংক

ধাপ ২: কোড রিপোজিটরি ক্লোন করা

  1. কমান্ড প্রম্পট বা PowerShell খুলুন এবং Stable Diffusion এর অফিশিয়াল কোড রিপোজিটরি ক্লোন করুন:
git clone https://github.com/CompVis/stable-diffusion.git
  1. ক্লোন করা ডিরেক্টরিতে যান:
cd stable-diffusion

ধাপ ৩: ভার্চুয়াল এনভায়রনমেন্ট তৈরি করা

python -m venv venv

এখন ভার্চুয়াল এনভায়রনমেন্টটি সক্রিয় করুন:

venv\Scripts\activate

ধাপ ৪: নির্দিষ্ট প্যাকেজ ইন্সটল করা

pip install -r requirements.txt

ধাপ ৫: মডেল ওজন ডাউনলোড করা

Stable Diffusion এর জন্য প্রি-ট্রেন করা মডেল ওজন (weights) ডাউনলোড করুন। এর জন্য model.ckpt ফাইলটি Hugging Face বা অন্যান্য উৎস থেকে ডাউনলোড করে stable-diffusion/models/ldm/stable-diffusion-v1 ডিরেক্টরিতে রাখুন।

ধাপ ৬: মডেল রান করা

python scripts/txt2img.py --prompt "a beautiful landscape" --plms

এভাবে আপনি Stable Diffusion Windows-এ সফলভাবে ইন্সটল এবং রান করতে পারবেন।

Linux-এ Stable Diffusion ইন্সটলেশন

Linux-এ Stable Diffusion ইন্সটল করার প্রক্রিয়া Windows-এর মতোই, তবে এখানে কিছু Linux-specific কমান্ড ব্যবহার করতে হবে।

ধাপ ১: Python এবং Git ইন্সটল করা

sudo apt update
sudo apt install python3 python3-venv python3-pip git

ধাপ ২: কোড রিপোজিটরি ক্লোন করা

git clone https://github.com/CompVis/stable-diffusion.git
cd stable-diffusion

ধাপ ৩: ভার্চুয়াল এনভায়রনমেন্ট তৈরি এবং সক্রিয় করা

python3 -m venv venv
source venv/bin/activate

ধাপ ৪: নির্দিষ্ট প্যাকেজ ইন্সটল করা

pip install -r requirements.txt

ধাপ ৫: মডেল ওজন ডাউনলোড এবং সংরক্ষণ

ডাউনলোড করা মডেল ওজন (model.ckpt) stable-diffusion/models/ldm/stable-diffusion-v1 ডিরেক্টরিতে রাখুন।

ধাপ ৬: মডেল রান করা

python scripts/txt2img.py --prompt "a futuristic cityscape" --plms

macOS-এ Stable Diffusion ইন্সটলেশন

macOS-এ Stable Diffusion ইন্সটল করার জন্য Homebrew এবং Python ব্যবহার করতে হবে। তবে macOS-এ GPU সাপোর্ট সীমিত হওয়ায় মডেলটি CPU মোডে রান করবে, যা ধীর হতে পারে।

ধাপ ১: Homebrew, Python, এবং Git ইন্সটল করা

  1. Homebrew ইন্সটল করুন (যদি আগে না থাকে):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  1. Python এবং Git ইন্সটল করুন:
brew install python git

ধাপ ২: কোড রিপোজিটরি ক্লোন করা

git clone https://github.com/CompVis/stable-diffusion.git
cd stable-diffusion

ধাপ ৩: ভার্চুয়াল এনভায়রনমেন্ট তৈরি এবং সক্রিয় করা

python3 -m venv venv
source venv/bin/activate

ধাপ ৪: নির্দিষ্ট প্যাকেজ ইন্সটল করা

pip install -r requirements.txt

ধাপ ৫: মডেল ওজন ডাউনলোড এবং সংরক্ষণ

ডাউনলোড করা মডেল ওজন (model.ckpt) stable-diffusion/models/ldm/stable-diffusion-v1 ডিরেক্টরিতে রাখুন।

ধাপ ৬: মডেল রান করা (CPU মোডে)

python scripts/txt2img.py --prompt "a colorful sunset" --plms --device cpu

নোট: macOS-এ GPU সাপোর্ট সীমিত, তাই যদি আপনার কাছে একটি Apple Silicon (M1 বা M2) চিপ থাকে, তাহলে আপনি GPU ব্যবহার করে রান করতে পারবেন --device mps প্যারামিটার দিয়ে। তবে Intel ভিত্তিক Mac-এ শুধুমাত্র CPU মোডে রান করতে হবে।

উপসংহার

এই পদ্ধতিতে আপনি Windows, Linux, এবং macOS-এ Stable Diffusion ইন্সটল এবং রান করতে পারবেন। মনে রাখবেন যে, GPU সাপোর্ট (যেমন NVIDIA GPU) থাকলে মডেলটি দ্রুত চলবে। Mac-এ GPU সাপোর্ট না থাকলে, CPU ব্যবহার করতে হবে যা তুলনামূলকভাবে ধীর হতে পারে।

Python এবং PyTorch এর সাথে Stable Diffusion সেটআপ

75
75

Stable Diffusion সেটআপ করতে Python এবং PyTorch ব্যবহার করা হয়। এটি করার জন্য, Python পরিবেশ তৈরি করা এবং PyTorch ও অন্যান্য নির্ভরশীল লাইব্রেরিগুলো ইনস্টল করা প্রয়োজন। নিচে ধাপে ধাপে Stable Diffusion সেটআপের নির্দেশনা দেওয়া হলো:

ধাপ ১: Python পরিবেশ তৈরি করা

প্রথমে, একটি ভার্চুয়াল পরিবেশ তৈরি করা সেরা পদ্ধতি যাতে নির্ভরশীলতা গুলো আলাদা রাখা যায়।

# ভার্চুয়াল এনভায়রনমেন্ট তৈরি করা
python -m venv stable_diffusion_env

# ভার্চুয়াল এনভায়রনমেন্ট অ্যাক্টিভেট করা
# Windows:
stable_diffusion_env\Scripts\activate

# macOS/Linux:
source stable_diffusion_env/bin/activate

ধাপ ২: PyTorch ইনস্টল করা

Stable Diffusion রান করার জন্য PyTorch প্রয়োজন। GPU সাপোর্ট পেতে হলে, CUDA সহ PyTorch ইনস্টল করতে হবে।

# PyTorch ইনস্টল করা (CUDA 11.7 সাপোর্ট সহ) - আপনার সিস্টেমের জন্য কনফিগারেশন মিলিয়ে নিন
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu117

ধাপ ৩: diffusers লাইব্রেরি ইনস্টল করা

Hugging Face-এর diffusers লাইব্রেরি Stable Diffusion এবং অন্যান্য ডিফিউশন মডেল পরিচালনার জন্য ব্যবহৃত হয়। এটি ইনস্টল করতে:

pip install diffusers

ধাপ ৪: অন্যান্য নির্ভরশীলতা ইনস্টল করা

Stable Diffusion পরিচালনা করতে প্রয়োজনীয় আরও কিছু লাইব্রেরি ইনস্টল করতে হবে, যেমন: transformers, accelerate, এবং scipy

pip install transformers accelerate scipy

ধাপ ৫: মডেল লোড এবং রান করা

এখন মডেল লোড করার জন্য কোড লিখতে হবে। নিচে একটি সিম্পল উদাহরণ দেওয়া হল যেখানে Stable Diffusion মডেল লোড এবং ইমেজ জেনারেশন করা হয়েছে:

import torch
from diffusers import StableDiffusionPipeline

# ডিভাইস সেট করা (GPU থাকলে CUDA ব্যবহার করা হবে)
device = "cuda" if torch.cuda.is_available() else "cpu"

# Stable Diffusion মডেল লোড করা
pipeline = StableDiffusionPipeline.from_pretrained("CompVis/stable-diffusion-v1-4").to(device)

# একটি প্রম্পট ডিফাইন করা
prompt = "A fantasy landscape with mountains and rivers, digital art"

# ইমেজ জেনারেট করা
with torch.autocast("cuda"):
    image = pipeline(prompt).images[0]

# ইমেজ সেভ করা
image.save("generated_image.png")

ব্যাখ্যা:

মডেল লোড করা:

  • StableDiffusionPipeline.from_pretrained("CompVis/stable-diffusion-v1-4") ব্যবহার করে মডেল লোড করা হয়েছে। এটি Hugging Face-এর মডেল হাব থেকে লোড করে।
  • .to(device) ব্যবহার করে মডেলকে GPU তে মুভ করা হয়েছে, যদি GPU উপস্থিত থাকে।

প্রম্পট দিয়ে ইমেজ জেনারেশন:

  • pipeline(prompt) দ্বারা প্রম্পট ইনপুট দেওয়া হয়েছে, এবং এটি ইমেজ জেনারেট করেছে।
  • torch.autocast("cuda") ব্যবহৃত হয়েছে যাতে অটোমেটিকভাবে মডেলটি CUDA অপ্টিমাইজেশনের সুবিধা নেয়।

ইমেজ সংরক্ষণ:

  • image.save("generated_image.png") দিয়ে জেনারেট করা ইমেজ .png ফরম্যাটে সেভ করা হয়েছে।

টিপস:

  • GPU সাপোর্ট: মডেলটি GPU তে রান করলে ইমেজ জেনারেশন দ্রুত হবে। আপনার সিস্টেমে NVIDIA GPU এবং CUDA সঠিকভাবে কনফিগার করা থাকতে হবে।
  • মডেল আপডেট: Hugging Face-এর মডেল হাব থেকে বিভিন্ন সংস্করণের মডেল (যেমন: v1.5, v2.0) ব্যবহার করা যেতে পারে। আপনাকে শুধু সঠিক মডেল আইডি ব্যবহার করতে হবে।

অতিরিক্ত তথ্য:

  • Jupyter Notebook বা Google Colab ব্যবহার করলে, সিস্টেমে GPU আছে কিনা তা সহজেই চেক করা যায় এবং লাইব্রেরিগুলো ইনস্টল করা দ্রুত হয়।
  • Hugging Face-এর diffusers ডকুমেন্টেশন এবং PyTorch ডকুমেন্টেশন থেকে আরও বিস্তারিত সেটআপ এবং কনফিগারেশন নির্দেশনা পাওয়া যাবে।

এইভাবে, আপনি Python এবং PyTorch ব্যবহার করে Stable Diffusion সেটআপ করতে পারেন এবং ইমেজ জেনারেশন শুরু করতে পারেন।

Pre-trained মডেল ব্যবহার করে কাজ করা

71
71

Pre-trained মডেল ব্যবহার করে কাজ করা হলো একটি দ্রুত এবং কার্যকরী পদ্ধতি, বিশেষ করে যখন আমাদের কাছে পর্যাপ্ত ডেটা বা কম্পিউটেশনাল রিসোর্স নেই। PyTorch এবং অন্যান্য ডিপ লার্নিং ফ্রেমওয়ার্কে অনেক প্রি-ট্রেইনড মডেল পাওয়া যায়, যেমন ResNet, VGG, Inception, ইত্যাদি। এই মডেলগুলো সাধারণত বড় ডেটাসেট (যেমন ImageNet) দিয়ে ট্রেনিং করা হয়, এবং সেগুলো থেকে শেখা ফিচারগুলো বিভিন্ন কাজে পুনঃব্যবহার করা যায়।

Pre-trained মডেল ব্যবহার করার ধাপ

নিচে PyTorch ব্যবহার করে প্রি-ট্রেইনড মডেল ব্যবহার করার ধাপগুলো বিস্তারিতভাবে ব্যাখ্যা করা হয়েছে।

ধাপ ১: প্রয়োজনীয় লাইব্রেরি ইম্পোর্ট করা

import torch
import torch.nn as nn
from torchvision import models, transforms
from PIL import Image
import requests
from io import BytesIO

ধাপ ২: প্রি-ট্রেইনড মডেল লোড করা

PyTorch-এর torchvision.models মডিউল থেকে সহজেই প্রি-ট্রেইনড মডেল লোড করা যায়।

# ResNet18 প্রি-ট্রেইনড মডেল লোড করা (ImageNet ডেটাসেটের উপর প্রি-ট্রেইনড)
model = models.resnet18(pretrained=True)

# মডেলকে ইভ্যালুয়েশন মোডে সেট করা
model.eval()

ধাপ ৩: ইনপুট ইমেজ প্রস্তুত করা

ইমেজকে মডেলের জন্য প্রস্তুত করতে হলে কিছু ট্রান্সফর্মেশন করতে হয়, যেমন রিসাইজ, টেনসর কনভার্সন, এবং নরমালাইজেশন।

# ইমেজ ট্রান্সফর্ম সেট করা
preprocess = transforms.Compose([
    transforms.Resize(256),
    transforms.CenterCrop(224),
    transforms.ToTensor(),
    transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),
])

# একটি উদাহরণ ইমেজ লোড করা
url = "https://example.com/path/to/your/image.jpg"  # এখানে আপনার ইমেজের URL দিন
response = requests.get(url)
img = Image.open(BytesIO(response.content))

# ইমেজ প্রিপ্রসেস করা
img_t = preprocess(img)
batch_t = torch.unsqueeze(img_t, 0)  # ব্যাচ সাইজ হিসেবে ১ সেট করা

ধাপ ৪: মডেলের মাধ্যমে প্রেডিকশন করা

# মডেলের মাধ্যমে ইমেজ প্রেডিক্ট করা
with torch.no_grad():
    output = model(batch_t)

# আউটপুট লেবেল খুঁজে বের করা
_, predicted = torch.max(output, 1)
print(f'Predicted class: {predicted.item()}')

ধাপ ৫: আউটপুট ইন্টারপ্রেট করা

PyTorch মডেলের আউটপুট সাধারণত লজিট আকারে আসে, যা পরে ক্লাসে রূপান্তর করা হয়। আপনি ImageNet ডেটাসেটের লেবেল ম্যাপিং ডাউনলোড করে আউটপুট ক্লাসকে সহজেই ইন্টারপ্রেট করতে পারেন।

# লেবেল ম্যাপিং ডাউনলোড করা
LABELS_URL = "https://raw.githubusercontent.com/pytorch/hub/master/imagenet_classes.txt"
labels = requests.get(LABELS_URL).text.splitlines()

# প্রেডিক্টেড ক্লাস প্রিন্ট করা
print(f'Predicted label: {labels[predicted.item()]}')

Pre-trained মডেল ফাইন-টিউন করা

Pre-trained মডেল ব্যবহার করে ট্রেনিং করার সময়, আপনি সম্পূর্ণ মডেল বা শুধু শেষের কয়েকটি লেয়ার ফাইন-টিউন করতে পারেন। উদাহরণস্বরূপ, ResNet18 মডেলের ফুলি কানেক্টেড লেয়ার পরিবর্তন করে আমাদের নির্দিষ্ট কাজের জন্য ফাইন-টিউন করতে পারি।

# লাস্ট লেয়ার পরিবর্তন করে দুটি ক্লাসে আউটপুট সেট করা
num_ftrs = model.fc.in_features
model.fc = nn.Linear(num_ftrs, 2)  # 2 টি ক্লাস উদাহরণস্বরূপ

# মডেলকে GPU তে স্থানান্তর করা (যদি GPU থাকে)
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model = model.to(device)

# Loss function এবং optimizer সেট করা
criterion = nn.CrossEntropyLoss()
optimizer = torch.optim.SGD(model.parameters(), lr=0.001, momentum=0.9)

# মডেল ট্রেনিং লুপ (সংক্ষেপে)
for epoch in range(5):
    model.train()
    # ট্রেনিং ডেটালোডার ব্যবহার করে ব্যাচ লোড করা
    for inputs, labels in train_loader:
        inputs, labels = inputs.to(device), labels.to(device)
        optimizer.zero_grad()
        outputs = model(inputs)
        loss = criterion(outputs, labels)
        loss.backward()
        optimizer.step()

প্রি-ট্রেইনড মডেল ব্যবহারের সুবিধা

  1. সময় এবং রিসোর্স সাশ্রয়ী: প্রি-ট্রেইনড মডেল ব্যবহার করলে নতুন মডেল শূন্য থেকে ট্রেনিং করার প্রয়োজন হয় না।
  2. উন্নত পারফরম্যান্স: প্রি-ট্রেইনড মডেলগুলো সাধারণত বড় ডেটাসেটে ট্রেনিং করা হয়, তাই এগুলো বিভিন্ন কাজে উন্নত ফলাফল দিতে সক্ষম।
  3. সহজ কাস্টমাইজেশন: প্রি-ট্রেইনড মডেলের নির্দিষ্ট লেয়ারগুলো সহজেই পরিবর্তন বা ফাইন-টিউন করে আমাদের নির্দিষ্ট কাজের জন্য উপযোগী করা যায়।

এভাবে, PyTorch ব্যবহার করে প্রি-ট্রেইনড মডেল খুব সহজে ব্যবহার করা যায় এবং ফাইন-টিউন করা যায়। এটি বিশেষ করে ছোট ডেটাসেট বা সীমিত রিসোর্সের ক্ষেত্রে অত্যন্ত কার্যকরী।

উদাহরণসহ প্রাথমিক কনফিগারেশন এবং কাজের ধরণ

65
65

Stable Diffusion মডেলের প্রাথমিক কনফিগারেশন এবং কাজের ধরণ নিয়ে বিস্তারিত উদাহরণসহ ব্যাখ্যা করা হলো। Stable Diffusion মডেল সেটআপ এবং রান করার জন্য কিছু নির্দিষ্ট কনফিগারেশন এবং লাইব্রেরি ইনস্টলেশন প্রয়োজন।

ধাপ ১: প্রাথমিক কনফিগারেশন

Stable Diffusion মডেল সেটআপ করার জন্য আপনার সিস্টেমে Python এবং PyTorch সহ কিছু নির্দিষ্ট লাইব্রেরি ইনস্টল করতে হবে।

প্রয়োজনীয় লাইব্রেরি ইনস্টলেশন

pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu117
pip install diffusers transformers accelerate scipy pillow
  • torch, torchvision, torchaudio: PyTorch এবং তার কিছু সহায়ক লাইব্রেরি।
  • diffusers: Diffusion মডেল রান করার জন্য প্রয়োজনীয় লাইব্রেরি।
  • transformers: টেক্সট প্রসেসিং এবং টোকেনাইজেশনের জন্য।
  • accelerate: মডেল অপ্টিমাইজেশনের জন্য।
  • scipy, pillow: ইমেজ প্রসেসিংয়ের জন্য প্রয়োজনীয় লাইব্রেরি।

ধাপ ২: প্রাথমিক সেটআপ

import torch
from diffusers import StableDiffusionPipeline

# GPU ডিভাইস সেট করা
device = "cuda" if torch.cuda.is_available() else "cpu"

# মডেল লোড করা
model_id = "CompVis/stable-diffusion-v1-4"
pipe = StableDiffusionPipeline.from_pretrained(model_id).to(device)
  • device: যদি GPU পাওয়া যায়, তাহলে CUDA ব্যবহার করা হবে, অন্যথায় CPU।
  • StableDiffusionPipeline: প্রি-ট্রেইনড Stable Diffusion মডেল লোড করা।

ধাপ ৩: কাজের ধরণ (ইমেজ তৈরি করা)

Stable Diffusion মডেল মূলত টেক্সট ইনপুট থেকে ইমেজ জেনারেট করে। নিচে এর কাজের ধরণ উদাহরণসহ দেখানো হলো।

# টেক্সট ইনপুট
prompt = "a fantasy landscape with mountains and a river during sunset"

# ইমেজ তৈরি করা
with torch.autocast("cuda"):
    image = pipe(prompt).images[0]

# ইমেজ সংরক্ষণ করা
image.save("fantasy_landscape.png")

কোড ব্যাখ্যা

  1. Prompt: prompt একটি টেক্সট ইনপুট যেখানে আপনি যা দেখতে চান তা বর্ণনা করবেন। উদাহরণস্বরূপ, আমরা একটি "ফ্যান্টাসি ল্যান্ডস্কেপ" এর বিবরণ দিয়েছি।
  2. Pipeline ব্যবহার করা: মডেল টেক্সট ইনপুট নিয়ে ইমেজ তৈরি করেছে। torch.autocast("cuda") ব্যবহার করা হয়েছে যাতে মডেলটি GPU তে দ্রুত এবং কার্যকরভাবে রান করে।
  3. ইমেজ সংরক্ষণ করা: তৈরি করা ইমেজটি একটি ফাইলে সংরক্ষণ করা হয়েছে।

ধাপ ৪: মডেল অপ্টিমাইজেশন এবং পারফরমেন্স উন্নতি

Stable Diffusion মডেলের কার্যকারিতা উন্নত করার জন্য এবং এটি দ্রুত চালানোর জন্য কিছু অপ্টিমাইজেশন করা যেতে পারে:

১. Batch Size ব্যবহার করা

যদি আপনি একাধিক ইমেজ তৈরি করতে চান, তাহলে ব্যাচ সাইজ ব্যবহার করতে পারেন:

prompts = ["a futuristic city", "a beautiful beach at sunrise", "a medieval castle"]
images = pipe(prompts).images

# প্রতিটি ইমেজ সংরক্ষণ করা
for i, img in enumerate(images):
    img.save(f"image_{i}.png")
  • Batch Size: একাধিক টেক্সট ইনপুট নিয়ে একসাথে ইমেজ জেনারেট করা হয়, যা সময় সাশ্রয়ী।

২. Half-precision (fp16) ব্যবহার করা

মডেল ট্রেনিং এবং ইনফারেন্সের সময় কম মেমরি ব্যবহার করতে এবং প্রসেসিং দ্রুত করতে, Half-precision ব্যবহার করা যায়:

pipe = pipe.to(device).half()

ধাপ ৫: টোকেনাইজেশন এবং টেক্সট প্রি-প্রসেসিং

Stable Diffusion মডেল টেক্সট ইনপুট নিয়ে কাজ করে, তাই টেক্সট ইনপুটকে টোকেনাইজ করতে হয়। PyTorch এবং transformers লাইব্রেরি ব্যবহার করে এটা করা হয়।

from transformers import CLIPTokenizer

tokenizer = CLIPTokenizer.from_pretrained("openai/clip-vit-base-patch32")
tokens = tokenizer(prompt, return_tensors="pt").to(device)
  • CLIPTokenizer: টেক্সট ইনপুটকে টোকেনাইজ করে এবং মডেল ইনপুট হিসেবে প্রস্তুত করে।
  • return_tensors="pt": এটি PyTorch টেনসর হিসেবে টোকেন রিটার্ন করে।

ধাপ ৬: ডিফিউশন প্রসেস কাস্টমাইজ করা

Diffusion প্রসেসের স্টেপ সংখ্যা পরিবর্তন করে ইমেজের ডিটেইলস এবং ক্ল্যারিটি কন্ট্রোল করা যায়। স্টেপ সংখ্যা বেশি হলে ইমেজ আরও ডিটেইলড হয়, তবে সময় বেশি লাগে।

image = pipe(prompt, num_inference_steps=50).images[0]  # ডিফল্ট স্টেপ ৫০

ধাপ ৭: ফলাফল দেখা

কনফিগারেশন এবং টেক্সট ইনপুট অনুযায়ী মডেল যেভাবে ইমেজ তৈরি করে, তার কিছু উদাহরণ:

  1. Prompt: "a futuristic city skyline at night with neon lights"
    • ইমেজটি শহরের একটি ফিউচারিস্টিক দৃশ্য তৈরি করবে, যেখানে রঙিন neon lights থাকবে।
  2. Prompt: "a tranquil forest with a river flowing under the moonlight"
    • ইমেজে চাঁদের আলোতে একটি শান্তিপূর্ণ বনের দৃশ্য এবং নদী দেখা যাবে।

উপসংহার

Stable Diffusion মডেল সেটআপ এবং রান করার জন্য প্রয়োজনীয় কনফিগারেশন এবং কাজের ধরণ সম্পর্কে এইভাবে আপনি একটি ধারণা পাবেন। এই ধাপগুলো অনুসরণ করে, আপনি বিভিন্ন টেক্সট ইনপুটের মাধ্যমে কাস্টম ইমেজ তৈরি করতে পারবেন এবং মডেল অপ্টিমাইজেশন করে দ্রুত ফলাফল পেতে পারবেন।

টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion