0

ساخت تصاویر به کمک هوش مصنوعی Fooocus

بازدید 24

مقدمه

در چند هفته‌ی گذشته، شاهد انفجار محبوبیت برای برنامه‌ی جدید Stable Diffusion به نام Fooocus بوده‌ایم. Fooocus یک نرم‌افزار تولید تصویر بر اساس Gradio است که توسط توسعه‌دهنده‌ی متن‌باز معروف Illyasviel طراحی شده است؛ همان توسعه‌دهنده‌ای که پروژه‌ی ControlNet را نیز ارائه داد. این برنامه، رویکردی نوین به مسیر تولید تصویر پیشنهاد می‌دهد که به عنوان یک جایگزین برای مسیرهای تولید تصویر محبوب دیگری نظیر وب UI Stable Diffusion متعلق به AUTOMATIC1111 یا MidJourney عمل می‌کند.

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

پیش‌نیازها

  • الزامات GPU: اطمینان حاصل کنید که یک GPU قدرتمند (توصیه می‌شود NVIDIA) برای رندرینگ سریع‌تر داشته باشید. حداقل سیستم توصیه شده 8GB VRAM برای کارایی بهینه است.
  • مدل‌های پیش‌آموزش داده شده: مدل‌های پیش‌آموزش داده شده‌ی مربوطه را (به عنوان مثال، نوع‌های Stable Diffusion) برای سبک هنری یا برنامه‌ی مورد نظر خود دانلود کنید.
  • تسلط بر Prompt: برای هدایت دقیق‌تر مدل برای تولید تصویر، یاد بگیرید چگونه دستورهای جزئی و توصیفی را بنویسید.
  • AI Upscaling (اختیاری): برای کیفیت تصویر نهایی بهتر، پس از تولید از ابزارهای AI Upscaling مانند ESRGAN استفاده کنید.

این اصول اساسی به شما در راه‌اندازی Fooocus برای تولید تصاویر AI با کیفیت بالا کمک خواهند کرد.

برنامه‌ی Fooocus چه چیزی را به کاربران Stable Diffusion ارائه می‌دهد؟

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

  • سبک: سیستم سبک Fooocus نسخه ۲ امکان استفاده از توسعه‌ی دستور MidJourney برای تغییر و بهبود نمایش متنی با استفاده از GPT-2 با هزینه‌ی کم را فراهم می‌کند. این توسعه‌ی دستور امکان ورودی‌های ساده‌تر برای تولید خروجی‌های متنوع‌تر و پیچیده‌تر را ممکن می‌سازد، و موتیف‌ها را می‌توان بر اساس ترجیح کاربر ترکیب و تطبیق داد.
  • تعویض تصفیه‌کننده‌ی بومی در یک k-sampler واحد: این امکان انتقال نرم پارامترهای مدل پایه به تصفیه‌کننده را با حفظ نمونه‌گیر امکان‌پذیر می‌سازد. استفاده از رابط کاربری وب AUTOMATIC1111 و نصب دموی Fooocusاین در رابط کاربری وب AUTOMATIC1111 نیز استفاده می‌‌شود
  • راهنمای نسبت تصویر منفی (ADM) – بالاترین وضوح‌‌های Stable Diffusion XL گزارش شده که به همراه cross-attention نمی‌آیند، به همین جهت، پیاده‌سازی Fooocus سیگنال‌های مثبت و منفی را تغییر می‌دهد تا جبران عدم کنتراست راهنمایی آزاد از طبقه‌بندی برای خروجی‌‌های با بالاترین وضوح را انجام دهد
  • هدایت خودتوجه‌داری – با توجه به تحقیقات نشان داده شده در اینجا، تیم توسعه Fooocus نوعی هدایت خودتوجه‌داری را با تنظیمات پایین پیاده‌سازی کرده است همراه با راهنمایی ADM منفی، این کمک به کاهش اثر صاف‌کنندگی می‌کند که معمولاً در خروجی‌‌های تصویر با SD XL گزارش می‌شود
  • پارامتر‌های نمونه‌بردار توسط توسعه‌دهندگان به دقت تنظیم و بهینه‌سازی شده‌اند
  • یک تنظیمات سخت‌افزاری وضوح بر اساس نسبت‌های جانبی بهینه برای ترکیب تصاویر با SD XL پیاده‌سازی شده است. این ویژگی‌‌های جمع‌شده باعث می‌شوند تا نیاز به دانش کدنویسی بسیار پایینی برای اجرای تولید تصویر پس از راه‌‌اندازی باشد

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

