рдореБрдЦреНрдп рд╕рд╛рдордЧреНрд░реА рдкрд░ рдЬрд╛рдПрдБ

DreamBooth рдФрд░ LoRA рдХреЗ рд╕рд╛рде Stable Diffusion XL рдХрд╛ рдлрд╛рдЗрди-рдЯреНрдпреВрдирд┐рдВрдЧ

Hugging Face AutoTrain Advance, DreamBooth, рдФрд░ LoRA рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдлрд╝реЛрдЯреЛ рдкрд░ Stable Diffusion XL рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдлрд╛рдЗрди-рдЯреНрдпреВрди рдХрд░ рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝реНрдб, рдЙрдЪреНрдЪ-рдЧреБрдгрд╡рддреНрддрд╛ рдХреА рдЗрдореЗрдЬ рдЬреЗрдирд░реЗрд╢рди рд╕реАрдЦреЗрдВред
┬╖ 14 рдорд┐ре░ рдкрдврд╝реЗрдВ

AI рдХреЗ рд╕рд╛рде рдЦреЛрдЬреЗрдВ

рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ, рд╣рдо Stable Diffusion XL рдФрд░ DreamBooth рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдиреЗрдВрдЧреЗ, рдФрд░ diffuser рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрдореЗрдЬ рдЬреЗрдирд░реЗрд╢рди рдореЙрдбрд▓ рддрдХ рдХреИрд╕реЗ рдкрд╣реБрдБрдЪрд╛ рдЬрд╛рдПред рд╕рд╛рде рд╣реА, рд╣рдо рд╡реНрдпрдХреНрддрд┐рдЧрдд рдлрд╝реЛрдЯреЛ рдкрд░ рдореЙрдбрд▓ рдХреЛ рдлрд╛рдЗрди-рдЯреНрдпреВрди рдХрд░рдирд╛ рдФрд░ рдЙрд╕рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдирд╛ рд╕реАрдЦреЗрдВрдЧреЗред рдпрджрд┐ рдЖрдк AI рдореЗрдВ рдирдП рд╣реИрдВ, рддреЛ рдПрдХ рд╢реБрд░реБрдЖрддреА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рд╣рдо AI Fundamentals рдХреЛрд░реНрд╕ рд▓реЗрдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддреЗ рд╣реИрдВред┬а

Stable Diffusion XL рдХреЛ рд╕рдордЭрдирд╛

Stability AI рдЯреАрдо рдиреЗ Stable Diffusion XL (SDXL) 1.0 рдЬрд╛рд░реА рдХрд┐рдпрд╛ рд╣реИ, рдЬреЛ AI рдЯреЗрдХреНрд╕реНрдЯ-рдЯреВ-рдЗрдореЗрдЬ рдЬреЗрдирд░реЗрд╢рди рдореЙрдбрд▓реЛрдВ рдХреЗ рдЕрдЧрд▓реЗ рдЪрд░рдг рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдУрдкрди-рд╕реЛрд░реНрд╕ рдореЙрдбрд▓ рд╢реЛрдз-рдХреЗрд╡рд▓ SDXL 0.9 рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ рдФрд░ рджреБрдирд┐рдпрд╛ рдХрд╛ рд╕рдмрд╕реЗ рд╕рдХреНрд╖рдо рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рдЙрдкрд▓рдмреНрдз рдЗрдореЗрдЬ рдХреНрд░рд┐рдПрд╢рди рдореЙрдбрд▓ рдмрди рдЧрдпрд╛ рд╣реИред

рдХрдИ рд╕рдкреНрддрд╛рд╣реЛрдВ рдХреЗ рдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдорд╛рддреНрд░рд╛рддреНрдордХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдФрд░ рдЧреБрдгрд╛рддреНрдордХ рдорд╛рдирд╡реАрдп рдореВрд▓реНрдпрд╛рдВрдХрди, рджреЛрдиреЛрдВ, рдпрд╣ рджрд░реНрд╢рд╛рддреЗ рд╣реИрдВ рдХрд┐ SDXL рдЕрдиреНрдп рдУрдкрди-рд╕реЛрд░реНрд╕ рдореЙрдбрд▓реЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╕рд░реНрд╡реЛрдЪреНрдЪ рдЧреБрдгрд╡рддреНрддрд╛ рдФрд░ рд╕рдмрд╕реЗ рдкрд╕рдВрджреАрджрд╛ рдЫрд╡рд┐рдпрд╛рдБ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред

Image from arxiv.org

рдЫрд╡рд┐ рд╕реНрд░реЛрдд: arxiv.org

рдпрд╣ рдЙрдЪреНрдЪ рдЧреБрдгрд╡рддреНрддрд╛ рджреЛ рдореЙрдбрд▓реЛрдВ рдХреЗ рдПрдВрд╕реЗрдВрдмрд▓ рд╕реЗ рд╣рд╛рд╕рд┐рд▓ рд╣реБрдИ рд╣реИтАФ3.5 рдмрд┐рд▓рд┐рдпрди рдкреИрд░рд╛рдореАрдЯрд░ рд╡рд╛рд▓рд╛ рдмреЗрд╕ рдЬреЗрдирд░реЗрдЯрд░ рдФрд░ 6.6 рдмрд┐рд▓рд┐рдпрди рдкреИрд░рд╛рдореАрдЯрд░ рд╡рд╛рд▓рд╛ рд░рд┐рдлрд╝рд╛рдЗрдирд░ред рдпрд╣ рдбреБрдЕрд▓ рдкрд╛рдЗрдкрд▓рд╛рдЗрди, рдЙрдкрднреЛрдХреНрддрд╛ GPUs рдкрд░ рдХреБрд╢рд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЪрд▓ рд╕рдХрдиреЗ рдХреЗ рд╕рд╛рде, рдЗрдореЗрдЬ рдХреНрд╡рд╛рд▓рд┐рдЯреА рдХреЛ рдЕрдзрд┐рдХрддрдо рдХрд░рддреА рд╣реИред

рдЕрдм SDXL 1.0 рдХреЗ рд╕рд╛рде, рд╢рд╛рдирджрд╛рд░ рдЫрд╡рд┐рдпрд╛рдБ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдВрдмреЗ, рдЬрдЯрд┐рд▓ рдкреНрд░реЙрдореНрдкреНрдЯреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреА рдмреБрджреНрдзрд┐рдорддреНрддрд╛ рдХреБрдЫ рд╣реА рд╢рдмреНрджреЛрдВ рд╕реЗ рдЬрдЯрд┐рд▓ рдЫрд╡рд┐рдпрд╛рдБ рд░рдЪ рд╕рдХрддреА рд╣реИред

