DESKTOP APP · VISION AI BATCH PROCESSING

deeplabel-electron-trae

Transforme diretórios caóticos com milhares de arquivos `IMG_4920.JPG` em bibliotecas organizadas com nomes descritivos e metadados estruturados.

Stack
TypeScript + Electron
Pipeline
Processamento em Lote Assíncrono
Segurança
Modo Simulação (Dry Run)
Integridade
Preservação de EXIF Original

TL;DR Executivo — Resumo da Engenharia

O deeplabel-electron-trae é uma ferramenta desktop desenvolvida por Alex Santos para resolver a dor de fotógrafos, designers e desenvolvedores que acumulam milhares de imagens com nomes genéricos. Conectando-se a modelos de visão computacional, o aplicativo processa diretórios inteiros, gera miniaturas de pré-visualização em alta performance, analisa o conteúdo de cada fotografia e propõe nomes semânticos padronizados (ex: `2026-praia-por-do-sol-dourado.jpg`), com modo de simulação prévia para total controle do usuário.

DIAGRAMA & WORKFLOW

Arquitetura de Fluxo do Sistema

Visão macro de como o projeto processa requisições, gerencia dados e entrega valor técnico com máxima eficiência.

Fluxo Lógico & Pipeline de Execução
+-----------------------+      +---------------------------+      +-----------------------+
| Diretório de Fotos    | ===> | Leitura & Thumbnails      | ===> | Fila Assíncrona de    |
| (Nomes genéricos IMG) |      | (Cache local em memória)  |      | Inferência de Visão   |
+-----------------------+      +---------------------------+      +-----------------------+
                                                                              |
+-----------------------+      +---------------------------+                  v
| Arquivos Renomeados   | <=== | Modo Simulação &          | <=== +-----------------------+
| (Nomes descritivos)   |      | Aprovação do Usuário      |      | Modelo de Visão AI    |
+-----------------------+      +---------------------------+      | (Tags & Descrição)    |
                                                                  +-----------------------+
ENGENHARIA DETALHADA

Os Pilares Técnicos Fundamentais

Decisões de design, algoritmos e técnicas aplicadas para garantir confiabilidade, segurança e excelência operacional.

01

Fila de Processamento Concorrente com Throttling

Execução de inferências sem travar a interface do usuário

O processamento em lote é orquestrado por um worker pool assíncrono que limita o número de conexões simultâneas com a API de visão. Isso evita estouro de limites de taxa (rate limits) e mantém a interface do Electron com rolagem a 60 FPS mesmo com milhares de itens carregados.

02

Geração de Nomes Semânticos e Normalização de Slugs

Padrão legível em qualquer sistema de arquivos sem caracteres especiais

As descrições geradas pelo modelo visual são convertidas para slugs URL-friendly em letras minúsculas, substituindo espaços por hífens e removendo acentos e caracteres incompatíveis com sistemas Linux, Windows ou servidores web.

03

Modo de Simulação Não Destrutivo (Dry Run)

Confirmação visual e edição manual de nomes antes da gravação em disco

O deeplabel nunca altera arquivos sem o consentimento expresso. A interface exibe uma tabela comparativa com o nome antigo, a miniatura, o nome proposto e a opção de ajustar o texto antes de disparar o comando definitivo de renomeação em lote.

04

Preservação de Dados de Criação e Metadados EXIF

Proteção da cronologia e informações originais da câmera

A operação de renomeação atua estritamente no descritor de arquivo do sistema de arquivos (`fs.rename`), mantendo inalterados os carimbos de data de captura e todos os blocos EXIF/IPTC que registram abertura, ISO e lente utilizada.

IMPLEMENTAÇÃO EM CÓDIGO

Código em Prática

Exemplo concreto de uso, configuração e integração técnica.

Pipeline de Sanitização de Nome de Arquivo no Electron TYPESCRIPT
export function formatDescriptiveFilename(
  aiDescription: string, 
  originalExt: string, 
  datePrefix?: string
): string {
  // Limpeza de caracteres não suportados por NTFS / ext4 / APFS
  const cleanSlug = aiDescription
    .toLowerCase()
    .normalize('NFD')
    .replace(/[\u0300-\u036f]/g, '')
    .replace(/[^a-z0-9\s-]/g, '')
    .trim()
    .replace(/\s+/g, '-');

  const prefix = datePrefix ? `${datePrefix}-` : '';
  return `${prefix}${cleanSlug}${originalExt.toLowerCase()}`;
}
DÚVIDAS & DECISÕES

Perguntas Frequentes & Respostas Técnicas

Esclarecimentos detalhados sobre funcionamento, licenças, compatibilidade e privacidade.

O aplicativo substitui o conteúdo das minhas fotos?

Não. O deeplabel apenas altera o nome do arquivo no disco. Os pixels, a resolução e os metadados internos da fotografia permanecem rigorosamente intocados.

Posso usar modelos locais para não pagar por APIs externas?

Sim, a aplicação possui suporte a conexão com endpoints Ollama locais rodando modelos como llava ou qwen-vl.

O que acontece se duas fotos gerarem o mesmo nome sugerido?

O sistema detecta colisões de nomes e adiciona automaticamente um sufixo numérico sequencial (-01, -02), prevenindo sobreescrita acidental.

Posso reverter uma renomeação se mudar de ideia?

Sim, o aplicativo salva um log de transação (.deeplabel-history.json) na pasta processada, permitindo desfazer toda a operação com um clique.