پرو لباس با هوش مصنوعی؛ آموزش تعویض لباس در عکس و ساخت Virtual Try-On

در این راهنما یاد می‌گیرید چگونه لباس را با هوش مصنوعی روی عکس خود پرو کنید، تصاویر دقیق‌تری بسازید و قابلیت Virtual Try-On را به فروشگاه اینترنتی اضافه کنید.

Share
پرو لباس با هوش مصنوعی؛ آموزش تعویض لباس در عکس و ساخت Virtual Try-On

پرو لباس با هوش مصنوعی چیست؟

پرو لباس با هوش مصنوعی یا AI Virtual Try-On فناوری‌ای است که با دریافت تصویر یک شخص و عکس یک لباس، تصویری جدید تولید می‌کند که در آن فرد لباس موردنظر را پوشیده است.

در یک سیستم حرفه‌ای، هوش مصنوعی باید بتواند:

  • فرم بدن و حالت ایستادن شخص را تشخیص دهد.
  • ناحیه لباس فعلی را جدا کند.
  • ساختار لباس جدید را از تصویر محصول استخراج کند.
  • لباس را متناسب با بدن، زاویه و حالت فرد تغییر شکل دهد.
  • طرح، رنگ، بافت، آستین، یقه و جزئیات لباس را حفظ کند.
  • بخش‌های خارج از لباس مانند صورت، مو، دست‌ها و پس‌زمینه را تغییر ندهد.
  • سایه، چروک و نور لباس را با تصویر اصلی هماهنگ کند.

کاربرد این فناوری فقط به تعویض سرگرم‌کننده لباس در عکس محدود نیست. فروشگاه‌های اینترنتی، برندهای پوشاک، مارکت‌پلیس‌ها، طراحان لباس، استایلیست‌ها و توسعه‌دهندگان اپلیکیشن‌های مد می‌توانند از آن برای ساخت تجربه پرو مجازی استفاده کنند.

تفاوت تغییر لباس در عکس با Virtual Try-On واقعی

هر تصویری که در آن لباس شخص تغییر کرده باشد، الزاماً یک پرو مجازی دقیق نیست.

سه روش اصلی برای تعویض لباس وجود دارد:

روشورودیدقت حفظ لباسکاربرد
تولید تصویر با Promptعکس شخص و توضیح متنیکم تا متوسطتصاویر خلاقانه و شبکه‌های اجتماعی
ویرایش Image-to-Imageعکس شخص و تصویر مرجع لباسمتوسطتغییر ظاهر و تولید تصویر تبلیغاتی
Virtual Try-On تخصصیعکس شخص و عکس محصولمتوسط تا زیادفروشگاه اینترنتی و نمایش لباس واقعی

در تولید تصویر عمومی ممکن است مدل، لباسی مشابه توضیحات شما بسازد؛ اما تعداد دکمه‌ها، طرح پارچه، یقه یا لوگوی لباس را تغییر دهد.

در Virtual Try-On هدف این است که همان لباس محصول، با بیشترین وفاداری ممکن روی بدن شخص نمایش داده شود.

آیا پرو مجازی اندازه واقعی لباس را مشخص می‌کند؟

خیر. این یکی از مهم‌ترین محدودیت‌های پرو لباس با هوش مصنوعی است.

بیشتر ابزارهای مبتنی بر عکس، تنها ظاهر احتمالی لباس را شبیه‌سازی می‌کنند. آن‌ها لزوماً اطلاعات دقیقی درباره موارد زیر ندارند:

  • اندازه واقعی دور سینه، کمر و باسن
  • قد و عرض دقیق لباس
  • جنس و کشسانی پارچه
  • جدول سایزبندی برند
  • ضخامت پارچه
  • آزادی یا جذب بودن الگو
  • تفاوت سایز میان برندها
  • رفتار فیزیکی پارچه هنگام حرکت

بنابراین خروجی Virtual Try-On را نباید تضمین اندازه یا جایگزین جدول سایزبندی دانست.

برای پیشنهاد سایز دقیق‌تر، فروشگاه باید اطلاعاتی مانند اندازه‌های بدن، مشخصات محصول، الگوی لباس و جدول سایزبندی را نیز وارد فرایند کند.

کاربردهای پرو لباس با هوش مصنوعی

پرو آنلاین قبل از خرید

کاربر عکس خود را بارگذاری می‌کند و ظاهر لباس انتخابی را روی بدن خود می‌بیند.

تعویض لباس در عکس شخصی

می‌توان بدون تهیه لباس یا عکاسی مجدد، استایل‌های مختلف را آزمایش کرد.

تولید عکس برای فروشگاه پوشاک

برندها می‌توانند تصاویر اولیه محصول را روی مدل‌های مجازی یا تصاویر مجاز نمایش دهند.

طراحی و پیش‌نمایش لباس

طراحان می‌توانند قبل از دوخت نمونه، رنگ، طرح یا فرم تقریبی لباس را روی مدل بررسی کنند.

ساخت کاتالوگ

از یک لباس می‌توان تصاویر نمایشی متفاوتی برای دسته‌بندی، شبکه‌های اجتماعی یا تبلیغات ساخت.

پیشنهاد استایل

یک دستیار هوش مصنوعی می‌تواند براساس موقعیت، آب‌وهوا، رنگ‌ها و ترجیحات کاربر، ترکیب لباس پیشنهاد دهد و نتیجه را به شکل تصویر نمایش دهد.

پرو مجازی لباس چگونه کار می‌کند؟

در ساده‌ترین حالت، سیستم دو ورودی دارد:

  1. تصویر شخص
  2. تصویر لباس