рдХрд╕реНрдЯрдо рдбреЗрдЯрд╛рд╕реЗрдЯреНрд╕ рдФрд░ рдЯрд╛рд╕реНрдХреНрд╕ рдкрд░ SDXL рдХреЛ рдлрд╛рдЗрди-рдЯреНрдпреВрди рдХрд░рдирд╛ рдФрд░ рднреА рдЖрд╕рд╛рди рд╣реЛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рд╣рдореЗрдВ рд╕рдВрд░рдЪрдирд╛, рд╢реИрд▓реА рдФрд░ рд░рдЪрдирд╛ рдкрд░ рд╕реВрдХреНрд╖реНрдо рдирд┐рдпрдВрддреНрд░рдг рджреЗрддрд╛ рд╣реИред

DreamBooth рдХреНрдпрд╛ рд╣реИ?

DreamBooth, рдЬрд┐рд╕реЗ 2022 рдореЗрдВ Google рд░рд┐рд╕рд░реНрдЪ рдЯреАрдо рдиреЗ рдкреЗрд╢ рдХрд┐рдпрд╛, рдЬрдирд░реЗрдЯрд┐рд╡ AI рдХреЗ рдХреНрд╖реЗрддреНрд░тАФрд╡рд┐рд╢реЗрд╖рдХрд░ Stable Diffusion рдЬреИрд╕реЗ рдЯреЗрдХреНрд╕реНрдЯ-рдЯреВ-рдЗрдореЗрдЬ рдореЙрдбрд▓реЛрдВтАФрдореЗрдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рдЧрддрд┐ рд╣реИред

рдЗрд╕реЗ DreamBooth рдЗрд╕рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐, Google рдХреЗ рд╢реЛрдзрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ:

"рдпрд╣ рдлреЛрдЯреЛ рдмреВрде рдЬреИрд╕рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд┐рд╖рдп рдХреЛ рдЗрд╕ рддрд░рд╣ рдХреИрдкреНрдЪрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЙрд╕реЗ рд╡рд╣рд╛рдБ рд╕рдВрд╢реНрд▓реЗрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдЬрд╣рд╛рдБ рднреА рдЖрдкрдХреЗ рд╕рдкрдиреЗ рд▓реЗ рдЬрд╛рдПрдБред"

image1.png

рдЫрд╡рд┐ рд╕реНрд░реЛрдд: DreamBooth

DreamBooth рдЖрдкрдХреЛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╕реНрдЯрдо рд╕рдмреНрдЬреЗрдХреНрдЯ рдЬреЛрдбрд╝рдиреЗ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕ рдкрд░ рдлрд╛рдЗрди-рдЯреНрдпреВрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдореЙрдбрд▓ рдлрд┐рд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЛрдВ рд╕реЗ рдмреЗрд╣рддрд░ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдмрди рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣, рдпрд╣ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡реНрдпрдХреНрддрд┐, рдХрд┐рд░рджрд╛рд░, рд╡рд╕реНрддреБ рдпрд╛ рджреГрд╢реНрдп рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рдЖрдкрдХрд╛ рдЕрдкрдирд╛ рдЗрдореЗрдЬ рдЬреЗрдирд░реЗрдЯрд░ рдмрдирд╛рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдЦреЛрд▓ рджреЗрддрд╛ рд╣реИред

DreamBooth рдХреЛ рдореЙрдбрд▓ рдХреЛ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╖рдп рдХреА рдХреЗрд╡рд▓ рдХреБрдЫ (рдЖрдорддреМрд░ рдкрд░ 3тАУ5) рдЫрд╡рд┐рдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдПрдХ рдмрд╛рд░ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рд╣реЛ рдЬрд╛рдиреЗ рдкрд░, рдореЙрдбрд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдХрд▓реНрдкрдирд╛ рддрдХ рд╕реАрдорд┐рдд рд░рд╣рддреЗ рд╣реБрдП рд╡рд┐рд╖рдп рдХреЛ рдЕрд╕рдВрдЦреНрдп рд╕реЗрдЯрд┐рдВрдЧреНрд╕, рджреГрд╢реНрдпреЛрдВ рдФрд░ рдкреЛрдЬрд╝ рдореЗрдВ рд░рдЦ рд╕рдХрддрд╛ рд╣реИред

DreamBooth рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ

DreamBooth рдХреЗ рд╕рд╛рде рдЗрдореЗрдЬ рдЬреЗрдирд░реЗрд╢рди рдореЙрдбрд▓ рдХрд╛ рдлрд╛рдЗрди-рдЯреНрдпреВрдирд┐рдВрдЧ рдХрдИ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рд▓рд╛рднрдХрд╛рд░реА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдмрд┐рдирд╛ Photoshop рдХреМрд╢рд▓ рдХреЗ рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдФрд░ рдЙрдЪреНрдЪ-рдЧреБрдгрд╡рддреНрддрд╛ рдХреА рдЫрд╡рд┐рдпрд╛рдБ рдмрдирд╛рдиреЗ рдХреА рдЕрдзрд┐рдХ рд╕реНрд╡рддрдВрддреНрд░рддрд╛ рджреЗрддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ рдХрд┐ рдпрд╣ рдХрд╛рд░реНрдпрд╕реНрдерд▓ рдореЗрдВ рдХреИрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдореВрд▓реНрдп рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИред

  1. рдХреНрд░рд┐рдПрдЯрд┐рд╡ рдЗрдВрдбрд╕реНрдЯреНрд░реАрдЬрд╝ рдЬреИрд╕реЗ рдЧреНрд░рд╛рдлрд┐рдХ рдбрд┐рдЬрд╝рд╛рдЗрди, рд╡рд┐рдЬреНрдЮрд╛рдкрди рдФрд░ рдордиреЛрд░рдВрдЬрди рдХреЛ DreamBooth рд╕реЗ рдмрд╣реБрдд рд▓рд╛рдн рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рджреГрд╢реНрдп рд╕рд╛рдордЧреНрд░реА рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рдЙрдЪреНрдЪ рд╕реНрддрд░ рдХрд╛ рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝реЗрд╢рди рдФрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
  2. DreamBooth рд╡реНрдпрдХреНрддрд┐рдХрд░рдг рд╕рдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИ, рдРрд╕реЗ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЛ рд░рдЪрдХрд░ рдЬреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬреАрд╡рди рдореЗрдВ рджреЛрд╣рд░рд╛рдирд╛ рдХрдард┐рди рд╣реЛрдВ рдпрд╛ рдкреВрд░реА рддрд░рд╣ рдХрд╛рд▓реНрдкрдирд┐рдХ рд╣реЛрдВред
  3. рдЗрд╕реЗ рд╢реИрдХреНрд╖рдгрд┐рдХ рдФрд░ рд╢реЛрдз рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рднреА рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд╣рд╛рдБ рджреГрд╢реНрдп рдкреНрд░рд╕реНрддреБрддрд┐ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛрддреА рд╣реИтАФрдЬреИрд╕реЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╢реИрдХреНрд╖рдгрд┐рдХ рд╕рд╛рдордЧреНрд░реА рдмрдирд╛рдиреЗ рдпрд╛ рд╢реЛрдз рдкреНрд░рдпреЛрдЬрдиреЛрдВ рдХреЗ рд▓рд┐рдПред

