خانه وبلاگ امتحان مجازی لباس با Gemini Nano Banana از طریق RCS چگونه است؟
برنامه نویسی

امتحان مجازی لباس با Gemini Nano Banana از طریق RCS چگونه است؟

TGJU Admin TGJU Admin
calendar_today Jan 08, 2026
schedule 1 دقیقه مطالعه
امتحان مجازی لباس با Gemini Nano Banana از طریق RCS چگونه است؟

مقدمه

پس از موج گسترده معرفی قابلیت‌های مرتبط با هوش مصنوعی در رویداد Google I/O 2025، توسعه و کار با Gemini به‌طور جدی در دستور کار قرار گرفت. در این مطلب نشان داده می‌شود چگونه می‌توان از Gemini Nano Banana که در API با نام رسمی Gemini 2.5 Flash Image شناخته می‌شود، برای تولید و ویرایش تصاویر استفاده کرد؛ آن هم با ترکیب یک یا چند تصویر به‌همراه دستورهای متنی.

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

این نوشته یک راهنمای راه‌اندازی است، نه یک آموزش مرحله‌به‌مرحله کامل. در این فرآیند، پروژه کلون می‌شود، متغیرهای محیطی تنظیم می‌گردند و یک سرور Node.js اجرا می‌شود که با استفاده از Gemini و Imagen لباس جدیدی را به تصویر اضافه می‌کند. سپس تصویر نهایی از طریق پیام RCS به تلفن همراه ارسال می‌شود. هیچ رابط وبی وجود ندارد؛ تنها تلفن همراه، یک حساب پیام‌رسانی تجاری مبتنی بر RCS و سرور مورد استفاده قرار می‌گیرند.

نمای کلی

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

سرور هر دو تصویر را از وبهوک‌های ورودی دریافت می‌کند، از مدل Gemini 2.5 Flash Image می‌خواهد لباس را روی تصویر فرد ترکیب کند، فایل PNG نهایی را در حافظه نگه می‌دارد و سپس یک کارت غنی (Rich Card) مستقل RCS شامل تصویر نهایی و چند پاسخ پیشنهادی به کاربر ارسال می‌کند.

نحوه کار یکپارچه‌سازی Gemini

پس از ورود به Google AI Studio و ایجاد یک گفت‌وگوی جدید، مدل موردنظر انتخاب می‌شود. در این پروژه از مدل Gemini 2.5 Flash Image استفاده شده است. برای اطلاعات بیشتر می‌توان به مستندات API توسعه‌دهندگان Gemini مراجعه کرد.

در صورت تمایل به آزمایش بدون ورود به بحث کدنویسی، می‌توان تصویر فرد و تصویر لباس را مستقیماً در گفت‌وگو ارسال کرد و نتیجه نهایی را مشاهده نمود. سپس با انتخاب گزینه «<> Get Code» در گوشه بالا، می‌توان کد نمونه را در زبان برنامه‌نویسی دلخواه دریافت و در پروژه‌های پیام‌رسانی RCS یا سایر کاربردها استفاده کرد.

پیش‌نیازها

  • یک عامل ثبت‌شده RCS Business Messaging (RBM)

  • تلفن همراه مجهز به قابلیت RCS برای تست

  • Node.js نسخه ۱۸ یا بالاتر

  • کلید API مربوط به Gemini

  • ابزار ngrok

راه‌اندازی تونل ngrok

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

برای اجرای یک تونل ngrok، دستور زیر اجرا می‌شود:

ngrok http 3000

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

نمونه خروجی:

Forwarding https://xxxxxxxxxxxx.ngrok.app/ -> http://localhost:8000

راه‌اندازی پروژه Node.js

پروژه کلون شده، وارد پوشه آن می‌شویم و وابستگی‌ها نصب می‌شوند:

git clone https://github.com/.../blog-messages_rcs_nodejs-try_on.git cd blog-messages_rcs_nodejs-try_on npm install

تنظیم متغیرهای محیطی