خروجی، تصویری از همان فرد با لباس جدید است.

در پشت صحنه، گردش‌کار می‌تواند شامل مراحل زیر باشد:

تصویر شخص
↓
تشخیص بدن و Pose
↓
تفکیک صورت، مو، دست‌ها و لباس فعلی
↓
ساخت ماسک ناحیه قابل تغییر
↓
استخراج ویژگی‌های لباس محصول
↓
تطبیق لباس با فرم و حالت بدن
↓
تولید تصویر با مدل Diffusion
↓
ترمیم دست‌ها، لبه لباس و جزئیات
↓
کنترل کیفیت و تحویل خروجی

مدل‌های تخصصی Virtual Try-On معمولاً فقط از یک Prompt استفاده نمی‌کنند. آن‌ها به ساختار بدن، ناحیه پوشیدنی و ویژگی‌های تصویری لباس نیز توجه می‌کنند.

برای مثال، پژوهش IDM-VTON از مسیرهای جداگانه برای انتقال ویژگی‌های سطح بالا و جزئیات سطح پایین لباس به مدل Diffusion استفاده می‌کند تا وفاداری به لباس مرجع افزایش یابد. مقاله IDM-VTON

چه لباس‌هایی بهتر پردازش می‌شوند؟

به‌طور معمول، لباس‌هایی با ساختار واضح نتیجه بهتری دارند:

  • تی‌شرت
  • پیراهن
  • شومیز
  • هودی
  • کت
  • مانتو
  • شلوار
  • دامن
  • لباس یک‌تکه
  • کفش، در مدل‌هایی که از آن پشتیبانی می‌کنند

موارد زیر ممکن است پیچیده‌تر باشند:

  • لباس‌های بسیار گشاد
  • لباس‌های چندلایه
  • پارچه‌های شفاف
  • تور و گیپور ظریف
  • لباس‌های دارای منگوله یا زنجیر
  • طرح‌های بسیار ریز
  • پارچه‌های براق و آینه‌ای
  • لباس‌هایی که بخشی از آن‌ها پشت دست یا مو قرار می‌گیرد
  • روسری و پوشش‌هایی که با مو و صورت هم‌پوشانی دارند
  • لباس‌هایی با نوشته یا لوگوی دقیق

آموزش پرو لباس با هوش مصنوعی

برای یک پرو مجازی ساده معمولاً باید تصویر شخص و لباس را به ابزار بدهید. نام گزینه‌ها در ابزارهای مختلف متفاوت است، اما فرایند اصلی مشابه خواهد بود.

مرحله اول: آماده‌کردن عکس شخص

عکس مناسب باید:

  • وضوح کافی داشته باشد.
  • بدن را بدون بریدگی غیرضروری نشان دهد.
  • نور متعادل داشته باشد.
  • حالت بدن واضح باشد.
  • دست‌ها روی بخش اصلی لباس قرار نگرفته باشند.
  • موها بخش زیادی از لباس را نپوشانده باشند.
  • پس‌زمینه نسبتاً ساده باشد.
  • زاویه دوربین طبیعی داشته باشد.
  • بدن زیر لباس بسیار حجیم پنهان نشده باشد.

برای پرو لباس بالاتنه، تصویر نیم‌تنه مناسب است. برای شلوار یا لباس یک‌تکه، بهتر است تصویر تمام‌قد استفاده شود.

مرحله دوم: آماده‌کردن عکس لباس

تصویر محصول بهتر است:

  • روبه‌رو باشد.
  • لباس به‌طور کامل دیده شود.
  • پس‌زمینه سفید یا ساده داشته باشد.
  • وضوح طرح و پارچه کافی باشد.
  • نور روی لباس یکنواخت باشد.
  • هیچ بخش مهمی بریده نشده باشد.
  • لباس بیش‌ازحد چروکیده نباشد.
  • نوشته و طرح واقعی آن قابل مشاهده باشد.

برخی سرویس‌ها علاوه بر تصویر Flat-lay، عکس لباس روی مانکن یا مدل را نیز می‌پذیرند. برای نمونه، API رسمی FASHN اعلام می‌کند که می‌تواند از عکس Flat-lay، مانکن نامرئی یا تصویر لباس روی مدل استفاده کند. معرفی API رسمی FASHN

مرحله سوم: تعیین نوع لباس

اگر ابزار گزینه دسته‌بندی دارد، نوع لباس را درست انتخاب کنید:

  • tops برای بالاتنه
  • bottoms برای پایین‌تنه
  • one-piece برای پیراهن و لباس یک‌تکه
  • outerwear برای کت، پالتو یا مانتو
  • shoes برای کفش، در صورت پشتیبانی مدل

انتخاب دسته اشتباه ممکن است باعث شود مدل ناحیه نادرستی از بدن را تغییر دهد.

مرحله چهارم: تعیین محدوده تغییر

اگر ابزار از Mask یا انتخاب ناحیه پشتیبانی می‌کند، فقط لباس قبلی را انتخاب کنید.

ماسک نباید بی‌دلیل شامل این بخش‌ها شود:

  • صورت
  • گردن
  • مو
  • انگشتان
  • کیف
  • پس‌زمینه
  • زیورآلات
  • اجزایی که باید ثابت بمانند

هرچه محدوده تغییر دقیق‌تر باشد، احتمال تغییر هویت و پس‌زمینه کمتر خواهد شد.

مرحله پنجم: تولید تصویر اولیه

در مرحله اول با تنظیمات استاندارد خروجی بگیرید. بلافاصله سراغ بالاترین وضوح یا چندین خروجی گران نروید.

