মূল লেখায় যাও
AI Engineering
English

Part ১২

Multimodal Engineering (text-এর বাইরে)

Vision (LLM দিয়ে OCR, document AI), voice (STT/TTS, OpenAI / LiveKit / Vapi-র realtime API), image generation (Flux, SDXL, Imagen, DALL-E; ControlNet, LoRA, ComfyUI), আর video generation (Sora, Veo, Runway, Kling)। প্রতিটি section দুই ভাবে লেখা: engineer-এর জন্য technical version (code আর diagram সহ), আর সাধারণ পাঠকের জন্য সহজ ভাষায় ব্যাখ্যা (উপমা সহ)। প্রতিটি topic-এর শেষে বাংলা ব্যাখ্যাও আছে।

১টি section · ৩০টি source · তিনভাবে ব্যাখ্যা

01

Multimodal engineering: vision, voice আর video

Text ছিল প্রথম modality। 2025 সালে প্রতিটা production AI app vision, voice, image generation আর video generation-এর অন্তত দুটো একসাথে ব্যবহার করে। Multimodal engineering হলো প্রতিটার জন্য model, latency budget আর pipeline বেছে নেওয়ার কাজ।

অনুশীলন · ৪টি task

যেকোনো free AI chat খোলো: ChatGPT · Claude · Gemini

অনুশীলন কীভাবে করবে
  • নতুন chat মানে একদম নতুন কথোপকথন, আগের কোনো history নেই। ChatGPT, Claude বা Gemini-তে New chat-এ click করো। সাধারণত এটা উপরে বাঁ দিকে থাকে।
  • একই chat মানে: যে chat খোলা আছে, সেখানেই লিখতে থাকো। আগে যা পাঠিয়েছ, AI তা মনে রাখে।
  • Prompt ব্যবহার করতে: Copy-তে click করো, chat-এর message box-এ click করো, paste করো (Ctrl+V, বা phone-এ চেপে ধরে রাখো), তারপর Enter চাপো।
  • AI-এর উত্তর প্রতিবার একটু আলাদা হয়। তোমার উত্তর example-এর সাথে হুবহু মিলতে হবে না। একই ধারণা আছে কি না, সেটা দেখো।
  • শুধু বানানো data ব্যবহার করো। নিজের বা অন্যের ব্যক্তিগত তথ্য chat-এ paste করবে না।

Task ১

এলোমেলো ছবি থেকে JSON বানাও

এটা কেন দরকার

