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

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

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

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

شروع کنید

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

جزئیات کار

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

ویژگی ها

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

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

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

این کار دارای گزینه های پیکربندی زیر است:

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

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

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

گزینه های Canny edge

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

نام گزینه توضیحات محدوده ارزش مقدار پیش فرض
threshold1 آستانه اول برای روش هیسترزیس. Float 100
threshold2 آستانه دوم برای روش هیسترزیس. Float 200
apertureSize اندازه دیافراگم برای اپراتور Sobel. محدوده معمولی بین 3-7 است. Integer 3
l2Gradient آیا از هنجار L2 برای محاسبه بزرگی گرادیان تصویر، به جای هنجار پیش فرض L1 استفاده می شود. 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

مدل ها

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

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

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

مدل های پایه، مدل های انتشار متن به تصویر پنهان هستند که تصاویر را از یک اعلان متن تولید می کنند. Image Generator مستلزم آن است که مدل پایه بر اساس مدل زیر با فرمت مدل runwayml/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 یک تصویر شرطی را می پذیرد که لبه های مورد نظر تصویر تولید شده را مشخص می کند. مدل پایه از لبه های ضمنی تصویر شرط استفاده می کند و یک تصویر جدید بر اساس اعلان متن ایجاد می کند. Image Generator دارای قابلیت های داخلی برای ایجاد تصاویر شرایط است و فقط نیاز به دانلود مدل پلاگین دارد.

دانلود افزونه Canny Edge

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

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

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

پلاگین Face Landmark

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

افزونه Face Landmark را دانلود کنید

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

بسته مدل Face Landmark را دانلود کنید

افزونه 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

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

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

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

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

سفارشی سازی با LoRA

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

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

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

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

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

LoRA با Vertex AI

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