Stable Diffusion یک مدل هوش مصنوعی تولیدی منبع باز است که از دستورات متنی برای تولید تصاویر جدید یا تغییر دادن تصاویر موجود استفاده میکند. از نظر فنی، Stable Diffusion یک مدل پنهان پراکندگی (LDM) برای یادگیری ماشین است. این نوع مدل عمیق یادگیری تخصصی از توزیعهای احتمالاتی استفاده میکند تا خروجیهایی تولید کند که از نظر آماری مشابه دادههایی هستند که مدل بر آن آموزش دیده است.
علاوه بر تولید تصاویر جدید، Stable Diffusion میتواند برای پر کردن یا خارج کردن عناصر در یک تصویر موجود و همچنین ترجمه تصویر به تصویر استفاده شود.
- پر کردن (Inpainting): فرآیند پر کردن بخشهای گمشده یا خراب شده یک تصویر است. این یک عمل پرکاربرد در بازسازی و ویرایش تصاویر است و میتواند برای حذف اشیاء از تصاویر، تعمیر عکسهای آسیبدیده یا تکمیل تصاویر ناتمام استفاده شود.
- خارج کردن (Outpainting): فرآیند گسترش یک تصویر فراتر از مرزهای اصلی آن است. این کار میتواند برای ایجاد تصاویر بزرگتر، اضافه کردن عناصر جدید به یک تصویر یا تغییر نسبت ابعاد یک تصویر استفاده شود.
- ترجمه تصویر به تصویر (Image-to-image translation): فرآیند نقشهبرداری یک تصویر ورودی به یک تصویر خروجی است. این کار میتواند برای تغییر سبک هنری یک تصویر، تغییر ظاهر یک شی در یک تصویر یا بهبود کیفیت یک تصویر با افزایش تضاد یا چگالی رنگ استفاده شود.
تاریخچه استیبل دیفیوژن
Stable Diffusion برای اولین بار در سال 2022 منتشر و توسط یک شرکت تحقیق و توسعه (R&D) نسبتاً جدید به نام Stability AI تامین مالی شد.
همکاری این شرکت با Amazon Web Services (AWS) به توسعهدهندگان دسترسی به سوپرکامپیوتر Ezra-1 UltraCluster داد و برای Stability AI قدرت پردازشی لازم برای توسعه مدلهای پیچیده هوش مصنوعی برای تولید تصویر، موسیقی و کد را فراهم نمود.
ماموریت Stability AI این است که “هوش مصنوعی را قابل دسترس و جامعتر کند.” با این حال، در سپتامبر 2023، برخی رسانهها گزارش دادند که کاربران از اجرای Stable Diffusion در پلتفرم Google Cloud Platform (GCP) محروم شدهاند.
Chris Perry، مدیر محصول گروه در گوگل، با توییت کردن پاسخ داد که شرکت، اپلیکیشن هوش مصنوعی تولیدی را ممنوع نکرده است؛ اما محدودیتهایی را بر روی حسابهای رایگان اعمال کرده است زیرا Stable Diffusion بسیار محبوب شده است. محمد عماد مصطفی، بنیانگذار Stability AI، توییت کرد که او این تصمیم را منصفانه میداند!
Stable Diffusion چگونه کار میکند؟
Stable Diffusion در ابتدا توسط تصاویر برچسبگذاری شده توسط انسان که از اینترنت جمعآوری شده بود، آموزش داده شد. مدل با استفاده از تکنیکی به نام یادگیری تقویتی با بازخورد انسان (RLHF) توانست خروجیهای خود را بهبود بخشد.
در طول مرحله آموزش اولیه، مدل پایه مأموریت داشت که توزیع احتمال متغیرهای پنهان در دادههای آموزشی برچسبگذاری شده را تجزیه و تحلیل کند. متغیرهای پنهان ساختار زیربنایی و جزئیات یک تصویر آموزشی را به دست میآورند و به مدل امکان میدهند که احتمال تطابق یک تصویر خاص با برچسب متنی ایجاد شده توسط انسان را یاد بگیرد.
Stable Diffusion با اعمال یک فیلتر پراکندگی بر روی یک تصویر از پیکسلهای تصادفی که میانگین مقادیر پیکسلهای همسایه را محاسبه میکند، کار میکند. در هر تکرار از فرآیند یادگیری عمیق، فیلتر نویز بیشتری را از تصویر حذف میکند تا زمانی که پیکسلهای باقیمانده به طور آماری با توصیف متنی ارائه شده مطابقت داشته باشند.
آخرین نسخه از مدل پایه ، SDXL 1.0، در آگوست 2023 منتشر شد و گفته میشود که با 3.5 میلیارد پارامتر و هزاران پارامتر فرعی آموزش دیده است. بر اساس وبسایت Stability AI، دلیل اینکه این مدل به خوبی کار میکند این است که قبل از انتشار با مقیاس بزرگ آزمایش شده است، به طوری که بیش از 10,000 آزمایشکننده بتا روزانه به طور متوسط 1.7 میلیون تصویر ایجاد کردهاند.
اینجا مثالی از یک تصویر ایجاد شده با Stable Diffusion و دستور متنی “سنجاب خاکستری در حال بو کشیدن گل زرد” آورده شده است.
و این هم یک مثال دیگر از خروجی Stable Diffusion با دستور متنی “سنجاب خاکستری اوریگامی در حال بو کشیدن یک گل زرد”
چگونه از Stable Diffusion استفاده کنیم
Stable Diffusion را میتوان به صورت رایگان از طریق مراجعه به وبسایت Stability AI یا استفاده از DreamStudio یا Clipdrop دسترسی و آزمایش کرد. DreamStudio اپلیکیشن وب Stability AI برای تولید و ویرایش تصاویر است و Clipdrop اکوسیستم اپلیکیشنهای تولیدی، پلاگینها و منابع آن است.
Stable Diffusion به صورت freemium از تعداد زیادی وبسایت شخص ثالث که از API (رابط برنامهنویسی کاربردی) Stable Diffusion استفاده میکنند، در دسترس است.
برای استفاده از Stable Diffusion، این مراحل را دنبال کنید:
- رابط کاربری Stable Diffusion را باز کنید.
- یک پیشنهاد متنی که توصیف کننده یک تصویر باشد وارد کنید، یا یک تصویر بارگذاری کرده و یک پیشنهاد متنی برای چگونگی تغییر تصویر وارد کنید.
- دکمه Generate را کلیک کنید تا تصویر بر اساس پیشنهاد متنی تولید شود.
- در صورت تمایل، پیشنهادهای متنی و متغیرهای پنهان مدل را تنظیم کنید تا جنبههای مختلف خروجی مانند سبک، محتوا یا موضوع را کنترل کنید.
- پس از اینکه Stable Diffusion نتیجه مطلوب را تولید کرد، آن را برای استفاده در آینده ذخیره کنید.
۳ نکته برای استفاده از Stable Diffusion
- هنگام ایجاد پرامپتهای متنی، واضح و دقیق باشید. این کار احتمالاً دشوارترین جنبه استفاده از Stable Diffusion است. هرچه دستور متنی مشخصتر باشد، خروجی بهتر خواهد بود. اگر خروجیهای اولیه مدل مطلوبتان نبود، فرآیند را با پیشنهادهای مشخصتر دوباره شروع کنید.
- دستورات منفی برای حذف عناصر خاص از تصویر خروجی استفاده میشود. به عنوان مثال، برای تولید تصویر یک کابوی بدون کلاه، از دستور منفی “بدون کلاه” استفاده کنید.
- اگر مدل به صورت محلی اجرا میشود، در نظر داشته باشید که با یک مجموعه داده کوچکتر، آن را بهینهسازی کنید تا نیازهای خلاقانه خاصی را برآورده کند.
اجرای Stable Diffusion به صورت محلی
کاربران برای اینکه از پرداخت هزینه برای استفاده از Stable Diffusion در مقیاس بزرگ خودداری کنند، میتوانند مدل LDM را به صورت محلی بر روی کامپیوترهای رومیزی که دارای یک کارت گرافیک با حداقل 7 گیگابایت حافظه دسترسی تصادفی ویدئو (VRAM) هستند، نصب کنند.
انتظار میرود که در آیندهای نزدیک، شرکت Stability AI نسخههای بهینهسازی شده از مدل LDM خود را منتشر کند که هم عملکرد مدل و هم کیفیت خروجی را بهبود بخشد. شرکت برنامهریزیهایی دارد که اجازه میدهد تا Stable Diffusion بر روی تراشههای AMD، Macbook M1/M2 و دیگر تراشهها کار کند. (در حال حاضر، تراشههای NVIDIA توصیه میشوند.)
اجرای Stable Diffusion به صورت محلی یک گزینه خوب برای کاربرانی است که میخواهند تصاویر رایگان را در مقیاس بزرگ تولید کنند، تصاویر را به صورت آفلاین تولید کنند، تصاویر را خصوصی نگه دارند یا خروجیهای Stable Diffusion را برای برآورده کردن یک مورد استفاده خاص بهینهسازی کنند.
به عنوان مثال، یک توسعهدهنده ممکن است Stable Diffusion را به صورت محلی اجرا کند تا الگوها و تصاویری برای بازیای که در حال توسعه آن است، تولید کند.
نصب Stable Diffusion
بعد از اینکه از وبسایت Stability.ai بازدید و اطمینان حاصل کردید که کامپیوترتان حداقل نیازمندیهای نصب را دارد، باید Python و Git را دانلود و نصب کند. شما همچنین باید یک حساب کاربری رایگان در Hugging Face ایجاد کند تا وزنهای مدل را دریافت کند و سپس این مراحل را دنبال کنید:
مرحله 1: برای دریافت فایلهای پروژه Stable Diffusion، به صفحه GitHub این پروژه مراجعه کنید. در گوشه بالا و سمت راست، دکمه “Code” سبز را پیدا کرده و کلیک کنید. از منوی کشویی، “Download ZIP” را انتخاب کنید.
بعد از دانلود، محتویات فایل ZIP را استخراج کنید. این کار یک پوشه به نام “stable-diffusion-webui-master” ایجاد خواهد کرد. برای سادهتر کردن نصب، تمام پوشه را (همراه با تمام فایلهای استخراج شده) به درایو C رایانه میزبان کپی کنید.
مرحله ۲: به وبسایت Hugging Face بروید و لینک دانلود فایل “768-v-ema.ckpt” را جستجو کنید. این فایل بسیار بزرگ است، بنابراین انتظار داشته باشید که در طول دانلود وقت زیادی صرف شود. پس از اتمام دانلود، به مسیر زیر بروید: “C:\stable-diffusion-webui-master\models\Stable-diffusion”. در این پوشه، یک فایل به نام “Put Stable Diffusion checkpoints here.txt” را پیدا کرده و فایل “768-v-ema.ckpt” را درون آن قرار دهید.
مرحله ۳: فایل config YAML را در فایل ZIP دانلود شده از GitHub پیدا کنید. به پوشه “C:\stable-diffusion-webui-master\models\Stable-diffusion” بروید و فایل YAML را در آنجا ذخیره کنید. نام فایل را به “768-v-ema.yaml” تغییر دهید و بخش “yaml” را حفظ کنید.
مرحله ۴: به پوشه “stable-diffusion-webui-master” بروید و فایل “webui-user.bat” را اجرا کنید. چند دقیقه صبر کنید. پنجره دستور باید در نهایت پیامی نمایش دهد که میگوید: “Running on local URL”، و پس از آن یک URL حاوی آدرس IP دستگاه محلی و یک شماره پورت. آدرس URL کامل را (شامل شماره پورت) کپی کرده و در مرورگر وب پیست کنید. این کار باز کردن برنامه Stable Diffusion را فراهم خواهد کرد.
مرحله ۵: حال یک توضیح برای تصویر مورد نظر وارد کنید. هر متنی را که میخواهید در جعبه متن منفی حذف شود مشخص کنید. پارامترها را تنظیم کنید، تعداد دستهها و اندازه را به دلخواه تغییر دهید و بر روی دکمه “Generate” کلیک کنید. برنامه سپس تعداد درخواستی تصویر بر اساس ورودی ارائه شده را نشان خواهد داد.
Stable Diffusion در مقایسه با DALL-E و Midjourney
Stable Diffusion اغلب با DALL-E، یک اپلیکیشن تولید تصویر هوش مصنوعی تولید شرکت Open AI، سازنده ChatGPT، مقایسه میشود.
هر دو مدل هوش مصنوعی بر روی حجم عظیمی از دادههای تصویری آموزش دیدهاند و هر دو قادر به تولید تصاویر مفید هستند، اما DALL-E یک مدل پراکندگی شرطی است که از اطلاعات خارجی برای هدایت فرآیند تولید تصویر استفاده میکند. پیشنهادهای کاربران، مدل را با راهنمایی خاص برای آنچه که تصویر تولیدی باید شبیه به آن باشد یا چه چیزهایی باید در آن وارد شود، تامین میکند.
در مقابل، Stable Diffusion یک مدل انتشار لایهای منبع باز است که از متن یا تصاویر به عنوان ورودی استفاده میکند تا نمایش لایهای از تصویر مورد نظر را کدگذاری کند. این نمایش لایهای فرآیند انتشار را هدایت میکند تا تصویر تولید شده مشابه با دستور ورودی کاربر باشد.
Midjourney یک مدل پراکندگی پنهان تولیدی است و تنها از طریق اشتراک پولی در دسترس است. هیچ نسخه رایگان یا freemium برای استفاده شخصی موجود نیست.
مجوز Stable Diffusion
Stable Diffusion تحت مجوز CreativeML Open RAIL-M license منتشر شده است که اجازه استفاده تجاری و غیرتجاری از مدل و خروجیهای آن را فراهم میکند. باید توجه داشت که این مجوز، حق نسخه برداری از هر گونه مواد زیرین که برای تولید تصاویر با Stable Diffusion استفاده میشود را پوشش نمیدهد. این به این معناست که اگر یک عکس تحت حق تکثیر و استفاده قرار داده شده توسط افزودن یا جایگزینی عناصر در تصویر (inpainted)، گسترش برای بزرگتر شدن تصویر (outpainted)، یا تبدیل به یک نقاشی ونگوگ (ترجمه تصویر به تصویر) تغییر یابد، حق تکثیر برای تصویر تازه تولید شده همچنان متعلق به صاحب حق تکثیر عکس اصلی است.
پرسشهای متداول
Stable Diffusion چیست؟
Stable Diffusion یک مدل هوش مصنوعی تولیدی پیشرفته است که از مدلهای پخش برای تولید تصاویر با کیفیت بالا از توضیحات متنی استفاده میکند. این مدل به دلیل توانایی خود در ایجاد تصاویر متنوع و واقعگرایانه در سبکهای مختلف از جمله انیمه، فتورئالیستی و فانتزی شناخته شده است.
Stable Diffusion چه کارهایی انجام میدهد؟
Stable Diffusion قادر به تولید تصاویر بر اساس ورودیهای متنی، انجام تبدیلهای تصویر به تصویر و پر کردن بخشهای گمشده در تصاویر است. چندوجهی بودن Stable Diffusion، امکان ایجاد محتوای تصویری گسترده با جزئیات و کیفیت چشمگیر را فراهم میکند.
چگونه میتوانم Stable Diffusion را بر روی کامپیوتر خود اجرا کنم؟
برای اجرای Stable Diffusion بر روی کامپیوتر خود میتوانید از ابزارهایی مانند رابط کاربری Stable Diffusion از cmdr2 استفاده کنید که فرایند نصب و اجرا را سادهتر میکند. این ابزار یک رابط کاربری کاربرپسند برای تنظیم و اجرای Stable Diffusion به صورت محلی فراهم میکند.
محدودیتهای Stable Diffusion چیست؟
اگرچه Stable Diffusion یک مدل هوش مصنوعی قدرتمند است، اما محدودیتهایی از قبیل دشواری در تولید تصاویر با کیفیت بالاتر از رزولوشن طبیعی خود 512×512، دقت کم برای تولید آناتومی انسان و تبعیضهای به ارث برده شده از دادههای آموزشی دارد. درک این محدودیتها میتواند در مدیریت انتظارات هنگام استفاده از مدل مفید باشد.
چگونه میتوان Stable Diffusion را برای وظایف خاص بهینه کرد؟
بهینهسازی Stable Diffusion برای وظایف خاص شامل تکنیکهایی مانند استفاده از جاسازیهای تصویر سفارشی، بهرهگیری از هایپرنتورکها و کاوش در متدهایی مانند DreamBooth برای سفارشیسازی خروجی مدل برای تأمین نیازهای خاص میباشد. این رویکردها میتوانند عملکرد و سفارشیسازی Stable Diffusion را بهبود بخشند.
کدام GPUها برای اجرای Stable Diffusion توصیه میشوند؟
برای عملکرد بهینه در زمان اجرای Stable Diffusion، GPUهای NVIDIA مانند A100، H100، RTX A6000 و L40 به دلیل قدرت محاسباتی و سازگاری با بار کاری مدل توصیه میشوند. این GPUها میتوانند سرعت و کارایی عملیات Stable Diffusion را به طور قابل توجهی بهبود بخشند.
آیا میتوان Stable Diffusion را بدون یک کامپیوتر شخصی اجرا کرد؟
بله، میتوان Stable Diffusion را بر روی پلتفرمهای ابری مانند Paperspace یا از طریق ابزارهای مبتنی بر وب مانند Neural Love اجرا کرد که جایگزینهایی برای کاربرانی ارائه میدهند که ترجیح میدهند مدل را بر روی کامپیوترهای شخصی خود اجرا نکنند. این گزینهها انعطافپذیری را در دسترس بودن و استفاده از قابلیتهای Stable Diffusion فراهم میکنند.
چگونه میتوانم پرامپتهای مؤثر برای Stable Diffusion ایجاد کنم؟
ایجاد پرامپتهای مؤثر برای Stable Diffusion شامل تکنیکهای مهندسی پرامپت است که به مدل در تولید خروجیهای مطلوب کمک میکند. استراتژیهایی مانند مشخص کردن جزئیات بصری، ادغام پیشنهادهای منفی برای جلوگیری از نتایج ناخواسته و آزمایش با ساختارهای مختلف پیشنهاد میتوانند کیفیت تصاویر تولید شده را بهبود بخشند.
چگونه Stable Diffusion با مدلهای هنری هوش مصنوعی دیگر مانند DALL-E 2 مقایسه میشود؟
Stable Diffusion در مقایسه با مدلهایی مانند DALL-E 2، در طراحی شخصیت و واقعگرایی برجسته است، در حالی که DALL-E 2 ممکن است در تولید مناظر زیبا و پسزمینههای پیچیده تخصص داشته باشد. درک نقاط قوت و حوزههای تمرکز هر مدل میتواند در انتخاب مناسبترین مدل برای پروژههای خاص کمک کند.
چگونه میتوانم اطلاعات جامع در مورد کارکرد Stable Diffusion پیدا کنم؟
برای درک دقیق از معماری و فرآیند آموزش پخش پایدار، منابعی مانند پست وبلاگ Klaviyo برای ارائه بینشهای فنی و توضیحاتی که به عمق در کارکرد مدل پردازند، مناسب است. کاوش در چنین منابعی میتواند درک عمیقی از مکانیسمها و تواناییهای پخش پایدار فراهم کند.