Pular para o conteúdo principal

Imagem 3: Um guia com exemplos na API Gemini

Saiba como gerar imagens usando a API Imagen 3 do Google com Python, incluindo a configuração do ambiente e o ajuste de opções como proporção de aspecto e filtros de segurança.
Actualizado 26 de fev. de 2025  · 12 min de leitura

Imagen 3 é um modelo de geração de texto para imagem que pode renderizar com precisão cenas detalhadas em vários estilos e até mesmo incorporar texto em imagens, tornando-o adequado para aplicativos como publicidade e criação de conteúdo de mídia.

Você pode usar o Imagen 3 por meio da interface do Vertex AI Studio ou integrá-lo diretamente aos aplicativos por meio de uma API.

Neste tutorial, explicarei como você pode gerar imagens com o Imagen 3 usando a API de geração do Google com Python. Você verá exemplos práticos que mostram como configurar o ambiente, escrever o código necessário e integrar essa tecnologia aos seus projetos. Se você deseja aprimorar seus aplicativos com imagens dinâmicas ou simplesmente satisfazer sua curiosidade, este guia fornecerá um caminho direto para entender e usar o Imagen 3 de forma programática.

Desenvolver aplicativos de IA

Aprenda a criar aplicativos de IA usando a API OpenAI.
Comece a treinar gratuitamente

Configurando a API de IA generativa do Google

Para começar a usar o Imagen 3 em Python, precisamos executar algumas etapas essenciais. Primeiro, criaremos um projeto do Google Cloud. Quando nosso projeto estiver pronto, precisaremos gerar uma chave de API. Essa chave permitirá que nosso código Python interaja com o serviço Imagen 3.

Criando um projeto do Google Cloud

A criação de um projeto do Google Cloud é a primeira etapa para você usar a API de IA do Google. Vamos percorrer o processo juntos:

  1. Acesse o console do Google Cloud: Começamos navegando até o Console do Google Cloud. Você precisará fazer login com sua conta do Google.
  2. Selecione ou crie um novo projeto: No console, procure o menu suspenso do projeto na barra de navegação superior. Ao clicar nele, você verá opções para selecionar um projeto existente ou criar um novo. Escolhemos "New Project" para continuar.
  3. Forneça detalhes do projeto: Será exibido um formulário simples solicitando informações básicas. Você pode escolher qualquer nome para o projeto, mas é útil escolher algo descritivo. Isso pode ser alterado posteriormente, se necessário. Usaremos o site Imagen-tutorial. A organização pode ser deixada em branco.

Configurando um projeto do Google Cloud para a imagem 3

Criando a chave da API

Agora que o projeto do Google Cloud foi criado, podemos criar uma chave de API navegando até a página de chave de API no Google AI Studio.

Para criar a chave, clique no botão "Create API key" (Criar chave de API):

Criando uma chave de API no console do Google Cloud

Na janela pop-up, digite o nome do projeto que criamos acima, selecione-o e clique em "Create API key in existing project":

Criando uma chave de API para um projeto específico no Google Cloud

Copie a chave e crie um arquivo chamado .env localizado na mesma pasta em que escreveremos o script Python. O conteúdo do arquivo .env deve ser:

GEMINI_API_KEY=<paste_your_key_here>

Conta de cobrança

Se tentássemos usar a chave da API agora, receberíamos um erro dizendo: "A API da Imagen só pode ser acessada por usuários faturados no momento". Isso acontece porque a API não é gratuita, e precisamos associar uma conta de cobrança ao projeto antes de poder usá-la.

No momento em que este artigo foi escrito, o preço para gerar uma imagem com o Imagen 3 era de US$ 0,03. Consulte a página de preços para obter mais informações.

Para adicionar uma conta de faturamento, clique no botão "Set up Billing" (Configurar faturamento) ao lado da chave de API no Google AI Studio.

Configurando uma conta de cobrança no Google Cloud

Isso nos redirecionará para o site do Google Cloud, onde podemos selecionar uma conta de faturamento existente clicando em "Vincular uma conta de faturamento" ou criar uma nova conta clicando em "Gerenciar contas de faturamento".

Como criar uma conta de faturamento no Google Cloud Projecs

