O SeaArt.AI já só permite100 gerações diárias grátis


E o SeaArt.ai acaba de anunciar que estabeleceu o limite de 100 gerações diárias. Uma vez esgotadas há que pagar tokens para continuar a usar a ferramenta. Não vi ainda o preço dos tokens mas, para mim, 100 gerações diárias chegam e sobram para me distrair. (Atenção que cada acção pode vir a consumir vários okens e rapidamente se esgotarão os 100.) Esta e outras novidades - por exemplo, uma funcionalidade parecida com o Chat GPT, -  foram divulgadas a meio da tarde. O interface do modelo, que eu expliquei na primeira postagem, já está ligeiramente diferente, mas o essencial continua. Imagino que outras alterações estejam a caminho. Mesmo assim continua a valer a pena entrar no SeaArt.Ai para experimentar esta nova tecnologia.  


Aproveito para vos mostrar mais algumas imagens geradas no SeaArt.Ai. O modelo tem uma tendência marcada para gerar imagens com meninas. Peço flores e ele mistura logo meninas nas flores! Para evitar estas divagações é preciso escrever boas prompts e/ou escolher o modelo mais adequado. Deve haver algo que não estou a fazer bem. É certo que uma coisa é a teoria e outra é a prática.


Costumo ler que as prompt têm de ser bastante descritivas, mas que uma descrição extensa também prejudica o resultado. A escrita de prompts é um verdadeiro quebra-cabeças e o maior desafio da utilização destes modelos. Aparentemente não é nada de muito complicado, mas até já se chama "engenharia de prompts" a esta actividade por alguma razão! Aproveito para explicar o que são as prompt, a principal, e a negativa, e mais alguns outros parâmetros que temos de dominar, noções básicas para aqueles que só agora tomaram contacto com esta realidade das imagens geradas por AI.

A fórmula básica que circulava quando o Midjourney apareceu era mais ou menos esta:

 [assunto, descrição do assunto] + [detalhes, modificadores, atmosfera] + [estilo de arte, textura, perspectiva, mecanismo de renderização] + [parametros]

(No Midjourney, o parametro -- negativo, se usado assim --nenhum animal,  significaria que esperávamos  não incluir animais na imagem gerada. Outro era o ---ar, aspect ratio, que se usava para mudar o ratio da imagem. Não sei se se no SeaArt temos ainda de os utilizar. )

A prompt principal é a descrição da imagem que imaginamos, uma representação linguística daquilo que se pretende que o modelo gere. Se quero uma imagem realista não posso pedir uma "ilustração", ou "cartoon" ou uma "pintura". Temos de usar termos específicos, sempre, não genéricos, - enorme é melhor que grande, por exemplo - adequados ao resultado pretendido. É melhor dizer o número do que usar o plurarl, isto é, 3 gatos é melhor que gatos. Cada palavra é importante e devemos ser económicos no seu uso. Descrever o que se quer e não o que se não quer é a regra. 

Antes de começar a escrever, e sobretudo agora, que os tokens já não são grátis, é preciso pensar um pouco nas características, no contexto e nos detalhes da imagem que pretendemos obter. Por exemplo:

Assunto: pessoa, animal, personagem, local, objecto, etc.
Meio: foto, pintura, ilustração, escultura, rabisco, tapeçaria, etc. 
Ambiente: dentro de casa, ao ar livre, na lua, debaixo d'água, etc. 
Iluminação: suave, ambiente, nublado, neon, luzes de estúdio, etc. 
Cor: vibrante, suave, brilhante, monocromática, colorida, preto e branco, pastel, etc. 
Humor: calmo, calmo, estridente, enérgico, etc.
Composição: Retrato, headshot, close-up, visão aérea, etc.

São muitas as escolhas a fazer. Podemos querer gerar uma imagem serena ou de caótica, fluida ou muito detalhada, uma fantasia ou uma coisa bem real, com uma atmosfera matinal ou nocturna; se queremos gerar a imagem de uma pessoa,  temos de pensar no seu estado de espírito, - está triste ou alegre? - sexo, idade, aparência física, lugar onde se encontra, período histórico em que se insere, etc.  Podemos querer obter uma fotografia, uma pintura tradicional ou uma pintura digital. Podemos basear esta  pintura num estilo de arte, por exemplo, o Impressionismo  ou o realismo. Cuidado ao usar o nome de um artista pois o seu estilo vai dominar o resultado facilmente.  Podemos também eleger uma técnica: óleo ou aguarela, ou a lápis de cor, etc. 

Se usarmos a expressão "hiper-realista" isso vai melhorar a qualidade dos detalhes. "Concept art", ou arte conceptual,  refere-se a ilustração, 2D e melhora o resultado. Também é costume mencionar, no caso da ilustração, por exemplo, o nome "Artstation" - um site de artistas ilustradores - e isso vai emprestar notas de ilustração moderna e de fantasia às imagens geradas, ou "Behance", que se usa para modelar resultados de pintura digital e ilustração. Para obter fotografias usa-se a influência de "pixabay", outro site. 

Para melhorar a resolução costuma usar-se "unreal engine" - que dá realismo e detalhe em 3d - ou "sharp focus" - que aumenta a resolução. Usa-se  "8k"  também para aumentar a resolução, embora possa fazer com que a imagem pareça menos real. Usa-se "vray"  para obter a renderização 3D, é melhor para objectos, paisagem e construção. Para obter raios de sol atrás das nuvens usa-se "god rays". São apenas alguns exemplos. Se entrarem no SeaArt.Ai podem facilmente visualizar as prompts usadas para gerar as imagens e lá encontrarão estes termos. É importante usar estas palavras e estudar os seus efeitos para aprender a melhor utilizá-las. É preferível estudar o conteúdo das prompts e testar pois isso vai permitir aprender a escrever as prompts em vez de copiar as prompts de forma completa. Podemos copiar e adaptar as prompts às nossas necessidades mas até para isso temos de saber o que estamos a fazer para poder conduzir a máquina ao resultado ideal.

