Olá pessoal, tudo bem com vocês?
Hoje iremos explorar como criar uma rotina que automatize a criação de atividades educacionais, simplificando o trabalho realizado.
Vamos unir imagens disponíveis e um modelo de atividade para que o aluno preencha a palavra referente à imagem.
Vamos lá?
Tópicos:
- Introdução
- Lista de Imagens
- Seleção de Imagens
- Fluxo para Download
Introdução
Nesta etapa, nosso foco será criar uma rotina que permita automatizar um tipo de atividade educacional.
A ideia é simplificar o processo de criação, unindo imagens e modelos de atividade para que o aluno possa preencher a palavra correspondente à imagem apresentada. Isso facilita o trabalho do educador e torna o aprendizado mais dinâmico.

Lista de Imagens
Na postagem anterior, criamos um script que gera imagens no formato de desenho automaticamente, utilizando ferramentas como stable diffusion.
Agora, vamos carregar a lista de imagens armazenadas no Google Drive. Essa lista será a base para selecionar as imagens que serão usadas na atividade.
Através da caixinha “carrega_lista_imagens_disponiveis” iremos carregar todas as imagens criadas na etapa anterior e armazenada na planilha.

Assim teremos as informações “prompt, palavra e categoria”.
- prompt: É a instrução de como pedimos que a imagem seja gerada, ela descreve o conteúdo que foi gerado. O arquivo criado possui o prompt em seu nome acompanhado da data de criação.
- Exemplo: Accountant using a calculator_2025_05_04_12_41_35.jpg
- Essa estratégia permite a criação de várias imagens para o mesmo desejo (prompt).
Na imagem abaixo vemos a variedade de imagens criadas para o mesmo prompt (cat, chick, chicken).

Seleção de Imagens
Utilizaremos um código específico para filtrar as imagens e selecionar aquelas que são de nosso interesse.
O primeiro filtro será definir quais categorias de prompt / imagens serão permitidas na atividade.
Foi definido que na atividade atual serão inclusas:
const categoriasPermitidas = [
'Profissão',
'Animal Doméstico',
'Animal Selvagem',
'Animal de Fazenda'
];
Como na etapa anterior foi selecionado todas as atividades, um código irá filtrar para somente as categorias selecionadas:
const allItems = $input.all().map(x => x.json);
const filtrados = allItems.filter(item =>
categoriasPermitidas.includes(item.categoria)
);
Na nossa atividade precisamos de seis imagens diferentes, com isso faremos um sorteio de seleção de seis dos itens filtrados.
const selecionados = filtrados.sort(() => 0.5 - Math.random()).slice(0, 6);
Nesse momento agora temos a quantidade exata que precisamos na atividade escolhida de forma aleatória. Iremos agora recuperar aleatoriamente filtrando o prompt uma imagem criada.
- Temos várias imagens para cada prompt (estilo de imagem).
- Iremos entre as criadas selecionar uma para a nossa atividade.
- Faremos isso para todas as seis escolhidas.
const baseDir = '/content-manager/blogProfessoraAntenada/personagens/jpg/';
function getRandomMatchingFile(promptText) {
const files = fs.readdirSync(baseDir);
const pattern = `${promptText}_`;
const matchingFiles = files.filter(f => f.startsWith(pattern) && f.endsWith('.jpg'));
if (matchingFiles.length === 0) return null;
const randomFile = matchingFiles[Math.floor(Math.random() * matchingFiles.length)];
return path.join(baseDir, randomFile);
}
for (const item of selecionados) {
const filePath = getRandomMatchingFile(item.prompt);
}
O retorno será as seis imagens escolhidas, para isso a cada carregamento de imagem iremos salvá-la em uma variável chamada resultado.
resultado.push({
json: item,
binary: {
[palavra]: {
data: fileBuffer.toString('base64'),
fileName,
mimeType: 'image/jpeg',
}
}
});
}
return resultado;
Dessa forma teremos como retorno as imagens que precisamos.

Fluxo para Download
Por hoje é só. Disponibilizamos o fluxo para download.
Lembre-se de ajustar para a sua planilha Google Sheets e para o caminho onde estão os mockups criados.
Até a próxima!