نمایش دموی Fooocus

نصب

برای اجرای دمو، ابتدا باید conda را نصب کنیم

پس از اتمام، می‌توانیم با کلیک بر روی لینک Gradio به اشتراک گذاشته شده شروع به تولید تصاویر کنیم

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



wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

bash Miniconda3-latest-Linux-x86_64.sh


Code language: Bash (bash)

دستورالعمل‌‌های نمایش داده شده در ترمینال را با پاسخ دادن به سوال‌‌ها با ‘بله’ دنبال کنید

این نصب Miniconda را تکمیل می‌کند

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



conda env create -f environment.yaml

conda activate fooocus

pip install -r requirements_versions.txt

Code language: Bash (bash)

این‌‌ها همه چیز‌‌های مورد نیاز برای اجرای Fooocus در دفترچه یادداشت نصب می‌کنند

همچنین، ارزش دارد که اشاره شود که برنامه یک مدل Stable Diffusion XL را از HuggingFace در هنگام اجرا برای استفاده ما دانلود می‌کند

فرآیند برای تکمیل اجرا و نصب ممکن است چند دقیقه طول بکشد



python entry_with_update.py --listen --share

Code language: CSS (css)

استفاده از برنامه Fooocus

حالا، می‌توانیم شروع به ساختن تصاویر جدید کنیم بخش سوم پست بلاگ فنی: تنظیمات پیشرفته موتور تولید تصویر Fooocus

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

این بخش از موتور تولید تصویر، شباهت‌های زیادی با پایپ‌لاین‌های آشنای Stable Diffusion و MidJourney خواهد داشت اما تفاوت‌های بارزی در پیاده‌سازی آن وجود دارد که بخشی از آن‌ها را در بالا پوشش داده‌ایم.

نخستین کاری که می‌خواهیم انجام دهیم، نمایش یک آزمایش سریع از تولید تصویر پایه با استفاده از تنظیمات ابتدایی است. برای این کار، تنها نیاز است که عبارتی را وارد کرده و دکمه ‘Generate’ را بزنیم. فوکوس به طور خودکار یک مدل ترکیبی به نام “juggernautXL_version6Rundiffusion safetensors” را که قادر به مدیریت طیف گسترده‌ای از خروجی‌های هنری و واقع‌گرایانه است، دانلود کرده است. در بالا، می‌توانیم نمونه‌ای از تولید تصویر با استفاده از واسط کاربری وب Fooocus و ورودی پایه را مشاهده کنیم. تنظیمات پیش‌فرض دو تصویر با وضوح 1152×896 (نسبت 9:7) تولید خواهد کرد و ما می‌توانیم فرآیند ساخت را به صورت زنده تماشا کنیم.

تصویر تولید شده توسط Fooocus

مقایسه سه عبارت در ارزش‌های عملکردی مختلف

از این‌جا، می‌توانیم به بررسی تنظیمات پیشرفته‌تر برای Fooocus با کلیک کردن روی دکمه‌ی تغییر حالت در پایین صفحه بپردازیم. تنظیمات پیشرفته در سمت راست، در زبانه‌های کاربردی Gradio نمایش داده می‌شوند. نخستین و احتمالاً مهم‌ترین زبانه، ‘Setting’ است. در این‌جا، یکی از اولین مسائلی که از پایپ‌لاین معمولی جدا شده است: تنظیمات عملکرد، قابل مشاهده است. این تنظیمات از پیش تعیین شده و برای اجرای تعداد مختلفی از مراحل پخش در جهت دستیابی به کیفیت‌های مختلف تصاویر با سرعت‌های متفاوت بهینه‌سازی شده‌اند. حالت سرعت 30 مرحله، کیفیت 60 مرحله، و سرعت شدید برای 8 مرحله اجرا خواهد شد. در حالی‌که اپلیکیشن به نظر می‌رسد قابلیت استفاده از نمونه‌بردارهای K دیگر را دارد، ظاهرا به صورت پیش‌فرض سخت‌افزاری برای استفاده از “dpmpp_2m_sde_gpu” برای تمامی عملکردها تنظیم شده است.

