Uma introdução ao DreamStudio AI - como criar imagens com inteligência artificial



Imagem e citação retiradas do blogue Stability. Ai

Logotipo do Dreamstudio

O Stable Diffusion passou a estar acessível ao público em geral desde Agosto. Este "modelo de difusão estável" aprendeu a gerar imagens a partir de comandos de texto. O processo acontece em duas fases. Primeiro captura a imagem e progressivamente adiciona-lhe ruído, pequenos pontos, ruído visual como o antigo granitado da TV.  Numa segunda fase, o  modelo aprende a remover progressivamente o ruído até obter uma imagem nítida. Decompõe, analisa a imagem e finalmente cria o resultado final. Para criar o modelo Stable Diffusion foi usado um conjunto de dados gigantesco, o Laion, com mais de 5 milhões de imagens. Durante um mês mais de 10.000 usuários beta criaram 1,7 milhão de imagens por dia. 

Na origem deste modelo está a Stability.Ai, 
 uma empresa que se dedica a pesquisar soluções a partir de ideias inovadoras. É de salientar o seu objectivo de democratizar  o uso da inteligência artificial permitindo que todos tenham acesso a esta tecnologia. Por isso o modelo é open source,  e nisso é diferente da OPEN.AI que lançou o DALL-E 2 , ou  ainda do Midjourney. Podemos correr este modelo no nosso computador, sem pagar nada, ou na "nuvem", neste caso temos de ter créditos, sendo o preço  razoável. 

Este modelo tem vantagens em relação ao DALL - E 2 de que já falei neste blogue. Ele é melhor para fazer arte digital, desenhos criativos e abstratos, não exige tantos recursos gráficos das nossas máquinas, é mais rápido a dar resultados e tem ferramentas para ajustar o resultado pretendido de forma muito simples. Para obter resultados mais realistas o DALL-E 2 é melhor. Além disso, o Stable Diffusion foi disponibilizado de forma aberta e gratuita podendo ser usado por qualquer pessoa e para qualquer fim. Isso resulta numa explosão de criatividade que leva rapidamente à melhoria das suas debilidades, ao surgimento de novos usos, não há limites ao que as pessoas podem desenvolver a partir daqui.

O Stable Diffusion pode ser usado de forma paga através do Dreamstudio, mas também pode ser usado de forma grátis usando a HuggingFace AI Community, ou o Kaggle, - uma plataforma para desenvolvedores, programadores e pesquisadores - ou o Google Colab online. Não vou abordar estas possibilidades pois não sei programar, não sei nada de código, duvido que o meu computador tenha capacidade para isso e  nem tenho tempo para investir nessa aprendizagem. Uso apenas as alternativas de que vos tenho falado.

Deixo o link para a Stable Diffusion Demo, que surgiu primeiro, e  podem querer  experimentar. O resultado da experiência que fiz usando esta prompt - "A digital painting of a golden retriever holding a tennis ball in his mouth, close up" está abaixo.  As opções avançadas não estavam disponíveis. Esta foi a melhor das quatro imagens obtidas. 

Dreamstudio é muito fácil de usar. A primeira coisa a fazer depois de termos criado a nossa conta é ver se os nossos 200 créditos grátis foram carregados. Para isso clicamos sobre a bola no canto superior direito e abrimos o nosso perfil. Como se pode ver abaixo, tenho "200 generations" o que equivale a $2, o seu valor monetário.


É fácil gastarmos créditos pelo que devemos prestar atenção a esta informação que está nas FAQ para perceber de que forma eles se gastam:


Por exemplo: uma imagem de 512 x 512 px a 50 passos vai custar 1.0, mas se duplicarmos a altura dela, a imagem com 512 x 1024 px já vai custar 3,8 créditos. Ou seja: devemos usar o tamanho standard e depois ampliamos fora do Dreamstudio - com recuro a um upscaler -  e assim fazemos render os créditos, os grátis ou comprados. Mas se queremos mesmo criar uma imagem com um ratio definido o melhor é começar logo nele e não no tamanho quadrado.

