Este projeto fornece um script simples em Python para gerar imagens personalizadas a partir de um arquivo CSV contendo dados de clientes. A intenção é automatizar a produção de posts para redes sociais (formato quadrado 1080×1080 e formato vertical 1080×1920) a partir de um layout genérico.
designer_automation/
│
├── assets/
│ ├── fonts/ # Coloque aqui seus arquivos de fonte (.ttf)
│ └── logos/ # Coloque aqui logos em formato PNG
│
├── data/
│ └── clientes.csv # Planilha de dados de entrada (exemplo incluso)
│
├── out/ # Imagens geradas serão salvas aqui
│
├── run.py # Script principal para gerar as artes
├── requirements.txt # Dependências Python (opcionais, já presentes na maioria dos ambientes)
└── README.md
Um arquivo CSV (data/clientes.csv) de exemplo é incluído para demonstrar o formato esperado. Cada linha representa uma arte a ser gerada e deve conter as colunas abaixo:
| Coluna | Descrição | Exemplo |
|---|---|---|
slug |
Identificador único usado no nome dos arquivos de saída. | acme-post |
titulo |
Texto principal da arte. | Lançamento ACME |
subtitulo |
Texto secundário (ou subtítulo). | Desconto 40% + Tarot grátis |
cor_fundo |
Cor de fundo em formato hexadecimal (#RRGGBB ou #RGB). |
#3F51B5 |
cor_texto |
Cor do título em formato hexadecimal. | #FFC107 |
cor_texto_sec |
Cor do subtítulo em formato hexadecimal. | #E91E63 |
logo_arquivo |
Nome do arquivo de logo (PNG) dentro de assets/logos/. Se em branco, não será adicionado. |
acme.png |
fonte_arquivo |
Nome do arquivo de fonte (TTF) dentro de assets/fonts/. Se em branco, usa DejaVuSans. |
Montserrat-Bold.ttf (opcional) |
O script ignora colunas desconhecidas e aplica valores padrão se algum campo estiver ausente.
-
Instale o Python (>= 3.8) se ainda não estiver disponível no seu servidor.
-
Crie um ambiente virtual (opcional mas recomendado):
python3 -m venv venv source venv/bin/activate -
Instale as dependências. As bibliotecas
pandasePillowsão necessárias. Na maioria dos ambientes fornecidos pelo ChatGPT elas já estão instaladas. Para garantir, rode:pip install -r requirements.txt
-
Adicione seus assets:
- Coloque logos em PNG dentro de
assets/logos/. - Coloque fontes TrueType (
.ttf) emassets/fonts/se quiser personalizar a tipografia. Caso contrário, o script usará DejaVuSans, que acompanha o Pillow.
- Coloque logos em PNG dentro de
-
Edite ou substitua o CSV (
data/clientes.csv) com as artes que deseja gerar. -
Execute o script:
python run.py
As imagens geradas serão salvas na pasta
out/com nomes baseados noslug:slug.png(formato quadrado) eslug_story.png(formato vertical).
O layout utilizado pelo script é simples e pode ser ajustado alterando o código em run.py. Os principais pontos são:
- Tamanho da imagem: Atualmente fixo em 1080×1080 (feed) e 1080×1920 (story).
- Posicionamento de elementos: O logo é colocado no canto superior esquerdo (60×60px). Os textos começam a 60px da margem esquerda e a 300px do topo.
- Quebra de linha: O script divide automaticamente textos longos em múltiplas linhas para que não ultrapassem a largura da arte.
Sinta‑se à vontade para modificar o código conforme suas necessidades (por exemplo, adicionar mais campos ao CSV, suportar diferentes tamanhos ou layouts, etc.).
- O Pillow fornece a fonte DejaVuSans.ttf por padrão, então mesmo que você não forneça uma fonte personalizada, suas artes terão boa aparência.
- Caso queira utilizar fontes específicas (como Montserrat, Lato, etc.), baixe os arquivos
.ttfe coloque‑os emassets/fonts/. Indique o nome do arquivo na colunafonte_arquivodo CSV. - O script ignora linhas vazias e imprime mensagens de erro se não conseguir ler o CSV.
Espero que este projeto ajude na automação das suas criações! 😊