در استیبل دیفیوژن چیست؟ CFG
CFG مخفف عبارت “Classifier-Free Guidance” به معنی “دسته بندی هدایت نشده” میباشد و نشاندهنده مقیاسی است که مشخص میکند چقدر میخواهید استیبل دیفیوژن از متن و عبارات ورودی (پرامپت) که ارائه میکنید، پیروی کند.
تقریبا تمامی مدلهای هوش مصنوعی استیبل دیفیوژن از این پارامتر برای تنظیم تصویر خروجی استفاده میکنند.
مقیاس CFG در استیبل دیفیوژن چکاری انجام میدهد؟
برای درک این موضوع بهتر است با ذکر مثال شروع کنیم. پرامپت زیر را وارد میکنیم:
مدل مورد استفاده: DreamShaper 8
با مقدار بسیار پایین 1، پرامپت تقریباً اعمال نمیشود. تصویر از جذابیت کمی برخوردار است.
با مقدار بالاتر 3، سبکی که توسط پرامپت توصیف شده ظاهر میشود.
با مقدار معمولی 7، تصویر مشابه تصویری با مقیاس CFG بزرگتر است.
مقادیر CFG بالاتر به تصاویر مشابه منجر میشوند اما رنگها به طور پیوسته اشباع میشوند.
معمولاً مقدار CFG را بین 7 و 10 تنظیم میکنیم. این بازه به استیبل دیفیوژن امکان میدهد که با استفاده از پرامپت تصویر را بدون اشباع رنگی ایجاد کند.
مقیاس دسته بندی هدایت نشده چیست؟
برای درک مقیاس دسته بندی هدایت نشده “Classifier-Free”، ابتدا باید پیشگام آن، یعنی مقیاس دسته بندی هدایت شده “Classifier guidance” را درک کنید.
مقیاس دسته بندی هدایت شده (Classifier guidance)، روشی برای قرار دادن برچسب های تصویر (Image Labels)و دسته بندی آنها از نظر موضوع درمدلهای Diffusion می باشد. برای هدایت فرآیند ساخت تصویر می توان از یک برچسب شناسایی (Lable) استفاده کرد. به عنوان مثال، برچسب گربه مدل را به سمت تولید گربه هدایت می کند.
مقیاس دسته بندی هدایت شده پارامتری است برای کنترل اینکه چقدر فرآیند ساخت تصویر باید برچسب را دنبال کند.
فرض کنید که 3 گروه از تصاویر با برچسب های گربه، سگ و انسان وجود دارد. اگر فرآیند ساخت تصویر بدون هدایت باشد، مدل نمونه ها را از جمعیت کل هر گروه استخراج میکند، به این معنی که ممکن است تصاویری را ایجاد کند که می تواند شامل دو برچسب مشترک باشد، به عنوان مثال، یک پسربچه که در حال نوازش یک سگ است.
با افزایش مقدار CFG، تصاویر تولید شده توسط مدل به سمت نمونه هایی که دقیقا طبق پرامپت باشند هدایت خواهند شد. بدین ترتیب اگر از مدل بخواهید یک گربه را ایجاد کند، بدون شک تصویر یک گربه را ترسیم میکند بطوریکه چیز دیگری در تصویر نخواهد بود.
مقیاس هدایت دسته بندی (CFG) میزان هدایت پرامپت را کنترل می کند. در شکل بالا، نمونه برداری (Sampling) درتصویر سمت راست مقیاس هدایت دسته بندی شده ی بیشتری نسبت تصویر وسط دارد. در عمل، این مقدار مقیاس، ضریبی است برای مقدار تمایل داده های استخراج شده از بانک اطلاعاتی مدل به سمت آن برچسب خاص.
اگرچه هدایت دسته بندی عملکرد بی نظیری را برای ما به ارمغان آورده، اما برای اجرای این روش نیاز به یک مدل اضافی داریم که این موضوع خود مشکلاتی را در آموزش و ساخت مدل به وجود می آورد.
هدایت دسته بندی نشده (Classifier-free guidance)، به عبارت نویسندگان آن، روشی است برای دستیابی به هدایت دسته بندی بدون دسته بندی کردن. در این روش به جای استفاده جداگانه از یک مدل برای هدایت فرایند ساخت تصویر، از توضیحات تصویر(Image captions) استفاده می کنند تا یک مدل شرطی (Conditional) را آموزش (Train) دهند.
بدین منظور برای پیش بینی مقدار لازم نویز برای ساخت تصویر، بخش دسته بندی را به عنوان شرط در U-Net قرار می دهند، که به این ترتیب تولید تصویر به روش “دسته بندی هدایت نشده” (یعنی بدون تصویر جداگانه برای دسته بندی) را به دست می آورند.
در این حالت پرامپت نوشته شده توسط کاربرمیزان هدایت مدل را در فرآیند تبدیل متن-به-تصویر فراهم میکند.
Classifier-free guidance scale
حالا که ما یک فرآیند ساخت تصویر با روش دسته بندی نشده و به صورت شرطی شده داریم، چگونه می توانیم میزان هدایت مدل برای خلق تصاویر تولید شده توسط AI را کنترل کنیم ؟
پاسخ: پارامتر تغییر مقیاس CFG وظیفه کنترل فرآیند ساخت تصویر از لحاظ میزان هدایت را بر عهده دارد که اثر آن مشابه هدایت دسته بندی شده است.
حال بیایید سه پرامپت را در نظر بگیریم: یک گربه، یک سگ و یک انسان، که توسط 3 گروه تصاویر زیر ارائه شده است. پرامپت را وارد استیبل دیفیوژن می کنیم:
· اگر مقیاس CFG را 1- در نظر بگیریم، پرامپت ما بی اثر خواهد بود و به میزان برابر احتمال دریافت یک گربه، یک سگ و یک انسان را داریم.
(دقت داشته باشید به علت فرایند جدا سازی شرط هدایت از مدل که پیشتر توضیح داده شد وارد کردن CFG با مقدار منفی امکان پذیر نیست)
· در صورتیکه مقدار CFG متوسط و بین 7 تا 10 باشد، بعد از هر بار اجرا تصویر یک گربه را خواهیم داشت.
· اگر میزان CFG را زیاد کنیم بدون تردید فقط تصویر گربه را خواهیم داشت.
بهترین مقدار برای پارامتر CFG چقدر است؟
حالا که میدانید CFG چگونه کار میکند، ممکن است برایتان سؤال پیش بیاید که بهترین مقدار CFG (در صورت وجود چنین عددی!) چقدر باید باشد.
بطور معمول جواب عددی بین 7 الی 10 خواهد بود، هر چند که این بهترین عدد نیست. میزان CFG در حقیقت معامله ای است بین دقت و خلاقیت. با افزایش میزان CFG دقت ساخت بالا میرود و با کاهش آن خلاقیت AI و تنوع طراحی زیاد میشود. در نهایت انتخاب با شماست.
منبع: stable-diffusion-art.com