Como criar boas imagens com Stable Diffusion
Tags: ai, fotos, tutorial, beginners
Published: 2022-12-20 02:08:10

Para esse tutorial eu vou resumir a um categoria de criação desse aplicativo, a criação usando prompts para gerar imagens.
O promp é uma área que você coloca as palavras preferencialmente em inglês para uma imagem ser gerada. Sendo dividido entre promt e promt negativo. Se no prompt você coloca as coisas que você quer que apareça, no prompt negativo você coloca as coisas que você não quer!

Isso já ilustra bem o que você deve fazer, mas é bem complexo esse funcionamento e eu vou resumir em alguns tópicos para não gerar confusão. 

**ATENÇÃO!!
Esse post contem nudez artística gerada por inteligência artificial (um desenho) , se você se sente ofendido por esse categoria de conteúdo não recomendo que leia esse post.**

- [Prioridade](#prioridade)
- [Especificidade](#especificações)
- [Resolução](#resolução)
- [Configurações básicas](#configurações-basicas)
- [Influências](#influências)
- [criando imagens semelhantes.](#criando-imagens-semelhantes)

## Prioridade

A ordem de prioridade de um promt é feita da primeira palavra para última, se eu digitar:
``` 
a cyberpunk girl with white hair
``` 
"a cyberpunk" terá mais prioridade do que o resto da frase. "girl" terá mais prioridade do que o resto da frase, mas menos prioridade do que "a cyberpunk". Isso significa que se eu colocar:
```
a girl cyberpunk with white hair
```
Provavelmente terei resultados diferentes, isso mesmo, resultados. 
O programa por padrão conta com uma certa aleatoriedade que se você não controla, toda vez que apertar o botão uma surpresa vai aparecer com a mesma frase. 
E isso é ótimo, pois assim da margem para fazer várias experimentações com o mesmo promp.

## Especificações

As especificações de um prompt podem ser divididas em 2 categorias. 

- ( parênteses ) 
- { colchetes } 

Enquanto os parênteses vão dar mais relevância em algo da fraze os colchetes vão fazer com que sejam menos relevantes. 
A regra inicial ainda vale, mas isso pode mudar a forma com que o computador enxerga essas partes que você vai dar mais relevância.
``` 
a cyberpunk girl with (white hair)

a cyberpunk girl with ((white hair))

a (cyberpunk) girl with ((((white hair))))
``` 

Na última eu dei tanta ênfase no cabelo branco que provavelmente alguns pontos do resto podem até ter passado despercebido na imagem gerada, isso pode destorcer o contexto e fazer com que as coisas fiquem diferentes do que você esperava. O oposto Também pode acontecer com as chaves, use-as com sabedoria. 
Nos meus testes quando eu usava mais de 3 o contexto da frase começava a ficar deixado de lado pelo algoritmo. Então, você precisará achar um ponto que lhe agradar melhor e o mais importante; TESTAR BASTANTE!
Quanto mais específico e menos conhecido o que você colocar no prompt, mais chances você tem de não chegar no resultado esperado.

## Resolução

Bem brevemente! Será possível você editar o tamanho da imagem antes que ela seja gerada. O tamanho que você definir, será de extrema importância para o resultado. Menos que 512 x 512 pixels ela fica com resultado bem ruim ou bem distorcido. Já 512 x 768 para meus testes é ótimo para gerar imagens de corpo todo. E com a resolução 1360 x 768 é excelente para gerar imagens que pegam paisagens. 

A princípio eu pensei nesses tamanhos por ter relação direta com a tela que eu colocaria isso, simplesmente para ajustar e usar como plano de fundo, ou para postar em alguma rede social. Entretanto se você trocar a resolução, irá trocar o resultado. 
No Stable Diffusion especificimente não dá pra aumentar a resolução depois da imagem criada, já ví outros que fezem mas eram pagos. Provavelmente existe algum software livre que seja capaz de aumentar a resolução se é o resultado que você deseja buscar, recomendo fazer uma busca por essa funcionalidade pois trocar o tamanho da imagem gerada retornará outra.

## Configurações básicas

Com certeza você encontrará tutoriais bem mais detalhados sobre configurações. Entretanto existem algumas coisas que podem ser importantes configurar especialmente se você está usando a versão do Google Colab. 


![Settings stable diffusion](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xoseei8ngi6lw3rc8wkj.gif)

### Upscaling 

- R-ESRGUN 4X+      
 irá trazer traços mais realistas

- R-ESRGUN 4X+ Anime 6b 
Irá trazer traços mais desenhados.

### Face Restoration 

A opção `code former` é bem interessante para trazer bons resultados para um rosto. 
E na linha que vai de 0 a 1, me recomendaram preencher com 6, onde quanto maior o número mais precisos ficariam os traços do rosto. Experimente...

### Stable Diffusion 

O checkbox
 
- [x] Emphasis: use (text) to make a model pay more atention to text and [text] to make it more pay less atention

Se não marcado irá fazer com que o que você coloque no prompt fique mais preciso, porém fica bem mais complicado de entender esse caminho. Por via das dúvidas deixe marcado.
 
## Influências

Para conseguir fazer prompts melhores é bom que você analise o prompt de outras pessoas 

- https://rentry.org/artists_sd-v1-4 você irá encontrar vários estilos para colocar no seu prompt e seguir um resultado interessante e aproximado.
- https://lexica.art/ você encontrará prompts dos quais poderá testar no seu e ver os resultados que consegue 

Os dois são ótimos para começar, e você pode testar usando o rentry da seguinte forma: 
```
a real (cyberpunk woman) with a white hair, Agnes Cecile

a real (cyberpunk woman) with a white hair, (Agnes Cecile)

a real (cyberpunk woman) with a white hair, ((Agnes Cecile))

a real (cyberpunk woman) with a white hair, ((Agnes Cecile)), Casey Baugh
```

Repare que eu já até adicionei o nome de um segundo artista para colocar o nome de arte e isso fica sensacional

 
| Primeira forma | Segunda forma |
|--------|--------|
| ![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/813jej6px9rzanyon4rb.png) | ![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7s3aah82zvwj5l0gcoez.png) |

## Criando imagens semelhantes.

Criar imagens semelhantes como o exemplo acima vai demandar um tipo de refinamento que controla um pouco essa aleatoriedade. 
O Seed é a informação que permite que toda vez que você aperte o botão com o mesmo prompt gere uma imagem nova.

![capturando o seed](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/thi6wr1o1s2tbd4rwlfy.gif)

É possível capturar esse seed da imagem que você gerou clicando no sinal verde quando ela é carregada, ao clicar no dado ela volta a ficar aleatória. 
E também é possível pegar de uma imagem salva que você não tenha alterado a descrição. 

`00041-3430797675-a real (cyberpunk woman) with a white hair, Agnes Cecile.png`

- O primeiro bloco representa o número da foto, você pode usar esse valor para pesquisa-la na sua galeria caso goste dela ou tenha como referência.
- O segundo valor é o Seed, esse que você preenche no campo Seed, para deixar a aleatoriedade gigantesca que o programa tem mais próxima do que você quer. Se deixar o padrão -1, cada imagem iá ser gerada com um Seed diferente, e vocẽ não irá conseguir controlar só com pequenas alterações no prompt. 
- Depois vem a descrição do prompt. 

Agora você já sabe como fazer para gerar uma imagem semelhante. Existem algumas coisas que é bom relembrar que podem afetar essa igualdade. Tamanho da resolução, versão do programa, configurações, o sampler e os steps. 
Os steps são a quantidade de passos que o programa vai ter para montar sua imagem. 
Para rostos tenho conseguido bons resultados em torno de 20 a 35 steps, e para objetos extremamente detalhados próximo do máximo de 150, porém as descrições ficam muito específicas.

Segue imagens que eu adorei compor.

| 00101-3430797675-a real (cyberpunk woman) with a white hair and (((((big mamma))))), Agnes Cecile.png | 00182-3430797675-a real ((cyberpunk girl)) with a (white hair) and (beautiful (large tits) naked), Agnes Cecile, Casey Baugh.png | 00192-3430797675-a real (cyberpunk woman) with a white hair and (beautiful large tits naked), Agnes Cecile, Charlie Bowater, (Casey Baugh).png | 
|-----|-----|-----|
| ![oculos bacana](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/81iyhf4trmldlhncsglj.png) | ![ mulher cyberpunk ](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/58q9vmotouv8id2sz869.png) | ![Mulher cyberpunk description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dtl3qfa5z6kq28ytkqsq.png) |  

Por último você irá poder testar bastante para atingir diversos tipos de personagens e alcançar seus resultados.