তুমি যখন receipt বা form পড়ার app বানাবে, ছবি প্রায়ই ঝাপসা হবে। তাই জানা দরকার, AI এগুলো পড়তে পারে, কিন্তু একটা অক্ষর ভুলও আন্দাজ করতে পারে।

  1. ধাপ ১
    নতুন chat

    একটা receipt, sign, menu বা হাতে লেখা নোটের ছবি তোলো। chat-এ attach করো, এই prompt টা paste করো, আর Enter চাপো।

    Prompt
    সঙ্গে দেওয়া ছবিটা দেখো।
    ধাপ ১: ছবিতে যত লেখা পড়তে পারো, ক্রমানুসারে লেখো।
    ধাপ ২: নিচের key দিয়ে JSON দাও:
    - item_type (যেমন receipt, sign, menu, note)
    - title (মূল শিরোনাম, না থাকলে null)
    - dates (list)
    - numbers (যত সংখ্যা পড়তে পারো, ছবিতে যেভাবে লেখা সেভাবে, list)
    - unclear (যে অংশ ভালো করে পড়তে পারোনি, list)
    আন্দাজ করবে না। কোনো অংশ পড়তে কঠিন হলে সেটা unclear-এ রাখো, অন্য key-তে রেখো না।

    তুমি দেখবে: AI আগে যা পড়তে পারে সেই লেখা দেয়। তারপর একটা JSON দেয়, যেখানে key গুলো item_type, title, dates, numbers আর unclear।

  2. ধাপ ২
    নতুন chat

    তোমার chat-এ ছবি upload করা যায় না? ধাপ ১-এর বদলে এটা করো। এই prompt টা copy করে paste করো, Enter চাপো। এই prompt টা English-এ রাখা হয়েছে, কারণ এখানে exact English অক্ষর পড়া হবে।

    Prompt
    Below is the text that came from a blurry photo of a shop receipt. Some characters are wrong.
    
    ---
    RAHIM GR0CERY STOR3
    12 Moy 2O25
    Rice 5kg ....... 4SO
    Oil 1L ......... 18O
    Eggs (12) ...... ??5
    Total .......... 8l5
    ---
    
    Return JSON with these keys:
    - item_type
    - title
    - dates (list)
    - numbers (list of every number, as written)
    - unclear (list of parts you could not read well)
    Do not guess. If a part is hard to read, put it in unclear and do not put it in the other keys.

    তুমি দেখবে: একটা JSON। item_type হবে receipt। unclear list-এ ভাঙা অংশগুলোর নাম থাকবে, যেমন ??5।

    Example উত্তর
    {
      "item_type": "receipt",
      "title": "RAHIM GR0CERY STOR3",
      "dates": ["12 Moy 2O25"],
      "numbers": ["5kg", "4SO", "1L", "18O", "12", "8l5"],
      "unclear": [
        "Shop name: 0 and 3 may be O and E",
        "Date: Moy may be May, 2O25 may be 2025",
        "Rice price 4SO may be 450",
        "Oil price 18O may be 180",
        "Eggs price ??5 has missing digits",
        "Total 8l5 may be 815"
      ]
    }

    তোমার উত্তরের ভাষা একটু আলাদা হবে।

  3. ধাপ ৩
    একই chat

    প্রতিটা JSON value তোমার ছবির সঙ্গে, বা receipt-এর লেখার সঙ্গে মিলিয়ে দেখো। যেগুলো ভুল, লিখে রাখো।

    তুমি দেখবে: বেশিরভাগ value ঠিক থাকবে। একটা-দুটো ভুল হতে পারে, বা AI কোনো ভাঙা অক্ষর না বলেই ঠিক করে দিতে পারে।

  4. ধাপ ৪
    একই chat

    unclear list টা পড়ো। যে অংশ পড়তে কঠিন ছিল, সেটা কি list-এ আছে? লিখে রাখো।

    তুমি দেখবে: ভালো উত্তরে কঠিন অংশগুলো unclear-এ থাকে, অন্য key-তে থাকে না। typed receipt-এর ক্ষেত্রে ডিমের দাম ??5 তার মধ্যে থাকবে।

এইমাত্র কী হলো

AI আলাদা কোনো tool ছাড়াই ছবির লেখা পড়তে পারে। এটাকে বলে OCR (ছবির লেখা থেকে text বানানো)। তুমি JSON চাইলে একটা program সরাসরি উত্তরটা ব্যবহার করতে পারে। কিন্তু AI একটা খারাপ অক্ষর আন্দাজ করে ভুলও করতে পারে। unclear list তাকে বলতে বাধ্য করে কোথায় সে নিশ্চিত না, তাই তুমি শুধু সেই অংশগুলো দেখে নিলেই হয়।

কাজ শেষ, যখন তোমার কাছে একটা JSON উত্তর আছে, আর তুমি প্রতিটা value এবং unclear list মিলিয়ে দেখেছ।

নিজেকে যাচাই করোprompt-এ unclear list আর আন্দাজ করবে না নিয়মটা কেন দিতে হয়?উত্তর দেখো

AI ঝাপসা অক্ষর ভুল পড়েও নিশ্চিতভাবে বলতে পারে। unclear list তাকে সন্দেহের কথা জানাতে বাধ্য করে, তাই তুমি বা তোমার program সেই অংশগুলো হাতে মিলিয়ে নিতে পারো।

আরেকটু কঠিন করে দেখোreceipt-এ total 815, চাল 450, আর তেল 180। AI-কে ডিমের দাম জিজ্ঞেস করো। অঙ্কটা মিলিয়ে দেখো: 815 − 450 − 180 = 185। এই আন্দাজ কি বিশ্বাস করা ঠিক?

Task ২

অস্পষ্ট আর নির্দিষ্ট প্রশ্নের তফাত দেখো

এটা কেন দরকার

