Back to Annotated Deep Learning Paper Implementations

දී ඇති රූපයකින් විමසුමක් සමඟ ස්ථාවර විසරණය භාවිතා කරමින් රූප ජනනය කරන්න

docs/si/diffusion/stable_diffusion/scripts/image_to_image.html

latest6.2 KB
Original Source

homediffusionstable_diffusionscripts

View code on Github

#

දී ඇති රූපයකින් විමසුමක් සමඟ ස්ථාවර විසරණය භාවිතා කරමින් රූප ජනනය කරන්න

11importargparse12frompathlibimportPath1314importtorch1516fromlabmlimportlab,monit17fromlabml\_nn.diffusion.stable\_diffusion.sampler.ddimimportDDIMSampler18fromlabml\_nn.diffusion.stable\_diffusion.utilimportload\_model,load\_img,save\_images,set\_seed

#

රූප පන්තියට රූපය

21classImg2Img:

#

  • checkpoint_path යනු මුරපොලේ මාර්ගයයි
  • ddim_steps නියැදි පියවර ගණන වේ
  • ddim_etaDDIM නියැදිη නියතය
26def\_\_init\_\_(self,\*,checkpoint\_path:Path,27ddim\_steps:int=50,28ddim\_eta:float=0.0):

#

34self.ddim\_steps=ddim\_steps

#

ගුප්ත විසරණය කිරීමේ ආකෘතිය පටවන්න

37self.model=load\_model(checkpoint\_path)

#

උපාංගය ලබා ගන්න

39self.device=torch.device("cuda:0")iftorch.cuda.is\_available()elsetorch.device("cpu")

#

ආකෘතිය උපාංගයට ගෙන යන්න

41self.model.to(self.device)

#

ඩීඩීඅයිඑම් නියැදිකරු ආරම්භ කරන්න

44self.sampler=DDIMSampler(self.model,45n\_steps=ddim\_steps,46ddim\_eta=ddim\_eta)

#

  • dest_path ජනනය කරන ලද රූප ගබඩා කිරීමේ මාර්ගයයි
  • orig_img යනු පරිවර්තනය කිරීමට රූපයයි
  • strength මුල් රූපයේ කොපමණ ප්රමාණයක් සංරක්ෂණය නොකළ යුතුද යන්න නියම කරයි
  • batch_size යනු කණ්ඩායමක් තුළ ජනනය කළ යුතු රූප ගණන
  • prompt සමඟ රූප ජනනය කිරීමේ විමසුම
  • uncond_scale යනු කොන්දේසි විරහිත මාර්ගෝපදේශs පරිමාණයයි. මෙය භාවිතා වේϵθ​(xt​,c)=sϵcond​(xt​,c)+(s−1)ϵcond​(xt​,cu​)
[email protected]\_grad()49def\_\_call\_\_(self,\*,50dest\_path:str,51orig\_img:str,52strength:float,53batch\_size:int=3,54prompt:str,55uncond\_scale:float=5.0,56):

#

විමසුම් කණ්ඩායමක් සාදන්න

67prompts=batch\_size\*[prompt]

#

රූපය පටවන්න

69orig\_image=load\_img(orig\_img).to(self.device)

#

ගුප්ත අවකාශයේ රූපය කේතනය කර එහිbatch_size පිටපත් සාදන්න

71orig=self.model.autoencoder\_encode(orig\_image).repeat(batch\_size,1,1,1)

#

මුල් පිටපත විසුරුවා හැරීමට පියවර ගණන ලබා ගන්න

74assert0.\<=strength\<=1.,'can only work with strength in [0.0, 1.0]'75t\_index=int(strength\*self.ddim\_steps)

#

AMP වාහන වාත්තු

78withtorch.cuda.amp.autocast():

#

කොන්දේසි විරහිත පරිමාණය තුළ හිස් විමසීම් සඳහා කාවැද්දීම්1 ලබා නොගනී (කන්ඩිෂනේෂන් නැත).

80ifuncond\_scale!=1.0:81un\_cond=self.model.get\_text\_conditioning(batch\_size\*[""])82else:83un\_cond=None

#

කඩිනම් කාවැද්දීම් ලබා ගන්න

85cond=self.model.get\_text\_conditioning(prompts)

#

මුල් රූපයට ශබ්දය එක් කරන්න

87x=self.sampler.q\_sample(orig,t\_index)

#

Is ෝෂාකාරී රූපයෙන් ප්රතිනිර්මාණය කරන්න

89x=self.sampler.paint(x,cond,t\_index,90uncond\_scale=uncond\_scale,91uncond\_cond=un\_cond)

#

ස්වයංක්රීය එන්කෝඩරයෙන් රූපය විකේතනය කරන්න

93images=self.model.autoencoder\_decode(x)

#

පින්තූර සුරකින්න

96save\_images(images,dest\_path,'img\_')

#

CLI

99defmain():

#

103parser=argparse.ArgumentParser()104105parser.add\_argument(106"--prompt",107type=str,108nargs="?",109default="a painting of a cute monkey playing guitar",110help="the prompt to render"111)112113parser.add\_argument(114"--orig-img",115type=str,116nargs="?",117help="path to the input image"118)119120parser.add\_argument("--batch\_size",type=int,default=4,help="batch size",)121parser.add\_argument("--steps",type=int,default=50,help="number of ddim sampling steps")122123parser.add\_argument("--scale",type=float,default=5.0,124help="unconditional guidance scale: "125"eps = eps(x, empty) + scale \* (eps(x, cond) - eps(x, empty))")126127parser.add\_argument("--strength",type=float,default=0.75,128help="strength for noise: "129" 1.0 corresponds to full destruction of information in init image")130131opt=parser.parse\_args()132set\_seed(42)133134img2img=Img2Img(checkpoint\_path=lab.get\_data\_path()/'stable-diffusion'/'sd-v1-4.ckpt',135ddim\_steps=opt.steps)136137withmonit.section('Generate'):138img2img(139dest\_path='outputs',140orig\_img=opt.orig\_img,141strength=opt.strength,142batch\_size=opt.batch\_size,143prompt=opt.prompt,144uncond\_scale=opt.scale)

#

148if\_\_name\_\_=="\_\_main\_\_":149main()

Trending Research Paperslabml.ai