Uma curiosidade: pode suceder, quando se pede a geração de um retrato, que surjam duas cabeças, uma em cima da outra. Isto sucede porque o modelo usou para treino imagens quadradas e assim ele cola dois quadrados no espaço rectangular. 

Por defeito, quando abrimos o Dreamstudio ele tem os passos no valor 50. Mas com 10 passos já conseguimos obter muita informação na imagem, ver o que vai  resultar da nossa Prompt, e podemos, assim, poupar créditos. Por 10 passos são 0.2 créditos, por 50 passos são 1.0 créditos.


O interface do Dreamstudio é simples, dividido em três áreas. Ao centro, em baixo, vemos uma caixa  e um exemplo de prompt, à frente um botão para gerar imagens: DREAM. Ao centro é o palco onde as imagens vão ser geradas. Dois botões (ver setas amarelas) que talvez passem despercebidos permitem obter mais espaço central para vermos melhor a imagem sem interferência de botões e menus. Ao clicarmos no botão DREAM a imagem é gerada de forma rápida.


"A pirate ship, by George Philip Reinagle, matte painting trending on artstation HQ"

Para esta prompt, usando os valores por defeito, obtive a imagem acima.  Ao passarmos com o botão do rato por cima dela, surgem, ao centro, vários botões: uma seta que nos permite fazer o seu download e assim  podemos guardá-la no nosso computador; um editor;  e um número, a "seed" da imagem. Esta "semente", quando "travada", permite que a identidade da imagem não se perca pelo que podemos obter ajustes ao introduzir modificações na prompt. Por exemplo, se geramos um robot podemos testar diversos materiais para o seu revestimento - chrome, iron, plastic, -  e a seed faz com consigamos manter alguma constância na forma do modelo de robot gerado. 

Também podemos gerar 4 imagens e depois clicar no número, na "seed", da nossa preferida e ela é copiada para a memória. Depois colamos de forma manual no espaço da semente, à direita, travamos a seed, - deslizando o slide, que fica verde, - e assim vamos obter imagens a partir dela.

Atenção que se formos ao histórico inspecionar as imagens que criámos e regressarmos à área de trabalho perdemos as imagens que aí estavam. Se quisermos uma semelhante de volta, temos de usar o botão REDREAM. Isso custa créditos. Por isso devemos SALVAR uma imagem sempre que gostarmos dela. (Botão com seta sobre a imagem, ou segundo  botão verde, à direita) 


No exemplo acima, pedi 4 imagens da mesma prompt, com os mesmos valores. Os 4 botões verdes servem para: para expandir o espaço central, para fazer download de uma imagem, ou de várias de forma individual, ou para fazer download das 4 imagens zipadas, para navegar entre as imagens geradas. Quando clico numa, isolo-a no espaço central, e a sua semente fica travada.



Vamos percorrer todo o ambiente do Dreamstudio.

Do lado esquerdo temos um MENU, fica sob o "olho".

- DREAM : é o equivalente da área de trabalho e clicando aqui regressamos a ela

- HISTORY : aqui ficam guardadas thumbnails com alguma informação (prompt, altura/largura e seed) sobre as imagens que gerámos. Mas não é mais do que isso pelo que ao acabarmos de gerar uma imagem devemos salvá-la no nosso computador ou iremos perdê-la quando desligarmos a sessão.

Se quisermos voltar a gerar a mesma imagem recorremos a esta informação usando o botão Redream.  Para quê usar o Redream? Para depois trabalhar a prompt e fazer ajustes dessa imagem. Com a "seed" travada obtemos variações da imagem ao alterar a prompt, mantendo uma certa identidade ao nível da forma gerada. A seed gera continuidade e permite que trabalhemos detalhes.

- PROMPT GUIDE : aqui temos um guia para nos auxiliar a gerar as imagens. Quem nunca escreveu uma prompt ou usou um destes modelos deve ler esta ajuda com atenção pois as palavras usadas e a sua ordem são determinantes na criação das imagens

- SOCIAL : por aqui podemos ligar-nos à comunidade no Twitter, no Discord e ver a plataforma CG Network algumas criações