ابتدا موارد زیر را بررسی کنید:

  • چهره ثابت مانده است؟
  • طرح لباس حفظ شده است؟
  • طول آستین درست است؟
  • یقه و دکمه‌ها تغییر نکرده‌اند؟
  • دست‌ها طبیعی هستند؟
  • لباس با بدن تداخل ندارد؟
  • لبه‌های لباس سالم‌اند؟
  • پس‌زمینه تغییر نکرده است؟

مرحله ششم: اصلاح موضعی

اگر فقط بخشی از تصویر مشکل دارد، همان ناحیه را دوباره ویرایش کنید. تولید مجدد کل تصویر ممکن است قسمت‌های درست را نیز تغییر دهد.

برای نمونه:

  • فقط آستین چپ را Mask کنید.
  • فقط طرح روی سینه را بازسازی کنید.
  • لبه لباس کنار دست را اصلاح کنید.
  • چین‌های غیرطبیعی کمر را ترمیم کنید.
  • انگشتان را جداگانه ویرایش کنید.

پرامپت آماده تعویض لباس در عکس

در مدل‌های ویرایش تصویر، یک پرامپت دقیق می‌تواند به کنترل خروجی کمک کند.

لباس فعلی شخص را با لباس موجود در تصویر مرجع جایگزین کن. هویت، چهره،
مدل مو، فرم بدن، حالت ایستادن، دست‌ها، پس‌زمینه و زاویه دوربین بدون تغییر
باقی بمانند. رنگ، طرح، یقه، آستین، دکمه‌ها، دوخت و بافت لباس مرجع با
حداکثر دقت حفظ شوند. لباس به‌صورت طبیعی با حالت بدن تطبیق پیدا کند و
چین‌ها، سایه‌ها و نور آن با تصویر اصلی هماهنگ باشند. هیچ وسیله یا
اکسسوری جدیدی اضافه نکن.

نسخه انگلیسی:

Replace the person's current garment with the exact garment shown in the
reference image. Preserve the person's identity, facial features, hairstyle,
body shape, pose, hands, background, camera angle and lighting. Maintain the
reference garment's color, pattern, neckline, sleeves, buttons, seams and
fabric texture as accurately as possible. Fit the garment naturally to the
body and generate realistic folds and shadows. Do not add accessories or
modify any unrelated part of the image.

پرامپت تعویض مانتو

مانتوی فعلی شخص را با مانتوی موجود در تصویر محصول جایگزین کن. قد مانتو،
فرم یقه، رنگ، مدل آستین، دکمه‌ها، جیب‌ها و طرح پارچه دقیقاً مطابق تصویر
مرجع باشند. چهره، مو، شال، دست‌ها، شلوار، کیف، کفش و پس‌زمینه تغییر
نکنند. مانتو با فرم بدن و حالت ایستادن شخص هماهنگ شود و چین و سایه طبیعی
داشته باشد.

پرامپت تعویض کت‌وشلوار

لباس شخص را با یک کت‌وشلوار مطابق تصویر مرجع جایگزین کن. برش کت، تعداد
دکمه‌ها، فرم یقه، رنگ پارچه، الگو و تناسب شلوار حفظ شوند. چهره و بدن شخص
تغییر نکنند. پیراهن زیر کت و کفش‌ها ثابت بمانند. خروجی مانند یک عکس
واقعی با نورپردازی طبیعی و جزئیات دقیق پارچه باشد.

پرامپت ساخت استایل رسمی

لباس فعلی را به یک استایل رسمی و مینیمال تغییر بده: کت سرمه‌ای تک‌دکمه،
پیراهن سفید ساده، شلوار پارچه‌ای تیره و کفش رسمی مشکی. هویت، چهره، فرم
بدن، حالت ایستادن و پس‌زمینه را حفظ کن. تناسب لباس طبیعی و حرفه‌ای باشد
و هیچ لوگو یا نوشته‌ای به تصویر اضافه نشود.

این پرامپت برای طراحی خلاقانه است و لباس مشخصی را از روی عکس محصول بازسازی نمی‌کند.

پرامپت پرو چند رنگ از یک لباس

برای مقایسه رنگ‌ها بهتر است یک تصویر پایه تأییدشده داشته باشید و فقط رنگ لباس را تغییر دهید:

فقط رنگ لباس را از سرمه‌ای به زرشکی تیره تغییر بده. طرح، بافت، دوخت،
فرم یقه، دکمه‌ها، چین‌های پارچه و نور لباس ثابت بمانند. چهره، پوست، مو،
بدن، دست‌ها و پس‌زمینه را تغییر نده.

تغییر هم‌زمان رنگ، مدل، جنس و فرم لباس کنترل خروجی را دشوارتر می‌کند.

Negative Prompt پیشنهادی

اگر مدل انتخابی از Negative Prompt پشتیبانی می‌کند:

changed face, altered identity, distorted body, extra fingers, missing fingers,
duplicate arms, wrong garment pattern, changed logo, incorrect text, malformed
sleeves, broken neckline, floating fabric, unrealistic folds, plastic skin,
blurry texture, changed background, cropped body, watermark

چرا نتیجه پرو لباس غیرطبیعی می‌شود؟

عکس شخص مناسب نیست

دست‌های ضربدری، موهای بلند روی لباس یا زاویه بسیار مایل، جداسازی لباس فعلی را دشوار می‌کنند.

عکس لباس ناقص است

اگر پشت لباس، طول واقعی یا بخشی از آستین مشخص نباشد، مدل ناچار به حدس‌زدن خواهد بود.