در ریشه پروژه یک فایل .env ایجاد شده و متغیرهای زیر مقداردهی می‌شوند:

APPLICATION_ID=your-app-id PRIVATE_KEY_PATH=./private.key RCS_SENDER_ID=your-rcs-sender-id GEMINI_API_KEY=your-gemini-api-key API_SIGNATURE_SECRET=your-signature-secret PUBLIC_BASE_URL=https://your-ngrok-subdomain.ngrok-free.app PHONE_NUMBER=+<your_e164_number> PORT=3000

منطق کد و جریان کاری

فایل index.js شامل اجزای اصلی پیاده‌سازی جریان کاری است: دریافت دو تصویر از طریق پیام‌های RCS، استفاده از مدل Nano Banana برای پردازش تصویر، و ارسال کارت غنی RCS شامل نتیجه نهایی. فایل کمکی دیگری نیز برای تنظیم متغیرهای محیطی و پیکربندی کلاینت پیام‌رسان وجود دارد.

تابع handleInboundMessage(request) به وبهوک ورودی گوش می‌دهد، اعتبار درخواست را از طریق بررسی امضای امنیتی تأیید می‌کند و آدرس تصویر سلفی و شماره تلفن کاربر را استخراج می‌نماید.

تابع اصلی برنامه generateTryOnImage(selfieUrl, clothingUrl) است. این تابع هر دو تصویر را به‌همراه یک دستور متنی دقیق به مدل Gemini 2.5 Flash Image ارسال می‌کند. API تصویر نهایی را تولید کرده و داده تصویر را به سرور بازمی‌گرداند. این فرآیند نتایجی در سطح نرم‌افزارهای ویرایش عکس ارائه می‌دهد، بدون نیاز به مهارت تخصصی و به‌صورت کاملاً برنامه‌محور.

در نهایت، متد createAndSendRCSCard(newImageUrl, userPhoneNumber) تصویر تولیدشده توسط هوش مصنوعی را در قالب یک کارت غنی RCS به کاربر ارسال می‌کند.

تست پروژه

برای اجرای سرور، دستور زیر اجرا می‌شود:

node index.js

اطمینان حاصل می‌شود که تونل ngrok فعال است و آدرس HTTPS آن در تنظیمات وبهوک‌های ورودی و وضعیت پیام‌ها ثبت شده است. به‌صورت اختیاری می‌توان آدرس
https://<your-ngrok-url>/test
را باز کرد تا گفت‌وگو آغاز شود. در این صفحه پیام
{"ok":true,"to":"phone_number"}
نمایش داده می‌شود و در صورت موفقیت، یک پیام RCS روی تلفن همراه دریافت خواهد شد.

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

توسعه‌های احتمالی

این پروژه قابلیت گسترش زیادی دارد. با فعال بودن RCS، می‌توان انواع دیگر پیام‌ها را اضافه کرد. برای مثال، با استفاده از پاسخ سریع می‌توان پرسید:
«بالا / پایین / استایل کامل؟»
و دستور متنی را بر اساس پاسخ تنظیم کرد.

همچنین می‌توان درخواست‌های بسیار دقیق‌تری ارسال کرد؛ مانند:
«لباس سبز یقه‌دار تا زانو با پس‌زمینه ساده را امتحان کن.»
برای کنترل جزئیات بیشتر مانند جنس پارچه، نورپردازی یا پس‌زمینه نیز می‌توان از Imagen استفاده کرد.

جمع‌بندی

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

پست‌های مرتبط

Erlang چیست؟
برنامه نویسی

Erlang چیست؟

چگونه Laravel Nightwatch به مانیتور کردن Webhooks کمک می‌کند؟
API

چگونه Laravel Nightwatch به مانیتور کردن Webhooks کمک می‌کند؟

دیدگاه‌ها (0)

برای ثبت دیدگاه لطفاً وارد شوید.

ورود

هنوز دیدگاهی ثبت نشده است. اولین نفر باشید!