وظیفه MediaPipe Image Generator به شما امکان می دهد تصاویر را بر اساس یک درخواست متنی ایجاد کنید. این کار از یک مدل متن به تصویر برای تولید تصاویر با استفاده از تکنیک های انتشار استفاده می کند.
وظیفه یک پیام متنی را به عنوان ورودی می پذیرد، همراه با یک تصویر شرط اختیاری که مدل می تواند آن را تقویت کند و به عنوان مرجع برای تولید استفاده کند. برای اطلاعات بیشتر در مورد تولید متن به تصویر شرطی، به افزونههای انتشار در دستگاه برای تولید متن به تصویر شرطی مراجعه کنید.
Image Generator همچنین می تواند تصاویر را بر اساس مفاهیم خاصی که در طول آموزش یا بازآموزی به مدل ارائه می شود، تولید کند. برای اطلاعات بیشتر، به سفارشی کردن با LoRA مراجعه کنید.
شروع کنید
استفاده از این کار را با دنبال کردن یکی از این راهنماهای پیاده سازی برای پلتفرم هدف خود شروع کنید. این راهنماهای مخصوص پلتفرم شما را از طریق اجرای اساسی این کار با نمونههای کدی که از یک مدل پیشفرض و گزینههای پیکربندی توصیهشده استفاده میکنند، راهنمایی میکنند:
جزئیات کار
این بخش قابلیت ها، ورودی ها، خروجی ها و گزینه های پیکربندی این کار را شرح می دهد.
ویژگی ها
برای پیاده سازی موارد زیر می توانید از Image Generator استفاده کنید:
- تولید متن به تصویر - تصاویر را با یک اعلان متن ایجاد کنید.
- تولید تصویر با تصاویر شرایط - تصاویر را با یک اعلان متن و یک تصویر مرجع تولید کنید. Image Generator از تصاویر شرایط به روش هایی مشابه ControlNet استفاده می کند.
- تولید تصویر با وزنهای 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 شامل گزینه های پیکربندی زیر است:
نام گزینه | توضیحات | محدوده ارزش | مقدار پیش فرض |
---|---|---|---|
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 شامل گزینه های پیکربندی زیر است:
نام گزینه | توضیحات | محدوده ارزش | مقدار پیش فرض |
---|---|---|---|
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 شامل گزینه های پیکربندی زیر است:
نام گزینه | توضیحات | محدوده ارزش | مقدار پیش فرض |
---|---|---|---|
depthModelBaseOptions | شی BaseOptions که مسیر مدلی را که تصویر شرط را ایجاد می کند، تعیین می کند. | شی BaseOptions | N/A |
depthPluginModelBaseOptions | شی BaseOptions که مسیر را برای مدل پلاگین تعیین می کند. | شی BaseOptions | N/A |
سفارشی سازی با LoRA
سفارشی کردن یک مدل با LoRA می تواند Image Generator را قادر سازد تا تصاویری را بر اساس مفاهیم خاص تولید کند که توسط نشانه های منحصر به فرد در طول آموزش شناسایی می شوند. با وزنههای جدید LoRA پس از تمرین، این مدل میتواند تصاویری از مفهوم جدید را زمانی که نشانه در اعلان متن مشخص شده است تولید کند.
ایجاد وزنه های LoRA نیاز به آموزش یک مدل پایه بر روی تصاویر یک شی، شخص یا سبک خاص دارد، که مدل را قادر می سازد مفهوم جدید را تشخیص دهد و آن را هنگام تولید تصاویر اعمال کند. اگر وزنههای LoRa را برای ایجاد تصاویری از افراد و چهرههای خاص ایجاد میکنید، این راهحل را فقط روی صورت خود یا افرادی که به شما اجازه این کار را دادهاند، استفاده کنید.
در زیر خروجی یک مدل سفارشی آموزش داده شده بر روی تصاویر قوری از مجموعه داده DreamBooth ، با استفاده از رمز "مونادیکوس قوری" آمده است:
اعلان : یک قوری مونادیکوس در کنار آینه
مدل سفارشی توکن را در اعلان دریافت کرد و قوری را که یاد گرفت از وزنههای LoRA به تصویر بکشد، تزریق کرد و آن را همانطور که در دستور درخواست شده بود در کنار آینه قرار داد.
برای اطلاعات بیشتر، راهنمای سفارشیسازی را ببینید که از Model Garden در Vertex AI برای سفارشیسازی یک مدل با اعمال وزنهای LoRA در مدل پایه استفاده میکند.