مدل عمومی به‌جای مدل تخصصی استفاده شده است

مدل‌های عمومی تولید تصویر ممکن است خروجی زیبایی بسازند، اما برای حفظ دقیق محصول آموزش ندیده‌اند.

طرح لباس پیچیده است

نوشته، لوگو، خطوط هندسی و الگوهای تکرارشونده ممکن است تغییر کنند.

ماسک بیش‌ازحد بزرگ است

وقتی صورت، مو یا دست‌ها داخل ناحیه ویرایش قرار بگیرند، مدل ممکن است آن‌ها را بازسازی و هویت شخص را تغییر دهد.

رزولوشن ورودی پایین است

جزئیات پارچه‌ای که در ورودی دیده نمی‌شوند، در خروجی نیز قابل بازیابی دقیق نیستند.

روش حرفه‌ای برای حفظ مشخصات لباس

فروشگاه اینترنتی باید ویژگی‌های مهم محصول را به‌صورت ساختاریافته نگه دارد:

{
  "category": "outerwear",
  "product_type": "long_coat",
  "color": "dark_navy",
  "length": "below_knee",
  "sleeve": "long",
  "neckline": "notched_lapel",
  "closure": "three_buttons",
  "pattern": "solid",
  "fabric": "matte_woven",
  "must_preserve": [
    "lapel_shape",
    "button_count",
    "pocket_position",
    "cuff_design"
  ]
}

این اطلاعات می‌توانند برای ساخت Prompt، انتخاب مدل، ارزیابی خروجی و جلوگیری از نمایش اشتباه محصول استفاده شوند.

معیارهای ارزیابی خروجی Virtual Try-On

زیبا بودن تصویر کافی نیست. برای ارزیابی حرفه‌ای باید چند معیار جداگانه در نظر گرفته شود.

حفظ هویت شخص

  • چهره تغییر نکرده باشد.
  • رنگ پوست ثابت بماند.
  • مدل مو و فرم بدن حفظ شوند.
  • حالت بدن تغییر غیرضروری نداشته باشد.

وفاداری به لباس

  • رنگ محصول درست باشد.
  • تعداد دکمه‌ها حفظ شود.
  • طرح پارچه تغییر نکند.
  • طول و فرم آستین درست باشد.
  • یقه و جیب‌ها مطابق محصول باشند.
  • لوگو یا نوشته جعل نشده باشد.

طبیعی بودن پوشش

  • لباس در بدن فرو نرفته باشد.
  • مرز لباس و دست طبیعی باشد.
  • چین‌ها با حالت بدن هماهنگ باشند.
  • سایه و نور با محیط تطابق داشته باشند.
  • پارچه مانند یک سطح شناور دیده نشود.

کیفیت فنی تصویر

  • خروجی تار نباشد.
  • Artefactهای تصویری وجود نداشته باشند.
  • رزولوشن برای محل استفاده کافی باشد.
  • فایل خروجی رنگ و فشرده‌سازی مناسبی داشته باشد.

ساخت قابلیت پرو مجازی برای فروشگاه اینترنتی

اگر توسعه‌دهنده هستید، اضافه‌کردن Virtual Try-On فقط به اتصال یک Endpoint محدود نمی‌شود. باید کل تجربه کاربر و چرخه پردازش طراحی شود.

معماری پیشنهادی:

کاربر
↓
صفحه محصول و انتخاب «پرو روی عکس من»
↓
رضایت‌نامه و راهنمای گرفتن عکس
↓
آپلود مستقیم به فضای ذخیره‌سازی خصوصی
↓
اعتبارسنجی و حذف Metadata
↓
ساخت Job پردازش
↓
صف و Worker
↓
مدل Virtual Try-On
↓
ارزیابی خودکار و کنترل ایمنی
↓
ذخیره موقت خروجی
↓
نمایش نتیجه در صفحه محصول

چرا پردازش Async بهتر است؟

تولید تصویر ممکن است بیشتر از یک درخواست معمولی وب زمان ببرد. نگه‌داشتن اتصال HTTP تا پایان پردازش می‌تواند باعث Timeout شود.

الگوی مناسب‌تر:

  1. کاربر درخواست را ارسال می‌کند.
  2. سرور یک job_id برمی‌گرداند.
  3. Job در صف قرار می‌گیرد.
  4. Worker درخواست را به مدل ارسال می‌کند.
  5. وضعیت در پایگاه داده به‌روزرسانی می‌شود.
  6. Frontend وضعیت را Poll می‌کند یا از WebSocket استفاده می‌کند.
  7. پس از تکمیل، URL کوتاه‌عمر خروجی نمایش داده می‌شود.

نمونه پاسخ ایجاد Job:

{
  "id": "tryon_7d4a91",
  "status": "queued",
  "status_url": "/api/try-on/tryon_7d4a91",
  "expires_at": "2026-07-18T12:00:00Z"
}

مدل داده پیشنهادی

CREATE TABLE virtual_try_on_jobs (
  id UUID PRIMARY KEY,
  user_id UUID NOT NULL,
  product_id UUID NOT NULL,
  person_image_key TEXT NOT NULL,
  garment_image_key TEXT NOT NULL,
  garment_category TEXT NOT NULL,
  status TEXT NOT NULL,
  provider_job_id TEXT,
  output_image_key TEXT,
  prompt_version TEXT,
  model_id TEXT,
  error_code TEXT,
  created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
  completed_at TIMESTAMPTZ,
  expires_at TIMESTAMPTZ NOT NULL
);

وضعیت‌ها را محدود و قابل پیش‌بینی نگه دارید:

queued
validating
processing
succeeded
failed
expired
deleted

