خوب رسیدیم قسمت ۱. در این قسمت میخوایم Stable Diffusion Webui رو نصب کنیم و یک خروجی سریع هم بگیریم که ببینیم چطور کار میکنه.
این پست شامل سه قسمت هستش:
خود Stable Diffusion رابط کاربری نداره. شما برای استفاده از اون یا مجبورید از رابط متنی استفاده کنید (که نمیخوایم!) یا از رابط تحت وب نوشته شده برای این ابزار استفاده کنید. دو رابط تحت وب منتشر شده، یکی Easy Diffusion هست و دیگری Stable Diffusion Web ui که برای راحتی بیشتر ما از دومی استفاده میکنیم.
برای راهاندازیش هم میتونید هم به صورت لوکال (روی سیستم خودتون) راهاندازیش کنید و یا از سرویسهای آنلاین استفاده کنید.
اینکه دقیقا چه سیستمی مورد نیاز هستش، هر منبع یک توضیحات متفاوتی رو داده. برخی افراد روی کارت گرافیک با 4GB vram هم این ابزارها رو اجرا میکنند اما به این معنا نیست که شما تجربهی مطلوبی برای استفاده از این ابزار با چنین کارت گرافیکی خواهید داشت.
چیزی که برای یک تجربه مناسب و کم دردسر نیاز خواهید داشت، یک کارت گرافیک با حداقل 8 گیگابایت VRAM و حداقل 16 گیگابایت حافظهی رم بر روی سیستم هستش. زیر این میزان هیچ تضمینی نیست که ابزارها در هنگام خروجی گرفتن کرش نکنه. البته این میزان بدون احتساب استفاده از Lora یا Dreambooth. اگر میخواید مدلهای Lora رو هم به مدل اصلیتون آموزش بدید، نیازمند حداقل 12 گیگابایت VRAM هستید. (فعلا نیازی نیست نگران این عبارات باشید. بعدا به صورت مروری از این قسمت رد خواهیم شد.)
با فرض داشتن سیستم مناسب، برای نصب ابزارها ابتدا باید پایتون (طبق گفته سایت، پایتون 3.10.6) رو باید نصب کنید و در هنگام نصب حتما توجه کنید که گزینهی Add to path رو علامتدار کنید. (اگر اونو بر روی ویندوز نصب میکنید) ضمنا شما نیاز به نصب Git هم دارید.
پس از نصب پایتون و گیت، کد زیر رو اجرا کنید:
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
پس از اتمام دریافت فایل، در صورتی که کاربر ویندوز هستید، فایل webui-user.bat و اگر کاربر لینوکسی هستید، فایل webui-user.sh رو در مسیر مربوطه اجرا میکنید. برنامه شروع به دریافت فایلهای مربوطه میکنه. این کار کمی زمانبر هستش. (حجم فایلها بسیار زیاد هستش) ضمنا چون برخی فایلها در سرورهای تحریمی قرار گرفته، در حالت عادی با اینترنت ایران دریافت همهی فایلها میسر نیست و خطا دریافت میکنید :) اما اگر اینترنت با سرعت مناسبی دارید و به مشکل تحریم برخورد نکردید، نرم افزار پس از دریافت اتوماتیک فایلها اجرا میشه. سپس میتونید به مسیر
stable-diffusion-webui/models/Stable-diffusion/
برید و مدلهای خودتون رو در این مسیر بریزید.
ما از مدل Anything v4.5 استفاده خواهیم کرد. (اگر گیج شدید که کدام نسخه رو دریافت کنید، این فایل رو دریافت کنید)
پس pruned چی هستش و چرا حجمش کمتر هستش؟ بحث طولانی هستش. اگر نیاز به حداکثر کیفیت ممکن برای نتیجه رو ندارید، نسخه کم حجم تر pruned رو دریافت کنید.
در نهایت مدل(های) دریافتی رو در مسیری که در بالا گفتم میریزید و تمام!
این روش مناسب دوستانی هستش که سیستم قوی ندارند و یا مشکل اینترنت دارند (مانند اکثر ما). صرفا برای تجربه کردن ابزارها، کاربردی هستش و حجم اینترنتتونم خورده نمیشه. البته ابزارهای آنلاین محدودیت دارند لذا این مساله رو مد نظر داشته باشید.
شما میتونید از Colab استفاده کنید. البته مد نظر داشته باشید گوگل درایو محدودیت 15 گیگابایت حجم رو داره. همچنین ممکنه پس از چندین بار تلاش در روز، شما رو در استفاده از GPU محدود میکنه
روش پیشنهادی: استفاده از فایلهای ارائه شده توسط: camenduru. از این لینک برای دریافت فایلهایی با فرمت ipynb میتوانید استفاده کنید. این ریپو مناسب این هستش که مدلهای مختلف رو تست کنید بدون اینکه مجبور باشید حجم بالایی از فایل رو روی گوگل درایو خودتون ذخیره کنید. کافی هستش که فایل ipynb ( در اینجا به عنوان مثال anything_4_webui_colab.ipynb) رو دریافت کرده، سپس اون رو در گوگل درایو خودتون آپلود کنید، روی فایل کلیک کرده و بر روی دکمهی اجرا کلیک کنید. در نهایت یک لینک با دامنهی gradio.drive به شما داده خواهد شد که اگر روی اون کلیک کنید، رابط وب برای شما باز خواهد شد.
روش دوم: استفاده از ریپوی thelastben. این روش مشابه بالا هستش با این تفاوت که لینک مدل رو ما خودمون به کد داده و کد فایلهارو دریافت میکنه. خوبیش اینه که میتونید مدلهای دلخواه خودتون رو بریزید. بدیش اینه که فایلها روی گوگل درایو ذخیره میشن که به سرعت به محدودیت حجم برخورد میکنید.
این فایل رو از این مسیر کپی کرده و در درایو خودتون آپلود کنید. سپس خطها رو به ترتیب یکی یکی اجرا کنید تا به این قسمت برسید:
در قسمت model_link آدرس فایل مدل مورد نظر رو وارد کنید (فایل CKPT) اگر فرمت فایل safetensors هستش این گزینه رو فعال کنید. سپس ادامه خطوط رو اجرا کنید. در نهایت به شما یک لینک وب با دامنه gradio.live میده که اگر روی اون کلیک کنید، رابط وب برای شما باز خواهد شد.
اگر مراحل نصب رو با موفقیت گذروندید، با صفحهای مشابه صفحهی روبرو مواجه میشید (به صورت پیشفرض تم روشن خواهد بود. برای اینکه عکس خوب در بیاد تم رو دارک کردم)
مطمئن باشید که تب txt2img انتخاب شده. خوب حالا ما اولین عکس رو برای آزمایش تولید میکنیم! برای این مثال من میخوام یک عکس پسربچه با موهای قهوهای که توی پارک روی نیمکت نشسته رو میخوام تولید کنم. در قسمت prompts اینهارو میزنم:
portrait of a boy sitting on bench in park, brown hair, sportswear, smiling, outdoors, highly detailed, digital painting, high resolution, artstation, concept art, smooth, (((masterpiece))), (((best quality))), ((ultra-detailed)), (cinematic lighting), (illustration), (beautiful detailed eyes), (1boy), upper body, looking at viewer, depth of field
و در قسمت negative prompts:
bad anatomy, bad hands, text, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry, artist name
قسمتهای دیگه رو به حال خودشون رها کنید. مخصوصا قسمت height و width رو هرگز بیشتر از ۵۱۲ در ۵۱۲ نکنید. قسمت seed رو روی -۱ بزارید تا تصویر تصادفی تولید بشه (منفی یک به معنای تصادفی هستش). در نهایت گزینهی generate رو بزنید.
خروجی برای بنده:
مدلها، فایلهای آموزش دیدهای هستند که تصاویر رو برای شما تولید میکنند. معمولا روال به این صورت هستش که تعداد بسیار زیادی عکس به صورت تگ شده (توضیحات راجع به جزییات عکس به صورت متنی) به ابزار داده میشه و ابزار پس از تحلیل حجم بسیاری از داده، یاد میگیره که سوژه ای رو که بهش میدید، چی هست. به عنوان مثال تعداد زیادی عکس از چهره افراد میدید و به عکس تگ صورت،چشم، بینی و ... رو میدید. ابزار با استفاده از تحلیل عکسها و مقایسه، دید کلی پیدا میکنه که این عکس حاوی بینی و چشم و ... هستش و این قسمتهارو یاد میگیره. فرآیند یادگیری زمانبر هستش لذا ما مدلی که قبلا آموزش داده شده رو دریافت میکنیم.
مدلها رو میتونید از سایت huggingface.co و یا civitai.com جستجو و دریافت کنید. معمولا فایل مدلها فرمت CKPT و یا safetensors دارند.
نکته: بهتر هستش که فایلهایی که دریافت میکنید فرمت safetensors داشته باشند. فایلهای CKPT میتوانند کدهای مورد نظرشون رو روی سیستم شما اجرا کنند. لذا ممکن هستش این فایلها حاوی کدهای مخرب باشند. کلا اگر فایل ckpt دریافت میکنید، حواستون به این قضیه باشه. برخی مدلها هر دو نسخه رو ارائه میدند.
چند تا از مدلهای معروف:
Stable diffuion (مدل اصلی استیبل دیفیوژن برای تولید عکسهای عمومی)
البته این مدلهای بالا بیشتر مناسب تولید عکسهای با موضوع عمومی هستند (درخت، جنگل، ساختمون، آدم)
برای انیمه:
نکتهی بسیار مهم: حواستون باشه برخی مدلها ممکن هستش عکسهایی تولید کنند که NSFW باشند. اگر برای شرایط کارتون نیاز هستش که عکسهای SFW تولید کنید، حتما مدلی رو دریافت کنید که با عکسهای SFW آموزش داده شده باشه.
در قسمت ۲ در مورد txt2img صحبت میکنیم و در قسمت ۳ در مورد img2img.