დღემდე არსებული მდგომარეობა ახლა უკვე წარსულია! მოხარულნი ვართ გამოვაცხადოთ ახალი მეთოდი, რომელსაც შეუძლია Stable Diffusion-ისა და SDXL-ის მუშაობა არსებითად დააჩქაროს, თითქოს ისინი LCM პროცესის გამოყენებით იყვნენ დისტილირებული! როგორ ჟღერს SDXL-ის ნებისმიერი მოდელის გაშვება დაახლოებით 1 წამში 3090 გრაფიკულ ბარათზე 7 წამის ნაცვლად, ან Mac-ზე 10-ჯერ უფრო სწრაფად? დეტალებისთვის გააგრძელეთ კითხვა! მაშ, რა არის ხრიკი? ლატენტური თანმიმდევრულობის დისტილაციისთვის, თითოეული მოდელი ცალკე უნდა იყოს დისტილირებული. LCM LoRA-ს მთავარი იდეაა მოამზადოს მხოლოდ მცირე რაოდენობის ადაპტერები, რომლებიც ცნობილია როგორც LoRA ფენები, სრული მოდელის ნაცვლად. მიღებული LoRA-ები შემდეგ შეიძლება გამოყენებულ იქნას მოდელის ნებისმიერ დაწვრილებით ოპტიმიზებულ ვერსიაზე, მათი ცალკე დისტილაციის საჭიროების გარეშე. თუ გაინტერესებთ, როგორ გამოიყურება ეს პრაქტიკაში, გადადით შემდეგ განყოფილებაში, რათა გამოსცადოთ ინფერენსის კოდი. თუ გსურთ საკუთარი LoRA-ების მომზადება, ეს არის პროცესი, რომელსაც გამოიყენებდით: პროცესის შესახებ მეტი დეტალისთვის, გთხოვთ, ჩამოტვირთოთ ჩვენი ნაშრომი. Stable Diffusion-ისა და SDXL-ის სწრაფი ინფერენსი საშუალებას იძლევა ახალი გამოყენების შემთხვევებისა და სამუშაო პროცესების შექმნას. რამდენიმეს რომ დავასახელოთ: სიჩქარის სხვაობის გასაზომად, რომელზეც ვსაუბრობთ, ერთი 1024x1024 ზომის გამოსახულების გენერირებას M1 Mac-ზე SDXL-ით (ბაზური) დაახლოებით ერთი წუთი სჭირდება. LCM LoRA-ს გამოყენებით, ჩვენ ვიღებთ შესანიშნავ შედეგებს სულ რაღაც ~6 წამში (4 ნაბიჯი). ეს რიგითობით უფრო სწრაფია და შედეგების ლოდინის საჭიროების არქონა ცვლის თამაშის წესებს. 4090 გრაფიკული ბარათის გამოყენებით, ჩვენ ვიღებთ თითქმის მყისიერ პასუხს (1 წამზე ნაკლები). ეს ხსნის SDXL-ის გამოყენებას ისეთ აპლიკაციებში, სადაც რეალურ დროში მოვლენები აუცილებელი მოთხოვნაა. დღეს გამოშვებული 'diffusers'-ის ვერსია ძალიან აადვილებს LCM LoRA-ების გამოყენებას: გაითვალისწინეთ, რომ კოდი: ეს გამოიწვევდა შემდეგი სრული რეზოლუციის გამოსახულებას: SDXL-ით 4 ნაბიჯში LCM LoRA-ს გამოყენებით გენერირებული გამოსახულება. ვნახოთ, როგორ მოქმედებს ნაბიჯების რაოდენობა გენერაციის ხარისხზე. შემდეგი კოდი წარმოქმნის გამოსახულებებს 1-დან 8-მდე სრული ინფერენსის ნაბიჯით: ეს არის 8 გამოსახულება, რომლებიც ნაჩვენებია ცხრილში: LCM LoRA-ს გენერაციები 1-დან 8 ნაბიჯამდე. როგორც მოსალოდნელი იყო, მხოლოდ 1 ნაბიჯის გამოყენება ქმნის მიახლოებით ფორმას მკაფიო მახასიათებლების გარეშე და ტექსტურის ნაკლებობით. თუმცა, შედეგები სწრაფად უმჯობესდება და ისინი ჩვეულებრივ ძალიან დამაკმაყოფილებელია სულ რაღაც 4-დან 6 ნაბიჯში. პირადად მე, წინა ტესტში 8-ნაბიჯიანი გამოსახულება ჩემი გემოვნებისთვის ცოტა ზედმეტად გაჯერებული და „მულტფილმური“ მეჩვენება, ამიტომ ამ მაგალითში ალბათ 5-დან 6-ნაბიჯიანებს ავირჩევდი. გენერაცია იმდენად სწრაფია, რომ შეგიძლიათ შექმნათ მრავალი განსხვავებული ვარიანტი მხოლოდ 4 ნაბიჯის გამოყენებით, შემდეგ კი აირჩიოთ ის, რაც მოგწონთ და გაიმეოროთ კიდევ რამდენიმე ნაბიჯით და საჭიროების შემთხვევაში დახვეწილი მოთხოვნებით. გაითვალისწინეთ, რომ წინა მაგალითებში ჩვენ გამოვიყენეთ guidance_scale-ის მნიშვნელობა 1, რაც მას ფაქტობრივად გამორთავს. ეს კარგად მუშაობს უმეტესი მოთხოვნებისთვის და ყველაზე სწრაფია, მაგრამ უგულებელყოფს უარყოფით მოთხოვნებს. ასევე შეგიძლიათ გამოიკვლიოთ უარყოფითი მოთხოვნების გამოყენება guidance scale-ის 1-დან 2-მდე დაყენებით – აღმოვაჩინეთ, რომ უფრო დიდი მნიშვნელობები არ მუშაობს. როგორ ადარებს ეს სტანდარტულ SDXL პაიპლაინს, ხარისხის თვალსაზრისით? ვნახოთ მაგალითი! ჩვენ შეგვიძლია სწრაფად დავაბრუნოთ ჩვენი პაიპლაინი სტანდარტულ SDXL პაიპლაინში LoRA წონების გადმოტვირთვით და ნაგულისხმევ scheduler-ზე გადართვით: შემდეგ შეგვიძლია ჩვეულებრივად გავუშვათ ინფერენსი SDXL-ისთვის. ჩვენ შევაგროვებთ შედეგებს სხვადასხვა რაოდენობის ნაბიჯების გამოყენებით: SDXL პაიპლაინის შედეგები (იგივე მოთხოვნა და შემთხვევითი 'seed'), 1, 4, 8, 15, 20, 25, 30 და 50 ნაბიჯის გამოყენებით. როგორც ხედავთ, ამ მაგალითში გამოსახულებები თითქმის უსარგებლოა ~20 ნაბიჯამდე (მეორე რიგი) და ხარისხი მაინც შესამჩნევად იზრდება მეტი ნაბიჯით. საბოლოო გამოსახულების დეტალები საოცარია, მაგრამ ამას 50 ნაბიჯი დასჭირდა. ეს ტექნიკა ასევე მუშაობს ნებისმიერი სხვა დაწვრილებით ოპტიმიზებული SDXL ან Stable Diffusion მოდელისთვის. დემონსტრირებისთვის, ვნახოთ, როგორ გავუშვათ ინფერენსი 'collage-diffusion'-ზე, მოდელზე, რომელიც დაწვრილებით ოპტიმიზებულია Stable Diffusion v1.5-დან Dreambooth-ის გამოყენებით. კოდი მსგავსია იმისა, რაც წინა მაგალითებში ვნახეთ. ჩვენ ვტვირთავთ დაწვრილებით ოპტიმიზებულ მოდელს, შემდეგ კი Stable Diffusion v1.5-ისთვის შესაფერის LCM LoRA-ს. LCM LoRA ტექნიკა Dreambooth Stable Diffusion v1.5 მოდელთან ერთად, რაც 4-ნაბიჯიანი ინფერენსის საშუალებას იძლევა. LCM-ის ინტეგრაცია 'diffusers'-ში შესაძლებელს ხდის მრავალი ფუნქციისა და სამუშაო პროცესის გამოყენებას, რომლებიც 'diffusers'-ის ხელსაწყოების ნაკრების ნაწილია. მაგალითად: ეს განყოფილება არ არის გამიზნული, რომ იყოს ამომწურავი, არამედ ილუსტრაციული იმ გენერაციის სიჩქარისთვის, რომელსაც მივაღწევთ სხვადასხვა კომპიუტერზე. კიდევ ერთხელ ხაზი გავუსვათ, რამდენად თავისუფალია გამოსახულების გენერირების ასე მარტივად შესწავლა. ეს ტესტები ჩატარდა batch size 1-ით ყველა შემთხვევაში, Sayak Paul-ის ამ სკრიპტის გამოყენებით. დიდი ტევადობის მქონე ბარათებისთვის, როგორიცაა A100, შესრულება მნიშვნელოვნად იზრდება მრავალი გამოსახულების ერთდროულად გენერირებისას, რაც ჩვეულებრივ ხდება საწარმოო დატვირთვისას. Latent Consistency Models LoRAs კოლექცია მოიცავს 'latent-consistency/lcm-sdxl' (სრულიად დაწვრილებით ოპტიმიზებული თანმიმდევრულობის მოდელი, რომელიც მიღებულია SDXL 1.0 ბაზიდან) და 'latent-consistency/lcm-ssd-1b' (სრულიად დაწვრილებით ოპტიმიზებული თანმიმდევრულობის მოდელი, რომელიც მიღებულია segmind/SSD-1B-დან). 'diffusers' + PEFT ინტეგრაციის გამოყენებით, შეგიძლიათ დააკავშიროთ LCM LoRA-ები ჩვეულებრივ SDXL LoRA-ებთან, რაც მათ ანიჭებს ზესახელმწიფოს, რომ აწარმოონ LCM ინფერენსი მხოლოდ 4 ნაბიჯში. აქ ჩვენ ვაპირებთ გავაერთიანოთ CiroN2022/to