তুমি যদি screenshot পরীক্ষা করার feature বানাও, যেমন QA team-এর জন্য, তাহলে অস্পষ্ট প্রশ্নে ভদ্র কিন্তু কাজে না লাগা উত্তর আসবে। আসল সমস্যা পেতে কীভাবে প্রশ্ন করতে হয়, সেটা জানা দরকার।

  1. ধাপ ১
    নতুন chat

    যেকোনো app বা web পেজের একটা screenshot নাও। attach করো, এই প্রশ্নটা paste করো, আর Enter চাপো। উত্তরটা রেখে দাও।

    Prompt
    এই ছবিটা সম্পর্কে তোমার কী মনে হয়?

    তুমি দেখবে: স্ক্রিনের চেহারা নিয়ে একটা সাধারণ, ভদ্র উত্তর। কোনো পরিষ্কার সমস্যা দেখানো হয় না।

    Example উত্তর
    দেখে মনে হচ্ছে এটা একটা সাধারণ checkout পেজ। layout পরিষ্কার, আর সবুজ button সহজে চোখে পড়ে। কিছু লেখা আরেকটু স্পষ্ট হলে ভালো হতো, আর form আরও পরিষ্কার feedback দিতে পারত। মোটের ওপর শুরুটা ভালো, তবে কয়েকটা ছোট উন্নতি দরকার।

    তোমার উত্তরের ভাষা একটু আলাদা হবে।

  2. ধাপ ২
    নতুন chat

    একই screenshot attach করো। এই prompt টা paste করে Enter চাপো।

    Prompt
    এটা একটা app স্ক্রিনের screenshot।
    ১. এক বাক্যে বলো স্ক্রিনটা কীসের জন্য।
    ২. সর্বোচ্চ ৩টা জিনিস লেখো যেগুলো ভুল বা বিভ্রান্তিকর মনে হয়, যেমন কেটে যাওয়া লেখা, কম contrast, বা অস্পষ্ট button। প্রতিটার জন্য বলো স্ক্রিনের কোথায় আছে।
    ৩. এই ছবি দেখে যা বিচার করা যায় না, তার list দাও।
    নির্দিষ্ট করে বলো। design-এর প্রশংসা করবে না।

    তুমি দেখবে: এক বাক্যে স্ক্রিনের কাজ, স্ক্রিনের কোথায় আছে সেটাসহ সর্বোচ্চ ৩টা সমস্যা, আর AI যা বিচার করতে পারে না তার list।

  3. ধাপ ৩
    নতুন chat

    chat-এ ছবি upload করা যায় না? ধাপ ১ আর ২-এর বদলে এটা করো। এই লেখাটা paste করে Enter চাপো। উত্তরটা রেখে দাও।

    Prompt
    নিচে একটা screenshot-এর বর্ণনা দিলাম, কারণ আমি ছবিটা upload করতে পারছি না।
    স্ক্রিনটা একটা ফোনের দোকানের checkout পেজ। উপরে "Pay" লেখা title সাদা background-এ হালকা ধূসর রঙে। মাঝখানে "Phone numbr" নামের একটা field-এর border লাল, কিন্তু কোনো message নেই। নিচে পাশাপাশি দুটো button: একটা বড় সবুজ button, লেখা "OK", আর একটা ছোট ধূসর button, লেখা "Cancel"। দাম "BDT 12,4" ডান দিকের কিনারায় কেটে গেছে।
    
    এই স্ক্রিন সম্পর্কে তোমার কী মনে হয়?

    তুমি দেখবে: উদাহরণের মতো একটা সাধারণ, ভদ্র উত্তর। কেটে যাওয়া দাম বা না-থাকা message-এর কথা বলা হয় না।

    Example উত্তর
    দেখে মনে হচ্ছে এটা একটা সাধারণ checkout পেজ। layout পরিষ্কার, আর সবুজ button সহজে চোখে পড়ে। কিছু লেখা আরেকটু স্পষ্ট হলে ভালো হতো, আর form আরও পরিষ্কার feedback দিতে পারত। মোটের ওপর শুরুটা ভালো, তবে কয়েকটা ছোট উন্নতি দরকার।

    তোমার উত্তরের ভাষা একটু আলাদা হবে।

  4. ধাপ ৪
    নতুন chat

    তবুও ছবি upload করা যায় না? নতুন chat খুলে এই prompt টা paste করো, আর Enter চাপো।

    Prompt
    নিচে একটা screenshot-এর বর্ণনা দিলাম, কারণ আমি ছবিটা upload করতে পারছি না।
    স্ক্রিনটা একটা ফোনের দোকানের checkout পেজ। উপরে "Pay" লেখা title সাদা background-এ হালকা ধূসর রঙে। মাঝখানে "Phone numbr" নামের একটা field-এর border লাল, কিন্তু কোনো message নেই। নিচে পাশাপাশি দুটো button: একটা বড় সবুজ button, লেখা "OK", আর একটা ছোট ধূসর button, লেখা "Cancel"। দাম "BDT 12,4" ডান দিকের কিনারায় কেটে গেছে।
    
    ১. এক বাক্যে বলো স্ক্রিনটা কীসের জন্য।
    ২. সর্বোচ্চ ৩টা জিনিস লেখো যেগুলো ভুল বা বিভ্রান্তিকর মনে হয়। প্রতিটার জন্য বলো স্ক্রিনের কোথায় আছে।
    ৩. এই বর্ণনা থেকে যা বিচার করা যায় না, তার list দাও।
    নির্দিষ্ট করে বলো। design-এর প্রশংসা করবে না।

    তুমি দেখবে: এক বাক্যে স্ক্রিনের কাজ, স্ক্রিনের কোথায় আছে সেটাসহ সর্বোচ্চ ৩টা সমস্যা, আর AI যা বিচার করতে পারে না। যেমন ডান কিনারায় কেটে যাওয়া দাম।

    Example উত্তর
    ১. এটা একটা checkout পেজ, যেখানে ব্যবহারকারী একটা ফোনের দাম দেয়।
    ২. সমস্যা:
    - উপরে: "Pay" title সাদা background-এ হালকা ধূসর, তাই পড়া কঠিন।
    - মাঝখানে: "Phone numbr" field-এর border লাল, কিন্তু কোনো message নেই, আর label-এ বানান ভুল আছে।
    - ডান কিনারায়: দাম "BDT 12,4" কেটে গেছে, তাই পুরো দাম দেখা যায় না।
    ৩. যা বিচার করতে পারছি না: button চাপলে কী হয়, অন্য স্ক্রিনে পেজটা কেমন দেখায়, আর আসল রং।

    তোমার উত্তরের ভাষা একটু আলাদা হবে।

  5. ধাপ ৫
    একই chat

    দুটো উত্তর পাশাপাশি রাখো। কোনটা দিয়ে তুমি স্ক্রিন ঠিক করতে পারবে, আর কেন, লিখে রাখো।

    তুমি দেখবে: দ্বিতীয় উত্তরটা। তাতে এমন সমস্যা আছে যেগুলো স্ক্রিনে খুঁজে একটা একটা করে ঠিক করা যায়।

