خوب توی این قسمت، تب img2img رو بررسی میکنیم و با دو تا مثال مختلف، دو عکس رو به همراه چندین کلمه به ابزارمون به عنوان ورودی میدیم و تصاویر مورد نظر رو به عنوان خروجی میگیریم.
بریم سراغ بررسی ظاهر این تب.
در کنار کادرهای prompts، شما دو گزینه میبینید: interrogate clip و interrogateDeepBooru. اینها چی هستند؟ به صورت خلاصه این گزینهها، از روی عکس شما ورودیهای متنی تولید میکنند. یعنی اگر شما عکس ورودی رو داده باشید و روی یکی از این گزینهها کلیک کنید، با توجه به جزییات عکس، ابزار سعی میکنه لیستی از کلمات رو در کادر ورودی ایجاد کنه. البته اگر برای بار اول کلیک کنید، چندین فایل دریافت میکنه. فرق این دو گزینه چی هستش؟ گزینهی دوم سعی میکنه با توجه به دیتابیس Danbooru که یک بورد مربوط به سایتهای انیمهای هستش، ورودی متنی تولید کنه.
قسمت بعدی که احتمالا براتون جدید هستش اینه:
این بخش چندین تب مختلف داره که فعلا با تب img2img کار داریم (قاطی نکنید!)
در این قسمت شما میتونید تصویر مورد نظرتون رو drag and drop و یا آپلود کنید. اگر روی click to upload کلیک کنید، از شما مسیر فایل تصویرتون روی رایانهی شخصیتون رو میخواد.
گزینهی resize mode تصویر رو با توجه به رزولوشن داده شده تغییر میده. اگر روی just resize باشه، فقط عکس با توجه به رزولوشن داده شده تغییر سایز میده. گزینهی crop and resize عکس رو با توجه به رزولوشن داده شده crop میکنه. گزینهی resize and feel عکس رو با توجه به رزولوشن داده شده تغییر سایز میده بخشهای خالی رو با رنگ پر میکنه.
از اونجا که اکثر این بخشها مشابه قسمت txt2img هستش، مجددا این گزینهها رو توضیح نمیدیم. اما دو گزینهی مهم اینجا وجود داره:
گزینهی restore faces: سعی میکنه تا حد امکان صورتهای تشخیص داده شده در عکس رو بازسازی کنه
گزینهی Denoising strength: این گزینه در واقع تعیین میکنه که چقدر ابزار، از تصویر داده شده به عنوان ورودی الهام بگیره. اگر این عدد بر روی ۰ باشه، خروجی نهایی همون تصویر ورودی خواهد بود و چیزی تغییر نخواهد کرد. اگر این عدد بر روی ۱ باشه، تصویر خروجی کاملا بیربط به تصویر ورودی خواهد بود. بسته به میزان تغییری که قراره روی عکس داده بشه این عدد رو تغییر میدیم. معمولا تغییر بین بازهی ۰.۴ تا ۰.۶ برای شروع کار خوب هستش و برای گرفتن خروجی نهایی معمولا من این عدد رو روی ۰.۲ میزارم.
خوب برای مثال اول ما این گربه رو به ورودی میدیم.
و این پارامترها رو به ورودی دادم: ( بله! به ابزار گفتم به جای گربه، سگ بکشه)
model: anything v4.5 pruned positive prompts: animal, animal_focus,, brown_background, dog, looking_at_viewer, no_humans, photorealistic, realistic, shiba_inu, anime, cartoonist, oil painting, drawing negative prompts: blurry, jpeg artifacts, bad quality, watermark, artist name Sampling steps: 40, Sampling method: Euler a, CFG Scale: 9, Denoising strength: 0.45, batch size: 4, Seed: 940449343
خروجی به صورت عکسهای در کنار هم:
البته امیدوارم گربه بنده خدا از دستمون ناراحت نشده باشه. واسه اینکه ناراحت نشه یه عکس گربه هم تولید میکنیم. این بار denoising رو کمتر میکنیم تا ببینیم چقدر شبیه به عکس اصلی میشه
model: anything v4.5 pruned animal, animal_focus,, brown_background, cat, looking_at_viewer, no_humans, photorealistic, realistic, shiba_inu, anime, cartoonist, oil painting, drawing, ginger kitten, smiling Negative prompt: blurry, jpeg artifacts, bad quality, watermark, artist name Steps: 40, Sampler: DPM++ SDE, CFG scale: 9, Seed: 3371033236, Size: 512x512, Model: anything-v4.5-pruned, Denoising strength: 0.25, Mask blur: 4, batch size: 5
خروجی:
مثل اینکه داره لبخند میزنه!
مثال بعدی یکم قضیه رو پیچیده تر میکنیم. در این مثال تصویر یک فرد رو میگیریم، سپس خروجی رو مجددا به عنوان ورودی میدیدم و پس از چند مرحله خروجی گرفتن، تصویر اصلی رو تا با سایز بزرگ به عنوان خروجی میگیریم.
عکس ورودی (لینک):
1girl, blurry, coat, depth_of_field, hood, lips, long_hair, looking_at_viewer, motion_blur, mountain, outdoors, photo_\(medium\), snow, snowing, solo, tree, winter, smiling Negative prompt: blurry, bad image, worst quality Steps: 20, Sampler: DPM++ SDE, CFG scale: 7, Seed: 2450034904, Size: 512x512, Model hash: 6e430eb514, Model: anything-v4.5-pruned, Denoising strength: 0.5, Mask blur: 4
خروجی با denoising strength 0.5:
تصویر اول رو میگیرم:
خود ابزار یک گزینه داره که مستقیما عکس تولید شده رو بفرستیم به img2img:
به صورت اتوماتیک عکس باید در این قسمت بارگزاری شده باشه:
مقدار seed رو به 2450034904 تغییر میدم. همچنین مدل رو به Waifu diffusion تغییر میدم. sampling steps رو روی 60 میزارم و denoising رو روی 0.2. چند تا prompt هم به عنوان ورودی میدیم.چیزی که مد نظر من هستش اینه که رنگ لباس کمرنگ تر بشه. (خیلی پررنگ هستش و بیشتر شبیه به تکنیکهای عکاسی شده تا نقاشی)
1girl, blurry, coat, depth_of_field, hood, lips, long_hair, looking_at_viewer, motion_blur, mountain, outdoors, photo_\(medium\), snow, snowing, solo, tree, winter, smiling, oil painting Negative prompt: blurry, bad image, worst quality Steps: 60, Sampler: DPM++ SDE, CFG scale: 7, Seed: 2450034906, Size: 512x512, Model hash: 6e430eb514, Model: anything-v4.5-pruned, Denoising strength: 0.2, Mask blur: 4
خروجی:
عکس سوم به نظر خوب میاد. این عکس رو به عنوان ورودی به img2img میدیم (روی عکس سوم کلیک میکنم و گزینهی send to img2img رو میزنم)
سوال: تا اینجا همهی عکسها با رزولوشن 512x512 بودن. چطور این عکس رو با سایز بالاتر دریافت کنیم؟
برای اینکار از گزینهی script و SD upscale استفاده میکنیم.
روی این گزینه کلیک میکنید و گزینهی sd upscale رو انتخاب میکنید.
گزینهی scale factor رو روی ۳ میزارم تا اندازهها ۳ برابر بشن. ضمنا upscaler رو روی R-ESRGAN 4x+ Anime6B میزارم. بسته به الگوریتم و مدل، ممکنه نتایج متفاوتی رو بگیرید. برخی از مدلها صرفا از upscaler خاصی پشتیبانی میکنند لذا در هنگام دریافت فایل چک پوینت حتما به توضیحات اون دقت کنید.
در نهایت میزان denoising رو روی 0.1 میزارم. batch count رو روی ۱ میزارم. این بار تولید تصویر بیشتر زمان خواهد برد. (نکته: همیشه ابتدا عکس سایز کوچیک بگیرید و سپس نتیجهی دلخواهتون رو بزرگ کنید. هرگز از ابتدا گزینهی upscaler رو فعال نکنید، مخصوصا وقتی که چندین عکس همزمان تولید میکنید. و الا کلی وقتتون گرفته خواهد شد)
در نهایت خروجی نهایی این خواهد بود (سایز بزرگ)
در قسمت ۴ در مورد inpainting و scetch صحبت خواهیم کرد و در قسمت ۵ که کوتاه خواهد بود، از یک مدل LoRA برای تولید تصویر از یک مدل کوچکتر استفاده میکنیم.