৪১. এআই ইমেজ জেনারেটর (AI Image Generator)
টেক্সট থেকে সরাসরি ছবি তৈরি করা (Text-to-Image) বর্তমান আর্টিফিশিয়াল ইন্টেলিজেন্সের অন্যতম ম্যাজিকাল একটি বিষয়। Midjourney বা DALL-E এর নাম হয়তো শুনে থাকবেন, যেগুলো ইউজারের দেওয়া কমান্ড বা প্রম্পট (Prompt) পড়ে ঠিক সেরকমই একটি ছবি এঁকে দেয়।
এই প্রজেক্টে আমরা OpenAI API (DALL-E 3) ব্যবহার করে পাইথনে নিজস্ব একটি এআই ইমেজ জেনারেটর তৈরি করবো। আপনি পাইথনে প্রম্পট লিখে দিবেন, আর এআই ছবি বানিয়ে আপনার কম্পিউটারে সেভ করে দিবে!
কীভাবে কাজ করে? (How it works):
- API Connection: প্রথমে আমরা
openaiলাইব্রেরি ব্যবহার করে OpenAI সার্ভারের সাথে কানেক্ট করবো। - Prompt Submission: আমরা এআইকে একটি ডেসক্রিপটিভ প্রম্পট দিবো (যেমন: "A futuristic city in the style of cyberpunk").
- Downloading the Image: এআই ছবিটি তৈরি করে আমাদের একটি সাময়িক লিংক (URL) দিবে। আমরা পাইথনের
requestsলাইব্রেরি ব্যবহার করে ওই লিংক থেকে ছবিটি ডাউনলোড করে আমাদের প্রজেক্ট ফোল্ডারে.pngহিসেবে সেভ করবো।
প্রয়োজনীয় লাইব্রেরি (Libraries):
টার্মিনালে নিচের কমান্ডটি লিখে লাইব্রেরিগুলো ইনস্টল করে নিন:
pip install openai requests
(বিঃদ্রঃ এই প্রজেক্টটি রান করার জন্য আপনার একটি OpenAI API Key লাগবে এবং আপনার অ্যাকাউন্টে পর্যাপ্ত ক্রেডিট থাকতে হবে।)
প্রজেক্টের কোড:
নিচের কোডটি কপি করে রান করুন। এটি আপনার দেওয়া প্রম্পট অনুযায়ী একটি হাই-রেজ্যুলেশন (High-Resolution) ছবি তৈরি করবে।
import os
import requests
from openai import OpenAI
def generate_ai_image():
print("=== AI Image Generator (DALL-E 3) ===")
# আপনার OpenAI API Key এখানে দিন
os.environ["OPENAI_API_KEY"] = "sk-your-openai-api-key-here"
client = OpenAI()
# ইউজারের কাছ থেকে প্রম্পট বা কমান্ড নেওয়া
prompt_text = input("\nDescribe the image you want to generate: ")
print("\n[1/2] AI is drawing your image... Please wait.")
try:
# OpenAI সার্ভারে রিকোয়েস্ট পাঠানো
response = client.images.generate(
model="dall-e-3",
prompt=prompt_text,
size="1024x1024",
quality="standard",
n=1,
)
# এআই এর তৈরি করা ছবির লিংক পাওয়া
image_url = response.data[0].url
print(f"✅ Image Generated! Temporary Link: {image_url}")
print("\n[2/2] Downloading the image to your computer...")
# লিংক থেকে ছবিটি ডাউনলোড করা
img_response = requests.get(image_url)
# ছবিটি সেভ করা
filename = "generated_ai_image.png"
with open(filename, 'wb') as file:
file.write(img_response.content)
print(f"🎉 Success! The image has been saved as '{filename}' in your folder.")
except Exception as e:
print(f"\n❌ Error occurred: {e}")
if __name__ == "__main__":
generate_ai_image()
কোডটি কীভাবে শিখবেন?
- client.images.generate: এটি হলো OpenAI লাইব্রেরির মূল ইমেজ জেনারেটিং ফাংশন। এখানে
model="dall-e-3"দিয়ে আমরা সবচেয়ে অত্যাধুনিক ইমেজ মডেল সিলেক্ট করেছি এবংsize="1024x1024"দিয়ে ছবির রেজ্যুলেশন ঠিক করে দিয়েছি। - response.data[0].url: এআই ছবিটি তৈরি করার পর সেটি একটি ক্লাউড সার্ভারে রাখে এবং আমাদের একটি লিংক দেয়। এই লাইনটির মাধ্যমে আমরা JSON রেসপন্স থেকে ওই লিংকটি এক্সট্র্যাক্ট (Extract) করি।
- wb (Write Binary): ছবি কোনো সাধারণ টেক্সট ফাইল নয়, এটি একটি বাইনারি ফাইল (Binary Data)। তাই ছবিটি সেভ করার সময়
open(filename, 'wb')ব্যবহার করা হয়েছে, যার মানে হলো Write Binary।requests.get()থেকে পাওয়া বাইনারি ডেটা (img_response.content) আমরা সরাসরি ফাইলের ভেতর রাইট করে দিয়েছি।
[!TIP] ফ্রি অল্টারনেটিভ: আপনার যদি OpenAI API Key না থাকে, তবে আপনি HuggingFace API এবং
Stable Diffusionমডেল ব্যবহার করতে পারেন। সেটির কোডও প্রায় একই রকম এবং HuggingFace থেকে ফ্রিতে API Key পাওয়া যায়!