এইমাত্র কী হলো

ছবি নিয়ে প্রশ্নও একটা prompt। অস্পষ্ট প্রশ্নে AI ছবিটার সাধারণ বর্ণনা দেয়। নির্দিষ্ট প্রশ্নে তার একটা কাজ থাকে: সমস্যা খোঁজো, কোথায় আছে বলো, আর কী বিচার করতে পারো না তাও বলো। প্রতিটা সমস্যার জায়গা দেওয়া থাকলে তুমি screenshot-এ উত্তরটা মিলিয়ে দেখতে পারো।

কাজ শেষ, যখন একই স্ক্রিনের জন্য তোমার কাছে দুটো উত্তর আছে, একটা অস্পষ্ট আর একটা নির্দিষ্ট, আর তুমি জানো কোনটা বেশি কাজের।

নিজেকে যাচাই করোছবি একই। তাহলে নির্দিষ্ট prompt কেন বেশি কাজের উত্তর দেয়?উত্তর দেখো

AI-এর একটা কাজ, একটা format, আর কী report করবে তার একটা সীমা দরকার। অস্পষ্ট প্রশ্নে সে ছবির বর্ণনা দিতে পারে। নির্দিষ্ট প্রশ্নে সে সমস্যা খোঁজে আর বলে কোথায় আছে।

