
Dress AI Service কী?
Dress AI Service হলো পোশাকের ছবিকে অনুসন্ধানযোগ্য ভার্চুয়াল ওয়ারড্রোবে রূপান্তরের জন্য একটি ওপেন-সোর্স, স্ব-হোস্টেড ফ্যাশন প্ল্যাটফর্ম। এটি AI ব্যবহার করে পোশাক শ্রেণিবদ্ধ করে, সমন্বয় সুপারিশ করে এবং প্রস্তাবিত পোশাকের ভিজ্যুয়াল উপস্থাপনা তৈরি করে।
সার্ভিসটি FastAPI ব্যাকএন্ডের সঙ্গে হালকা HTML ও Tailwind CSS ফ্রন্টএন্ডে চলে। ডিফল্ট ডেটাবেস হিসেবে SQLite ব্যবহৃত হয়, তবে বিকল্প হিসেবে PostgreSQL সমর্থিত। ছবি বোঝার কাজে CLIP ব্যবহৃত হয়, আর Stable Diffusion XL বা FLUX পোশাকের ভিজ্যুয়ালাইজেশন তৈরি করতে পারে। Ollama ঐচ্ছিকভাবে স্থানীয় ভাষা-মডেলের যুক্তি প্রদান করতে পারে।
অ্যাপ্লিকেশনটি স্ব-হোস্টেড হওয়ায়, ওয়ারড্রোবের ছবিগুলো কোনো হোস্টেড Dress AI সার্ভিসে আপলোড না হয়ে আপনার নিয়ন্ত্রণাধীন অবকাঠামোতেই থাকে।
প্রধান বৈশিষ্ট্য
- AI ওয়ারড্রোব ট্যাগিং: পোশাকের ছবি থেকে শ্রেণি, প্রাধান্যশীল রং, নকশা, কাপড়, স্টাইল ও ঋতু শনাক্ত করে।
- পোশাকের সমন্বয় সুপারিশ: রং তত্ত্ব, উপলক্ষ, আবহাওয়া, ভিজ্যুয়াল সাদৃশ্য ও ফ্যাশন নিয়ম অনুযায়ী পোশাক মিলিয়ে দেয়।
- ভার্চ্যুয়াল ভিজ্যুয়ালাইজেশন: Stable Diffusion XL বা FLUX ব্যবহার করে সুপারিশকৃত পোশাকের সমন্বয় রেন্ডার করে।
- আবহাওয়া-সচেতন পরামর্শ: রিয়েল-টাইম আবহাওয়ার তথ্য ব্যবহার করে উপযুক্ত কাপড় ও স্তরবিন্যাসের সুপারিশ করে।
- উপলক্ষের প্রোফাইল: ক্যাজুয়াল অনুষ্ঠান, ব্যবসায়িক পরিবেশ, ডেট, ভ্রমণ, পার্টি ও জিম সেশনের জন্য লুক তৈরি করে।
- ওয়ারড্রোব ব্যবস্থাপনা: পছন্দের পোশাক ও সংগ্রহ তৈরি, ব্যাচে আইটেম আপলোড এবং ডুপ্লিকেট শনাক্ত করার সুবিধা দেয়।
- বিশ্লেষণ: বেশি ব্যবহৃত রং, কম ব্যবহৃত পোশাক এবং সম্ভাব্য ওয়ারড্রোব ঘাটতি পর্যালোচনা করতে দেয়।
- শেয়ার ও এক্সপোর্ট: পোশাকের বোর্ড PNG বা PDF হিসেবে এক্সপোর্ট অথবা শেয়ারযোগ্য লিংক তৈরি করা যায়।
- সম্প্রসারণযোগ্যতা: প্লাগইন সিস্টেমের মাধ্যমে কাস্টম সুপারিশ ইঞ্জিন যোগ করা যায়।
- একাধিক ইন্টারফেস: ব্রাউজার অ্যাপ্লিকেশন, REST API অথবা ইনস্টলযোগ্য PWA ব্যবহার করা যায়।
সিস্টেম কীভাবে কাজ করে
ওয়ারড্রোব ডিজিটাইজেশন
আপনি কোনো পোশাকের ছবি আপলোড করলে সার্ভিসটি সেটি প্রিপ্রসেস করে এবং ঐচ্ছিকভাবে ব্যাকগ্রাউন্ড সরাতে পারে। এরপর CLIP শ্রেণি, রং, নকশা ও কাপড়ের মতো বৈশিষ্ট্য শ্রেণিবদ্ধ করে। অ্যাপ্লিকেশনটি পরবর্তী অনুসন্ধান ও সুপারিশের জন্য তৈরি মেটাডেটা এবং ভিজ্যুয়াল এমবেডিং সংরক্ষণ করে।
পোশাকের সমন্বয় সুপারিশ
সুপারিশ ইঞ্জিন নিয়ম এবং এমবেডিং সাদৃশ্য একত্রে ব্যবহার করে। এর নিয়মভিত্তিক স্তর রঙের সম্পর্ক, উপলক্ষের উপযোগিতা ও আবহাওয়ার অবস্থা বিবেচনা করে। CLIP এমবেডিং ভিজ্যুয়ালভাবে সামঞ্জস্যপূর্ণ আইটেম শনাক্ত করতে সহায়তা করে। Ollama সক্রিয় থাকলে স্থানীয় ভাষা-মডেল প্রাকৃতিক ভাষায় যুক্তি ও বর্ণনা যোগ করতে পারে।
AI ভিজ্যুয়ালাইজেশন
কোনো সুপারিশ নির্বাচন করলে Dress AI Service পোশাকের মেটাডেটা থেকে একটি প্রম্পট তৈরি করে এবং সাধারণ ইমেজ-জেনারেশন ত্রুটি কমানোর উদ্দেশ্যে একটি নেগেটিভ প্রম্পট যোগ করে। Stable Diffusion বা FLUX ছবি তৈরি করে। এরপর ঐচ্ছিক পোস্ট-প্রসেসিং হিসেবে আপস্কেলিং, মুখ পুনরুদ্ধার এবং ব্যাকগ্রাউন্ডের সামঞ্জস্য ঠিক করা যেতে পারে।
পূর্বশর্ত
প্রস্তাবিত ডিপ্লয়মেন্ট পদ্ধতিতে Docker ও Docker Compose ব্যবহার করা হয়। সরাসরি ইনস্টলেশনের জন্য Python 3.11 বা পরবর্তী সংস্করণ ব্যবহার করুন এবং রিপোজিটরির প্রয়োজনীয় প্যাকেজ ইনস্টল করুন। সক্রিয় করা মডেলের ওপর নির্ভর করে AI মডেল ডাউনলোড ও তৈরি করা ছবির জন্য উল্লেখযোগ্য স্টোরেজ এবং কম্পিউটিং রিসোর্স প্রয়োজন হতে পারে।
প্রকল্প ক্লোন করার জন্য Git-ও প্রয়োজন হবে। OpenWeather API key ঐচ্ছিক এবং এটি রিয়েল-টাইম আবহাওয়া-সচেতন সুপারিশ সক্রিয় করে। Ollama ঐচ্ছিক এবং স্থানীয় LLM যুক্তি প্রদান করে।
Docker দিয়ে ইনস্টল করুন
সম্পূর্ণ সার্ভিস চালু করার সবচেয়ে সহজ উপায় হলো Docker। dress-ai-service নামের একটি ডিরেক্টরিতে রিপোজিটরি ক্লোন করুন, আপনার এনভায়রনমেন্ট ফাইল তৈরি করুন এবং কনটেইনারগুলো বিল্ড করুন:
git clone https://github.com/GangTailorUpgrade/undress-service.git dress-ai-service
cd dress-ai-service
cp .env.example .env
docker-compose up --buildচালু হওয়ার পর http://localhost:8080 খুলুন। ইন্টার্যাক্টিভ Swagger API ডকুমেন্টেশন http://localhost:8080/docs-এ এবং ReDoc http://localhost:8080/redoc-এ পাওয়া যাবে।
পরবর্তী সময়ে ডিট্যাচড ডিপ্লয়মেন্টের জন্য চালান:
docker-compose up -dলোকাল Python দিয়ে ইনস্টল করুন
কনটেইনার ছাড়া অ্যাপ্লিকেশন চালাতে বা পরিবর্তন করতে চাইলে একটি ভার্চ্যুয়াল এনভায়রনমেন্ট তৈরি করে Python নির্ভরতাগুলো ইনস্টল করুন:
git clone https://github.com/GangTailorUpgrade/undress-service.git dress-ai-service
cd dress-ai-service
python -m venv venv
source venv/bin/activate
pip install -r requirements.txtWindows-এ এনভায়রনমেন্ট সক্রিয় করতে চালান:
venv\Scripts\activateপ্রথমবার চালানোর আগে প্রয়োজনীয় AI মডেল ডাউনলোড করুন:
python scripts/download_models.py8080 পোর্টে FastAPI ডেভেলপমেন্ট সার্ভার চালু করুন:
uvicorn app.main:app --host 0.0.0.0 --port 8080 --reloadডেভেলপমেন্টের সময় --reload অপশনটি কার্যকর, কারণ সোর্স ফাইলে পরিবর্তন হলে এটি সার্ভার পুনরায় চালু করে। প্রোডাকশনে চালু করার সময় সাধারণত এটি বাদ দেওয়া উচিত।
সার্ভিস কনফিগার করুন
এনভায়রনমেন্ট ভেরিয়েবলের মাধ্যমে কনফিগারেশন প্রদান করা হয়। .env.example কপি করে .env তৈরি করুন, তারপর আপনার ডিপ্লয়মেন্ট অনুযায়ী মানগুলো সমন্বয় করুন।
HOST=0.0.0.0
PORT=8080
DEBUG=false
DATABASE_URL=sqlite:///data/wardrobe.db
USE_LOCAL_MODELS=true
SDXL_MODEL_PATH=models/sd-xl-base
FLUX_MODEL_PATH=models/flux-schnell
CLIP_MODEL=openai/clip-vit-large-patch14
OLLAMA_URL=http://localhost:11434
OLLAMA_MODEL=llama3.2
OPENWEATHER_API_KEY=your_key_here
IMAGE_WIDTH=1024
IMAGE_HEIGHT=1024
NUM_INFERENCE_STEPS=20
GUIDANCE_SCALE=7.5
UPLOAD_DIR=data/uploads
MAX_UPLOAD_SIZE=20MBডেটাবেস কনফিগারেশন
সহজ একক-ইনস্ট্যান্স সেটআপের জন্য SQLite উপযুক্ত এবং এটি ওয়ার্ডরোবের ডেটা data/wardrobe.db-এ সংরক্ষণ করে। PostgreSQL ব্যবহার করতে ডেটাবেস URL-টি নিচের মতো একটি কানেকশন স্ট্রিং দিয়ে প্রতিস্থাপন করুন:
DATABASE_URL=postgresql://user:pass@localhost/dressaiছবি তৈরির সেটিংস
IMAGE_WIDTH এবং IMAGE_HEIGHT আউটপুটের মাত্রা নিয়ন্ত্রণ করে। NUM_INFERENCE_STEPS কনফিগার করা জেনারেশন ধাপের সংখ্যা নির্ধারণ করে, আর GUIDANCE_SCALE কনফিগার করা প্রম্পট গাইডেন্সের মান নিয়ন্ত্রণ করে। বেশি মাত্রা এবং বেশি ধাপের জন্য সাধারণত বেশি কম্পিউটেশন প্রয়োজন হয়, তাই আপনার হার্ডওয়্যার অনুযায়ী এগুলো সামঞ্জস্য করুন।
স্টোরেজ সেটিংস
UPLOAD_DIR আপলোড করা ওয়ার্ডরোবের ছবিগুলো কোথায় সংরক্ষণ করা হবে তা নির্ধারণ করে। MAX_UPLOAD_SIZE প্রতিটি আপলোডের সীমা নির্ধারণ করে। কনফিগার করা ডিরেক্টরিটি স্থায়ী এবং অ্যাপ্লিকেশনটির জন্য লেখার উপযোগী কি না নিশ্চিত করুন।
মৌলিক ব্যবহার
- ফ্রন্টএন্ড খুলুন: সার্ভিস চালু হওয়ার পর http://localhost:8080 ভিজিট করুন।
- পোশাকের ছবি আপলোড করুন: পৃথক পোশাক যোগ করুন অথবা ব্যাচ প্রসেসিংয়ের জন্য একটি ফোল্ডার ড্র্যাগ করে এনে ছেড়ে দিন।
- AI ট্যাগ পর্যালোচনা করুন: শনাক্ত করা পোশাকের বিভাগ, রং, কাপড়, প্যাটার্ন, স্টাইল এবং ঋতু পরীক্ষা করুন।
- একটি উপলক্ষ নির্বাচন করুন: Casual, Business, Date Night, Gym, Travel বা Party-এর মতো একটি প্রোফাইল বেছে নিন।
- সুপারিশ তৈরি করুন: ফ্যাশন নিয়ম, ভিজ্যুয়াল সাদৃশ্য এবং কনফিগার করা আবহাওয়ার তথ্য ব্যবহার করে উপযুক্ত ওয়ার্ডরোবের পোশাকগুলো একত্রিত করতে ইঞ্জিনটিকে কাজ করতে দিন।
- লুক ভিজ্যুয়ালাইজ করুন: কনফিগার করা Stable Diffusion বা FLUX মডেল ব্যবহার করে কোনো সুপারিশের জন্য AI-তৈরি রেন্ডারিংয়ের অনুরোধ করুন।
- ফলাফল সাজান: পোশাকটি পছন্দের তালিকা বা কালেকশনে সংরক্ষণ করুন, অথবা উপলব্ধ এক্সপোর্ট ও শেয়ারিং অপশন ব্যবহার করুন।
REST API ব্যবহার করুন
সার্ভিসটি /api/v1-এর অধীনে সংস্করণযুক্ত এন্ডপয়েন্ট প্রকাশ করে। প্রথমে অ্যাপ্লিকেশনটি সচল কি না পরীক্ষা করুন:
curl http://localhost:8080/api/v1/healthবর্তমানে ওয়ার্ডরোবে সংরক্ষিত পোশাকগুলোর তালিকা দেখুন:
curl http://localhost:8080/api/v1/wardrobe/itemsITEM_ID-এর স্থানে সংশ্লিষ্ট শনাক্তকারী বসিয়ে নির্দিষ্ট কোনো আইটেম আনুন:
curl http://localhost:8080/api/v1/wardrobe/items/ITEM_IDHTTP DELETE অনুরোধ ব্যবহার করে কোনো আইটেম সরান:
curl -X DELETE http://localhost:8080/api/v1/wardrobe/items/ITEM_IDপ্রধান লেখার অপারেশনগুলো নিচের এন্ডপয়েন্টগুলোর মাধ্যমে করা যায়:
POST /api/v1/wardrobe/uploadএকটি পোশাকের আইটেম আপলোড করে।POST /api/v1/outfits/generateপোশাকের সুপারিশ তৈরি করে।POST /api/v1/outfits/{id}/visualizeপোশাকের ভিজ্যুয়ালাইজেশন তৈরি করে।POST /api/v1/outfits/{id}/favoriteএকটি পোশাক পছন্দের তালিকায় সংরক্ষণ করে।
আপনার ইনস্টল করা সংস্করণে গ্রহণযোগ্য সঠিক রিকোয়েস্ট স্কিমা পর্যালোচনা করতে এবং ইন্টার্যাক্টিভভাবে অনুরোধ চালাতে http://localhost:8080/docs-এ Swagger UI ব্যবহার করুন। এতে আপলোড, সুপারিশ বা ভিজ্যুয়ালাইজেশন পেলোডের ফিল্ডের নাম অনুমান করার প্রয়োজন হয় না।
নিচের কমান্ড দিয়ে ওয়ার্ডরোবের অ্যানালিটিক্স আনুন:
curl http://localhost:8080/api/v1/analytics/wardrobeউন্নত ডিপ্লয়মেন্ট অপশন
NVIDIA GPU সমর্থন চালু করুন
রিপোজিটরিতে GPU-নির্দিষ্ট Docker Compose ওভাররাইড রয়েছে। উভয় Compose ফাইল ব্যবহার করে ডিপ্লয়মেন্ট চালু করুন:
docker-compose -f docker-compose.yml -f docker-compose.gpu.yml up -dOllama দিয়ে স্থানীয় LLM যুক্তি যোগ করুন
Ollama-সক্ষম Compose কনফিগারেশন চালু করতে রান করুন:
docker-compose -f docker-compose.yml -f docker-compose.ollama.yml up -dআপনার পরিবেশ ফাইলে OLLAMA_URL এবং OLLAMA_MODEL-এর মান যে Ollama সার্ভিস ও মডেল ব্যবহার করতে চান, তার সঙ্গে মিলিয়ে দিন। Ollama ঐচ্ছিক; এটি ছাড়াও নিয়মভিত্তিক এবং এমবেডিংভিত্তিক সুপারিশ স্তরগুলো সিস্টেমের অংশ হিসেবে থাকে।
আবহাওয়াভিত্তিক সুপারিশ চালু করুন
OPENWEATHER_API_KEY-এ একটি বৈধ কী যোগ করুন। এরপর সুপারিশ ইঞ্জিন স্তর, কাপড় এবং আবহাওয়ার উপযোগী পোশাক নির্বাচন করার সময় বর্তমান পরিস্থিতি বিবেচনা করতে পারবে।
ভিজ্যুয়ালাইজেশনের স্টাইল পরিবর্তন করুন
Dress AI Service বাস্তবসম্মত, অ্যানিমে এবং স্কেচ স্টাইলের জন্য মডেল পরিবর্তন সমর্থন করে। SDXL_MODEL_PATH এবং FLUX_MODEL_PATH-সহ উপযুক্ত স্থানীয় মডেল পাথ কনফিগার করুন এবং আপনার ইনস্টল করা ইন্টারফেস বা API সংস্করণে প্রকাশিত মডেল নিয়ন্ত্রণ ব্যবহার করুন।
ব্যবহারিক পরামর্শ
- SQLite দিয়ে শুরু করুন: সার্ভিসটি মূল্যায়নের সময় ডিফল্ট কনফিগারেশন ব্যবহার করুন। পরে আপনার ডিপ্লয়মেন্টের প্রয়োজন হলে PostgreSQL-এ স্থানান্তর করুন।
- আপলোড করা ফাইল সংরক্ষণ করুন: ডেটাবেস এবং
UPLOAD_DIR-এর মাধ্যমে নির্বাচিত ডিরেক্টরির ব্যাকআপ নিন। দুটিই আপনার ওয়ার্ডরোব ডেটার অংশ। - পরিষ্কার পোশাকের ছবি ব্যবহার করুন: স্বতন্ত্র ছবি ট্যাগিং পাইপলাইনের জন্য পোশাক শ্রেণিবদ্ধ করা এবং কার্যকর ভিজ্যুয়াল মেটাডেটা সংগ্রহ করা সহজ করে।
- ডুপ্লিকেট পরীক্ষা করুন: বিল্ট-ইন ডুপ্লিকেট শনাক্তকরণ বড় ব্যাচে আপলোডের সময় একই আইটেম বারবার যুক্ত হওয়া প্রতিরোধে সহায়তা করে।
- ধীরে ধীরে জেনারেশন সামঞ্জস্য করুন: সরবরাহকৃত 1024-বাই-1024 মাত্রা, 20টি ইনফারেন্স ধাপ এবং 7.5 গাইডেন্স স্কেল দিয়ে শুরু করুন। এরপর আউটপুট ও উপলভ্য কম্পিউটিং ক্ষমতার ভিত্তিতে মানগুলো সামঞ্জস্য করুন।
- জেনারেট করা ছবি পর্যালোচনা করুন: AI ভিজ্যুয়ালাইজেশন একটি তৈরি করা আনুমানিক উপস্থাপনামাত্র; পোশাকের সঠিক ফিট বা চেহারার নিশ্চয়তা নয়।
- API ডকুমেন্টেশন ব্যবহার করুন: আপনার ডিপ্লয় করা সংস্করণের রিকোয়েস্ট ও রেসপন্স স্কিমার জন্য Swagger বা ReDoc-কে প্রামাণ্য রেফারেন্স হিসেবে বিবেচনা করুন।
- নেটওয়ার্ক অ্যাক্সেস সুরক্ষিত করুন: সার্ভিসটি localhost-এর বাইরে উন্মুক্ত করলে স্ব-হোস্টেড ডিপ্লয়মেন্টের জন্য উপযুক্ত প্রোডাকশন নিরাপত্তা ও অ্যাক্সেস নিয়ন্ত্রণ যুক্ত করুন।
ডেভেলপমেন্ট ওয়ার্কফ্লো
কন্ট্রিবিউটররা ভার্চুয়াল এনভায়রনমেন্টে ডেভেলপমেন্টের প্রয়োজনীয় প্যাকেজ ইনস্টল করতে পারেন:
git clone https://github.com/GangTailorUpgrade/undress-service.git dress-ai-service
cd dress-ai-service
python -m venv venv
source venv/bin/activate
pip install -r requirements-dev.txtকভারেজসহ টেস্ট স্যুট চালান:
pytest tests/ -v --cov=appকনফিগার করা লিন্টিং, ফরম্যাটিং ও টাইপ-চেকিং টুল চালান:
ruff check app/
black app/
mypy app/পরিবর্তন জমা দেওয়ার আগে pre-commit হুক ইনস্টল করে চালান:
pre-commit install
pre-commit run --all-filesপ্রকল্পটি প্রচলিত fork, feature branch, commit, push ও pull request ওয়ার্কফ্লোর মাধ্যমে কন্ট্রিবিউশন গ্রহণ করে। এটি MIT License-এর অধীনে বিতরণ করা হয়।
প্রকল্প সহায়তা
Dress AI Service একটি ওপেন-সোর্স প্রকল্প, যা এর কন্ট্রিবিউটর ও স্পনসরদের সহায়তায় পরিচালিত।

উপসংহার
Dress AI Service ওয়ার্ডরোব ব্যবস্থাপনা, CLIP-চালিত ট্যাগিং, হাইব্রিড পোশাকের সুপারিশ, আবহাওয়া ইন্টিগ্রেশন এবং জেনারেটিভ ভিজ্যুয়ালাইজেশনকে একটি স্ব-হোস্টেড অ্যাপ্লিকেশনে একত্র করে। Docker কার্যকর ইনস্টলেশনের দ্রুততম পথ দেয়, আর স্থানীয় Python সেটআপ ও নথিভুক্ত FastAPI এন্ডপয়েন্ট ডেভেলপমেন্ট, অটোমেশন এবং কাস্টম ফ্যাশন অ্যাপ্লিকেশনের জন্য একটি নমনীয় ভিত্তি প্রদান করে।