рдЖрдЧреЗ рдХреЗ рдЕрдиреБрднрд╛рдЧреЛрдВ рдореЗрдВ, рд╣рдо рдореБрдлреНрдд Kaggle GPUs рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╕реНрдЯрдо рдбреЗрдЯрд╛рд╕реЗрдЯ рдкрд░ SDXL рдореЙрдбрд▓ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдФрд░ рдЙрд╕реЗ рдлрд╛рдЗрди-рдЯреНрдпреВрди рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЧрд╣рд░рд╛рдИ рд╕реЗ рд╕рдордЭреЗрдВрдЧреЗред

Stable Diffusion XL рддрдХ рдкрд╣реБрдБрдЪрдирд╛

рд╣рдо Hugging Face рдкрд░ Stable Diffusion XL Spaces рдХреЗ рдбреЗрдореЛ рдХреЛ рдЖрдЬрд╝рдорд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдЖрдкрдХреЗ рдЗрдирдкреБрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЬрд▓реНрджреА рд╕реЗ рдЪрд╛рд░ рдЫрд╡рд┐рдпрд╛рдБ рдмрдирд╛рддрд╛ рд╣реИред рдпрд╣ рдЖрдкрдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдпрд╣ рддрдп рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕реЗ рдереЛрдбрд╝рд╛ рдЖрдЬрд╝рдорд╛рдПрдБред

Image from Stable Diffusion XL on TPUv5e

рдЫрд╡рд┐ рд╕реНрд░реЛрдд: Stable Diffusion XL on TPUv5e

рджреВрд╕рд░рд╛ рддрд░реАрдХрд╛ рд╣реИ рдХрд┐ рдЖрдк Python рд▓рд╛рдЗрдмреНрд░реЗрд░реА diffusers рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╕реНрдЯрдо рдкреНрд░реЙрдореНрдкреНрдЯ рд╕реЗ рдЫрд╡рд┐ рдЬрдирд░реЗрдЯ рдХрд░реЗрдВред

рд╕реЗрдЯрдЕрдк

рдХреЛрдб рдЪрд▓рд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк CUDA рд╕рдкреЛрд░реНрдЯ рд╡рд╛рд▓реА GPU рдорд╢реАрди рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВред

!nvidia-smi

image4.png

рдЙрд╕рдХреЗ рдмрд╛рдж, PIP рд╕реЗ diffuser рдкреИрдХреЗрдЬ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВред

%pip install --upgrade diffusers[torch] -q

рдмреЗрд╕ рдореЙрдбрд▓ рдФрд░ VAE рдбрд┐рдХреЛрдбрд░ рд▓реЛрдб рдХрд░рдирд╛

рд╣рдо рдХрд╕реНрдЯрдо VAE рдбрд┐рдХреЛрдбрд░ рд▓реЛрдб рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕реЗ fp16 рдкреНрд░рд┐рд╕реАрдЬрди рдореЗрдВ NaNs рдЬрдирд░реЗрдЯ рдХрд┐рдП рдмрд┐рдирд╛ рдЪрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдмрд╛рдж, рд╣рдо diffuser рдХреЗ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдореЗрдВ VAE рдбрд┐рдХреЛрдбрд░ рдХреЛ рдЗрдВрдЯреАрдЧреНрд░реЗрдЯ рдХрд░рдХреЗ fp16 рдкреНрд░рд┐рд╕реАрдЬрди рдХреЗ рд╕рд╛рде рдмреЗрд╕ SDXL рдореЙрдбрд▓ рд▓реЛрдб рдХрд░ рдПрдХ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдмрдирд╛рдПрдБрдЧреЗред

рд╣рдо рдмреЗрд╕ рдореЙрдбрд▓ рдХреЛ рд╕реАрдзреЗ тАЬfp16тАЭ рдХреЗ рдмрд┐рдирд╛ рднреА рд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рдереЗ, рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ GPU рдореЗрдореЛрд░реА рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рдорд╕реНрдпрд╛рдПрдБ рдЖрддреАрдВред рдЗрд╕рд▓рд┐рдП Kaggle, Colab рдФрд░ рд▓реИрдкрдЯреЙрдк GPUs рдкрд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ fp16 рд╡реЗрд░рд┐рдПрдВрдЯ рдореЗрдВ рдореЙрдбрд▓ рдПрдХреНрд╕реЗрд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

from diffusers import DiffusionPipeline, AutoencoderKL
import torch

vae = AutoencoderKL.from_pretrained(
    "madebyollin/sdxl-vae-fp16-fix", 
    torch_dtype=torch.float16
)
pipe = DiffusionPipeline.from_pretrained(
    "stabilityai/stable-diffusion-xl-base-1.0",
    vae=vae,
    torch_dtype=torch.float16,
    variant="fp16",
    use_safetensors=True,
)
pipe.to("cuda");

рдЗрдореЗрдЬ рдЬреЗрдирд░реЗрд╢рди рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдЪрд▓рд╛рдирд╛

рдЫрд╡рд┐ рдЬрдирд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рд╕рд░рд▓ рдкреНрд░реЙрдореНрдкреНрдЯ, рдЗрдиреНрдлрд╝рд░реЗрдВрд╕ рд╕реНрдЯреЗрдкреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдкреНрд░рддрд┐ рдкреНрд░реЙрдореНрдкреНрдЯ рдЫрд╡рд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рджреЗрдиреА рд╣реЛрдЧреАред

рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдПрдХ рд╣реА рдкреНрд░реЙрдореНрдкреНрдЯ рд╕реЗ рдЪрд╛рд░ рдЫрд╡рд┐рдпрд╛рдБ рдЬрдирд░реЗрдЯ рдХрд░реЗрдВрдЧреЗред

prompt = "A man in a spacesuit is running a marathon in the jungle."

image = pipe(prompt=prompt, num_inference_steps=25, num_images_per_prompt = 4)

рдЧреНрд░рд┐рдб рдореЗрдВ рдЫрд╡рд┐рдпрд╛рдБ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рд╕рд░рд▓ Python рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЫрд╡рд┐рдпреЛрдВ рдХрд╛ рдЖрдХрд╛рд░ рдмрджрд▓рдХрд░ рдЙрдиреНрд╣реЗрдВ рдЧреНрд░рд┐рдб рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗред

