راهنمای تولید تصویر

وظیفه مولد تصویر

وظیفه‌ی تولیدکننده‌ی تصویر MediaPipe به شما امکان می‌دهد تصاویر را بر اساس یک متن تولید کنید. این وظیفه از یک مدل تبدیل متن به تصویر برای تولید تصاویر با استفاده از تکنیک‌های انتشار استفاده می‌کند.

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

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

شروع کنید

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

جزئیات وظیفه

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

ویژگی‌ها

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

  1. تولید متن به تصویر - تصاویر را با یک متن سریع تولید کنید.
  2. تولید تصویر با تصاویر وضعیت - تصاویر را با یک اعلان متنی و یک تصویر مرجع تولید کنید. Image Generator از تصاویر وضعیت به روش‌هایی مشابه ControlNet استفاده می‌کند.
  3. تولید تصویر با وزن‌های LoRA - با استفاده از وزن‌های مدل سفارشی، تصاویری از افراد، اشیاء و سبک‌های خاص را با یک متن سریع تولید کنید.
ورودی‌های وظیفه خروجی‌های وظیفه
مولد تصویر ورودی‌های زیر را می‌پذیرد:
  • متن درخواست
  • بذر
  • تعداد تکرارهای مولد
  • اختیاری: تصویر وضعیت
مولد تصویر نتایج زیر را تولید می‌کند:
  • تصویر تولید شده بر اساس ورودی‌ها
  • اختیاری: اسنپ‌شات‌های تکراری از تصویر تولید شده.

گزینه‌های پیکربندی

این وظیفه گزینه‌های پیکربندی زیر را دارد:

نام گزینه توضیحات محدوده ارزش
imageGeneratorModelDirectory دایرکتوری مدل مولد تصویر که وزن‌های مدل را ذخیره می‌کند. PATH
loraWeightsFilePath مسیر فایل وزن‌های LoRA را تنظیم می‌کند. اختیاری است و فقط در صورتی قابل اجرا است که مدل با LoRA سفارشی‌سازی شده باشد. PATH
errorListener یک شنونده‌ی خطای اختیاری تنظیم می‌کند. N/A

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

هنگام افزودن یک مدل افزونه به مدل پایه، گزینه‌های افزونه را نیز پیکربندی کنید. افزونه Face landmark از faceConditionOptions ، افزونه Canny edge از edgeConditionOptions و افزونه Depth از depthConditionOptions استفاده می‌کند.

گزینه‌های هوشمندانه و هوشمندانه

گزینه‌های زیر را در edgeConditionOptions پیکربندی کنید.

نام گزینه توضیحات محدوده ارزش مقدار پیش‌فرض
threshold1 آستانه اول برای روش هیسترزیس. Float 100
threshold2 آستانه دوم برای روش هیسترزیس. Float 200
apertureSize اندازه دیافراگم برای عملگر Sobel. محدوده معمول بین ۳ تا ۷ است. Integer 3
l2Gradient اینکه آیا به جای هنجار پیش‌فرض L1، از هنجار L2 برای محاسبه‌ی بزرگی گرادیان تصویر استفاده شود یا خیر. BOOLEAN False
EdgePluginModelBaseOptions شیء BaseOptions که مسیر مدل افزونه را تعیین می‌کند. شیء BaseOptions N/A

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

گزینه‌های علامت‌گذاری چهره

گزینه‌های زیر را در faceConditionOptions پیکربندی کنید.

نام گزینه توضیحات محدوده ارزش مقدار پیش‌فرض
minFaceDetectionConfidence حداقل امتیاز اطمینان برای تشخیص چهره که موفقیت‌آمیز تلقی شود. Float [0.0,1.0] 0.5
minFacePresenceConfidence حداقل امتیاز اطمینان از امتیاز حضور چهره در تشخیص نشانه‌های چهره. Float [0.0,1.0] 0.5
faceModelBaseOptions شیء BaseOptions که مسیر مدلی را که تصویر شرط را ایجاد می‌کند، تعیین می‌کند. شیء BaseOptions N/A
FacePluginModelBaseOptions شیء BaseOptions که مسیر مدل افزونه را تعیین می‌کند. شیء BaseOptions N/A

برای اطلاعات بیشتر در مورد نحوه عملکرد این گزینه‌های پیکربندی، به وظیفه Face Landmarker مراجعه کنید.

گزینه‌های عمق

گزینه‌های زیر را در depthConditionOptions پیکربندی کنید.

نام گزینه توضیحات محدوده ارزش مقدار پیش‌فرض
depthModelBaseOptions شیء BaseOptions که مسیر مدلی را که تصویر شرط را ایجاد می‌کند، تعیین می‌کند. شیء BaseOptions N/A
depthPluginModelBaseOptions شیء BaseOptions که مسیر مدل افزونه را تعیین می‌کند. شیء BaseOptions N/A

مدل‌ها

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

مدل‌های افزونه اختیاری هستند و مکمل مدل‌های بنیادی هستند و به کاربران این امکان را می‌دهند که برای تولید تصاویر خاص‌تر، یک تصویر وضعیت اضافی به همراه یک متن اعلان ارائه دهند. سفارشی‌سازی مدل‌های بنیادی با استفاده از وزن‌های LoRA گزینه‌ای است که به مدل بنیادی در مورد یک مفهوم خاص، مانند یک شیء، شخص یا سبک، آموزش می‌دهد و آنها را به تصاویر تولید شده تزریق می‌کند.