نمونه API داخلی فروشگاه

POST /api/virtual-try-on
Content-Type: application/json
Authorization: Bearer USER_SESSION_TOKEN
{
  "person_image_id": "upload_84ab",
  "product_id": "product_1205",
  "garment_category": "tops"
}

در Backend باید product_id را به تصویر رسمی محصول متصل کنید. اجازه ندهید کاربر هر URL دلخواهی را به سرویس پردازش ارسال کند؛ زیرا این کار می‌تواند زمینه SSRF یا سوءاستفاده از منابع داخلی را ایجاد کند.

اعتبارسنجی تصاویر

پیش از ارسال تصویر به مدل بررسی کنید:

  • فرمت فایل واقعاً JPEG، PNG یا WebP باشد.
  • فقط به پسوند فایل اعتماد نشود.
  • حجم فایل محدود باشد.
  • ابعاد حداقل و حداکثر کنترل شوند.
  • تصاویر خراب رد شوند.
  • Metadata مکانی حذف شود.
  • فایل با نام تصادفی ذخیره شود.
  • دسترسی Bucket عمومی نباشد.
  • لینک‌ها امضاشده و کوتاه‌عمر باشند.
  • فایل‌ها پس از زمان مشخص حذف شوند.

امنیت و حریم خصوصی تصاویر کاربران

عکس تمام‌قد و چهره کاربر داده‌ای حساس است. فروشگاه باید دقیقاً توضیح دهد:

  • تصویر برای چه کاری استفاده می‌شود.
  • چه مدتی نگه‌داری خواهد شد.
  • آیا تصویر برای آموزش مدل استفاده می‌شود یا خیر.
  • کدام ارائه‌دهنده آن را پردازش می‌کند.
  • کاربر چگونه می‌تواند حذف تصویر را درخواست کند.
  • آیا خروجی در حساب کاربری ذخیره می‌شود.
  • آیا دسترسی انسانی به تصاویر وجود دارد.

تنظیم پیش‌فرض مناسب، حذف خودکار عکس‌ها پس از مدت کوتاه است؛ مگر اینکه کاربر با ذخیره آن‌ها موافقت کند.

نمونه کد ساخت Job در Node.js

import crypto from "node:crypto";

export async function createTryOnJob({
  userId,
  productId,
  personImageKey,
  garmentImageKey,
  category,
  db,
  queue,
}) {
  const allowedCategories = new Set([
    "tops",
    "bottoms",
    "one-piece",
    "outerwear",
  ]);

  if (!allowedCategories.has(category)) {
    throw new Error("Unsupported garment category");
  }

  const job = {
    id: crypto.randomUUID(),
    user_id: userId,
    product_id: productId,
    person_image_key: personImageKey,
    garment_image_key: garmentImageKey,
    garment_category: category,
    status: "queued",
    prompt_version: "virtual-try-on-v1",
    expires_at: new Date(Date.now() + 24 * 60 * 60 * 1000),
  };

  await db.virtualTryOnJobs.insert(job);

  await queue.publish("virtual-try-on", {
    jobId: job.id,
  });

  return {
    id: job.id,
    status: job.status,
  };
}

جزئیات فراخوانی مدل را در Worker قرار دهید، نه Route اصلی کاربر.

شبه‌کد Worker پردازش

async function processTryOnJob(jobId) {
  const job = await db.virtualTryOnJobs.findById(jobId);

  if (!job || job.status !== "queued") {
    return;
  }

  await db.virtualTryOnJobs.update(jobId, {
    status: "processing",
  });

  try {
    const personUrl = await storage.createSignedUrl(
      job.person_image_key,
      600
    );

    const garmentUrl = await storage.createSignedUrl(
      job.garment_image_key,
      600
    );

    const prediction = await virtualTryOnProvider.generate({
      personImage: personUrl,
      garmentImage: garmentUrl,
      category: job.garment_category,
    });

    const outputKey = await storage.copyFromUrl(
      prediction.outputUrl,
      `try-on-results/${job.id}.webp`
    );

    await db.virtualTryOnJobs.update(jobId, {
      status: "succeeded",
      output_image_key: outputKey,
      completed_at: new Date(),
    });
  } catch (error) {
    await db.virtualTryOnJobs.update(jobId, {
      status: "failed",
      error_code: normalizeProviderError(error),
    });

    throw error;
  }
}

URL خروجی ارائه‌دهنده را دائمی فرض نکنید. بهتر است نتیجه را پس از اعتبارسنجی در فضای ذخیره‌سازی خود کپی کنید.

مدیریت خطا و Retry

همه خطاها نباید دوباره اجرا شوند.

خطاهای قابل Retry

  • Timeout موقت
  • خطای شبکه
  • محدودیت لحظه‌ای سرویس
  • خطاهای ۵۰۰ ارائه‌دهنده
  • قطع موقت فضای ذخیره‌سازی

خطاهای غیرقابل Retry

  • فرمت نامعتبر تصویر
  • نبودن شخص در عکس
  • دسته‌بندی پشتیبانی‌نشده
  • محتوای ممنوع
  • URL منقضی‌شده ورودی
  • عکس محصول نامناسب
  • اعتبار ناکافی

برای خطاهای موقت از Exponential Backoff استفاده کنید:

تلاش اول: بلافاصله
تلاش دوم: پس از ۲ ثانیه
تلاش سوم: پس از ۸ ثانیه
تلاش چهارم: پس از ۳۰ ثانیه

تعداد تلاش‌ها باید محدود باشد تا یک Job خراب، هزینه نامحدود ایجاد نکند.