from PIL import Image

def image_grid(imgs, rows, cols, resize=256):
    assert len(imgs) == rows * cols

    if resize is not None:
        imgs = [img.resize((resize, resize)) for img in imgs]

    w, h = imgs[0].size
    grid_w, grid_h = cols * w, rows * h
    grid = Image.new("RGB", size=(grid_w, grid_h))

    for i, img in enumerate(imgs):
        x = i % cols * w
        y = i // cols * h
        grid.paste(img, box=(x, y))

    return grid

рд╣рдо 2x2 рдЧреНрд░рд┐рдб рдореЗрдВ рдЪрд╛рд░ рдЫрд╡рд┐рдпрд╛рдБ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВрдЧреЗ рддрд╛рдХрд┐ рдореЙрдбрд▓ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреА рддреБрд▓рдирд╛ рдЖрд╕рд╛рдиреА рд╕реЗ рд╣реЛ рд╕рдХреЗред

image_grid(image.images, 2, 2)

рдирддреАрдЬреЗ рд╢рд╛рдирджрд╛рд░ рд╣реИрдВред рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, SDXL, Stable Diffusion 1.6 рд╕реЗ рдХрд╛рдлреА рдмреЗрд╣рддрд░ рд╣реИред

image3.png

рдЖрдЗрдП рдПрдХ рдФрд░ рдкреНрд░реЙрдореНрдкреНрдЯ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдФрд░ рдкрдЯрд╛рдЦреЛрдВ рд╕реЗ рдЦреЗрд▓рддреЗ рдмрдВрджрд░ рдХреА рддреАрди рдЫрд╡рд┐рдпрд╛рдБ рдЬрдирд░реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред

prompt = "A playful monkey handling fireworks with ease."
image = pipe(prompt=prompt, num_inference_steps=25, num_images_per_prompt = 3)
image_grid(image.images, 1, 3)

image14.png

Stable Diffusion рдореЙрдбрд▓ рдХреЛ рдСрдирд▓рд╛рдЗрди рдФрд░ рд▓реЛрдХрд▓реА рдХреИрд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░реЗрдВ, рдпрд╣ How to Run Stable Diffusion рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рдХреЗ рд╕реАрдЦреЗрдВред

Refiner рдХреЗ рд╕рд╛рде рдкрд░рд┐рдгрд╛рдо рдмреЗрд╣рддрд░ рдХрд░реЗрдВ

рдЫрд╡рд┐ рдЧреБрдгрд╡рддреНрддрд╛ рдФрд░ рдореЙрдбрд▓ рдХреА рд╕рдЯреАрдХрддрд╛ рдХреЛ рдФрд░ рдмреЗрд╣рддрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо Refiner рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред

  1. рдбрд┐рдлреНрдпреВрдЬрд╝рди рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ SDXL refiner 1.0 рд▓реЛрдб рдХрд░реЗрдВред
  2. рдмреЗрд╕ SDXL рдореЙрдбрд▓ рд╕реЗ рдЫрд╡рд┐ рдЬрдирд░реЗрдЯ рдХрд░реЗрдВред рд╣рдо рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рдХрд╛рд░ рдХреЛ тАЬlatentтАЭ рдореЗрдВ рдмрджрд▓реЗрдВрдЧреЗ, рдЬреЛ рдкреБрдирд░реНрдирд┐рд░реНрдорд┐рдд рдЫрд╡рд┐ рдХреЗ рдмрдЬрд╛рдп рдЗрдирдкреБрдЯ рдХрд╛ рд▓реЗрдЯреЗрдВрдЯ рд░рд┐рдкреНрд░реЗрдЬрд╝реЗрдВрдЯреЗрд╢рди рд▓реМрдЯрд╛рдПрдЧрд╛ред
  3. рд░рд┐рдлрд╝рд╛рдЗрдирд░ рдХреЛ рдкреНрд░реЙрдореНрдкреНрдЯ рдФрд░ рдЬрдирд░реЗрдЯреЗрдб рдЫрд╡рд┐ рдХрд╛ рд▓реЗрдЯреЗрдВрдЯ рд░рд┐рдкреНрд░реЗрдЬрд╝реЗрдВрдЯреЗрд╢рди рджреЗрдВред
refiner = DiffusionPipeline.from_pretrained(
    "stabilityai/stable-diffusion-xl-refiner-1.0",
    vae=vae,
    torch_dtype=torch.float16,
    use_safetensors=True,
    variant="fp16",
)
refiner.to("cuda")

n_steps = 40
high_noise_frac = 0.7

image = pipe(
    prompt=prompt,
    num_inference_steps=n_steps,
    denoising_end=high_noise_frac,
    output_type="latent",
).images

image = refiner(
    prompt=prompt,
    num_inference_steps=n_steps,
    denoising_start=high_noise_frac,
    image=image,
).images[0]

image

рд░рд┐рдлрд╝рд╛рдЗрдВрдб рдЫрд╡рд┐ рдЙрдЪреНрдЪ рдЧреБрдгрд╡рддреНрддрд╛ рд╡рд╛рд▓реА рд╣реИ рдФрд░ рдкреНрд░реЙрдореНрдкреНрдЯ рдХрд╛ рд╕рдЯреАрдХ рдкрд╛рд▓рди рдХрд░рддреА рд╣реИред

image17.png

Python рдореЗрдВ рдЕрддреНрдпрд╛рдзреБрдирд┐рдХ рдбрд┐рдлреНрдпреВрдЬрд╝рди рдореЙрдбрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдлрд╝реЛрдЯреЛ-рдпрдерд╛рд░реНрдерд╡рд╛рджреА рдЫрд╡рд┐рдпрд╛рдБ рдХреИрд╕реЗ рдЬрдирд░реЗрдЯ рдХрд░реЗрдВ, рдпрд╣ Generating Photorealistic Images using AI with Diffusers in Python рдХреЛрдб-рдЕрд▓реЙрдиреНрдЧ рджреЗрдЦрдХрд░ рд╕реАрдЦреЗрдВред

AutoTrain Advanced рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ SDXL рдХрд╛ рдлрд╛рдЗрди-рдЯреНрдпреВрдирд┐рдВрдЧ

рд╕рдордп рдХреЗ рд╕рд╛рде SDXL рдХрд╛ рдлрд╛рдЗрди-рдЯреНрдпреВрдирд┐рдВрдЧ рдХрд╛рдлреА рдЖрд╕рд╛рди рд╣реЛ рдЧрдпрд╛ рд╣реИред AutoTrain Advance рдХреЗ рдзрдиреНрдпрд╡рд╛рдж, рдЕрдм рд╣рдо рдХреЗрд╡рд▓ рдПрдХ Python рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдЕрдкрдирд╛ рдореЙрдбрд▓ рдлрд╛рдЗрди-рдЯреНрдпреВрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдСрдЯреЛрдореИрдЯрд┐рдХ рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрдо рд╕реЗ рдХрдо рдХреЛрдб рдХреЗ рд╕рд╛рде рдЕрддреНрдпрд╛рдзреБрдирд┐рдХ рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдореЙрдбрд▓реЛрдВ рдХреЛ рдЯреНрд░реЗрди рдФрд░ рдбрд┐рдкреНрд▓реЙрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХреА рдЧрдИ рд╣реИред

