--- title: AIDA API emoji: 🔍 colorFrom: indigo colorTo: gray sdk: docker app_port: 7860 pinned: false license: other license_name: aida-p0-pesos-sob-revisao license_link: https://huggingface.co/AIDAON/aida-p0/blob/main/LICENSES.md --- # AIDA — API de análise de imagens Backend do AIDA: recebe uma imagem e devolve indícios de que ela seja uma fotografia real ou uma imagem gerada/manipulada por IA — ou **inconclusivo**, quando não há base para decidir. O front-end é um site separado que consome esta API. ## Rotas | Rota | Descrição | |---|---| | `GET /` | status e módulos carregados | | `GET /contrato` | contrato completo de `POST /analisar` | | `GET /saude` | diagnóstico: o que está treinado, política em vigor | | `GET /teste` | página técnica para testar sem o front-end | | `POST /analisar` | analisa uma imagem (campo `imagem`, multipart) | | `GET /evidencia//` | PNG de um mapa de explicabilidade | ## Estados possíveis `resultado` tem **quatro** valores: `REAL`, `REAL_EDITADA`, `IA/MANIPULADA` e `INCONCLUSIVO`. `REAL_EDITADA` é uma fotografia que a análise de conteúdo considera real e cujo arquivo registra edição em um editor de imagem (Lightroom, Photoshop, Photopea, GIMP, Snapseed...). A informação vem dos metadados (EXIF `Software`, XMP `CreatorTool`, histórico do XMP e ajustes do Camera Raw), não do modelo: uma foto editada que perdeu os metadados sai como `REAL`. Os campos `editada` e `editores` dizem o que foi encontrado. O valor `IA/MANIPULADA` foi mantido por compatibilidade e significa gerada por IA, inteira ou em parte. Quando `fora_de_dominio` é `true`, a imagem não é fotográfica (texto, desenho, cor sólida) e **as probabilidades não têm significado** — mostre o `titulo`. O campo `ressalva` é obrigatório na interface: o resultado é indício, não prova. ## Variáveis de ambiente | Variável | Padrão | Efeito | |---|---|---| | `ALLOWED_ORIGINS` | `*` | domínios autorizados, separados por vírgula | | `AIDA_MODO_RAPIDO` | vazio | `1` usa só o ramo CLIP: ~0,2 s por imagem em vez de ~2 s | ## Limitações O resultado é probabilístico, não identifica autoria e não substitui a verificação da fonte da imagem. Medido em **882 imagens de fontes nunca vistas** (504 reais, 378 geradas): acurácia 85,3%, especificidade 88,9%, recall de IA 80,4%, com abstenção em ~14% dos casos. No conjunto de teste fechado (546 imagens): acurácia 89,4%. A ferramenta foi treinada para comparar **fotografias** com imagens geradas por IA. Capturas de texto, gráficos, desenhos e logotipos estão fora do escopo — o detector de fora-de-domínio recusa esses casos em vez de responder. Limitação conhecida: a imagem recebida é normalizada para 1024 px antes da análise, para ficar no mesmo domínio dos dados de treino. Isso significa que sinais de nível de sensor (padrão de Bayer, ruído PRNU) não são utilizados. ## Licença Este Space contém os **pesos do P0**, necessários para a inferência. A situação de licença dos pesos é `LICENSE_UNKNOWN_REVIEW_REQUIRED`: duas questões seguem `PENDENTE_DE_DECISAO` — (Q1) direitos sobre as fotografias de pessoas usadas no treino e (Q2) termos de uso dos serviços geradores das imagens sintéticas. A presença dos pesos aqui **não** resolve nenhuma das duas. Código, metodologia, métricas e limitações, com a auditoria completa de licença: https://huggingface.co/AIDAON/aida-p0 — ver `LICENSES.md`.