در روز ۲۵ فروردین ۱۴۰۲ بود که پلتفرم هوش مصنوعی مانی را لانچ کردم. پلتفرمی که از یک مدل هوش مصنوعی اوپن سورس، برای ساخت تصاویر از متون ورودی استفاده میکنه. حالا پس از تقریبا دو سال از این که توسعه مدل هوش مصنوعیش شروع شده، به ورژن ۶ خودش رسیده و این ورژن واقعا بهتر از همیشه داره تصاویری با کیفیتی نزدیک به میدجرنی، به ما تحویل میده :)
در این پست ویرگول که پس از مدت بسیار طولانی نوشتم، میخوام به شما بگم که از چه تکنیکهایی در فاینتیون کردن و ساخت این مدل جدید استفاده شده و چرا این مدل میتونه خروجیهای بهتر تولید کنه. ضمن این که لازمه بگم که نسخه اولیه این مدل (آلفای ۲) روی پلتفرم قرار گرفته و هرچی که در این متن در موردش گفته میشه، الان در پلتفرم اتفاق میافته!
در این مدل، به جای استفاده از تعداد بسیار بالای تصویر - که معمولا در مدلهای جنریتیو مرسومه - از تعداد کمتر تصویر و تعداد مراحل train بیشتر استفاده شد. مدل پایه ما Stable Diffusion 1.5 (که به عقیده شخصیم هنوز بهترین مدل SD ئه) بود و تصاویر ما ۷۲۰ تصویری که توسط ورژن ۵ میدجرنی ساخته شده بودند. حدود ۱۵۰۰۰ مرحله آموزش و Learning Rate بسیار بالا (روی 1e-6) باعث شد که مدل پایه حسابی پخته بشه ?
تصاویر تولیدشده توسط میدجرنی چند خوبی دارند:
چند وقت پیش، متا (فیسبوک سابق) یک مقاله منتشر کرد و مدل تولید تصویر خودشون به نام Emu رو معرفی کرد. ایمو هم از مدلهاییه که احتمال میره مبتنی بر Stable Diffusion باشه (یا از معماری مشابهی پیروی کنه).
در این مقاله، متا هم اشاره مستقیم کرده بود که تصاویر کمتر با کیفیت بیشتر، برای تولید تصاویری باکیفیتتر، مناسبتر از تعداد زیادی تصویره که کیفیت توزیعشده دارند. به همین خاطر این رویکرد پیش گرفته شد برای مانی ۶.
اگر شما علاقه دارید که این تحقیق و نتایجش رو مطالعه کنید، میتونید به این لینک مراجعه کنید.
یکی دیگر از رویکردهایی که در این ورژن اتخاذ کردیم هم استفاده از یک مدل تصفیهگر یا Refiner بوده. مدل تصفیهگر کارش چیه؟
خب بیاییم با یک مثال عملی ببینیم اینو. فرض کنیم که شما قراره از نقطه A به نقطه B با مترو برید. میدونید که مثلا خط ۴ متروی تهران، نزدیکترین خط به خونه شماست، ولی مسیر مستقیمی به نقطه B نداره. پس شما چه کار میکنید؟
معمولش اینه در یک ایستگاه (مثلا واقع در نقطه C) که میدونید هم از نقطه A بهش میرسیم هم نقطه B، خطتون رو عوض میکنید و سوار قطارهای خط ۳ میشید.
در واقع مدل Refiner هم چنین کاری میکنه. ما تا حدود ۷۵ درصد تصویر رو با کمک مانی ۶ تولید میکنیم و سپس در اون نقطه، مدل Refiner صدا زده میشه که تصویر رو صیقل و بهبود بده و خروجی مدنظر رو به ما برسونه. به این شکل، میتونیم خروجیهای بسیار خوبی داشته باشیم.
حالا بین خودمون هم بمونه، کاری که میدجرنی میکنه هم چنین چیزیه ? البته اونها سر پرامپتهای ما هم یه بلایی میارن که هنوز مشخص نیست چیه. منتظر پیادهسازی اون سیستم هم روی مانی باشید ?
در تصاویر هنری، این رویکرد باعث میشه تصاویر بهتری تولید بشه. در رویکردی که برای عکس (فتورئالیسم) هم داریم، باعث میشه به عکسهای واقعی، شبیهتر بشه خروجیها. در واقع یک سری از اضافههای تصویر زدوده میشه، بیدقتیهاش کمتر میشه و این میشه که تصاویر خروجی واقعا خوب میشن :)
قبلتر هم در وبلاگ شخصی خودم از تلاش برای رسیدن به خروجی مشابه میدجرنی توضیح داده بودم:
ولی خب اون زمان در دنیا، این موضوع انقدر مهم نبود که تصاویر انقدر به واقعیت نزدیک بشن، میدجرنی ۴ تازه آمده بود و مانی ۳ هم پشت میدجرنی ۴ حرکت میکرد. ولی در حال حاضر اوضاع تفاوت داره و اکثریت قریب به اتفاق مدلهای اوپن سورس، در حال نزدیک شدن به میدجرنی ۵ و ۵.۱ هستن و بدون شک، میشه گفت که در حال حاضر مانی بدون مرج شدن با مدلهای دیگر و فقط با استفاده از دیتاست مناسب و مدل تصفیهگر، تونسته خروجی در حد میدجرنی ۵ تولید کنه.
راستی، تجربه شما با مدلهای هوش مصنوعی تولید تصویر چی بوده؟ در کامنتها با ما به اشتراک بذارید.