рдЖрдк PIP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ Python рдкреИрдХреЗрдЬ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

%pip install -U autotrain-advanced

рдпрджрд┐ рдЖрдк accelerate рдФрд░ transformers рдХреЗ рд╕рд╛рде SDXL рдореЙрдбрд▓ рдХрд╛ рдлрд╛рдЗрди-рдЯреНрдпреВрдирд┐рдВрдЧ рдХрд░рдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ SDXL DreamBoot LoRA Colab рдиреЛрдЯрдмреБрдХ рджреЗрдЦреЗрдВред рдпрд╣ рдиреЛрдЯрдмреБрдХ рдереЛрдбрд╝реА рдкреБрд░рд╛рдиреА рд╣реИ рдФрд░ рдЗрд╕реЗ рд╕рд╣реА рд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХреБрдЫ рдмрджрд▓рд╛рд╡ рдХрд░рдиреЗ рдкрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред

рд╕реЗрдЯрдЕрдк

DreamBooth рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЙрди рдХреБрдЫ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХреЛ рд╕реЗрдЯ рдХрд░ рд▓реЗрдВ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╣реИрдВред

  1. рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдирд╛рдо рджреЗрдВред
  2. рдмреЗрд╕ рдореЙрдбрд▓ рдХрд╛ рд╕реНрдерд╛рдиред
  3. рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреА рдбрд╛рдпрд░реЗрдХреНрдЯрд░реАред
  4. Hugging Face рдкрд░ рдореЙрдбрд▓ рдкреБрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Repo IDред
PROJECT_NAME = "Dreambooth_SDXL"
MODEL_NAME = "stabilityai/stable-diffusion-xl-base-1.0"
DATA_DIR = "/kaggle/input/abids-photos"
REPO_ID = "kingabzpro/sdxl-lora-abid"

рдЕрдЧрд▓реЗ рдЪрд░рдг рдореЗрдВ, рдЖрдк Kaggle рдХреА Secret рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Hugging Face рдЯреЛрдХрди рд╕реЗрдЯ рдХрд░реЗрдВрдЧреЗред рд╕реАрдХреНрд░реЗрдЯреНрд╕ рд╕реЗрдЯ рдХрд░рдирд╛ рдХреИрд╕реЗ рд╣реИ, рдпрд╣ Mistral 7B Tutorial: Step-by-Step Guide for Using Mistral 7B рдкрдврд╝рдХрд░ рд╕реАрдЦреЗрдВред

from kaggle_secrets import UserSecretsClient
user_secrets = UserSecretsClient()
HF_TOKEN = user_secrets.get_secret("HUGGINGFACE_TOKEN")

Kaggle рдореЗрдВ рдкреНрд░рд╛рдЗрд╡реЗрдЯ рдбреЗрдЯрд╛рд╕реЗрдЯ рдмрдирд╛рдирд╛

Kaggle рдореЗрдВ рдЕрдкрдиреА рд╕реЗрд▓реНрдлрд╝реАрдЬрд╝ рдХрд╛ рдкреНрд░рд╛рдЗрд╡реЗрдЯ рдбреЗрдЯрд╛рд╕реЗрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдиреЛрдЯрдмреБрдХ рдХреЗ рджрд╛рдПрдБ рдкреИрдирд▓ рдореЗрдВ рдЕрдкрд▓реЛрдб рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

image10.png

рдбреЗрдЯрд╛рд╕реЗрдЯ рдХрд╛ рд╢реАрд░реНрд╖рдХ рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рд▓реА рдЧрдИ рдкрд╛рдБрдЪ рд╕реЗрд▓реНрдлрд╝реАрдЬрд╝ рд╡рд╛рд▓реА zip рдлрд╝рд╛рдЗрд▓ рдЕрдкрд▓реЛрдб рдХрд░реЗрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпреЗ рд▓реЗрдЦрдХ рдХреА рдлрд╝реЛрдЯреЛ рд╣реИрдВред

image7.png

Jupyter Notebook рдореЗрдВ рд╕рднреА рдкрд╛рдБрдЪ рдЫрд╡рд┐рдпрд╛рдБ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо PIL рд╕реЗ рдЫрд╡рд┐рдпрд╛рдБ рд▓реЛрдб рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЕрдкрдиреА image_grid рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рднреЗрдЬреЗрдВрдЧреЗред

from PIL import Image

def image_grid(imgs, rows, cols, resize=256):
    assert len(imgs) == rows * cols

    if resize is not None:
        imgs = [img.resize((resize, resize)) for img in imgs]

    w, h = imgs[0].size
    grid_w, grid_h = cols * w, rows * h
    grid = Image.new("RGB", size=(grid_w, grid_h))

    for i, img in enumerate(imgs):
        x = i % cols * w
        y = i // cols * h
        grid.paste(img, box=(x, y))

    return grid

import glob

рд╣рдордиреЗ рд╡рд┐рднрд┐рдиреНрди рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рд▓реЗрдЦрдХ рдХреА рдкрд╛рдБрдЪ рдЙрдЪреНрдЪ-рдЧреБрдгрд╡рддреНрддрд╛ рд╡рд╛рд▓реА рдЫрд╡рд┐рдпрд╛рдБ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреАрдВред рдХреГрдкрдпрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рд╕рднреА рдлрд╝реЛрдЯреЛ рдЙрдЪреНрдЪ рдЧреБрдгрд╡рддреНрддрд╛ рдХреА рд╣реЛрдВ рдФрд░ рд╕рдорд╛рди рдЖрдХрд╛рд░ рдХреА рд╣реЛрдВред

imgs = [Image.open(path) for path in glob.glob("/kaggle/input/abids-photos/*.jpg")]
image_grid(imgs, 1, 5)

image11.png

AutoTrain DreamBooth рдЯреНрд░реЗрдирд┐рдВрдЧ рд╕реНрдХреНрд░рд┐рдкреНрдЯ