- FAQ : é importante ler as regras gerais

Do lado direito, temos algumas ferramentas, slides que nos permitem alterar os parâmetros usados na produção das imagens. 

WIDTH/HEIGHT: largura/altura, o máximo que se consegue é 1024 x 10 24 pixéis. Ao deslizar o slide para a direita vemos na quadrícula o custo aumentar, pois quanto maior a resolução pretendida, mais créditos - "gerações" - vamos gastar. 1 geração é 1 cêntimo. Se quisermos uma imagem grande podermos usar um AI para a aumentar fora do Dreamstudio e assim poupamos os créditos. 

A primeira imagem gerada tem 512 x 512 pixéis. Podemos alterar a largura e a altura e estas variantes além de influenciarem a dimensão também alteram o que pode aparecer na imagem. As imagens são preferencialmente quadradas porque o modelo foi treinado em imagens quadradas. Quando saímos desta medida por alguma margem, perde-se alguma definição e podem aparecer objectos estranhos na composição. Imagens maiores, melhores resultados, - mas nem sempre!  e acima de 800 podemos não obter melhores resultados.

CFG SCALE: podemos forçar o AI a fazer o que queremos ou deixá-lo ser criativo, ou seja, optar entre forçá-lo a seguir a prompt ou  deixá-lo improvisar a sua cena. Podemos pensar que se aumentarmos muito o CFG vamos obter mais rigor mas não é assim. Com valores altos AI pode entrar em divagações, complicar o que se pretende, entrar em repetições ou exagerar ao tentar reproduzir o texto ao máximo. Por outro lado, um valor baixo pode resultar em incoerência, demasiada liberdade não gera também  bons resultados. Mas é a liberdade que permite que ele complete a imagem com coisas que às tantas nos esquecemos de referir ou que nem considerámos colocar na prompt. O indicado como defeito é 7 mas a partir de 5 já se conseguem por vezes bons resultados. Usar esta ferramenta não tem influência no custo de geração da imagem.

NUMBER OF STEPS: quanto mais elevado for o número de passos, mais cara será a geração da imagem. O defeito é 15. Se queremos gerar uma imagem simples não vamos colocar muitos passos. Se achamos que o AI está treinado no resultado que pretendemos, usamos poucos passos. Se escrevemos uma prompt complicada ou se estamos a mencionar uma coisa pouco conhecida, temos de usar mais passos. Com 10 podemos ter uma ideia do caminho aonde a prompt nos levará, um esboço. Com 35 passos já dá para fazer boas experiências, ficar entre 35 e 50 será o ideal.  Se não estamos a obter os resultados desejados, não adianta elevar o número de passos. O que se deve fazer para alcançar os resultados pretendidos é trabalhar a prompt. O número de steps deve ser aumentado quando já estamos seguros daquilo que queremos alcançar. Primeiro trabalhamos a prompt e só depois os passos ou o CFG scale.

NUMBER OF IMAGES: posso escolher até um máximo de 9 imagens. As imagens têm "sementes" diferentes pelo que assumem diferentes formas. Só que quanto mais imagens eu pedir, mais créditos gasto. Posso pedir 9 se já tenho uma prompt, ou imagino que tenho uma, que vai produzir bons resultados, ou se quero seguir por um certo rumo e preciso de várias imagens para escolher a melhor. Tenho de ponderar se vale a pena. Por regra eu peço 4 usando os valores padrão, vejo o esboço, e espero assim obter uma que valha a pena trabalhar melhor. 

SAMPLER : para começar podemos deixar no defeito. Tem a ver com o método que foi usado para trabalhar o "noise" e criar uma  imagem. Parece que os preferidos são: Euler_a, k_LMS, and PLMS

MODEL OF GENERATION: deixar no defeito.

SEED: toda a imagem gerada tem a sua seed e podemos usar a seed para afinar a nossa prompt. A partir dela vão ser criadas variações mas é mantida uma identidade comum.

IMAGE: na parte inferior, existe um editor - INITIAL IMAGE - que se encontra vazio enquanto não subimos qualquer imagem para trabalhar nele

O processo TEXT-TO-IMAGE

Em vez de gerarmos uma imagem  a partir de texto escrito na Prompt - text-to-image - podemos fazer o upload de uma imagem: a este processo chama-se image-to-image. Para isso precisamos de aceder ao EDITOR. O botão a clicar  - SHOW EDITOR - fica do lado direito, sob o retângulo IMAGE. 


Um exemplo muito simples. Podemos fazer um desenho simples e fazer o seu upload. Ou tirar uma fotografia. Ou usar uma fotografia de terceiros. Depois de subirmos a imagem, escrevemos na PROMPT aquilo que queremos para a imagem. Esta é a imagem que subi, um esboço de um barco no mar. 

No slide sobre a imagem diminui a força que a minha imagem deveria ter no resultado final  e sugeri que a pintura fosse no estilo de Eduard Hopper. "A beautiful painting of a boat sailing, soft clouds, in the style of Eduard Hopper. "Também fiz uma experiência onde  retirei o nome do pintor mas o resultado não foi muito diferente. Não mexi nos outros parâmetros. Este foi o resultado obtido. 

Além de podermos ajustar a força, - IMAGE STRENGHT -, o slide está por defeito nos 50%, podemos, depois disso, ajustar ainda mais o resultado usando as ferramentas que já descrevi. Mas podemos apenas clicar no botão DREAM para gerar os melhoramentos. Ao deslizarmos o slide para a esquerda estamos a dar mais margem ao gerador para trabalhar. Imagino que também possamos subir uma imagem cheia de detalhes e pedir ao gerador para a  simplificar.

O processo  INPAINTING


Este processo permite, com facilidade, alterar uma imagem. Podemos mudar elementos, acrescentar elementos. Como fazer isso? Subimos uma imagem clicando no botão cinza. Também podemos usar uma das imagens geradas. De seguida usamos a borracha - é o botão verd, à esquerda, tem um pincel, MASKING - e apagamos - "mascaramos" -  uma área. Se quisermos recuperar o que apagámos usamos o  botão seguinte, - RESTORE - e restauramos. 

Os slides acima da imagem permitem controlar aspectos do pincel: o tamanho, o blur, - o "esfumado" - a força e a opacidade.

Depois de mascararmos a área a intervir,  escrevemos a nossa prompt - aquilo com que queremos preencher a zona apagada. Neste caso, apenas para exemplificar, pedi um balão de ar quente:  "big blue and golden victorian hot air balloon" . De seguida, clicar DREAM.



O DreamStudio vem com advertências: o modelo não deve ser usado ​​para gerar imagens NSFW, (not safe for work, "não susceptíveis de serem partilhadas no trabalho"), de teor lascivo ou material sexual, nem imagens odiosas ou violentas, como iconografia antissemita, caricaturas racistas, propaganda misógina e misandrica, etc. Material protegido por direitos autorais ou marca registada deve ser evitado nas prompts. Se isso suceder as imagens serão barradas por um desfocamento. Ainda não fui brindada com desfocamentos mas já recebi um aviso de que tinha de alterar a prompt.

Deixo ainda alguma ajuda extra e noto que estas informações podem rapidamente ficar desactualizadas pois os modelos estão em rápida evolução. Experimentem! Abram uma conta, têm 200 créditos para brincar e descobrir o poder da inteligência artificial na geração de imagens a partir de texto. Parece Photoshop, mas não é, é apenas o futuro.

No LEXICA, que é um repositório que permite a busca por keyword Podemos clicar numa imagem que gostamos e ver as prompts e até copiá-las e postá-las no Dreamstudio e adpatá-las. 

Uma lista de artistas  cujos estilos poderão impactar as imagens geradas


O CLIP INTERROGATOR  analisa uma imagem e mostra que prompt foi usada

Para escalar (Upscale) as imagens, Topazlabs, é uma das melhores soluções mas é uma ferramenta paga. 


E ainda, um pequeno texto que escrevi sobre a polémica da criação de imagens com AI

Comentários