تنظیمات عملکرد در Fooocus

تنظیمات وضوح

سپس، به تنظیمات وضوح می‌رسیم. این‌ها تمام وضوح‌های بهینه‌سازی شده برای اجرای مدل‌های خاص Stable Diffusion XL هستند. این محدودیت سختگیرانه در اندازه تصویر برای بهینه‌سازی بیشتر خروجی‌های کاربران اعمال شده است؛ تصاویر تولیدی با وضوح‌های زیر‌اپتیمال بسیار بیشتر ممکن است که عجیب به نظر برسند. نمونه‌ای که در بالا می‌بینید با وضوح 704×1408 تولید شده است.

تنظیمات وضوح در Fooocus

عبارت منفی

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

استفاده از عبارت منفی در Fooocus
بخش ۴: گزینه‌های پیشرفته در Fooocus برای تولید تصویر

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

image

در زبانه بعدی در گزینه‌های پیشرفته، “Style” وجود دارد. این‌ها تقویت‌کننده‌های GPT2 هستند که توسط مدل برای گسترش دستورهای ما فراهم شده‌اند. سبک‌های مختلفی را امتحان کنید تا ببینید چه نوع تأثیری می‌توانند بر روی خروجی‌های نهایی داشته باشند. ما به‌ویژه توصیه می‌کنیم از سبک‌های بالا برای تمام تولیدات استفاده کنید.

image

زبانه بعدی، زبانه مدل است و احتمالاً مهم‌ترین زبانه از همه آن‌ها است، زیرا به ما امکان می‌دهد checkpoint اصلی و LoRAs را تعویض کنیم. دارای اسلایدرهای خوبی است که به ما اجازه می‌دهد به‌راحتی وزن هر یک از مدل‌های اضافی را تنظیم کنیم و بتوانیم به سادگی ویژگی‌های دو LoRA را با هم ترکیب کنیم. همچنین اپلیکیشن به‌طور خودکار مدل ‘sd\_xl\_offset\_example-lora’ را با وزن ۱ دانلود و اختصاص می‌دهد که ما می‌توانیم در صورت خواسته خود آن را حذف کنیم. اگر در طول یک جلسه کاری مدلی را دانلود کنیم، دکمه refresh all files در پایین به ما امکان می‌دهد لیست مدل‌های موجود را تازه‌سازی کنیم.

image

زبانه نهایی، پیشرفته، دارای اسلایدرهای Guidance Scale و Image Sharpness ما است. مقیاس هدایت تأثیر دستور را در ورودی نهایی ما کنترل می‌کند و در دامنه 4-10 بر اساس تجربه ما بهترین کارایی را دارد. علاوه‌براین، مقدار وضوح تصویر، تصاویر را تیزتر می‌کند، اما اگر بیش از حد بالا برود، اثر دره uncanny valley را افزایش می‌دهد. ما پیشنهاد می‌کنیم مگر در مواردی که تنظیم خاصی نیاز است، آن را دست نخورده بگذارید.

“یک غروب زیبای تگزاس”

علاوه بر زبانه گزینه‌های پیشرفته، زبانه تصویر ورودی نیز درست کنار آن قرار دارد. این روشی است که ما می‌توانیم با استفاده از Fooocus تولید تصویر-به-تصویر انجام دهیم. Illyasviel، خالق این پروژه، همچنین خالق محبوب ControlNet بوده است. آن‌ها تولید تصویر-به-تصویر را با یک سیستم ControlNet قوی ترکیب کرده‌اند تا به‌صورت خودکار از ControlNet برای هدایت تولیدات ورودی استفاده کند. این ویژگی با سه گزینه عرضه‌شده است – Upscale یا Variation، Image Prompt و Inpaint یا Outpaint. بیایید ببینیم که با استفاده از این دستور چه دستکاری‌هایی می‌توانیم روی صحنه بالا انجام دهیم:

دستور جدید: “یک غروب زیبا در هاوایی”

  • Upscale یا Variation: پنج تنظیم وجود دارد: vary (subtle)، vary (strong)، upscale (1.5x)، upscale (2x)، و upscale (fast 2x). ما می‌توانیم از دو مورد اول برای ایجاد تنوع اضافی در تصویر خود با دستورات استفاده کنیم، همان‌طور که بالا با یک تنوع ظریف نشان داده‌شده است. تنوع قوی تغییرات بیشتری ایجاد می‌کند و گزینه‌های upscale باعث می‌شوند تصاویر ما با وضوح بالاتری باشند.

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

Image Prompt Example

  • Image Prompt: این شیوه، مشابه مدل‌سازی تصویر به تصویر با استفاده از Stable Diffusion است، با این تفاوت که به جای یک تصویر واحد، ما می‌توانیم چندین تصویر را وارد کنیم. این به ما امکان می‌دهد تا خروجی‌های متنوع‌تری داشته باشیم با توجه به محرک‌های وارد شده. مثال بالا را ببینید، جایی که با استفاده از درخت متفاوتی به عنوان ورودی، یک درخت به خروجی‌مان افزودیم تا نتیجه نهایی را تحت تأثیر قرار دهیم.
Inpaint or Outpaint Example

  • Inpaint or Outpaint: Inpainting به ما اجازه می‌دهد تصاویری را به ناحیه‌ای ماسک شده از تصویر ورودی اضافه کنیم، و Outpainting به ما این قابلیت را می‌دهد که لبه‌های تصویر را عملکردی گسترش دهیم تا پیش‌بینی کنیم خارج از “دیافراگم دوربین” چه چیزی وجود خواهد داشت. ما می‌توانیم از آن برای افزودن چیزهای جدید به تصاویرمان استفاده کنیم، مانند افزودن این سکوی ناجیان غریق به تصویر.

حتی می‌توانیم از هر سه روش به طور توأمان برای تأثیرگذاری بیشتر استفاده کنیم! مطمئن باشید که همه این‌ها را آزمایش کنید تا ببینید چگونه می‌توانند در جریان کاری شما جای گیرند، چرا که استفاده از تصاویر موجود به عنوان پایه‌ها یا ویرایش آن‌ها برای کار کردن می‌تواند بسیار کارآمدتر و مؤثرتر از تولید تصاویر کاملاً جدید باشد.

خلاصه‌ای در پایان

ما تمام ویژگی‌هایی که Fooocus را به ابزاری عالی برای Stable Diffusion تبدیل می‌کند، بررسی کردیم، اما نسبت به رقبا چه طور ایستاده است؟ ابزارهای زیادی عالی برای تولید تصاویر وجود دارند، مانند AUTOMATIC1111 Web UI، ComfyUI، MidJourney، PixArt Alpha، Dalle 3 و بیشتر؛ بنابراین، ما فکر می‌کنیم مهم است که روی جنبه‌هایی که Fooocus را از نسخه‌های قبلی پلتفرم‌های تحت وب تصویر به متن متمایز می‌کند، تمرکز کنیم. اساساً، Fooocus یک ابزار عالی برای افرادی است که کمی کدنویسی می‌دانند و نمی‌خواهند در پیچیدگی‌های یادگیری سیستم‌های پیچیده‌ای مانند A1111 Web UI یا Comfy UI کندوکاو کنند، اما این ابزار سطوح بالاتری از تنوع‌پذیری و کاربردپذیری را در مقایسه با اپلیکیشن‌هایی مانند MidJourney به کاربران ارائه می‌دهد. به همین دلایل، ما Fooocus را به کاربرانی که به تازگی با کدنویسی و Stable Diffusion آشنا شده‌اند توصیه می‌کنیم، در حالی که کدنویسان با تجربه‌تر باید به استفاده از پیاده‌سازی‌های سریع Stable Diffusion از Web UI و ComfyUI بچسبند. به دنبال بهبودهای self attention در این پلتفرم‌ها نیز در آینده نزدیک باشید، چرا که، در حالی که نمی‌تواند راه‌حل‌های هوشمندانه A1111 در تثبیت رزولوشن‌ها را شکست دهد، بسیاری از مشکلاتی را که کاربران با آن‌ها مواجه‌اند حل می‌کند، که کیفیت زندگی استفاده از آن را به شکل قابل توجهی بهبود می‌بخشد.

از خواندن این مطلب متشکریم.

نظرات کاربران

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *