تولید تصاویر انیمه با Stable Diffusion - قسمت ۲ - استفاده از txt2img

خوب پس از اینکه ابزارهارو نصب و راه‌اندازی و آزمایش اولیه کردیم، بهتره که یکم راجع به آپشن‌ها توضیح بدیم. برای اینکه عکس‌های این مطلب واضح‌تر باشند، من تم Web UI رو دارک انتخاب کردم. صفحه‌ی کلی که شما باید ببینید به این شکل هستش:در کادر stable diffusion checkpoint شما چک پوینت (همان فایل مدل دریافتی) رو انتخاب میکنید. اگر چند مدل همزمان نصب کرده باشید،‌ اینجا چند تا آپشن مختلف خواهید داشت.قسمت بعدی تب‌ها هستند. هر tab برای کار خاصی هستش که در این پست ما به بخش txt2img میپردازیم. این بخش همونطور که حدس زدید، متن رو برای شما تبدیل به عکس میکنه.در بالا شما دو کادر بزرگ مشاهده می‌کنید: prompts و negative promptsدر کادر prompts ما جزییاتی که میخوایم رو بهش اضافه میکنیم. نمونه‌ی قبلی رو یادتون هست؟ من این کلمات رو به عنوان 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احتمالا برخی عبارات برای شما مفهوم هستند. برخی از عبارات مسقیما اشاره به محتوای عکس دارند (مثل رنگ مو و اینکه پسربچه باشه) برخی دیگر جزییات عکس رو توصیف میکنند. (مانند illustration یا looking at viewer یا غیره). چرا برخی از عبارات داخل پرانتز هستند؟ داخل پرانتز بودن یعنی به ابزار میفهمانیم که به این کلمات توجه بیشتری بدهد. تعداد پرانتز‌ها تعیین میکند که کدام موضوع اهمیت بیشتری دارد. به عنوان مثال به ابزار گفتم که به عبارت masterpiece اهمیت بیشتری بدهد ( اگر از عباراتی مانند masterpiece گیج شدید باید بگم که در هنگام آموزش مدل، از اینجور عبارات مختلف برای شناسایی تصویر با کیفیت از بد و مناسب از غیر مناسب زیاد استفاده شده. بعضا در تصاویری که به خورد مدل بیچاره! داده شده، تگ‌هایی مانند زاویه دید و یا مدل دوربین هم دیده میشود. اگر به کتابخانه‌های آنلاین سر بزنید، احتمالا ایده‌ی کلی خواهید گرفت که چه تگ‌هایی برای کار شما مناسب هستند و چه چیزی را باید استفاده کنید). تعداد تگ‌هایی که میتوانید استفاده کنید محدود هستش لذا هر چیزی رو اینجا کپی پیست نکنید!قسمت بعدی negative prompts یعنی جزییاتی که نمیخواهید در عکس باشند. در مثال قبلی:bad anatomy, bad hands, text, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry, artist nameمن به ابزار گفتم که کیفیت پایین و یا blurry نباشد و یا واترمارک نداشته باشد.شما همچنین پنج تا دکمه‌ی مختلف در عکسی که دادم میبینید و یک کادر styles. اگر بخواهید prompts های قبلی رو بازگردونید (فرض کنید شما صفحه‌ی مرورگر رو بستید و دوباره باز کردید) بر روی گزینه‌ی اول کلیک میکنید. سطل زباله هر دو کادر prompts رو پاک میکنه. همچنین شما میتونید prompts های خودتون رو در قالب یک style ذخیره کنید که اگر دفعات بعدی خواستید عکسی با همین prompt ها تولید کنید، مستقیما بتونید با یک کلیک همه‌ی کلمات رو بارگذاری کنید.این قسمت گزینه‌های مختلفی داره.اولین گزینه sampling method هستش. اینکه کدام عکس بهتری تولید میکنه، بستگی به شرایط داره. برخی از الگوریتم ها با تعداد مراحل کمتری عکس های بهتری تولید میکنند و برخی با تعداد مراحل بالاتر کیفیت بهتری خواهند داشت. برخی از اونها عکسهای واقعی تر و برخی طرحهای هنرمندانه و نزدیکتر به نقاشی تولید میکنند. در این ویدیو به صورت خلاصه میتونید تفاوت اونها رو ببینید. من بیشتر گزینه‌ی Euler A و یا DPM++ 2M Karras رو استفاده میکنم. البته بستگی به خودتون و حوصله‌ی خودتون داره. ممکنه با تغییر sampler نتیجه‌ی بهتری بگیرید یا اصلا تغییری احساس نکنید.گزینه‌ی Sampling steps: اعداد پایینتر کیفیت عکس ضعیفتری رو باعث میشن و اعداد بالاتر باعث میشن که کیفیت عکس بالا بره اما زمان تولید بیشتر بشه. اگر تک عکس تولید میکنید این عدد رو بین ۵۰ تا ۷۰ بزارید.گزینه‌های restore faces, tiling و hires fix: معمولا به این گزینه‌ها کار نداریم. گزینه‌ی restore faces در صورتیکه عکس با کیفیت پایین تولید شده باشه، سعی میکنه با استفاده از ابزارهای خودش تصویر صورت رو بازسازی کنه. گزینه‌ی tiling باعث میشه تصویری تولید کنه که بشه ادامش داد، حالت کاشی مانند، یه چیز تو مایه‌های این تصویر:گزینه‌ی width و height: که عرض و ارتفاع تصویر رو تعیین میکنه. هرگز این اعداد رو بیشتر از 512x512 نکنید! چرا؟ چون مدلهای Stable Diffusion با عکس‌هایی با این رزولوشن آموزش داده شده اند. زیادتر کردن این عدد باعث میشه عکس‌هاتون تکرار بشن (مثلا ببینید شخصیتتون ۳ تا سر و ۷ تا دست داره!) نگران رزولوشن نباشید! webui ابزار بزرگ کردن عکس رو با حفظ و بهبود کیفیت رو هم داره. البته به عنوان نکته باید بگم نسخه‌های جدید تا ۷۶۸ در ۷۶۸ نیز پشتیبانی میکنند. اما این موضوع بحث نیست. شما همیشه خروجی کوچیک بگیرید بعد upscale کنید.گزینه ی batch count و batch size: گزینه‌ی batch size در واقع میگه که همزمان چند تصویر با هم تولید بشن. اینکه چند تا تصویر با هم تولید بشن، مستقیما با میزان VRAM شما ارتباط داره. حال اگر تعداد تصاویر تولید شده با هم رو یک batch در نظر بگیریم، گزینه‌ی batch count میگه که چند دسته تصویر تولید کنه. این گزینه روی میزان VRAM تاثیر نداره. اگر گیج شدید یک بار دیگه توضیح میدم. فرض کنید شما batch count رو بزارید روی ۳ و batch size رو بزارید روی ۵. ابزار برای شما ابتدا ۵ تا تصویر همزمان تولید میکنه،‌ سپس ۵ تای دیگه و در آخر ۵ تا عکس دیگه با هم.معمولا ما چندین تصویر تصادفی با هم تولید میکنیم که بعدا بین اونها چیزی به مد نظرمون باشه رو انتخاب کنیم. من در اغلب مثال‌ها این عدد رو ۴ قرار میدمگزینه‌ی CFG scale: به شما میگه که ابزار چقدر به ورودی‌ها توجه کنه. هرچه این عدد کمتر باشه، عکس بی ربط تر به ورودی میشه. هرچی عدد بیشتر باشه، بیشتر ورودی‌های شما رو مد نظر قرار میده و میزان خلاقیتش رو کمتر میکنه، اما ممکنه که در اعداد بالا کلا ارتباطی بین ورودی‌های داده شده در عکس پیدا نکنید (مثلا ورودی داده باشید چشم و گوش و بینی،‌ یه دونه چشم و یه دونه گوش و یه دونه بینی کشیده باشه بدون اینکه صورتی در کار باشه). اونو روی ۷ به حال خودش رها کنید. در برخی موارد ممکنه تا ۹ در برخی مثال‌ها اون عدد رو تغییر بدم.گزینه‌ی Seed: بر اساس عدد تصادفی تولید شده یک تصویر تولید میشه. اگر پارامترهای ورودی و عدد seed یکسان باشند،‌ همیشه یک عکس تولید میشه. از این قسمت برای کم و زیاد کردن تعداد پارامترها در حالیکه روی یک عکس تقریبا یکسان کار میشه،‌ استفاده میکنیم. عدد -۱ میگه که عدد seed رو تصادفی تولید کن. بهتره در حالت random ولش کنید. گزینه‌ی سبز عدد seed که در تولید قبلی ایجاد شده رو بر میگردونه و تاس هم سید تصادفی ایجاد میکنه.چند مثال: من در این مثالها خروجی نهایی رو به صورت عکس‌های ۴ تایی میفرستم. توجه کنید که بسته به ورودی‌ها ممکنه عکس‌های بی‌ربطی دریافت کنیم. تولید تصویر نهایی کمی حوصله می‌خواد.مثال ۱:sampling method:euler a, sampling steps: 40, batch size: 4, CFG scale: 7, seed 1801069101:positive prompts: an anime boy in school uniform, highly detailed, high resolution, artstation, 1boy, formal dressnegative prompts: lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry, artist nameنمونه‌ی ۲:sampling method:DPM2, sampling steps: 40, batch size: 4, CFG scale: 7, seed 1801069101:positive prompts: an anime boy in school uniform, highly detailed, high resolution, artstation, 1boy, formal dressnegative prompts: lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry, artist nameنمونه‌ی ۳:یک سری پارامتر‌های بیشتر به نمونه‌ی یک اضافه میکنم و سید رو هم رندم میزارم.sampling method:DPM2, sampling steps: 40, batch size: 4, CFG scale: 7, seed -1:positive prompts: an anime boy in school uniform, sitting in library, pen, chair, table, studying, highly detailed, high resolution, artstation, 1boy, formal dressnegative prompts: lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry, artist nameدر عکس اول یک پای پسر وجود نداره. عکس چهارم،‌ هم پا دارای ایراد هستش و هم انگشتان، نحوه‌ی گرفتن خودکار. عکس سوم،‌انگشتان ایراد دارند. عکس دومی از همه بهتر در اومدهنمونه‌ی ۴:sampling method:‌َ Euler a, sampling steps: 40, batch size: 4, CFG scale: 7, seed 1801069103:positive prompts: an anime boy in school uniform, sitting in library, chair, table, studying, highly detailed, high resolution, artstation, 1boy, formal dress, gray hair, perfect handsnegative prompts: lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry, artist nameایراد دست‌ها در تمامی عکس‌ها واضح هستش.نمونه‌ی ۵:sampling method:‌َ Euler a, sampling steps: 40, batch size: 4, CFG scale: 7, seed 1801069101:positive prompts: an anime boy in school uniform, sitting in library, chair, table, studying, highly detailed, high resolution, artstation, 1boy, formal dress, gray hair, perfect hands, dramatic lighting, (((masterpiece))), (((best quality))), ((ultra-detailed))negative prompts: lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry, artist nameدقت کردید توی برخی عکس‌ها یک سری المان‌های اضافه وجود داره؟ مانند بخشی از لباسهای اضافه (به آرم روی سینه‌ي عکس پسر سومی دقت کنید. همچنین یک کتاب اضافه روی پاش وجود داره.) دست‌ها در اکثر تصاویر ایراد دارند. ( سر این موضوع باید اساسی برای شما روضه بخونم) سعی میکنم در قسمت چهارم به شما آموزش بدم که چطور با inpaint و scetch برخی از این موارد رو درست کنید. اما قبلش باید قسمت سوم یعنی img2img رو مطالعه کنید!فعلا در حد بیست دقیقه کار کردن، کمی عکس سوم رو اصلاح کردم. البته قرار نبود از یک عکس داغون،‌ شاهکار تولید کنیم. اما احتمالا به شما ایده‌ی کلی رو میده که چه تغییراتی در بخش inpainting قراره ایجاد بشه