মূল কনটেন্টে যান
এআই টিউটোরিয়াল

Async Video Gen Client দিয়ে একাধিক AI প্রদানকারী থেকে ভিডিও তৈরি করুন

Video Gen Client কীভাবে ইনস্টল ও ব্যবহার করবেন তা শিখুন—এটি একটি async Python toolkit, যাতে রয়েছে unified CLI এবং বান্ডেল করা FastAPI ওয়েব ইন্টারফেস; Seedance, Kling, MiniMax/Hailuo ও Wan প্রদানকারীর মাধ্যমে ভিডিও তৈরি করা যায়।

Async Video Gen Client দিয়ে একাধিক AI প্রদানকারী থেকে ভিডিও তৈরি

Video Gen Client কী করে

Video Gen Client একাধিক ভিডিও-জেনারেশন প্রদানকারীর জন্য একটি অ্যাসিনক্রোনাস Python ক্লায়েন্ট সরবরাহ করে: ByteDance-এর Seedance, Kuaishou-এর Kling, MiniMax/Hailuo এবং Alibaba-এর Wan। আলাদা আলাদা প্রদানকারী ইন্টিগ্রেশনের পরিবর্তে, আপনি একটি একীভূত কমান্ড-লাইন ইন্টারফেস বা ওয়েব অ্যাপ্লিকেশনের মাধ্যমে উপলভ্য মডেল খুঁজে দেখতে, জেনারেশন টাস্ক জমা দিতে, সেগুলোর স্ট্যাটাস পরীক্ষা করতে এবং ফলাফল ডাউনলোড করতে পারেন।

প্রজেক্টটি প্রদানকারীদের API ঘিরে তৈরি ইন্টিগ্রেশন কোড হিসেবে নকশা করা হয়েছে। এসব API এবং তাদের মডেল ID স্বাধীনভাবে পরিবর্তিত হতে পারে, তাই সময়ের সঙ্গে প্রদানকারী অ্যাডাপ্টার আপডেট করার প্রয়োজন হতে পারে।

সমর্থিত প্রদানকারী ও মডেল

ক্লায়েন্টে বর্তমানে নিম্নলিখিত প্রদানকারী পরিবার এবং API মডেল ID তালিকাভুক্ত রয়েছে:

  • Seedance: 2.5 সংস্করণে doubao-seedance-2.5; 2.0 সংস্করণে doubao-seedance-2-0-260128; 2.0 Mini এবং 2.0 Fast স্তরে যথাক্রমে doubao-seedance-2-0-mini-260615 এবং doubao-seedance-2-0-fast-260128 ব্যবহৃত হয়।
  • Kling: Kling 3.0 এবং 3.0 Omni-তে kling-v3 এবং kling-v3-omni ব্যবহৃত হয়। তালিকাভুক্ত অন্যান্য মডেলের মধ্যে রয়েছে kling-v2-6, kling-v2-5-turbo এবং kling-v2-1-master।
  • MiniMax/Hailuo: H3-তে MiniMax-H3, আর 2.3 সংস্করণে MiniMax-Hailuo-2.3 এবং MiniMax-Hailuo-2.3-Fast ব্যবহৃত হয়।
  • Wan: Wan 3.0-তে wan3.0 ব্যবহৃত হয়। Wan 2.7, 2.6 এবং 2.5-এ টেক্সট-টু-ভিডিও, ইমেজ-টু-ভিডিও, রেফারেন্স-টু-ভিডিও বা প্রিভিউয়ের জন্য বিশেষায়িত মডেল ID রয়েছে।

ক্লায়েন্ট ইনস্টল ও কনফিগার করা

  1. রিপোজিটরি ক্লোন করুন:
    git clone https://github.com/letorig/video-generator-client
    cd video-generator-client
  2. ভার্চুয়াল এনভায়রনমেন্ট তৈরি করুন:
    python -m venv .venv
  3. এনভায়রনমেন্ট সক্রিয় করুন। Windows-এ চালান:
    .venv\Scripts\activate
    macOS বা Linux-এ চালান:
    source .venv/bin/activate
  4. ওয়েব সাপোর্টসহ প্যাকেজ ইনস্টল করুন:
    pip install -e ".[web]"
  5. প্রদানকারীর ক্রেডেনশিয়াল যোগ করুন: .env.example কপি করে .env তৈরি করুন, তারপর যেসব প্রদানকারী ব্যবহার করতে চান তাদের ক্রেডেনশিয়াল যোগ করুন। README কোনো নির্দিষ্ট একক ক্রেডেনশিয়াল সেট নির্ধারণ করে না, তাই আপনার ওয়ার্কফ্লোর জন্য প্রয়োজনীয় পরিষেবাগুলোই কনফিগার করুন।

CLI ব্যবহার করলে জেনারেট করা আউটপুট output ফোল্ডারে সংরক্ষিত হয়।

কমান্ড-লাইন ইন্টারফেস ব্যবহার

ইনস্টলেশনের পর video-gen কমান্ডটি প্রদানকারী খুঁজে দেখা, মডেল নির্বাচন, জেনারেশন টাস্ক শুরু এবং ফলাফল পরীক্ষা করার প্রধান ওয়ার্কফ্লো সরবরাহ করে।

প্রদানকারী ও মডেল খুঁজে দেখা

উপলভ্য কমান্ড ও প্রদানকারী দেখতে শুরু করুন:

video-gen --help
video-gen providers

কোনো প্রদানকারীর মডেল দেখতে models কমান্ডে তার প্রদানকারীর নাম দিন:

video-gen models wan

ভিডিও জেনারেট করা

প্রম্পট, প্রদানকারী, মডেল এবং সময়কাল দিয়ে টেক্সট-টু-ভিডিও অনুরোধ জমা দিন:

video-gen generate wan --prompt "A snowy forest at dawn" --model 2.1 --duration 5

কমান্ডটি নির্বাচিত প্রদানকারীর মাধ্যমে টাস্ক জমা দেয় এবং ফলস্বরূপ আউটপুট output ফোল্ডারে সংরক্ষণ করে। নিজস্ব কমান্ড তৈরির সময় প্রজেক্টে প্রকাশিত প্রদানকারী ও মডেল মান ব্যবহার করুন, কারণ প্রদানকারীর মডেল-উপলভ্যতা পরিবর্তিত হতে পারে।

টাস্কের স্ট্যাটাস পরীক্ষা

অ্যাসিনক্রোনাস জেনারেশন ওয়ার্কফ্লোর জন্য প্রদানকারী ও টাস্ক ID দিয়ে একটি টাস্কের তথ্য জিজ্ঞাসা করুন:

video-gen status wan TASK_ID

TASK_ID-এর পরিবর্তে জেনারেশন ওয়ার্কফ্লো থেকে পাওয়া শনাক্তকারী ব্যবহার করুন।

ওয়েব ইন্টারফেস চালানো

প্রজেক্টে সরাসরি Python প্যাকেজের মধ্যে একটি ওয়েব ইন্টারফেস রয়েছে। npm, Node.js বা আলাদা কোনো ফ্রন্টএন্ড বিল্ড ধাপ নেই। FastAPI HTML ইন্টারফেস পরিবেশন করে এবং প্রদানকারী খুঁজে দেখা, ভিডিও জেনারেশন, টাস্ক পোলিং ও MP4 ডাউনলোডের জন্য JSON endpoint প্রকাশ করে।

ডিফল্ট হোস্ট ও পোর্ট দিয়ে সার্ভার চালু করুন:

video-gen serve

আপনি স্পষ্টভাবে হোস্ট ও পোর্ট নির্ধারণ করতে পারেন:

video-gen serve --host 127.0.0.1 --port 8000

রিলোড সক্রিয় সার্ভারের জন্য চালান:

video-gen serve --host 0.0.0.0 --port 9000 --reload

ওয়েব UI-এর সক্ষমতা

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

ব্যবহারিক ওয়ার্কফ্লো টিপস

  • জেনারেট করার আগে পর্যালোচনা করুন: প্রদানকারী বা মডেল বেছে নেওয়ার আগে video-gen providers এবং video-gen models PROVIDER চালান।
  • ক্রেডেনশিয়াল সীমিত রাখুন: বর্তমান ওয়ার্কফ্লোর জন্য প্রয়োজনীয় প্রদানকারীর ক্রেডেনশিয়ালই .env ফাইলে যোগ করুন।
  • অ্যাসিনক্রোনাস টাস্ক ট্র্যাক করুন: status কমান্ড এবং ওয়েব ইন্টারফেসের লাইভ পোলিংয়ের মাধ্যমে জেনারেশন পর্যবেক্ষণ করা যায়।
  • আপনার ওয়ার্কফ্লোর উপযোগী ইন্টারফেস বেছে নিন: স্ক্রিপ্ট ও টার্মিনাল-ভিত্তিক কাজের জন্য CLI সুবিধাজনক, আর ওয়েব UI ইন্টার‌্যাক্টিভ নিয়ন্ত্রণ ও প্রিভিউ সরবরাহ করে।
  • ইন্টিগ্রেশন রক্ষণাবেক্ষণের জন্য প্রস্তুত থাকুন: প্রদানকারীর API ও মডেল ID এই SDK থেকে স্বাধীন এবং পরিবর্তিত হতে পারে। তাই কোনো প্রদানকারী তার পরিষেবা আপডেট করলে অ্যাডাপ্টার ও মডেল ক্যাটালগ যাচাই করুন।

প্রজেক্টের কাঠামো

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

src/video_gen/
├── client.py
├── cli.py
├── web.py
├── catalog.py
├── static/index.html
├── providers/
└── utils/

কনফিগারেশন .env.example-এ উপস্থাপিত হয়েছে, আর প্যাকেজিং ও ইনস্টলেশন সেটিংস pyproject.toml-এ সংজ্ঞায়িত করা হয়েছে। রিপোজিটরিতে examples/, tests/ এবং একটি ঐচ্ছিক mcp_server/ ডিরেক্টরিও রয়েছে।

উপসংহার

Video Gen Client Python ডেভেলপারদের একাধিক ভিডিও-জেনারেশন প্রোভাইডারের সঙ্গে কাজ করার একটি একীভূত উপায় দেয়। এটি একটি ভার্চুয়াল এনভায়রনমেন্টে ইনস্টল করুন, প্রয়োজনীয় ক্রেডেনশিয়াল কনফিগার করুন, সমর্থিত মডেলগুলো খুঁজে দেখুন এবং CLI বা বান্ডেল করা FastAPI ওয়েব UI-এর মাধ্যমে টাস্ক জমা দিন। প্রোডাকশন ব্যবহারের ক্ষেত্রে প্রোভাইডারগুলোর পরিবর্তন পর্যবেক্ষণ করুন, কারণ মডেল ID ও API-এর আচরণ ক্লায়েন্টের থেকে স্বাধীনভাবে পরিবর্তিত হতে পারে।