рдЕрдм рд╕рдордп рд╣реИ AutoTrain DreamBooth рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрди рдкрд╛рдБрдЪ рдЫрд╡рд┐рдпреЛрдВ рдкрд░ рд╣рдорд╛рд░реЗ рдореЙрдбрд▓ рдХреЛ рдлрд╛рдЗрди-рдЯреНрдпреВрди рдХрд░рдиреЗ рдХрд╛ред

  1. рдмреЗрд╕ рдореЙрдбрд▓, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдирд╛рдо рдФрд░ рдбреЗрдЯрд╛ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдкреНрд░рджрд╛рди рдХрд░реЗрдВред
  2. рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдкреНрд░реЙрдореНрдкреНрдЯ рдпреВрдирд┐рдХ рд╣реЛ, рдЬреЛ рд╡реНрдпрдХреНрддрд┐ рдпрд╛ рд╡рд╕реНрддреБ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗред рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдкреВрд░рд╛ рдирд╛рдо "Abid Ali Awan" рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ рдлрд╝реЛрдЯреЛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрди рдХрд░реЗрдВред
  3. рд╢реНрд░реЗрд╖реНрда рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдмрд╛рдХреА рдЖрд░реНрдЧреНрдпреБрдореЗрдВрдЯреНрд╕ рд╕рдорд╛рди рд░рдЦреЗрдВред
  4. Hugging Face рдПрдХреНрд╕реЗрд╕ рдЯреЛрдХрди рдФрд░ рд░рд┐рдкреЙрдЬрд╝рд┐рдЯрд░реА ID рджреЗрдВ рддрд╛рдХрд┐ LoRA рдЕрдбреЙрдкреНрдЯрд░ рдХреЛ Hugging Face Hub рдкрд░ рдЕрдкрд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред
!autotrain dreambooth \
--model $MODEL_NAME \
--project-name $PROJECT_NAME \
--image-path $DATA_DIR \
--prompt "A photo of Abid Ali Awan wearing casual clothes, taking a selfie, and smiling." \
--resolution 1024 \
--batch-size 1 \
--num-steps 500 \
--gradient-accumulation 4 \
--lr 1e-4 \
--fp16 \
--gradient-checkpointing \
--push-to-hub \
--token $HF_TOKEN \
--repo-id $REPO_ID

рдореЙрдбрд▓ рдХреЛ рдЯреНрд░реЗрди рдХрд░рдиреЗ рдФрд░ LoRA рд╡реЗрдЯреНрд╕ рдХреЛ Hugging Face рдкрд░ рдкреБрд╢ рдХрд░рдиреЗ рдореЗрдВ 2 рдШрдВрдЯреЗ 15 рдорд┐рдирдЯ рд▓рдЧреЗред

LoRA, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде Low-Rank Adaptation рд╣реИ, рдПрдХ рддрдХрдиреАрдХ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдореВрд▓ рд╡реЗрдЯреНрд╕ рдХреЛ рдмрджрд▓реЗ рдмрд┐рдирд╛ рдореМрдЬреВрджрд╛ рдореЙрдбрд▓ рдореЗрдВ рдЫреЛрдЯреЗ-рдЫреЛрдЯреЗ рдЯреНрд░реЗрди рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд▓реЗрдпрд░реНрд╕ рдЬреЛрдбрд╝реА рдЬрд╛рддреА рд╣реИрдВред

LoRA рдЗрд╕рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЖрд░реНрдЯ рд╢реИрд▓рд┐рдпрд╛рдБ, рдХрд┐рд░рджрд╛рд░ рдпрд╛ рдереАрдо рдЬреИрд╕реЗ рдирдП рдХреЙрдиреНрд╕реЗрдкреНрдЯреНрд╕ рдХреЛ рдмрд┐рдирд╛ рдЕрдзрд┐рдХ рдХрдореНрдкреНрдпреВрдЯреЗрд╢рди рдпрд╛ рдореЗрдореЛрд░реА рдЙрдкрдпреЛрдЧ рдХреЗ рдореЙрдбрд▓ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рджреЗрддрд╛ рд╣реИред

Steps: 100%|тЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИ| 500/500 [2:15:11<00:00, 14.49s/it, loss=0.119, lr=0.0001]Model weights saved in Dreambooth_SDXL/pytorch_lora_weights.safetensors
Steps: 100%|тЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИтЦИ| 500/500 [2:15:11<00:00, 16.22s/it, loss=0.119, lr=0.0001]
pytorch_lora_weights.safetensors: 100%|тЦИтЦИтЦИтЦИ| 23.4M/23.4M [00:01<00:00, 11.9MB/s]

7GB рдХреЗ рдореЙрдбрд▓ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕реЗрд╡ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рд╣рдо 23.4MB рдХрд╛ LoRA рдЕрдбреЙрдкреНрдЯрд░ рд╕реЗрд╡ рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕реЗ рдЗрдиреНрдлрд╝рд░реЗрдВрд╕ рдХреЗ рджреМрд░рд╛рди рдмреЗрд╕ рдореЙрдбрд▓ рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ред

Image from kingabzpro/sdxl-lora-abid

рдЫрд╡рд┐ рд╕реНрд░реЛрдд: kingabzpro/sdxl-lora-abid

SDXL рдлрд╛рдЗрди-рдЯреНрдпреВрди рдХрд┐рдП рдЧрдП рдореЙрдбрд▓ рдХрд╛ рдЗрдиреНрдлрд╝рд░реЗрдВрд╕

рд╣рдо рдПрдХ рдбрд┐рдлреНрдпреВрдЬрд╝рди рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдмрдирд╛рдПрдБрдЧреЗ рддрд╛рдХрд┐ рдХрд╕реНрдЯрдо VAE рдбрд┐рдХреЛрдбрд░ рдФрд░ FP16 рдкреНрд░рд┐рд╕реАрдЬрди рдХреЗ рд╕рд╛рде SDXL рдмреЗрд╕ рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЫрд╡рд┐рдпрд╛рдБ рдЬрдирд░реЗрдЯ рдХреА рдЬрд╛ рд╕рдХреЗрдВред

рдлрд┐рд░, рд╣рдо LoRA рд╡реЗрдЯреНрд╕ рд▓реЛрдб рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЕрдкрдиреЗ Hugging Face repo ID рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдиреНрд╣реЗрдВ рдмреЗрд╕ рдореЙрдбрд▓ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВрдЧреЗред

рдЕрдВрдд рдореЗрдВ, рд╣рдо рдкреНрд░реЙрдореНрдкреНрдЯ рдХреЗ рд╕рд╛рде рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдЪрд▓рд╛рдПрдБрдЧреЗ рдФрд░ рддреАрди рдЫрд╡рд┐рдпрд╛рдБ рдЬрдирд░реЗрдЯ рдХрд░реЗрдВрдЧреЗред

from diffusers import DiffusionPipeline, AutoencoderKL, StableDiffusionXLImg2ImgPipeline

import torch

