Stable Diffusion چیست؟
Stable Diffusion یک مدل هوش مصنوعی مولد (AI مولد) است که تصاویر فوتورئالیستی منحصربهفرد را از متن و تصاویر ورودی تولید میکند. اولین بار در سال ۲۰۲۲ منتشر شد. علاوه بر تصاویر، میتوانید از این مدل برای ایجاد ویدیو و انیمیشن نیز استفاده کنید. این مدل مبتنی بر فناوری انتشار (diffusion) است و از فضای نهان (latent space) استفاده میکند. این امر به طور قابل توجهی نیازهای پردازشی را کاهش میدهد و میتوانید مدل را روی رایانههای رومیزی یا لپتاپهای مجهز به پردازندههای گرافیکی (GPU) اجرا کنید. Stable Diffusion را میتوان با استفاده از یادگیری انتقالی (transfer learning) و تنها با پنج تصویر، برای رفع نیازهای خاص خود تنظیم کرد.
Stable Diffusion تحت یک مجوز آزاد در دسترس همگان قرار دارد. این ویژگی، Stable Diffusion را از مدلهای قبلی متمایز میکند.
چرا Stable Diffusion مهم است؟
Stable Diffusion مهم است زیرا در دسترس و آسان برای استفاده است. میتواند روی کارتهای گرافیک معمولی اجرا شود. برای اولین بار، هر کسی میتواند مدل را دانلود و تصاویر خود را تولید کند. همچنین میتوانید پارامترهای اصلی مانند تعداد مراحل حذف نویز و میزان نویز اعمال شده را کنترل کنید.
Stable Diffusion کاربرپسند است و برای ایجاد تصاویر نیازی به اطلاعات اضافی ندارید. جامعه فعالی دارد، بنابراین Stable Diffusion دارای مستندات و آموزشهای فراوان است. انتشار نرمافزار تحت مجوز Creative ML OpenRAIL-M است که به شما امکان استفاده، تغییر و توزیع مجدد نرمافزار اصلاحشده را میدهد. اگر نرمافزار مشتق شده را منتشر کنید، باید آن را تحت همان مجوز منتشر کنید و یک کپی از مجوز اصلی Stable Diffusion را نیز شامل کنید.
Stable Diffusion چگونه کار میکند؟
Stable Diffusion به عنوان یک مدل انتشار، با بسیاری از مدلهای تولید تصویر دیگر متفاوت است. در اصل، مدلهای انتشار از نویز گاوسی برای رمزگذاری یک تصویر استفاده میکنند. سپس، از یک پیشبینیکننده نویز به همراه یک فرآیند انتشار معکوس برای بازسازی تصویر استفاده میکنند.
Stable Diffusion علاوه بر داشتن تفاوتهای فنی یک مدل انتشار، از این نظر منحصر به فرد است که از فضای پیکسلی تصویر استفاده نمیکند. در عوض، از یک فضای نهان با وضوح کاهش یافته استفاده میکند.
دلیل این امر این است که یک تصویر رنگی با وضوح ۵۱۲x۵۱۲ دارای ۷۸۶,۴۳۲ مقدار ممکن است. در مقایسه، Stable Diffusion از یک تصویر فشرده ۴۸ برابر کوچکتر با ۱۶,۳۸۴ مقدار استفاده میکند. این امر به طور قابل توجهی نیازهای پردازشی را کاهش میدهد. و به همین دلیل است که میتوانید از Stable Diffusion روی یک رایانه رومیزی با پردازنده گرافیکی NVIDIA با ۸ گیگابایت رم استفاده کنید. فضای نهان کوچکتر کار میکند زیرا تصاویر طبیعی تصادفی نیستند. Stable Diffusion از فایلهای رمزگذار خودکار متغیر (VAE) در رمزگشا برای ترسیم جزئیات دقیق مانند چشمها استفاده میکند.
Stable Diffusion V1 با استفاده از سه مجموعه داده جمعآوری شده توسط LAION از طریق Common Crawl آموزش داده شد. این شامل مجموعه داده LAION-Aesthetics v2.6 از تصاویری با امتیاز زیبایی ۶ یا بالاتر است.
Stable Diffusion از چه معماری استفاده میکند؟
اجزای اصلی معماری Stable Diffusion شامل یک رمزگذار خودکار متغیر، انتشار مستقیم و معکوس، یک پیشبینیکننده نویز و شرطیسازی متن است.
- رمزگذار خودکار متغیر: رمزگذار خودکار متغیر از یک رمزگذار و رمزگشای جداگانه تشکیل شده است. رمزگذار تصویر پیکسلی ۵۱۲x۵۱۲ را به یک مدل کوچکتر ۶۴x۶۴ در فضای نهان فشرده میکند که دستکاری آن آسانتر است. رمزگشا مدل را از فضای نهان به یک تصویر با اندازه کامل ۵۱۲x۵۱۲ بازیابی میکند.
- انتشار مستقیم: انتشار مستقیم به تدریج نویز گاوسی را به یک تصویر اضافه میکند تا جایی که تنها نویز تصادفی باقی بماند. شناسایی تصویر اصلی از تصویر نهایی نویزی امکانپذیر نیست. در طول آموزش، همه تصاویر این فرآیند را طی میکنند. انتشار مستقیم به جز هنگام انجام تبدیل تصویر به تصویر، بیشتر استفاده نمیشود.
- انتشار معکوس: این فرآیند اساساً یک فرآیند پارامتریزه شده است که به طور مکرر انتشار مستقیم را خنثی میکند. به عنوان مثال، میتوانید مدل را فقط با دو تصویر، مانند یک گربه و یک سگ، آموزش دهید. اگر این کار را انجام دهید، فرآیند معکوس به سمت گربه یا سگ و نه چیزی بین آنها منحرف میشود. در عمل، آموزش مدل شامل میلیاردها تصویر است و از ورودیهای متنی برای ایجاد تصاویر منحصر به فرد استفاده میکند.
- پیشبینیکننده نویز (U-Net): یک پیشبینیکننده نویز برای حذف نویز از تصاویر کلیدی است. Stable Diffusion از یک مدل U-Net برای انجام این کار استفاده میکند. مدلهای U-Net شبکههای عصبی کانولوشنال هستند که در ابتدا برای بخشبندی تصویر در زیستپزشکی توسعه داده شدند. به طور خاص، Stable Diffusion از مدل شبکه عصبی باقیمانده (ResNet) که برای بینایی کامپیوتر توسعه داده شده است، استفاده میکند.
پیشبینیکننده نویز میزان نویز در فضای نهان را تخمین میزند و آن را از تصویر کم میکند. این فرآیند را تعداد مشخصی بار تکرار میکند و طبق مراحل مشخص شده توسط کاربر، نویز را کاهش میدهد. پیشبینیکننده نویز به ورودیهای شرطی که به تعیین تصویر نهایی کمک میکنند، حساس است.
- شرطیسازی متن: رایجترین شکل شرطیسازی، ورودیهای متنی است. یک توکنساز CLIP هر کلمه را در یک ورودی متنی تجزیه و تحلیل میکند و این دادهها را در یک بردار ۷۶۸ مقداری جاسازی میکند. میتوانید حداکثر از ۷۵ توکن در یک ورودی استفاده کنید. Stable Diffusion این ورودیها را از رمزگذار متن با استفاده از یک مبدل متن به پیشبینیکننده نویز U-Net میفرستد. با تنظیم seed روی یک عدد تصادفی، میتوانید تصاویر مختلفی را در فضای نهان ایجاد کنید.
Stable Diffusion چه کاری میتواند انجام دهد؟
Stable Diffusion نشاندهنده پیشرفت قابل توجهی در تولید مدل متن به تصویر است. به طور گسترده در دسترس است و به طور قابل توجهی قدرت پردازش کمتری نسبت به بسیاری از مدلهای متن به تصویر دیگر نیاز دارد. قابلیتهای آن شامل متن به تصویر، تصویر به تصویر، آثار هنری گرافیکی، ویرایش تصویر و ایجاد ویدیو است.
- تولید متن به تصویر: این رایجترین روشی است که مردم از Stable Diffusion استفاده میکنند. Stable Diffusion با استفاده از یک ورودی متنی، یک تصویر تولید میکند. میتوانید با تنظیم عدد seed برای مولد تصادفی یا تغییر برنامه حذف نویز برای جلوههای مختلف، تصاویر مختلفی ایجاد کنید.
- تولید تصویر به تصویر: با استفاده از یک تصویر ورودی و ورودی متن، میتوانید تصاویری را بر اساس یک تصویر ورودی ایجاد کنید. یک مورد معمولی استفاده از یک طرح و یک ورودی مناسب است.
- ایجاد گرافیک، آثار هنری و آرم: با استفاده از مجموعهای از ورودیها، میتوان آثار هنری، گرافیک و آرم را در سبکهای مختلف ایجاد کرد. طبیعتاً، تعیین خروجی از قبل امکانپذیر نیست، اگرچه میتوانید ایجاد آرم را با استفاده از یک طرح راهنمایی کنید.
- ویرایش و روتوش تصویر: میتوانید از Stable Diffusion برای ویرایش و روتوش عکسها استفاده کنید. با استفاده از AI Editor، یک تصویر را بارگذاری کنید و از یک قلم پاک کن برای پوشاندن ناحیهای که میخواهید ویرایش کنید، استفاده کنید. سپس، با ایجاد یک ورودی که آنچه را که میخواهید به دست آورید تعریف میکند، تصویر را ویرایش یا دروننگاری کنید. به عنوان مثال، میتوانید عکسهای قدیمی را تعمیر کنید، اشیاء را از تصاویر حذف کنید، ویژگیهای سوژه را تغییر دهید و عناصر جدیدی را به تصویر اضافه کنید.
- ایجاد ویدیو: با استفاده از ویژگیهایی مانند Deforum از GitHub، میتوانید کلیپهای ویدیویی کوتاه و انیمیشن با Stable Diffusion ایجاد کنید. یکی دیگر از کاربردها اضافه کردن سبکهای مختلف به یک فیلم است. همچنین میتوانید عکسها را با ایجاد تصویری از حرکت، مانند آب روان، متحرک کنید.