Vamos supor que você não tenha uma, então criamos "Manage billing accounts" (Gerenciar contas de cobrança). No canto superior esquerdo da página, há um botão "Criar conta". Para criar a conta, precisamos preencher nossas informações pessoais e um cartão de crédito para processar os pagamentos.

Geração de uma imagem com o Imagen 3 usando Python

Configuração do ambiente com o Anaconda

Neste tutorial, usaremos o Anaconda, uma plataforma popular que simplifica o gerenciamento de pacotes e a configuração de projetos, facilitando a execução de scripts Python.

Você pode instalar o Anaconda em seu site oficial.

Para configurar o ambiente do Anaconda, abra um terminal e:

  • Crie um ambiente: conda create -n imagen python=3.9. Esse comando criou um ambiente chamado imagen que usa a versão 3.9 do Python.
  • Ative o ambiente: conda activate imagen.
  • Instale o pacote de IA generativa do Google: pip install -q -U google-genai.
  • Instale um pacote de processamento de imagens para processar as imagens geradas: pip install pillow.
  • Instale um pacote para carregar a chave da API: pip install python-dotenv

Também podemos instalar os pacotes diretamente sem usar o Anaconda, mas há o risco de que alguns dos pacotes atualmente instalados entrem em conflito com alguns dos novos pacotes ou que nossa instalação do Python use uma versão diferente do Python. O uso do Anaconda evita esses possíveis problemas.

Geração de nossa primeira imagem

Agora você está pronto para começar a usar o Imagen 3. Crie um novo script Python, por exemplo, gen_image.py, na mesma pasta que o arquivo .env..

Primeiro, importamos os pacotes necessários:

# Google generative AI:
from google import genai
from google.genai import types

# Packages to process the generated image:
from PIL import Image
from io import BytesIO

# Packages to load the .env file:
import os
from dotenv import load_dotenv

Em seguida, carregamos a chave de API do arquivo .env:

load_dotenv()
api_key = os.getenv("GEMINI_API_KEY")

Em seguida, inicializamos o cliente de IA generativa do Google. Esse é o objeto que permite que você se comunique com a API do Google:

client = genai.Client(api_key=api_key)

Para gerar uma imagem, usamos a função client.models.generate_images():

prompt="""
A dog surfing at the beach
"""
response = client.models.generate_images(
    model="imagen-3.0-generate-002",
    prompt=prompt,
    config=types.GenerateImagesConfig(
        number_of_images=1,
    )
)

Por fim, exibimos a imagem gerada usando o objeto Image:

for generated_image in response.generated_images:
  image = Image.open(BytesIO(generated_image.image.image_bytes))
  image.show()

Aqui está o resultado:

Gerando nossa primeira imagem com o Imagen 3

Geração de texto

Um dos recursos interessantes do Imagen 3, quando comparado a outros modelos de texto para imagem, é a capacidade de gerar texto. Vamos testá-lo fazendo com que ele gere a palavra "Tea" usando folhas de chá frescas:

prompt="""
Word "tea" made from fresh tea leaves, white background
"""
response = client.models.generate_images(
    model="imagen-3.0-generate-002",
    prompt=prompt,
)

Aqui está o resultado:

Geração de texto com o Imagen 3

Opções de geração de imagens com o Imagen 3

As opções de geração de imagens são fornecidas usando as opções do site types.GenerateImagesConfig. No exemplo acima, especificamos apenas o número de imagens a serem geradas:

config=types.GenerateImagesConfig(
    number_of_images=1,
)

Nesta seção, exploraremos as outras opções oferecidas pela API do Imagen 3. Verificar a documentação oficial para obter mais informações.

Geração de várias imagens

Você pode usar o parâmetro number_of_images para gerar várias imagens com um único prompt. Por padrão, são geradas quatro imagens.

Vamos tentar gerar duas imagens para uma história em quadrinhos.

prompt="""
Single comic book panel of two people overlooking a destroyed city. 
A speech bubble points from one of them and says: I guess this is the end.
"""
response = client.models.generate_images(
    model="imagen-3.0-generate-002",
    prompt=prompt,
    config=types.GenerateImagesConfig(
        number_of_images=2,
    )
)

Aqui está o resultado:

Geração de várias imagens para uma história em quadrinhos com o Imagen 3

Esse é outro exemplo de geração de texto em imagens. Mesmo que a imagem à esquerda tenha algum texto extra indesejado, devido à capacidade de gerar várias imagens, podemos aumentar nossas chances de obter o resultado desejado. A imagem à direita atende quase completamente à nossa solicitação.