A prompt negativa diz ao modelo que tem de excluir certas características naquela imagem que vai gerar. É comum incluir características anatómicas pois os modelos têm dificuldade em apresentar mãos perfeitas. O Midjourney parece já ter ultrapassado este problema mas o SeaArt ainda luta com isso. Não raramente as minhas criações aparecem com 6 dedos! Também podem apresentar mutações e duplicações. As mutações são o mais desagradável de ver, algumas podem ser grotescas.Para evistar o gasto de tokens e obter o resultado adequado,  usamos estas palavras no campo das prompts negativas, não apenas quando se pretende gerar figuras humanas, também tive de as usar para obter dinossauros.

Deixo aqui uma prompt negativa genérica que pode ser adequada às necessidades:

feio, lado a lado, mãos mal desenhadas, pés mal desenhados, rosto mal desenhado, fora do quadro, membros extras, desfigurado, deformado, corpo fora do quadro, má anatomia, marca d'água, assinatura, cortado, baixo contraste, subexposto, superexposto, má arte, iniciante, amador, rosto distorcido, desfocado, rascunho, granulado

Descobrir a combinação certa de prompt principal e prompt negativa pode ser um grande desafio. Confesso que por vezes me exaspera , esse processo! Qualquer prompt vai sempre fornecer um resultado diferente se usada uma segunda vez e se usada com modelos diferentes.

Se quisermos reforçar a importância de uma determinada palavra podemos indicar isso. Colocamos a palavra entre parenteses. Exemplo: (((Uma rapariga))). Também podemos atribuir um certo peso às características dessa rapariga, descritas a seguir. Então poderia ficar: (caminhando:1:40), lojas, árvores, casas, vestindo capote, tarde de verão. Quanto mais parênteses adicionar, mais importante será a palavra-chave no processo de geração. Os parenteses rectos retiram peso à palavra.

Assim:
  • () Aumento de 1,1 vezes, quando há dois parênteses, é 1,1 * 1,1 = 1,21 e assim por diante. 
  • (prompt palavra:1.2), o que aumentará a palavra prompt dentro dos parênteses em 1,2 vezes. O número pode ser modificado de acordo com suas necessidades. 
  • {} Aprimoramento de 1,05 vezes, com o mesmo efeito de empilhamento acima 
  • [] Redução de 1,1 vezes, com o mesmo efeito de empilhamento acima
Além isso também podemos experimentar diferentes métodos de amostragem - tudo isto que estou aqui a enumerar é comum não apenas a este modelo mas a outros que testei, é o "básico"- para ver como eles afectam a qualidade da imagem. A regra é que valores baixos de amostragem geram uma imagem de qualidade inferior, mas isso varia com os métodos de amostragem. Mais etapas de amostragem, no entanto, sempre significam geração de imagem mais lenta. Um amostrador que gera boas imagens com valores de etapa de amostragem relativamente baixos (recomendam 20), é o Euler.

O SeaArt.ai permite o uso de modelos. Cada um destes modelos foi treinado em diferentes tipos de conjuntos de imagens, por exemplo, uma grande quantidade de fotos de cavalos feitas com uma máquina fotográfica DSLR de qualidade. Então, neste caso, podemos usá-lo para gerar imagens de cavalos com grande fidelidade.

A configuração do tamanho de imagem também tem implicações. Quanto maior o tamanho da imagem, mais demorada será a geração de uma imagem. O formato da imagem também deve ser ajustado. Por exemplo, se estiver a gerar um guerreiro viking, sozinho, na floresta, bem centrado, o ideal será uma imagem com mais altura do que largura. Mas se quiser gerar com maior largura, a ferramenta tende a preencher esse espaço com alguma coisa e se não se indicar que queremos ((apenas UM)) poderão aparecer mais vikings. Note-se que nem sempre conseguimos, nem assim, evitar duplicações. Podemos tentar usar outro modelo, ou usar a prompt negativa.

A escala CFG é outro parâmetro e é responsável por dizer ao algoritmo quanto deve aderir ao prompt que escrevemos na janela de criação. Se a escala CFG for baixa, o modelo tem bastante “liberdade” e a "visão" do algoritmo pode prevalecer sobre a nossa no resultado da imagem final. Uma escala CFG mais alta, aumenta a probabilidade da imagem sair como a imaginámos. Mas não podemos exagerar pois nesse caso irá ocorrer uma distorção do resultado. Recomendam entre 5 e 15.

A semente é um número gerado aleatoriamente que serve de base para o processo de geração da imagem. Como a semente é usada para qualquer processo de geração da imagem, quando usarmos o mesmo prompt, as mesmas configurações e o mesmo modelo com a mesma semente, a mesma imagem será gerada. Por outro lado, se apenas um número na semente for alterado e as configurações e o modelo permanecerem os mesmos, a imagem gerada será diferente. O valor -1, significa que a cada geração da imagem um número aleatório será gerado e usado como a semente de geração.

E, surpresa, a imagem inspirada no nosso Algarve
 foi incluída na ronda das imagens excelentes
publicadas ontem no SeaArt.Ai. 



Comentários