vae = AutoencoderKL.from_pretrained(
    "madebyollin/sdxl-vae-fp16-fix", 
    torch_dtype=torch.float16
)
pipe = DiffusionPipeline.from_pretrained(
    "stabilityai/stable-diffusion-xl-base-1.0",
    vae=vae,
    torch_dtype=torch.float16,
    variant="fp16",
    use_safetensors=True,
)
pipe.to("cuda");
pipe.load_lora_weights(REPO_ID, weight_name="pytorch_lora_weights.safetensors")


prompt = "A photo of Abid Ali Awan participating in a marathon."

image = pipe(prompt=prompt, num_inference_steps=25, num_images_per_prompt = 3)
image_grid(image.images, 1, 3)

рдирддреАрдЬреЗ рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА рд╣реИрдВред рд╣рдордиреЗ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЕрдкрдиреЗ рдореЙрдбрд▓ рдХреЛ тАЬAbid Ali AwanтАЭ рдХреА рдЫрд╡рд┐рдпрд╛рдБ рдЬрдирд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╛рдЗрди-рдЯреНрдпреВрди рдХрд░ рд▓рд┐рдпрд╛ рд╣реИред

image6.png

рдЖрдЗрдП рдПрдХ рдФрд░ рдкреНрд░реЙрдореНрдкреНрдЯ рдХреЗ рд╕рд╛рде рдлрд┐рд░ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред

prompt = "A photo of Abid Ali Awan giving a press conference."

image = pipe(prompt=prompt, num_inference_steps=25, num_images_per_prompt = 3)
image_grid(image.images, 1, 3)

рдирддреАрдЬреЗ рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рдЕрд╕рд╛рдзрд╛рд░рдг рд╣реИрдВред

image9.png

Refiner рдХрд╛ рдЙрдкрдпреЛрдЧ

рдЗрд╕ рд╕реЗрдХреНрд╢рди рдореЗрдВ, рд╣рдо SDXL Refiner 1.0 рд╕реЗ рдЬрдирд░реЗрдЯреЗрдб рдЫрд╡рд┐ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдПрдБрдЧреЗред

рдкрд╣рд▓реЗ рд╣рдо Stable Diffusion рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреЗ рд╕рд╛рде рдЫрд╡рд┐ рдЬрдирд░реЗрдЯ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдкреБрдирд░реБрддреНрдкрд╛рджрдХрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдореИрдиреБрдЕрд▓ рд╕реАрдб рджреЗрдВрдЧреЗред

prompt = "A photo of Abid Ali Awan wearing a business suit at an office meeting."

seed = 65
generator = torch.Generator("cuda").manual_seed(seed)
image = pipe(prompt=prompt, num_inference_steps=25, generator=generator).images[0]
image.resize((300, 300))

image12.png

рдЗрд╕рдХреЗ рдмрд╛рдж, рд╣рдо SDXL refiner рд▓реЛрдб рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЙрд╕реА рдкреНрд░реЙрдореНрдкреНрдЯ, рдЬреЗрдирд░реЗрдЯрд░ рдФрд░ рдЬрдирд░реЗрдЯреЗрдб рдЗрдореЗрдЬ рдХреЗ рд╕рд╛рде рд░рд┐рдлрд╝рд╛рдЗрдирд░ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдЪрд▓рд╛рдПрдБрдЧреЗред

refiner = StableDiffusionXLImg2ImgPipeline.from_pretrained(
    "stabilityai/stable-diffusion-xl-refiner-1.0",
    vae=vae,
    torch_dtype=torch.float16,
    use_safetensors=True,
    variant="fp16",
)
refiner.to("cuda");

image = refiner(prompt=prompt, num_inference_steps=25, generator=generator, image=image)
image.images[0].resize((300, 300))

рдЗрдореЗрдЬ рд░рд┐рдлрд╝рд╛рдЗрдирд░ рдиреЗ рдЫрд╡рд┐ рдЧреБрдгрд╡рддреНрддрд╛ рдХреЛ рдмреЗрд╣рддрд░ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкрд░рд┐рдгрд╛рдо рдореВрд▓ рд▓реЗрдЦрдХ рдХреА рдлрд╝реЛрдЯреЛ рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛ред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдпрд╣ рджрдХреНрд╖рд┐рдг рдПрд╢рд┐рдпрд╛ рдХреЗ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╡реНрдпрд╡рд╕рд╛рдпреА рдХреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИред рд╕рдВрднрд╡рддрдГ рдлрд╛рдЗрди-рдЯреНрдпреВрди рдХрд┐рдП рдЧрдП рдореЙрдбрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд░рд┐рдлрд╝рд╛рдЗрдирд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдмрдЪрдирд╛ рдмреЗрд╣рддрд░ рд╣реИред

image16.png

SDXL рдореЙрдбрд▓ рдХреЛ рдлрд╛рдЗрди-рдЯреНрдпреВрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЕрдЧрд▓рд╛ рдХрджрдо рдПрдХ рдЬрдирд░реЗрдЯрд┐рд╡ AI рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдирд╛ рд╣реИред рдЕрдкрдирд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рдгрд╛ рдкрд╛рдиреЗ рд╣реЗрддреБ 5 Projects Built with Generative Models and Open Source Tools рдмреНрд▓реЙрдЧ рджреЗрдЦреЗрдВред

рдирд┐рд╖реНрдХрд░реНрд╖

рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ, рд╣рдордиреЗ Stable Diffusion XL рдореЙрдбрд▓ рдФрд░ DreamBooth рддрдХрдиреАрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирд╛ред рд╕рд╛рде рд╣реА, рд╣рдордиреЗ AutoTrain Advance рдХреА DreamBooth рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Stable Diffusion XL рдХреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЗрдореЗрдЬ рдЬреЗрдирд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдлрд╛рдЗрди-рдЯреНрдпреВрди рдХрд░рдирд╛ рд╕реАрдЦрд╛ред

рдмреЗрд╕ SDXL рдореЙрдбрд▓ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдордиреЗ рдХреЗрд╡рд▓ рдкрд╛рдБрдЪ рдлрд╝реЛрдЯреЛ рд╕реЗ рдПрдХ рд╣рд▓реНрдХрд╛ LoRA рдЕрдбреЙрдкреНрдЯрд░ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд┐рдпрд╛ред рдлрд┐рд░ LoRA рд╡реЗрдЯреНрд╕ рдХреЛ рдмреЗрд╕ SDXL рд╕реЗ рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛, рдЬрд┐рд╕рд╕реЗ рд╡рд╣ рдмрд╣реБ-рдмрд┐рд▓рд┐рдпрди рдкреИрд░рд╛рдореАрдЯрд░ рд╡рд╛рд▓реЗ рдкреВрд░реНрдг рдореЙрдбрд▓ рдХреА рдХреНрд╖рдорддрд╛рдПрдБ рдмрдирд╛рдП рд░рдЦрддреЗ рд╣реБрдП рд▓реЗрдЦрдХ рдХреА рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд▓реНрдкрдирд┐рдХ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдЙрдЪреНрдЪ-рдЧреБрдгрд╡рддреНрддрд╛ рдХреА рдЫрд╡рд┐рдпрд╛рдБ рдмрдирд╛ рд╕рдХрд╛ред