مدل‌های فونداسیون

مدل‌های پایه، مدل‌های انتشار متن به تصویر پنهان هستند که تصاویر را از یک اعلان متنی تولید می‌کنند. مولد تصویر مستلزم آن است که مدل پایه با فرمت مدل stable-diffusion-v1-5/stable-diffusion-v1-5 EMA-only ، بر اساس مدل زیر، مطابقت داشته باشد:

مدل‌های فونداسیون زیر نیز با Image Generator سازگار هستند:

پس از دانلود مدل پایه، از image_generator_converter برای تبدیل مدل به فرمت مناسب روی دستگاه برای Image Generator استفاده کنید.

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

$ pip install torch typing_extensions numpy Pillow requests pytorch_lightning absl-py

اسکریپت convert.py را اجرا کنید:

$ python3 convert.py --ckpt_path <ckpt_path> --output_path <output_path>

مدل‌های افزونه

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

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

افزونه Canny Edge

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

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

افزونه Canny Edge را دانلود کنید

افزونه Canny Edge شامل گزینه‌های پیکربندی زیر است:

نام گزینه توضیحات محدوده ارزش مقدار پیش‌فرض
threshold1 آستانه اول برای روش هیسترزیس. Float 100
threshold2 آستانه دوم برای روش هیسترزیس. Float 200
apertureSize اندازه دیافراگم برای عملگر Sobel. محدوده معمول بین ۳ تا ۷ است. Integer 3
l2Gradient اینکه آیا به جای هنجار پیش‌فرض L1، از هنجار L2 برای محاسبه‌ی بزرگی گرادیان تصویر استفاده شود یا خیر. BOOLEAN False
EdgePluginModelBaseOptions شیء BaseOptions که مسیر مدل افزونه را تعیین می‌کند. شیء BaseOptions N/A

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

افزونه Face Landmark

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

افزونه Face Landmark خروجی MediaPipe Face Landmarker را به عنوان تصویر وضعیت می‌پذیرد. Face Landmarker یک مش چهره با جزئیات از یک چهره واحد ارائه می‌دهد که وجود و مکان ویژگی‌های چهره را ترسیم می‌کند. مدل پایه از نگاشت چهره که توسط تصویر وضعیت نشان داده شده است استفاده می‌کند و یک چهره جدید روی مش ایجاد می‌کند.

دانلود افزونه Face Landmark

افزونه‌ی Face Landmarker برای ایجاد تصویر وضعیت به بسته‌ی مدل Face Landmarker نیز نیاز دارد. این بسته‌ی مدل همان بسته‌ای است که توسط وظیفه‌ی Face Landmarker استفاده می‌شود.

دانلود بسته مدل علامت چهره

افزونه Face Landmark شامل گزینه‌های پیکربندی زیر است:

نام گزینه توضیحات محدوده ارزش مقدار پیش‌فرض
minFaceDetectionConfidence حداقل امتیاز اطمینان برای تشخیص چهره که موفقیت‌آمیز تلقی شود. Float [0.0,1.0] 0.5
minFacePresenceConfidence حداقل امتیاز اطمینان از امتیاز حضور چهره در تشخیص نشانه‌های چهره. Float [0.0,1.0] 0.5
faceModelBaseOptions شیء BaseOptions که مسیر مدلی را که تصویر شرط را ایجاد می‌کند، تعیین می‌کند. شیء BaseOptions N/A
FacePluginModelBaseOptions شیء BaseOptions که مسیر مدل افزونه را تعیین می‌کند. شیء BaseOptions N/A

برای اطلاعات بیشتر در مورد نحوه عملکرد این گزینه‌های پیکربندی، به وظیفه Face Landmarker مراجعه کنید.

افزونه عمق

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

افزونه‌ی Depth یک تصویر شرطی را می‌پذیرد که عمق تک‌چشمی یک شیء را مشخص می‌کند. مدل Foundation از تصویر شرطی برای استنباط اندازه و عمق شیء مورد نظر برای تولید استفاده می‌کند و بر اساس متن اعلان، تصویر جدیدی تولید می‌کند.

افزونه عمق را دانلود کنید

افزونه‌ی Depth همچنین برای ایجاد تصویر وضعیت به یک مدل تخمین عمق نیاز دارد.

دانلود مدل تخمین عمق

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

نام گزینه توضیحات محدوده ارزش مقدار پیش‌فرض
depthModelBaseOptions شیء BaseOptions که مسیر مدلی را که تصویر شرط را ایجاد می‌کند، تعیین می‌کند. شیء BaseOptions N/A
depthPluginModelBaseOptions شیء BaseOptions که مسیر مدل افزونه را تعیین می‌کند. شیء BaseOptions N/A

شخصی‌سازی با LoRA

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

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

در زیر خروجی یک مدل سفارشی‌سازی‌شده که با استفاده از توکن "monadikos teapot" بر روی تصاویر قوری‌های چای از مجموعه داده DreamBooth آموزش دیده است، آمده است:

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

سوال : یک قوری مونادیکوس در کنار آینه

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

LoRA با هوش مصنوعی Vertex

برای اطلاعات بیشتر، به راهنمای سفارشی‌سازی مراجعه کنید، که از Model Garden روی Vertex AI برای سفارشی‌سازی یک مدل با اعمال وزن‌های LoRA به یک مدل فونداسیون استفاده می‌کند.