کنترل هزینه سرویس پرو مجازی

هزینه نهایی فقط قیمت یک Generation نیست. موارد زیر نیز هزینه ایجاد می‌کنند:

  • ذخیره‌سازی عکس
  • پهنای باند
  • پیش‌پردازش
  • تولید چند خروجی
  • Upscale
  • Retry
  • کنترل کیفیت با مدل دوم
  • نگهداری موقت فایل
  • Moderation
  • لاگ و مانیتورینگ

فرمول ساده:

هزینه هر پرو موفق =
هزینه تولید اولیه
+ میانگین هزینه Retry
+ هزینه ارزیابی
+ ذخیره‌سازی
+ پهنای باند

برای کنترل هزینه:

  • پیش از تولید، کیفیت تصویر را اعتبارسنجی کنید.
  • نتیجه یکسان کاربر و محصول را Cache کنید.
  • پیش‌نمایش را با وضوح متوسط بسازید.
  • Upscale را فقط پس از درخواست کاربر اجرا کنید.
  • برای کاربران مهمان محدودیت تعیین کنید.
  • تولیدهای ناموفق را براساس علت دسته‌بندی کنید.
  • مصرف را به تفکیک مدل و محصول ثبت کنید.

اتصال هوش مصنوعی به فروشگاه با API درواره

درواره یک پلتفرم API هوش مصنوعی است و اپلیکیشن آماده پرو لباس یا فروشگاه پوشاک ارائه نمی‌کند. توسعه‌دهندگان می‌توانند از API مدل‌های موجود در درواره برای ساخت بخش‌هایی از گردش‌کار هوشمند فروشگاه استفاده کنند.

بسته به مدل‌های فعال در کاتالوگ، این کاربردها می‌تواند شامل موارد زیر باشد:

  • تحلیل تصویر لباس
  • استخراج ویژگی‌های محصول از عکس
  • تولید توضیحات ساختاریافته لباس
  • پیشنهاد استایل
  • ساخت Prompt برای ویرایش تصویر
  • ویرایش یا تولید تصویر با مدل‌های پشتیبانی‌شده
  • کنترل متنی مشخصات محصول
  • تولید عنوان و توضیحات کاتالوگ

پیش از پیاده‌سازی Virtual Try-On تخصصی، کاتالوگ فعلی درواره را بررسی کنید. هر مدل Image-to-Image الزاماً قابلیت پرو مجازی دقیق ندارد و پشتیبانی از دو تصویر ورودی، Mask یا Reference Image باید در مستندات همان مدل تأیید شود.

برای شروع می‌توانید در درواره ثبت‌نام کنید، API Key بسازید و مدل مناسب پروژه را انتخاب کنید.

استخراج مشخصات لباس با یک مدل بینایی

یکی از کاربردهای مفید API درواره، تحلیل عکس محصول و تبدیل آن به JSON است. برای این کار باید یک مدل Vision سازگار را از فهرست فعلی مدل‌ها انتخاب کنید.

نمونه ساختار درخواست OpenAI-Compatible:

const response = await fetch(
  "https://api.darvareh.ir/v1/chat/completions",
  {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.DARVAREH_API_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      model: process.env.DARVAREH_VISION_MODEL,
      messages: [
        {
          role: "system",
          content: `
            You analyze apparel product images.
            Return valid JSON only.
            Never guess details that are not visible.
          `,
        },
        {
          role: "user",
          content: [
            {
              type: "text",
              text: `
                Extract:
                category, product_type, primary_color, pattern,
                sleeve_type, neckline, closure, length,
                visible_material, and must_preserve_details.
              `,
            },
            {
              type: "image_url",
              image_url: {
                url: "https://example.com/signed-product-image.jpg",
              },
            },
          ],
        },
      ],
      temperature: 0.1,
    }),
  }
);

if (!response.ok) {
  throw new Error(await response.text());
}

const result = await response.json();
console.log(result.choices[0].message.content);

شناسه مدل را از کاتالوگ فعلی درواره بردارید و مطمئن شوید مدل از ورودی تصویر پشتیبانی می‌کند. کلید API نیز باید فقط در Backend نگه‌داری شود.

ارزیابی خودکار وفاداری لباس

می‌توان تصویر محصول و خروجی پرو مجازی را به یک مدل بینایی داد و از آن خواست تفاوت‌های قابل مشاهده را گزارش کند.

نمونه خروجی ارزیابی:

{
  "identity_preserved": true,
  "garment_color_match": 0.94,
  "pattern_match": 0.72,
  "button_count_match": false,
  "sleeve_match": true,
  "detected_issues": [
    "One button is missing",
    "The pocket position has changed"
  ],
  "review_required": true
}

این امتیازها نباید بدون اعتبارسنجی به‌عنوان حقیقت قطعی استفاده شوند. مدل ارزیاب نیز ممکن است اشتباه کند. برای محصولات حساس یا تصاویر تبلیغاتی نهایی، بازبینی انسانی ضروری است.

انتخاب میان API آماده و اجرای مدل متن‌باز

برای ساخت سرویس Virtual Try-On دو مسیر اصلی وجود دارد.

معیارAPI مدیریت‌شدهمدل متن‌باز روی سرور
زمان راه‌اندازیکمتربیشتر
نیاز به GPUندارددارد
کنترل زیرساختکمتربیشتر
نگهداری مدلارائه‌دهندهتیم شما
مقیاس‌پذیری اولیهساده‌ترنیازمند طراحی
سفارشی‌سازیمحدودتربیشتر
هزینه اولیهکمترمعمولاً بیشتر
مسئولیت امنیتمشترکبیشتر بر عهده شما