рд╣рд╛рд▓рд╛рдБрдХрд┐ SDXL Refiner рдиреЗ рдЫрд╡рд┐ рдЧреБрдгрд╡рддреНрддрд╛ рдХреЛ рдмреЗрд╣рддрд░ рдХрд┐рдпрд╛, рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░реЙрдореНрдкреНрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдкреНрд░рднрд╛рд╡реА рд░рд╣рд╛ рдФрд░ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдлрд╛рдЗрди-рдЯреНрдпреВрдирд┐рдВрдЧ рд╕реЗ рд╣рд╛рд╕рд┐рд▓ рдХреБрдЫ рдкрд░реНрд╕рдирд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдкрд░ рд╣рд╛рд╡реА рд╣реЛ рдЧрдпрд╛ред рдлрд┐рд░ рднреА, рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдиреЗ рджрд┐рдЦрд╛рдпрд╛ рдХрд┐ рдХреЗрд╡рд▓ рдХреБрдЫ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде AutoTrain Advance рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ SDXL рдореЙрдбрд▓ рдХреЛ рдлрд╛рдЗрди-рдЯреНрдпреВрди рдХрд░рдирд╛ рдХрд┐рддрдирд╛ рд╕рд░рд▓ рд╣реИред

рдпрджрд┐ рдЖрдк AI рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ рдирдП рд╣реИрдВ рдФрд░ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЗрддрдиреА рдЪрд░реНрдЪрд╛ рдХреНрдпреЛрдВ рд╣реИ, рддреЛ рд╣рдо AI Fundamentals рдХреЛрд░реНрд╕ рд▓реЗрдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддреЗ рд╣реИрдВред рдЗрд╕рд╕реЗ рдЖрдк рдЬрдирд░реЗрдЯрд┐рд╡ AI рдФрд░ рдЬрдЯрд┐рд▓ рднрд╛рд╖рд╛ рдореЙрдбрд▓реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реАрдЦреЗрдВрдЧреЗред рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдЖрдк Machine Learning Scientist with Python рдХрд░рд┐рдпрд░ рдЯреНрд░реИрдХ рдореЗрдВ рджрд╛рдЦрд┐рд▓рд╛ рд▓реЗрдХрд░ AI рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдореЗрдВ рдЕрдкрдирд╛ рдХрд░рд┐рдпрд░ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рд╕рдВрдкреВрд░реНрдг рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЖрдкрдХреЛ рдиреИрдЪреБрд░рд▓ рд▓реИрдВрдЧреНрд╡реЗрдЬ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ, рдЗрдореЗрдЬ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдФрд░ scikit-learn, PySpark, рддрдерд╛ Keras рдЬреИрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп Python рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдкреИрдХреЗрдЬ рд╕рд┐рдЦрд╛рдПрдЧрд╛ред

Abid Ali Awan

рд▓реЗрдЦрдХ

Abid Ali Awan

рдПрдХ рдкреНрд░рдорд╛рдгрд┐рдд рдбреЗрдЯрд╛ рд╕рд╛рдЗрдВрдЯрд┐рд╕реНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рдЕрддреНрдпрд╛рдзреБрдирд┐рдХ рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд╡рд╛рдЪрд╛рд░реА рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕рд╛рд╣рд┐рдд рд░рд╣рддрд╛/рд░рд╣рддреА рд╣реВрдБред рд╕реНрдкреАрдЪ рд░рд┐рдХреЙрдЧреНрдирд┐рд╢рди, рдбреЗрдЯрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдФрд░ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ, MLOps, рд╕рдВрд╡рд╛рджрд╛рддреНрдордХ AI рдФрд░ NLP рдореЗрдВ рдордЬрдмреВрдд рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рд╕рд╛рде, рдореИрдВрдиреЗ рдРрд╕реЗ рдмреБрджреНрдзрд┐рдорд╛рди рд╕рд┐рд╕реНрдЯрдо рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдЕрдкрдиреА рд╡рд┐рд╢реЗрд╖рдЬреНрдЮрддрд╛ рдирд┐рдЦрд╛рд░реА рд╣реИ рдЬреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░рднрд╛рд╡ рдбрд╛рд▓ рд╕рдХреЗрдВред рддрдХрдиреАрдХреА рджрдХреНрд╖рддрд╛ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рдЬрдЯрд┐рд▓ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдФрд░ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рднрд╛рд╖рд╛ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдореЗрдВ рднреА рдирд┐рдкреБрдг рд╣реВрдБред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдореИрдВ рдбреЗрдЯрд╛ рд╕рд╛рдЗрдВрд╕ рдкрд░ рдПрдХ рдорд╛рдВрдЧ рдореЗрдВ рд░рд╣рдиреЗ рд╡рд╛рд▓рд╛/рд╡рд╛рд▓реА рдмреНрд▓реЙрдЧрд░ рдмрди рдЧрдпрд╛/рдЧрдИ рд╣реВрдБ, рдФрд░ рдбреЗрдЯрд╛ рдкреНрд░реЛрдлреЗрд╢рдирд▓реЛрдВ рдХреЗ рдмрдврд╝рддреЗ рд╕рдореБрджрд╛рдп рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдЕрдиреБрднрд╡ рдФрд░ рд╡рд┐рдЪрд╛рд░ рд╕рд╛рдЭрд╛ рдХрд░рддрд╛/рдХрд░рддреА рд╣реВрдБред рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдореИрдВ рдХрдВрдЯреЗрдВрдЯ рдирд┐рд░реНрдорд╛рдг рдФрд░ рд╕рдВрдкрд╛рджрди рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рд╣реВрдБ, рдмрдбрд╝реЗ рднрд╛рд╖рд╛ рдореЙрдбрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реБрдП рдРрд╕рд╛ рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА рдФрд░ рдЖрдХрд░реНрд╖рдХ рдХрдВрдЯреЗрдВрдЯ рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣рд╛/рд░рд╣реА рд╣реВрдБ рдЬреЛ рд╡реНрдпрд╡рд╕рд╛рдпреЛрдВ рдФрд░ рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рджреЛрдиреЛрдВ рдХреЛ рдЕрдкрдиреЗ рдбреЗрдЯрд╛ рдХрд╛ рдЕрдзрд┐рдХрддрдо рд▓рд╛рдн рдЙрдард╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХреЗред

рд╡рд┐рд╖рдп