Controle da proporção de aspecto

Por padrão, as imagens geradas são quadrados com uma proporção de 1:1. O modelo é compatível com as seguintes proporções de aspecto: 1:1, 3:4, 4:3, 9:16, e 16:9.

Vamos gerar uma imagem 9:16 para usar como plano de fundo do telefone:

prompt="""
A drone shot of a river flowing between mountains with a stormy sky.
"""
response = client.models.generate_images(
    model="imagen-3.0-generate-002",
    prompt=prompt,
    config=types.GenerateImagesConfig(
        aspect_ratio="9:16",
    )
)

Aqui está o resultado:

Geração de uma imagem com proporção de 9:16 com o Imagen 3

Filtro de nível de segurança

A documentação menciona que você pode usar o endereço safety_filter_level para especificar o nível de filtragem da imagem. Cada imagem gerada recebe uma pontuação de probabilidade que mede a probabilidade de a imagem não ser segura (por exemplo, conteúdo inadequado). 

A definição do filtro de nível de segurança é importante porque ajuda a garantir que o conteúdo gerado seja apropriado e se alinhe às preferências do usuário, mantendo assim um ambiente seguro e respeitoso para vários aplicativos.

A documentação diz que ele suporta três níveis:

  • BLOCK_LOW_AND_ABOVE: Bloqueie a imagem mesmo com uma pontuação de probabilidade baixa.
  • BLOCK_MEDIUM_AND_ABOVE : Bloqueie apenas imagens com pontuações de probabilidade média e alta.
  • BLOCK_ONLY_HIGH : Bloqueie apenas imagens com uma pontuação de probabilidade alta

No entanto, após a experimentação, a API agora suporta apenas a opção BLOCK_LOW_AND_ABOVE. O fornecimento de qualquer outra coisa resultará em um erro.

Geração de pessoas

Podemos controlar se o modelo tem permissão para gerar pessoas usando a opção person_generation. Ele oferece duas opções:

  • DONT_ALLOW: Imagens com pessoas nelas serão bloqueadas.
  • ALLOW_ADULT: Isso nos permitirá gerar imagens com pessoas (somente adultos) nelas.

A opção padrão é permitir pessoas. Por exemplo, se definirmos a opção para não permitir pessoas e tentarmos gerar uma imagem de alguém cozinhando, não obteremos nenhuma imagem.

prompt="""
A person cooking.
"""
response = client.models.generate_images(
    model="imagen-3.0-generate-002",
    prompt=prompt,
    config=types.GenerateImagesConfig(
        person_generation="DONT_ALLOW",
    )
)
print(response.generated_images)

Aqui está o resultado:

None

Como criar um bom prompt para a Imagen 3

A documentação oficial fornece um guia completo de instruções para o Imagen 3, portanto, não vou repeti-lo aqui. Aqui estão as principais ideias de como você pode criar um bom prompt:

  • Noções básicas de redação de prompts:
    • Assunto: Concentre-se no objeto principal, na pessoa ou na cena que você deseja retratar.
    • Contexto e histórico: Descreva o cenário ou o ambiente em que o tema está inserido.
    • Estilo: Especifique o estilo artístico ou fotográfico que você deseja (por exemplo, esboço, pintura, fotografia).
  • Use linguagem descritiva: Empregue adjetivos detalhados e contexto para esclarecer o resultado desejado.
  • Estilos específicos de referência: Use artistas ou movimentos artísticos conhecidos para orientar a estética.
  • Texto em imagens: Limite o texto a 25 caracteres ou menos e use frases distintas para fornecer informações adicionais.
  • Parametrização imediata: Se precisarmos gerar várias imagens no mesmo estilo, é uma boa ideia criar um modelo de prompt reutilizável e fornecer como entrada apenas a parte que muda.
  • Fotografia: Especifique as configurações da câmera, os tipos de lente e a iluminação para influenciar o resultado.
  • Art: Use descritores como "uma pintura de..." ou técnicas específicas como "pintura em aquarela de...".
  • Modificadores de qualidade de imagem: Use palavras-chave como "alta qualidade" ou "4K" para melhorar a qualidade da saída.
  • Imagens fotorrealistas: Inclua detalhes técnicos, como o tipo de lente e as distâncias focais, para aumentar o realismo.