IDM-VTON یکی از پروژه‌های متن‌باز شناخته‌شده این حوزه است، اما کد و Checkpointهای مخزن رسمی آن تحت مجوز CC BY-NC-SA 4.0 منتشر شده‌اند؛ بنابراین قبل از استفاده تجاری باید محدودیت‌های مجوز را دقیق بررسی کنید. مخزن رسمی IDM-VTON

API مدیریت‌شده برای MVP و آزمایش بازار معمولاً سریع‌تر است. اجرای داخلی زمانی منطقی‌تر می‌شود که حجم پردازش، الزامات حریم خصوصی، سفارشی‌سازی یا اقتصاد پروژه آن را توجیه کند.

Google Virtual Try-On

گوگل نیز قابلیت Virtual Try-On را در Vertex AI ارائه کرده است. طبق Release Notes رسمی، مدل virtual-try-on-001 در ژانویه ۲۰۲۶ به وضعیت عمومی یا GA رسیده و جایگزین نسخه Preview شده است. در توضیحات گوگل به بهبود حفظ فرم بدن، کیفیت کفش و وفاداری به محصول اشاره شده است. یادداشت انتشار رسمی Vertex AI

این نمونه نشان می‌دهد Virtual Try-On به‌تدریج از یک قابلیت آزمایشی به سرویس زیرساختی قابل استفاده در محصولات نرم‌افزاری تبدیل شده است.

شاخص‌های مهم برای فروشگاه

پس از انتشار قابلیت پرو مجازی، فقط تعداد تصاویر تولیدشده را اندازه‌گیری نکنید.

شاخص‌های مفید عبارت‌اند از:

  • درصد کاربران صفحه محصول که پرو مجازی را باز می‌کنند
  • درصد آپلود موفق عکس
  • نرخ تکمیل Generation
  • زمان متوسط تولید
  • هزینه هر خروجی موفق
  • تعداد تولید مجدد
  • نرخ افزودن محصول به سبد پس از پرو
  • نرخ خرید کاربران استفاده‌کننده
  • نرخ حذف تصویر توسط کاربر
  • میزان خطای هر دسته لباس
  • درصد خروجی‌های نیازمند بازبینی
  • رضایت کاربر از شباهت لباس

برای اثبات اثر واقعی، بهتر است یک آزمایش A/B انجام دهید و رفتار کاربران دارای Virtual Try-On را با گروه کنترل مقایسه کنید. کاهش مرجوعی یا افزایش فروش را نباید بدون داده واقعی فروشگاه به خود فناوری نسبت داد.

نکات حقوقی و اخلاقی

در استفاده از تعویض لباس با AI باید این اصول رعایت شوند:

  • فقط از عکس خودتان یا فردی که رضایت دارد استفاده کنید.
  • عکس کاربران را بدون اجازه برای تبلیغات استفاده نکنید.
  • تصاویر کودکان را با حساسیت بیشتر و رضایت سرپرست پردازش کنید.
  • خروجی را برای تحقیر، آزار یا جعل هویت افراد نسازید.
  • تصاویر خصوصی را عمومی نکنید.
  • درباره مصنوعی‌بودن تصاویر تبلیغاتی شفاف باشید.
  • محصولی متفاوت از کالای واقعی به مشتری نمایش ندهید.
  • جزئیات لباس را طوری تغییر ندهید که باعث فریب خریدار شود.
  • مجوز استفاده تجاری مدل و ابزار را بررسی کنید.
  • سیاست حفظ و حذف تصاویر را به زبان ساده اعلام کنید.

اگر خروجی AI رنگ، طرح یا فرم محصول را تغییر داده است، نباید به‌عنوان عکس دقیق همان کالا در صفحه فروش استفاده شود.

اشتباهات رایج فروشگاه‌ها

معرفی خروجی به‌عنوان تضمین اندازه

Virtual Try-On تصویری، تناسب سایز را تضمین نمی‌کند. جدول سایزبندی همچنان ضروری است.

ذخیره دائمی عکس کاربران

برای پرو موقت، نگهداری دائمی عکس معمولاً ضرورتی ندارد.

قرار دادن API Key در Frontend

تمام کلیدهای سرویس‌های AI باید در Backend نگه‌داری شوند.

نبود راهنمای عکاسی

بخش بزرگی از خروجی‌های ضعیف به عکس نامناسب کاربر مربوط است. قبل از آپلود، نمونه عکس درست و نادرست نمایش دهید.

استفاده از یک مدل برای همه پوشاک

مدلی که برای تی‌شرت خوب عمل می‌کند ممکن است در مانتو، لباس بلند، کفش یا لباس چندلایه ضعیف باشد.

نبود کنترل کیفیت محصول

تصویر می‌تواند طبیعی باشد اما با کالای واقعی تفاوت داشته باشد. وفاداری محصول باید جداگانه سنجیده شود.

چک‌لیست راه‌اندازی Virtual Try-On

محصول و تجربه کاربری

  • هدف قابلیت مشخص شده است.
  • محدودیت‌ها به کاربر توضیح داده شده‌اند.
  • راهنمای گرفتن عکس وجود دارد.
  • کاربر قبل از آپلود رضایت می‌دهد.
  • نتیجه به‌عنوان تضمین سایز معرفی نمی‌شود.
  • امکان حذف تصویر وجود دارد.

Backend

  • پردازش به‌صورت Job و Async انجام می‌شود.
  • Rate Limiting فعال است.
  • API Key در سرور نگه‌داری می‌شود.
  • Retry محدود و کنترل‌شده است.
  • خطاها دسته‌بندی می‌شوند.
  • هزینه هر Generation ثبت می‌شود.
  • Idempotency برای درخواست‌های تکراری در نظر گرفته شده است.