আরেকটু কঠিন করে দেখোনির্দিষ্ট prompt-এর শেষে যোগ করো: সমস্যাগুলো JSON-এ দাও, key হবে problem, location আর severity। এখন কি তোমার program এমন উত্তর পায় যা সে পড়তে পারে?

Task ৩

voice agent-এর delay যোগ করে দেখো

এটা কেন দরকার

তুমি যখন ফোনে কথা বলা voice agent বানাবে, caller চুপচাপ অপেক্ষা করলে ভাববে call নষ্ট। কোন stage সবচেয়ে বেশি delay যোগ করছে, সেটা খুঁজে বের করা দরকার।

  1. ধাপ ১
    নতুন chat

    এই prompt-এর ছয়টা delay পড়ো। মোট কত হবে, তোমার আন্দাজ লিখে রাখো। তারপর prompt টা paste করে Enter চাপো।

    Prompt
    আমি একটা bank help line-এর জন্য voice agent বানাচ্ছি। design হলো speech-to-text (STT), তারপর একটা LLM, তারপর text-to-speech (TTS)। caller কথা বলা থামানোর পর delay গুলো এরকম:
    - caller যে সত্যিই কথা শেষ করেছে, এটা নিশ্চিত হতে অপেক্ষা: 600 ms
    - STT চূড়ান্ত text বানায়: 400 ms
    - LLM তার প্রথম token পাঠায়: 700 ms
    - LLM পুরো একটা বাক্য শেষ না করা পর্যন্ত system অপেক্ষা করে, তারপর TTS-এ text পাঠায়: 300 ms
    - TTS প্রথম audio বানায়: 350 ms
    - caller পর্যন্ত network: 150 ms
    
    ১. caller প্রথম শব্দ শোনার আগে মোট delay যোগ করে বলো।
    ২. কোন stage সবচেয়ে বড়, আর কোনটা কমানো সবচেয়ে সহজ, নাম বলো।
    ৩. দুটো পরিবর্তনের পরামর্শ দাও। প্রতিটার জন্য বলো কত ms বাঁচতে পারে আর কী ভুল হতে পারে।
    একটা ছোট table ব্যবহার করো।

    তুমি দেখবে: একটা ছোট table আর মোট 2,500 ms। সবচেয়ে বড় stage হলো LLM-এর প্রথম token (700 ms)। তোমার আন্দাজ কাছাকাছি ছিল কি না দেখো।

    Example উত্তর
    ১. মোট: 600 + 400 + 700 + 300 + 350 + 150 = 2,500 ms (২.৫ সেকেন্ড)।
    ২. সবচেয়ে বড়: LLM-এর প্রথম token (700 ms)। কমানো সবচেয়ে সহজ: পুরো বাক্যের জন্য অপেক্ষা (300 ms)।
    ৩.
    | পরিবর্তন | বাঁচে | কী ভুল হতে পারে |
    | LLM-এর text ছোট ছোট টুকরোয় TTS-এ পাঠাও | প্রায় 300 ms | voice কেটে কেটে শোনাতে পারে |
    | কথা-শেষের অপেক্ষা 400 ms করো | প্রায় 200 ms | caller থামলে agent মাঝখানে কথা বলে ফেলতে পারে |

    তোমার উত্তরের ভাষা একটু আলাদা হবে।

  2. ধাপ ২
    একই chat

    এই prompt টা copy করে paste করো, Enter চাপো। কয়টা stage চলে যায়, লিখে রাখো।

    Prompt
    এখন আমার team একটা realtime audio API নিয়ে ভাবছে। audio দুই দিকেই stream হয়, আর model মোট প্রায় 450 ms পরে কথা বলা শুরু করে।
    ১. আমার পুরনো design-এর কোন কোন stage চলে যায়?
    ২. আমি কী কী হারাতে পারি, এমন দুটো জিনিস বলো, যেমন control, logging, বা voice বেছে নেওয়া।
    ৩. bank help line-এর জন্য দুই design-এর মধ্যে বেছে নেওয়ার একটা নিয়ম দাও।
    সর্বোচ্চ ৮ লাইনে উত্তর দাও।

    তুমি দেখবে: প্রায় ৩টা stage চলে যায়: আলাদা STT, পুরো বাক্যের জন্য অপেক্ষা, আর আলাদা TTS। AI আরও ২টা জিনিস বলবে যা তুমি হারাতে পারো, যেমন control বা logging।

    Example উত্তর
    ১. আলাদা STT stage, পুরো বাক্যের জন্য অপেক্ষা, আর আলাদা TTS stage চলে যায়। একটাই model শোনে আর বলে।
    ২. তুমি control হারাও (stage-এর মাঝে text পরীক্ষা করা যায় না)। logging কঠিন হয়, আর voice বেছে নেওয়ার সুযোগ কমে।
    ৩. প্রতিটা call-এর transcript যদি পরীক্ষা করে সংরক্ষণ করতে হয়, pipeline ব্যবহার করো। স্বাভাবিক, দ্রুত কথাবার্তা সবচেয়ে জরুরি হলে realtime ব্যবহার করো।

    তোমার উত্তরের ভাষা একটু আলাদা হবে।

  3. ধাপ ৩
    একই chat

    ধাপ ১-এর উত্তর থেকে সবচেয়ে কম কাজের পরিবর্তনটা বেছে নাও। সেটা আর একটা কারণসহ লিখে রাখো।

    তুমি দেখবে: যেমন: LLM-এর text TTS-এ stream করা, কারণ শুধু stage গুলোর জোড়া লাগানোর উপায় বদলাতে হয়।