Edição e personalização de imagens

O Imagen 3 também permite que você edite imagens e personalize-as. Infelizmente, esses recursos ainda estão bloqueados e acessíveis apenas a usuários específicos.

Por exemplo, o recurso de personalização nos permite personalizar uma imagem de referência a partir de um prompt. No exemplo, é fornecida uma foto de uma mulher e o prompt modifica essa imagem para uma da mesma pessoa segurando laranjas.

Exemplo de personalização de imagem no imagen 3

Você pode encontrar mais informações sobre isso e o formulário de solicitação de acesso no site da empresa.

Conclusão

Neste tutorial, aprendemos a usar o Imagen 3 para criar imagens usando Python e a API generativa do Google. De modo geral, estou satisfeito com os resultados que obtive ao fazer experiências com a API. Acho que os resultados são de alta qualidade e contêm menos artefatos de IA, o que torna mais difícil diferenciá-los de imagens reais.

A capacidade de trabalhar com texto em imagens é útil para branding e marketing. No geral, acho que esse modelo tem um bom desempenho. Gostaria que todos os seus recursos fossem abertos, pois acho que a edição de imagens é ainda mais útil do que a geração de imagens.


François Aubry's photo
Author
François Aubry
LinkedIn
Ensinar sempre foi minha paixão. Desde meus primeiros dias como estudante, eu buscava ansiosamente oportunidades para dar aulas particulares e ajudar outros alunos. Essa paixão me levou a fazer um doutorado, onde também atuei como assistente de ensino para apoiar meus esforços acadêmicos. Durante esses anos, encontrei imensa satisfação no ambiente tradicional da sala de aula, promovendo conexões e facilitando o aprendizado. Entretanto, com o advento das plataformas de aprendizagem on-line, reconheci o potencial transformador da educação digital. Na verdade, participei ativamente do desenvolvimento de uma dessas plataformas em nossa universidade. Estou profundamente comprometido com a integração dos princípios tradicionais de ensino com metodologias digitais inovadoras. Minha paixão é criar cursos que não sejam apenas envolventes e informativos, mas também acessíveis aos alunos nesta era digital.
Temas

Aprenda IA com estes cursos!

programa

Developing AI Applications

23hrs hr
Learn to create AI-powered applications with the latest AI developer tools, including the OpenAI API, Hugging Face, and LangChain.
Ver DetalhesRight Arrow
Iniciar curso
Ver maisRight Arrow
Relacionado

tutorial

Guia de torchchat do PyTorch: Configuração local com Python

Saiba como configurar o torchchat do PyTorch localmente com Python neste tutorial prático, que fornece orientação e exemplos passo a passo.
François Aubry's photo

François Aubry

tutorial

Tutorial da API de assistentes da OpenAI

Uma visão geral abrangente da API Assistants com nosso artigo, que oferece uma análise aprofundada de seus recursos, usos no setor, orientação de configuração e práticas recomendadas para maximizar seu potencial em vários aplicativos de negócios.
Zoumana Keita 's photo

Zoumana Keita

14 min

tutorial

AI do cursor: Um guia com 10 exemplos práticos

Saiba como instalar o Cursor AI no Windows, macOS e Linux e descubra como usá-lo em 10 casos de uso diferentes.
François Aubry's photo

François Aubry

10 min

tutorial

Uma introdução ao uso do DALL-E 3: Dicas, exemplos e recursos

Descubra como usar o DALL-E 3 para criar imagens. Descubra o que é o DALL-E 3, seus principais recursos e como usar os prompts para obter os melhores resultados.
Kurtis Pykes 's photo

Kurtis Pykes

16 min

tutorial

Guia para iniciantes no uso da API do ChatGPT

Este guia o orienta sobre os conceitos básicos da API ChatGPT, demonstrando seu potencial no processamento de linguagem natural e na comunicação orientada por IA.
Moez Ali's photo

Moez Ali

11 min

tutorial

Primeiros passos com o Claude 3 e a API do Claude 3

Saiba mais sobre os modelos Claude 3, benchmarks de desempenho detalhados e como acessá-los. Além disso, descubra a nova API Python do Claude 3 para geração de texto, acesso a recursos de visão e streaming.
Abid Ali Awan's photo

Abid Ali Awan

Ver maisVer mais