bom agora nesse próximo exemplo a gente vai e utilizar uma técnica de Inteligência Artificial generativa que é da família dos diffusions dos difusores mas é que é uma das mais importantes ou a mais conhecida que são os staes de Fusion e eu vou deixar aqui instalando as suas mesmas bibliotecas enquanto isso enquanto ele instala lá eu vou dizer o que a gente vai fazer a gente vai gerar uma imagem de forma Incondicional ou seja vai gerar uma imagem a partir do modelo sem nenhum prompt que vai ter uma imagem que eu chamei aqui de um
exemplo simples que ele vai gerar uma imagem com o modelo a partir de um prompt a gente vai gerar o condicional condicional quer dizer que tem um prompt mas a gente vai ver mais parâmetros por exemplo a gente vai gerar aqui três imagens a gente vai ah mudar a o tamanho da imagem Ah e a gente vai criar uma reprodutividade para essa imagem eu vou explicar o que que é e aqui então Eh por fim a gente vai criar uma variação de uma imagem Então a gente vai passar uma imagem como parâmetro e a gente
vai pedir para pro modelo Criar e variações desta imagem Ok não é aquele impen que ele gera a partir de uma máscara ele vai pegar uma imagem e a partir dela ele vai gerar variações Então vamos importar aqui as bibliotecas acho que aqui não tem tem nenhuma novidade com relação ao exemplo passado vamos aguardar aqui el carregar então vejam aqui O primeiro exemplo é o exemplo e um condal né o não condicional aqui a gente tem o modelo de celebridades e ele vai gerar uma uma celebridade e a partir desse modelo então vejam aqui que
o pipeline a gente tá só parando aqui o diffusion pipeline vejam que agora a gente não tem mais o modelo a tem que saber o modelo o método específico do modelo que a gente criando prer aqui o nome do modelo aí a gente usa o pipeline para gerar a imagem o número de infer steps aqui a gente colocou aqui diretamente igual 50 é o padrão tá o padrão é 50 mas colocamos aqui para você se você quiser alterar e exec aqui então elag de forma não condicional n Então a gente vai ter aqui uma uma
imagem gerada a partir do modelo de celebridades Então vai gerar uma celebridade que não existe ok então aqui ele tá executando aqui as etapas vamos voltar assim que ele terminar então aqui ele encerrou vamos ver então o resultado e aqui está então celebridade né você vai ter uma outra celebridade aí eh uma celebridade que não exist que não existe que nunca mais vai existir né ela vai aparecer aqui apenas apenas para mim bom o próximo exemplo aqui ele é condicional simples e o que que eu estou fazendo aqui Eu estou passando o modelo e um
prompt antes era era não condicional né então não havia um prompt ele gerava uma imagem aleatória a partir de o modelo então vejam a gente a gente tem aqui uma variável com modelo e uma variável com prompt aí a gente chama aqui novamente o diffusum pipeline do modelo as variáveis aqui que a gente já conhece aqui uma novidade ó a gente tem o pipeline p enable attention slicing que é uma técnica para reduzir o uso de memória uma técnica de otimização que você pode utilizar sempre e aqui a gente faz a geração eh no no
mesmo notebook que a gente cria pipeline faz a geração da imagem Ok e diferente lá de anteriormente que que a gente estava separando aqui a gente colocou tudo no mesmo notebook Ah se você vai tentar vários Por que que é bom você separar aqui por exemplo a criação do pipeline e a geração da imagem porque uma vez que você tem o pipeline pronto você pode mudar o prompt e executar apenas a o generator né apenas a etapa da geração da imagem bom então aqui novamente ele vai demorar aqui alguns segundos eu retorno quando ele terminar
bom então aqui ele terminou a criação do pipeline a geração da imagem só vamos Recordar aqui o Prom que agora a gente vai gerar imagem né então uma foto realística de um peixe palhaço em um aquário vamos ver aqui o que que vai sair ó Olha que imagem linda né uma imagem realística como diz ali o promt é um peixe palhaço dentro de um aquário geralmente realmente gerou uma imagem muito bonita espero se você tá acompanhando a que tenha gerado uma imagem bonita assim bom agora eh a gente vai eh vamos dizer assim sofisticar um
pouco que a gente vai colocar muito mais parâmetros né Muito mais hiper parâmetros na nossa geração aqui no nosso generator Então a gente tem o prompt tá a gente vai usar a o stable de fuio pipeline aqui que Aliás a aula é sobre sto de fugio né mas o que a a gente vai fazer a gente vai ter um prompt então Eh cria uma paisagem Serena com uma montanha no fundo um Rio Corrente no fundo no atrás e um céu azul limpo e agora ó estamos criando um negative prompt né que nós estudamos lá quando
a gente falou sobre engenheria de prompt não inclua ou do not include Any humans or animal figures in the landscape não inclua humanos ou animais na paisagem Então essa é outra novidade estamos usando pela primeira vez um promt negativo aqui o modelo que nós estamos utilizando e mais uma novidade aqui ó número de imagens por promt vamos gerar três imagens em vez de uma só o número de inferencia steps que o padrão é 100 que é 50 nós estamos mudando para 100 e aqui mais uma novidade ó nós vamos alterar o tamanho da imagem Ah
e é claro que se você botar a imagem muito grande isso vai complicar aí o o seu processo e a outra novidade que a gente tem aqui ó é esse parâmetro aqui que é o guidance scale o que que é o scale é é um valor que quanto mais alto mais próximo do promt a imagem vai ser mas a imagem ela tende a ter uma qualidade eh menor então quanto mais alto esse valor mais próximo do pronte mas menos qualidade eh ele funciona com valor maior que um o padrão é 7.5 se você for usar
um prompt negativo ó como a gente tá usando aqui você deve Dev usar ele como um valor maior que um ok então vamos lá você pode testar depois aqui esse outras variações né aqui então outra novidade ó a gente está definindo um scheduler Então em vez da gente usar o sked padrão a gente tá definindo o sked que a gente vai utilizar e a gente tá usando o stable de f pipeline e aqui a gente está dizendo que a gente quer usar esse sked aqui que é o Ok então é essa é mais uma novidade
aqui que a gente não tinha ainda não vai parar por aí a gente tem mais mais uma coisa diferente ali que é reprodutividade bom então enquanto ele carrega aqui os modelos vamos falar sobre a reprodutividade Ah então até agora todos os modelos que Nós criamos ele gera uma imagem aleatória né uma imagem que nunca existiu e que nunca mais vai existir Ah agora se você quiser criar a mesma imagem se você quiser ter reprodutividade então se eu quiser rodar este modelo de novo e eu ter a mesma imagem ou se você aí na sua casa
no seu computador quiser ter a mesma imagem que eu então para isso ó a gente tá usando essa linha essa linha aqui ó que a gente tá falando aqui de de generator ó e a gente usa um torch generator do dispositivo manual Sid Então o que vai dar reprodutividade é esse número aqui então Teoricamente quando você rodar este modelo você vai ter as as mesmas três imagens porque a gente tá criando aqui a gente vai criar três imagens você vai ter Teoricamente as mesmas três imagens que eu e se eu mesmo rodar de novo eu
vou Teoricamente ter as três mes mesmas imagens por Teoricamente Por que não há garantia bom e por vários fatores primeiro a questão da da GPU então se você usar uma GPU diferente o resultado pode ser diferente segundo porque por próprias mudanças nas bibliotecas tá então você pode usar uma biblioteca diferente uma versão diferente das bibliotecas do do do do torche do do stable Fusion você vai ter uma imagem diferente Ok então se espera que seja reprodutível mas não há garantia certo então vamos lá a gente cria esse generator aqui com o manual sed 1 2
3 e a gente faz aqui a geração de imagem passo o prompt número de imagens que é três o nosso prompt negativo inferencia steps que nós definimos com 100 como 100 altura e largura o guidance scale que nós definimos como oito né Lembrando que o guidance scale quandoo mais próximo do prompt quanto mais alto mais próximo do pronte a imagem vai ser e o generator aqui para dar a reprodutividade vamos executar e enquanto ele vai e gerando a imagem nos 100 steps que nós definimos ó o que mudou aqui é que agora nós temos três
imagens e nós queremos imprimir as três imagens então vejam eu pego aqui o comprimento o tamanho do objeto imagem que ele vai gerar aqui ó né e faço um laço eu crio um objeto do do matplot Lib com do tamanho 15.5 e eu crio um laço no enumerador de imagens o enumerador vai ter o índice e a imagem Ah e em cada posição do subplot eu imprimo uma das imagens sem os eixos e eu coloco um título da imagem que é a imagem mais o número do índice Então vai aparecer aqui as três imagens dizendo
imagem 1 2 e TR em cima então aqui está ó imagem um imagem dois imagem TR então eh essas imagens aqui que nós geramos elas são 512 por 512 pixels são três imagens não foram incluídos humanos ou animais porque a gente colocou no promt negativo e é uma paisagem com montanhas um rio corrente e um céu azul então bem bonito bem legal o resultado aqui exatamente como a gente pediu Então você viu aqui nesse exemplo várias configurações que você pode ver aí na no nos seus Ah no seu generator né no no seu eh stable
fuser né no na sua imagem gerada por a inteligência artificial ah e o último exemplo aqui do stebo de fujo é variações de uma imagem então aqui não tem prompt nós vamos simplesmente gerar variações de uma imagem então eu peguei esta imagem aqui que é do filme interstelar vejam é se por acaso este link aqui não tiver funcionando quando você tiver assistindo a aula isso pode acontecer você pode colocar outra imagem qualquer Aqui tá o RL de qualquer outra imagem mas aqui a gente tem uma imagem do interstelar e agora o objetivo é criar variações
de uma imagem então não tem promt ele só só vai gerar variações Ah então vejo aqui o pet do modelo o caminho do modelo a URL o número de imagens três variações inferencia step 100 vejam que o método pipeline aqui é stable fuging image variation pipeline então é um pipeline específico para criar variações de imagens de dados pré treinados então o modelo a a versão aqui que é 2.0 para GPU aqui o response pega o RL lá uso o by I para converter PR para uma imagem Gero pipeline com a imagem já convertida o número
de imgens que tá aqui é TRS o número de passos de inferência é 100 vamos aqui executar aqui e vamos executar aqui ah e aqui ó é o mesmo código por qu porque nós temos três imagens então a gente faz um laço para gerar as três ah variações Ok então o objetivo é que ele crie três variações a partir desta imagem aqui bom então aqui ele vai levar alguns segundos a gente retorna aqui quando tiver pronto para gerar as imagens Ok então ele gerou as imagens agora a gente só precisa fazer a impressão e aqui
estão as três variações da imagem do interestelar certo então você pode eh se você quiser imagens mais realistas né Você pode e alterar aqui parâmetros Como por exemplo o número de inferências tentar outro outros modelos né E também outros hiperparâmetros que a gente estudou aqui antes como por exemplo guidance scale Ok então como eu falei o ST de Fusion é um dos modelos mais conhecidos e mais promissores de eh Inteligência Artificial generativa do tipo de de Fusion