এইমাত্র কী হলো

voice agent-এ তিনটা stage থাকে। STT কথা থেকে text বানায়, LLM উত্তর লেখে, আর TTS উত্তরটাকে কথায় বদলায়। প্রতিটা stage আগের stage-এর জন্য অপেক্ষা করে, তাই delay গুলো যোগ হয়: এখানে 2,500 ms। realtime API audio দুই দিকেই stream করে, তাই বেশিরভাগ অপেক্ষা চলে যায় (প্রায় 450 ms, মানে 2,050 ms কম)। বিনিময়ে প্রতিটা stage-এর ওপর control কমে।

কাজ শেষ, যখন তোমার কাছে মোট delay (2,500 ms), সবচেয়ে বড় stage, আর প্রথমে যে পরিবর্তনটা করবে সেটা আছে।

নিজেকে যাচাই করোSTT, LLM আর TTS-এর pipeline কেন realtime audio API-র চেয়ে ধীর?উত্তর দেখো

pipeline-এ প্রতিটা stage আগেরটা শেষ হওয়ার জন্য অপেক্ষা করে, তাই delay গুলো যোগ হয়। realtime API দুই দিকেই audio stream করে, তাই বেশিরভাগ অপেক্ষা চলে যায়।

আরেকটু কঠিন করে দেখোপ্রথম prompt-এর একটা সংখ্যা বদলাও, যেমন LLM-এর প্রথম token 1,500 ms করো। নতুন chat-এ পাঠিয়ে জিজ্ঞেস করো এখন কোন পরিবর্তনে সবচেয়ে বেশি সময় বাঁচে।

Task ৪

চারটা কাজের জন্য ঠিক image tool বাছো

এটা কেন দরকার