امنیت

  • نوع واقعی فایل بررسی می‌شود.
  • Metadata حذف می‌شود.
  • فایل‌ها در فضای خصوصی ذخیره می‌شوند.
  • Signed URL کوتاه‌عمر است.
  • فایل‌ها به‌صورت خودکار منقضی می‌شوند.
  • دسترسی کارکنان ثبت و محدود می‌شود.
  • سیاست حریم خصوصی شفاف است.

کیفیت

  • چهره و هویت ثابت می‌ماند.
  • رنگ و طرح لباس بررسی می‌شود.
  • لوگو و نوشته محصول کنترل می‌شود.
  • دست‌ها و لبه لباس بررسی می‌شوند.
  • خروجی‌های ضعیف امکان تولید مجدد دارند.
  • محصولات مهم بازبینی انسانی می‌شوند.

سؤالات متداول

بهترین عکس برای پرو لباس با هوش مصنوعی چیست؟

عکسی واضح با نور یکنواخت، حالت بدن ساده، پس‌زمینه خلوت و کمترین هم‌پوشانی دست و مو با لباس بهترین نتیجه را ایجاد می‌کند.

آیا می‌توان لباس را رایگان روی عکس امتحان کرد؟

بعضی ابزارها استفاده محدود یا اعتبار آزمایشی دارند، اما شرایط آن‌ها ممکن است تغییر کند. برای استفاده حرفه‌ای یا حجم بالا معمولاً باید هزینه پردازش را در نظر گرفت.

آیا هوش مصنوعی سایز مناسب لباس را تشخیص می‌دهد؟

پرو تصویری به‌تنهایی برای تعیین سایز دقیق کافی نیست. پیشنهاد سایز به اندازه‌های بدن، جدول برند و مشخصات واقعی لباس نیاز دارد.

آیا می‌توان مانتو را با هوش مصنوعی روی عکس قرار داد؟

بله، اما نتیجه به عکس مانتو، نمای کامل آن، حالت بدن شخص و توانایی مدل در پردازش لباس‌های بلند بستگی دارد.

آیا امکان تعویض فقط رنگ لباس وجود دارد؟

بله. برای حفظ بهتر جزئیات، فقط تغییر رنگ را درخواست کنید و صریحاً بنویسید که طرح، بافت، فرم، دوخت و نور ثابت بمانند.

چرا لوگو یا نوشته لباس تغییر می‌کند؟

مدل‌های مولد ممکن است جزئیات نوشتاری و الگوهای دقیق را بازسازی کنند. برای کاربرد تجاری، این بخش‌ها باید کنترل و در صورت نیاز به‌صورت دستی اصلاح شوند.

آیا می‌توان Virtual Try-On را به فروشگاه وردپرس اضافه کرد؟

بله. افزونه یا Frontend فروشگاه می‌تواند عکس را به Backend اختصاصی ارسال کند و Backend با API مدل ارتباط بگیرد. کلید API نباید داخل JavaScript قالب یا افزونه سمت کاربر قرار گیرد.

آیا درواره ابزار آماده پرو لباس دارد؟

درواره سرویس API هوش مصنوعی ارائه می‌کند، نه اپلیکیشن آماده Virtual Try-On. توسعه‌دهندگان می‌توانند مدل‌های مناسب موجود در کاتالوگ را برای ساخت بخش‌های مختلف این قابلیت بررسی کنند.

آیا می‌توان مدل متن‌باز را روی سرور شخصی اجرا کرد؟

بله، اما به GPU، فضای ذخیره‌سازی، بهینه‌سازی Inference، صف پردازش، مانیتورینگ و بررسی مجوز استفاده نیاز دارید.

آیا خروجی AI را می‌توان به‌عنوان عکس محصول منتشر کرد؟

فقط زمانی که خروجی از نظر رنگ، طرح، فرم و جزئیات با کالای واقعی تطابق داشته باشد و استفاده از آن باعث گمراهی مشتری نشود. بهتر است مصنوعی‌بودن تصویر نیز اعلام شود.

جمع‌بندی

پرو لباس با هوش مصنوعی می‌تواند تجربه خرید آنلاین را تعاملی‌تر کند، اما باید تفاوت میان «تغییر خلاقانه لباس در عکس» و «Virtual Try-On وفادار به محصول» را جدی گرفت.

برای استفاده شخصی، یک عکس واضح، تصویر مناسب لباس و پرامپت دقیق می‌تواند نتیجه خوبی ایجاد کند. برای فروشگاه اینترنتی، مسئله پیچیده‌تر است و باید معماری Async، امنیت تصاویر، حفظ حریم خصوصی، کنترل هزینه، ارزیابی وفاداری لباس و تجربه کاربری مناسب طراحی شود.

همچنین پرو مجازی تصویری جایگزین جدول سایزبندی نیست. این فناوری ظاهر تقریبی لباس را نمایش می‌دهد، نه اندازه فیزیکی تضمین‌شده آن را.

اگر می‌خواهید قابلیت‌های هوش مصنوعی مانند تحلیل تصویر، استخراج مشخصات لباس، پیشنهاد استایل یا تولید و ویرایش تصویر را به محصول خود اضافه کنید، در درواره ثبت‌نام کنید و مدل‌های فعلی را از طریق یک API Key و Base URL استاندارد https://api.darvareh.ir/v1 در Backend نرم‌افزار خود به کار بگیرید.

مقالات مرتبط

Read more