তুমি যখন image feature বানাবে, যেমন একটা দোকানের poster, ভুল tool বেছে নিলে কয়েক দিন নষ্ট হয়। একটা tool pose ধরে রাখে, আরেকটা style ধরে রাখে। কোন কাজে কোনটা, সেটা জানা দরকার।

  1. ধাপ ১
    নতুন chat

    এই prompt-এর চারটা কাজ পড়ো। কাগজে প্রতিটার জন্য তোমার নিজের tool লেখো। তারপর prompt টা paste করে Enter চাপো।

    Prompt
    আমি একটা diffusion image pipeline ব্যবহার করি। এই tool গুলো আছে: ControlNet (গঠন, যেমন pose, depth বা edge), LoRA (কোনো style বা character শেখানো একটা ছোট trained add-on), inpainting (mask করা একটা জায়গা edit করা), আর IP-Adapter (একটা reference ছবিকে guide হিসেবে ব্যবহার করা)।
    
    প্রতিটা কাজের জন্য সেরা tool বেছে নাও, একটা কারণ দাও, আর বলো আমার কী input লাগবে।
    কাজ ১: একই কার্টুন মেয়েকে একই আঁকার style-এ রেখে ২০টা poster বানাও।
    কাজ ২: আমার ছবির মানুষটার ঠিক একই pose রেখে ছবিটাকে একটা painting বানাও।
    কাজ ৩: একটা product ছবির শুধু আকাশ বদলাও, product যেমন আছে তেমন রাখো।
    কাজ ৪: একটা reference ছবির রং আর mood নিয়ে একটা নতুন ছবি বানাও, কোনো training ছাড়া।
    দুটো tool কাজ করতে পারলে সেটাও বলো।

    তুমি দেখবে: প্রতিটা কাজের জন্য একটা করে tool। বেশিরভাগ chat কাজ ২-এ ControlNet, কাজ ৩-এ inpainting, আর কাজ ৪-এ IP-Adapter বাছে। কাজ ১-এ LoRA, হয়তো IP-Adapter-ও।

    Example উত্তর
    কাজ ১: LoRA। এটা model-কে মেয়েটা আর style শেখায়, তাই সব poster মিলে যায়। Input: training-এর জন্য মেয়েটার কিছু ছবি। IP-Adapter-ও কাজ করতে পারে।
    কাজ ২: ControlNet। এটা pose ধরে রাখে। Input: তোমার ছবি (তা থেকে বানানো pose map) আর "oil painting"-এর মতো একটা লেখা।
    কাজ ৩: Inpainting। এটা শুধু mask করা জায়গা edit করে। Input: ছবি, আকাশের ওপর একটা mask, আর নতুন আকাশের লেখা।
    কাজ ৪: IP-Adapter। এটা reference-কে guide হিসেবে নেয়। Input: reference ছবি আর একটা লেখা।

    তোমার উত্তরের ভাষা একটু আলাদা হবে।

  2. ধাপ ২
    একই chat

    উত্তরটা তোমার কাগজের সঙ্গে মেলাও। যে কাজে তুমি আর AI আলাদা tool বেছেছ, সেগুলো লিখে রাখো।

    তুমি দেখবে: তোমার বেশিরভাগ বাছাই AI-এর সঙ্গে মিলবে। যেটা মেলেনি, সেখানে AI-এর কারণ পড়ো আর ঠিক করো কে ঠিক।

  3. ধাপ ৩
    একই chat

    এই prompt টা copy করে paste করো, Enter চাপো। দেখো প্রতিটা node আগের node-এর output ব্যবহার করছে কি না।

    Prompt
    কাজ ২ নাও, আর pipeline টা ComfyUI-এর মতো node-এর একটা ক্রমিক list হিসেবে লেখো। প্রতিটা node-এর নাম, input আর output লেখো। তারপর দুটো কারণ দাও, কেন একটা team-এর pipeline টা saved graph file হিসেবে version control-এ রাখা উচিত।

    তুমি দেখবে: ৫ থেকে ৭টা node-এর একটা ক্রমিক list, ছবি load করা থেকে নতুন ছবি save করা পর্যন্ত। প্রতিটা node-এর নাম, input আর output আছে।

    Example উত্তর
    ১. Load Image: in = ছবির file, out = image।
    ২. Pose Detector: in = image, out = pose map।
    ৩. Text Prompt: in = "an oil painting of a person", out = লেখার guide।
    ৪. ControlNet Apply: in = লেখার guide + pose map, out = guided input।
    ৫. Sampler: in = guided input, out = নতুন ছবি।
    ৬. Save Image: in = নতুন ছবি, out = file।
    গ্রাফ file রাখার কারণ: team কোডের মতো পরিবর্তন review করতে পারে, আর পুরনো version-এ ফিরে যেতে পারে।

    তোমার উত্তরের ভাষা একটু আলাদা হবে।

এইমাত্র কী হলো

প্রতিটা tool আলাদা সমস্যা মেটায়। ControlNet একটা ছবির গঠন ধরে রাখে, যেমন pose। LoRA একটা ছোট add-on, যাকে train করা হয় model-কে কোনো style বা character শেখানোর জন্য। Inpainting শুধু mask করা জায়গা edit করে, আর IP-Adapter কোনো training ছাড়াই একটা reference ছবিকে guide হিসেবে নেয়। ComfyUI-তে তুমি এগুলোকে node হিসেবে জোড়া দাও, আর পুরো graph একটা file, যেটা team কোডের মতো রাখতে পারে।

কাজ শেষ, যখন তোমার কাছে ৪টা কাজের প্রতিটার জন্য একটা tool আছে, আর কাজ ২-এর একটা node list আছে।

নিজেকে যাচাই করোControlNet আর LoRA-র মধ্যে তফাত কী?উত্তর দেখো

ControlNet তুমি প্রতিবার যে input দাও, তা থেকে একটা ছবির গঠন ঠিক রাখে, যেমন pose বা edge। LoRA একটা ছোট trained add-on, যা model-কে একটা style বা character শেখায়, তাই সে অনেক ছবিতে সেটা বারবার আঁকতে পারে।

আরেকটু কঠিন করে দেখোকাজ ৫ যোগ করো: একটা ছবির মানুষকে নতুন background-এ বসাও, কিন্তু মুখ যেন একই থাকে। জিজ্ঞেস করো কোন কোন tool লাগবে, আর কোন ক্রমে।

ভিডিও দেখো · ৬টি

তথ্যসূত্র

Sources

সব citation মূল paper (arXiv), vendor-এর docs (OpenAI, Anthropic, Google) বা official team blog-এ যায়। প্রতিটি পাতা খুলে citation-এর তথ্য যাচাই করা হয়েছে।

  1. [1]Yao et al., "ReAct: Synergizing Reasoning and Acting in Language Models" (ICLR 2023)
  2. [2]Wei et al., "Plan-and-Execute Agents" / "Chain-of-Thought Prompting Elicits Reasoning in Large Language Models" — NeurIPS 2022
  3. [3]Shinn et al., "Reflexion: Language Agents with Verbal Reinforcement Learning" — NeurIPS 2023
  4. [4]Xu et al., "ReWOO: Decoupling Reasoning from Observations for Efficient Augmented Language Models"
  5. [5]Anthropic Engineering blog — "How we built our multi-agent research system" (2025)
  6. [6]LangGraph — official documentation (LangChain)
  7. [7]Temporal — "Durable Execution for LLM Agents"
  8. [8]Park et al., "Generative Agents: Interactive Simulacra of Human Behavior" — 2023
  9. [9]Anthropic — "Introducing computer use, a new Claude 3.5 Sonnet capability" (Oct 2024)
  10. [10]Anthropic — Tool use / function calling documentation
  11. [11]OpenAI — Function calling guide
  12. [12]Anthropic — Model Context Protocol (MCP) specification
  13. [13]Kwon et al., "Efficient Memory Management for Large Language Model Serving with PagedAttention" — vLLM paper, SOSP 2023
  14. [14]Zheng et al., "SGLang: Efficient Execution of Structured Language Model Programs" — 2023
  15. [15]llama.cpp — open-source GGUF-native inference (ggerganov)
  16. [16]Lin et al., "AWQ: Activation-aware Weight Quantization for LLM Compression and Acceleration" — MLSys 2024
  17. [17]Anthropic — Prompt caching documentation
  18. [18]Zheng et al., "Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena" — NeurIPS 2023
  19. [19]Es et al., "Ragas: Automated Evaluation of Information Retrieval Augmented Language Models" — 2023
  20. [20]Yue et al., "Large Language Model Cascades with Mixture of Thought Representations" — 2024
  21. [21]GPTCache — open-source semantic cache
  22. [22]Guo et al., "DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via RL" — 2025
  23. [23]Jiang et al., "LLMLingua: Compressing Prompts for Accelerated Inference of Large Language Models" — EMNLP 2023
  24. [24]LiteLLM — unified interface for 100+ LLMs
  25. [25]OWASP — "Top 10 for LLM Applications" (LLM01 Prompt Injection, 2025)
  26. [26]Bai et al., "Constitutional AI: Harmlessness from AI Feedback" — Anthropic, 2022
  27. [27]NVIDIA NeMo Guardrails — open-source toolkit
  28. [28]Qwen2-VL Team, "Qwen2-VL: Enhancing Vision-Language Model's Perception of the World at Any Resolution" — 2024
  29. [29]OpenAI — Realtime API documentation
  30. [30]OpenAI — Production best practices guide