Search K
Referência do Motor de IA
O pacote @snapotter/ai coordena ferramentas nativas e tempos de execução Python para operações ML locais. A maioria das ferramentas ML usa um Python sidecar persistente para inicializações a quente rápidas. OCR é intencionalmente separado: fast invoca o binário Tesseract nativo, enquanto balanced e best usam um JSONL dispatcher persistente dedicado fixado na geração RapidOCR ativa e imutável em /data/ai/v3. Cada solicitação contém um generation lease. Durante uma atualização, SnapOtter executa um smoke test no candidato antes da ativação, alterna atomicamente para o novo dispatcher e, em seguida, drena a geração antiga antes de garbage collection.
NVIDIA CUDA é detectado automaticamente e usado por tempos de execução que o suportam. OCR usa CPU em todos os hosts, incluindo sistemas com GPUs NVIDIA, evitando CUDA e acoplamento de driver para esta ferramenta.
A aceleração por iGPU Intel/AMD via VA-API, Quick Sync ou OpenCL não é suportada para inferência de IA hoje. Mapear /dev/dri em um contêiner não acelera essas ferramentas do sidecar Python a menos que uma GPU NVIDIA compatível com CUDA esteja disponível.
19 ferramentas de IA no sidecar Python em quatro modalidades (imagem, áudio, vídeo, documento), mais 2 ferramentas com capacidades opcionais de IA. Todos os modelos rodam localmente - nenhuma conexão com a internet é necessária após o download inicial do modelo.
Compatibilidade do OCR em coreano
O OCR rápido oferece suporte a auto, en, de, es, fr, zh e ja, mas não a coreano (ko). Coreano exige o pacote de OCR preciso e balanced ou best. O pacote funciona nos contêineres oficiais Linux amd64 e arm64, inclusive em hosts NVIDIA, onde o OCR continua na CPU. Sistemas não compatíveis recebem um erro explícito e nunca retornam silenciosamente para fast. Coreano com fast ou com o alias legado tesseract é rejeitado antes da fila com FEATURE_INCOMPATIBLE e fast-korean-unsupported.
Arquitetura
Node.js Tool Route
|
v
@snapotter/ai bridge.ts
| (stdin/stdout JSON + stderr progress events)
v
+-- Native Tesseract + Ghostscript (fast image/PDF OCR)
|
+-- Isolated OCR runtime (persistent JSONL dispatcher)
| `-- RapidOCR + ONNX Runtime CPU + pinned PP-OCR models
|
`-- Python dispatcher (persistent process, "ai" profile)
|
|-- remove_bg.py (rembg / BiRefNet)
|-- upscale.py (RealESRGAN)
|-- inpaint.py (LaMa ONNX)
|-- outpaint.py (LaMa canvas expansion)
|-- detect_faces.py (MediaPipe)
|-- face_landmarks.py (MediaPipe landmarks)
|-- enhance_faces.py (GFPGAN / CodeFormer)
|-- colorize.py (DDColor)
|-- noise_removal.py (SCUNet / tiered denoising)
|-- red_eye_removal.py (landmark + color analysis)
|-- restore.py (scratch repair + enhancement + denoising)
|-- transcribe.py (faster-whisper speech-to-text)
+-- install_feature.py (on-demand bundle installer)Um perfil de despachante "docs" separado substitui a lista de permissões de IA por scripts de processamento de documentos (doc_pagecount, doc_health, doc_flatten, doc_redact, doc_text, doc_to_word, doc_metadata, doc_html_pdf) e pula as importações pesadas de ML.
Tempos limite: 300 s por padrão; OCR e remoção de fundo com BiRefNet recebem 600 s.
Pacotes de Recursos
Os modelos de IA são empacotados por pilha de dependências compartilhada, e não um arquivo por ferramenta. Um pacote de recursos pode habilitar várias ferramentas quando elas usam a mesma família de modelos, os mesmos wheels Python ou as mesmas bibliotecas nativas. Isso mantém a imagem Docker de lançamento menor e evita armazenar cópias duplicadas dos mesmos modelos de matting de fundo, detecção de rostos, OCR, restauração e fala.
A imagem Docker inclui a aplicação mais o runtime comum. Arquivos grandes de modelos são baixados sob demanda para o volume persistente /data/ai, e depois reutilizados por todas as ferramentas que precisam deles. Se um pacote já estiver instalado porque outra ferramenta precisou dele, habilitar uma nova ferramenta dependente não baixa esse pacote novamente.
A maioria das ferramentas de IA requer um ou mais pacotes de recursos antes de serem executadas. A UI administrativa os instala por ferramenta por meio do POST /api/v1/admin/tools/:toolId/features/install, que resolve a lista completa de pacotes, ignora os pacotes que já estão instalados e enfileira apenas os downloads ausentes. Por exemplo, ativar a foto do passaporte em uma nova instância enfileira background-removal e face-detection; habilitá-lo após a remoção de segundo plano já estar instalada enfileira apenas face-detection. OCR é a exceção porque fast não precisa de pacote; instale seu tempo de execução preciso opcional por meio da UI ou POST /api/v1/admin/features/ocr/install.
| Pacote | Tamanho | Grupo de dependências compartilhado | Ferramentas que o usam |
|---|---|---|---|
background-removal | 4-5 GB | matting de fundo rembg / BiRefNet | remove-background, passport-photo, transparency-fixer, background-replace, blur-background |
face-detection | 200-300 MB | detecção de rostos e marcos faciais do MediaPipe | blur-faces, red-eye-removal, smart-crop |
object-eraser-colorize | 1-2 GB | inpainting/outpainting LaMa e DDColor | erase-object, colorize, ai-canvas-expand |
upscale-enhance | 5-6 GB | RealESRGAN, GFPGAN / CodeFormer, remoção de ruído | upscale, enhance-faces, noise-removal |
photo-restoration | 4-5 GB | reparo de arranhões e pipeline de restauração | restore-photo |
ocr | ~208-234 MiB baixado / ~409-488 MiB instalado | Modelos opcionais RapidOCR 3.9.1, ONNX Runtime 1.20.1 e PP-OCR fixado | ocr, ocr-pdf (somente balanced e best) |
transcription | ~600 MB | modelos de fala para texto faster-whisper | transcribe-audio, auto-subtitles |
Ferramentas com dependências entre pacotes:
| Ferramenta | Pacotes necessários | Por quê |
|---|---|---|
passport-photo | background-removal, face-detection | Remove o fundo e depois usa marcos faciais para enquadrar o recorte conforme as regras de fotos de passaporte e documentos de identidade. |
enhance-faces | upscale-enhance, face-detection | Detecta rostos antes de rodar o realce GFPGAN ou CodeFormer nas regiões de rosto selecionadas. |
Uma ferramenta está disponível somente quando todos os seus pacotes necessários estão instalados, exceto OCR: sua camada fast integrada permanece disponível sem o pacote OCR opcional. As instalações parciais são válidas e tratadas de forma incremental: os pacotes configuráveis instalados são reutilizados, os pacotes perdidos são mostrados como downloads e as instalações na fila são executadas uma de cada vez, para que o ambiente Python compartilhado não seja modificado simultaneamente.
Instalação precisa do tempo de execução do OCR
O pacote OCR preciso é um tempo de execução específico da plataforma para o contêiner oficial Linux amd64 ou Linux arm64. A construção amd64 usa Python 3.12; a compilação arm64 usa Python 3.11. Ambas as compilações executam RapidOCR por meio do CPUExecutionProvider do ONNX Runtime, portanto, o mesmo pacote funciona apenas em hosts CPU e NVIDIA Docker. O tempo de execução preciso requer pelo menos 4 GiB de memória efetiva: o limite cgroup do contêiner configurado, caso contrário, memória do host. Um sistema abaixo do mínimo de compatibilidade assinado é rejeitado antes do download. Este requisito não se aplica ao Fast OCR integrado. As compilações Bare-metal são rejeitadas porque seus libc e Python ABI não podem ser inferidos com segurança; O OCR rápido permanece disponível quando o host fornece Tesseract e Ghostscript.
O artefato opcional tem cerca de 208-234 MiB compactado e 409-488 MiB extraído, dependendo da arquitetura. O índice assinado vincula as contagens exatas de bytes compactados e extraídos impostas pelo instalador. Tesseract integrado adiciona cerca de 25 MiB à imagem oficial e não precisa de arquivos em /data/ai.
A instalação online busca um índice de versão assinado e o artefato exato endereçado ao conteúdo para a plataforma atual. SnapOtter verifica a assinatura do índice Ed25519, tamanho do artefato, resumo SHA-256, resumos de modelo, caminhos, modos de arquivo e smoke test preparado antes de ativar atomicamente a nova geração. Uma instalação com falha deixa a geração íntegra anterior ativa.
Para instalação isolada, carregue o ocr-runtime-index.json da versão e o arquivo de tempo de execução OCR correspondente para POST /api/v1/admin/features/import usando campos multipartes chamados index e archive. A importação offline aplica as mesmas verificações de assinatura, hash, extração, compatibilidade e teste de fumaça da instalação online; um arquivo sem seu índice assinado confiável é rejeitado.
Remoção de Fundo
Rota da ferramenta: remove-background
Modelo: rembg com BiRefNet (padrão) ou variantes U2-Net
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
model | string | - | Variante do modelo (substituição opcional) |
backgroundType | string | "transparent" | Um de: transparent, color, gradient, blur, image |
backgroundColor | string | - | Cor hex para fundo sólido |
gradientColor1 | string | - | Primeira cor do gradiente |
gradientColor2 | string | - | Segunda cor do gradiente |
gradientAngle | number | - | Ângulo do gradiente em graus |
blurEnabled | boolean | - | Ativar efeito de desfoque de fundo |
blurIntensity | number (0-100) | - | Intensidade do desfoque |
shadowEnabled | boolean | - | Ativar sombra projetada no sujeito |
shadowOpacity | number (0-100) | - | Opacidade da sombra |
outputFormat | string | - | Formato de saída: png, webp ou avif |
edgeRefine | integer (0-3) | - | Nível de refinamento das bordas |
decontaminate | boolean | - | Remover sangramento de cor das bordas |
Substituir Fundo
Rota da ferramenta: background-replace
Modelo: rembg / BiRefNet (compartilhado com remove-background)
Remove o fundo e o substitui por uma cor sólida ou gradiente.
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
backgroundType | "color" | "gradient" | "color" | Modo de fundo |
color | string | "#ffffff" | Cor hex do fundo (quando backgroundType é color) |
gradientColor1 | string | - | Primeira cor hex do gradiente |
gradientColor2 | string | - | Segunda cor hex do gradiente |
gradientAngle | integer (0-360) | 180 | Ângulo do gradiente em graus |
feather | integer (0-20) | 0 | Raio de suavização das bordas |
format | "png" | "webp" | "png" | Formato de saída |
Desfocar Fundo
Rota da ferramenta: blur-background
Modelo: rembg / BiRefNet (compartilhado com remove-background)
Desfoca o fundo mantendo o sujeito nítido.
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
intensity | integer (1-100) | 50 | Intensidade do desfoque |
feather | integer (0-20) | 0 | Raio de suavização das bordas |
format | "png" | "webp" | "png" | Formato de saída |
Ampliação de Imagem
Rota da ferramenta: upscale
Modelo: RealESRGAN (com fallback Lanczos quando indisponível)
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
scale | number | 2 | Fator de ampliação |
model | string | "auto" | Variante do modelo |
faceEnhance | boolean | false | Aplicar passada de realce de rosto GFPGAN |
denoise | number | 0 | Força da remoção de ruído |
format | string | "auto" | Substituição do formato de saída |
quality | number | 95 | Qualidade de saída (1-100) |
OCR / Extração de Texto
Rota da ferramenta: ocr
Modelos: Tesseract (fast); RapidOCR com modelos pequenos PP-OCRv6 (balanced); Modelos médios PP-OCRv6 com pontuação de variante calibrada (best)
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
quality | "fast" | "balanced" | "best" | Dinâmico | Quando quality e engine são omitidos, o SnapOtter escolhe o melhor nível disponível nesta ordem: best, balanced, fast. Para coreano, fast nunca é escolhido; usa-se best, depois balanced, ou é retornado o erro de instalação ou compatibilidade do runtime preciso. |
language | string | "auto" | Idioma: auto, en, de, fr, es, zh, ja, ko |
enhance | booleano | Dependente do nível | Melhore o contraste local. Fast aplica-o diretamente; níveis precisos mantêm a variante somente quando a pontuação calibrada melhora OCR. O padrão é Melhor |
engine | corda | - | Alias de compatibilidade obsoleta. Mapeia tesseract para fast e o valor herdado de paddleocr para balanced; não carrega PaddlePaddle |
Retorna o texto extraído mais os metadados de origem: mecanismo, qualidade solicitada e real, dispositivo, provedor, estado de degradação, avisos e versões de tempo de execução/modelo precisos, quando aplicável. Solicitações de qualidade explícitas nunca voltam para outro nível. Se balanced ou best não estiver disponível, API retornará FEATURE_NOT_INSTALLED ou FEATURE_INCOMPATIBLE em vez de executar fast silenciosamente.
OCR de PDF
Rota da ferramenta: ocr-pdf
Modelos: Mesmo sistema de níveis do OCR de imagem
Extrai texto de documentos PDF digitalizados usando OCR com IA, página por página.
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
quality | "fast" | "balanced" | "best" | Dinâmico | Quando quality e engine são omitidos, o SnapOtter escolhe o melhor nível disponível nesta ordem: best, balanced, fast. Para coreano, fast nunca é escolhido; usa-se best, depois balanced, ou é retornado o erro de instalação ou compatibilidade do runtime preciso. |
language | string | "auto" | Idioma: auto, en, de, fr, es, zh, ja, ko |
pages | string | "all" | Seleção de páginas: "all", "1-3", "1,3,5" |
enhance | booleano | Dependente do nível | Melhore o contraste local. Fast aplica-o diretamente; níveis precisos mantêm a variante somente quando a pontuação calibrada melhora OCR. O padrão é Melhor |
engine | corda | - | Alias de compatibilidade obsoleta. Mapeia tesseract para fast e o valor herdado de paddleocr para balanced; não carrega PaddlePaddle |
A mesma regra de não downgrade se aplica a PDF OCR. As páginas PDF são rasterizadas antes do reconhecimento e uma solicitação pode selecionar no máximo 50 páginas.
Desfoque de Rosto / PII
Rota da ferramenta: blur-faces
Modelo: detecção de rostos do MediaPipe
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
blurRadius | number (1-100) | 30 | Raio do desfoque gaussiano |
sensitivity | number (0-1) | 0.5 | Limiar de confiança da detecção |
Realce de Rosto
Rota da ferramenta: enhance-faces
Modelos: GFPGAN, CodeFormer
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
model | "auto" | "gfpgan" | "codeformer" | "auto" | Modelo de realce |
strength | number (0-1) | 0.8 | Força do realce |
sensitivity | number (0-1) | 0.5 | Limiar de detecção de rosto |
onlyCenterFace | boolean | false | Realçar apenas o rosto mais central |
Colorização por IA
Rota da ferramenta: colorize
Modelo: DDColor (com fallback OpenCV DNN)
Converte fotos em preto e branco ou tons de cinza para cores completas.
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
intensity | number (0-1) | 1.0 | Força da saturação de cor |
model | "auto" | "ddcolor" | "opencv" | "auto" | Variante do modelo |
Remoção de Ruído
Rota da ferramenta: noise-removal
Modelo: SCUNet (pipeline de remoção de ruído por níveis)
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
tier | "quick" | "balanced" | "quality" | "maximum" | "balanced" | Nível de processamento |
strength | number (0-100) | 50 | Força da remoção de ruído |
detailPreservation | number (0-100) | 50 | Quanto detalhe preservar; valores maiores mantêm mais textura |
colorNoise | number (0-100) | 30 | Força da redução de ruído de cor |
format | string | "original" | Formato de saída: original, png, jpeg, webp, avif, jxl |
quality | number (1-100) | 90 | Qualidade de codificação da saída |
Remoção de Olhos Vermelhos
Rota da ferramenta: red-eye-removal
Detecta marcos faciais, localiza as regiões dos olhos e corrige a saturação excessiva no canal vermelho.
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
sensitivity | number (0-100) | 50 | Limiar de detecção de pixels vermelhos |
strength | number (0-100) | 70 | Força da correção |
format | string | - | Substituição do formato de saída (opcional) |
quality | number (1-100) | 90 | Qualidade de saída |
Restauração de Fotos
Rota da ferramenta: restore-photo
Pipeline de múltiplas etapas para fotos antigas ou danificadas: detecção e reparo de arranhões/rasgos, realce de rosto, remoção de ruído e colorização opcional.
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
scratchRemoval | boolean | true | Detectar e reparar arranhões e rasgos |
faceEnhancement | boolean | true | Aplicar passada de realce de rosto |
fidelity | number (0-1) | 0.7 | Força do realce de rosto (maior = mais conservador) |
denoise | boolean | true | Aplicar passada de remoção de ruído |
denoiseStrength | number (0-100) | 25 | Força da remoção de ruído |
colorize | boolean | false | Colorir após a restauração |
colorizeStrength | number (0-100) | 85 | Intensidade da colorização |
Foto para Passaporte
Rota da ferramenta: passport-photo
Modelos: marcos faciais do MediaPipe + remoção de fundo com BiRefNet
Fluxo de trabalho em duas fases: analisar (detectar rosto + remover fundo) e depois gerar (recortar, redimensionar, distribuir em grade). Suporta mais de 37 países em 6 regiões.
Fase 1: Analisar
POST /api/v1/tools/image/passport-photo/analyze
Aceita um arquivo de imagem (multipart). Retorna os dados dos marcos faciais, uma pré-visualização em base64 e as dimensões da imagem.
Fase 2: Gerar
POST /api/v1/tools/image/passport-photo/generate
Aceita um corpo JSON com os resultados da Fase 1 mais as configurações de geração:
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
jobId | string | (obrigatório) | ID do job da Fase 1 |
filename | string | (obrigatório) | Nome do arquivo original da Fase 1 |
countryCode | string | (obrigatório) | Código de país ISO (ex.: US, GB, IN) |
documentType | string | "passport" | Tipo de documento |
bgColor | string | "#FFFFFF" | Cor de fundo em hex |
printLayout | string | "none" | Layout de impressão: none, 4x6, a4, letter |
maxFileSizeKb | number | 0 | Tamanho máximo do arquivo em KB (0 = sem limite) |
dpi | number (72-1200) | 300 | DPI de saída |
customWidthMm | number | - | Largura personalizada em mm (substitui a especificação do país) |
customHeightMm | number | - | Altura personalizada em mm (substitui a especificação do país) |
zoom | number (0.5-3) | 1 | Fator de zoom |
adjustX | number | 0 | Ajuste de posição horizontal |
adjustY | number | 0 | Ajuste de posição vertical |
landmarks | object | (obrigatório) | Marcos faciais da Fase 1 |
imageWidth | number | (obrigatório) | Largura da imagem da Fase 1 |
imageHeight | number | (obrigatório) | Altura da imagem da Fase 1 |
Apagar Objetos (Inpainting)
Rota da ferramenta: erase-object
Modelo: LaMa via ONNX Runtime
A máscara é enviada como uma segunda parte de arquivo (nome do campo mask), não como base64. Pixels brancos na máscara indicam áreas a apagar. As configurações format e quality são enviadas como campos de formulário de nível superior.
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
file | file | (obrigatório) | Imagem de origem (multipart) |
mask | file | (obrigatório) | Imagem da máscara (multipart, nome do campo mask, branco = apagar) |
format | string | "auto" | Formato de saída: auto, png, jpg, jpeg, webp, tiff, gif, avif, heic, heif, jxl |
quality | integer (1-100) | 95 | Qualidade de saída |
Acelerado por CUDA quando uma GPU NVIDIA está disponível.
Expansão de Tela por IA
Rota da ferramenta: ai-canvas-expand
Modelo: outpainting baseado em LaMa
Expande a tela de uma imagem em qualquer direção e preenche as novas áreas com conteúdo gerado por IA que combina com a imagem existente.
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
extendTop | integer | 0 | Pixels a estender no topo |
extendRight | integer | 0 | Pixels a estender à direita |
extendBottom | integer | 0 | Pixels a estender na parte inferior |
extendLeft | integer | 0 | Pixels a estender à esquerda |
tier | "fast" | "balanced" | "high" | "balanced" | Nível de qualidade |
format | string | "auto" | Formato de saída: auto, png, jpg, jpeg, webp, tiff, gif, avif, heic, heif, jxl |
quality | integer (1-100) | 95 | Qualidade de saída |
Pelo menos uma direção de extensão deve ser maior que 0.
Recorte Inteligente
Rota da ferramenta: smart-crop
Modelo: detecção de rostos do MediaPipe (apenas no modo de rosto)
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
mode | string | "subject" | Estratégia de recorte: subject, face, trim |
strategy | "attention" | "entropy" | "attention" | Estratégia para o modo de sujeito |
width | integer | - | Largura de saída |
height | integer | - | Altura de saída |
padding | integer (0-50) | 0 | Porcentagem de preenchimento ao redor do sujeito |
facePreset | string | "head-shoulders" | Enquadramento predefinido quando mode=face |
sensitivity | number (0-1) | 0.5 | Limiar de detecção de rosto |
threshold | integer (0-255) | 30 | Limiar de detecção de fundo (modo de recorte de bordas) |
padToSquare | boolean | false | Preencher o resultado recortado até um quadrado |
padColor | string | "#ffffff" | Cor de fundo para o preenchimento quadrado |
targetSize | integer | - | Tamanho alvo para a saída preenchida (pixels) |
quality | integer (1-100) | - | Qualidade de saída |
Os valores legados de mode, attention e content, são aceitos e mapeados para subject e trim respectivamente.
Predefinições de rosto:
| Predefinição | Melhor para |
|---|---|
closeup | Retratos de rosto |
head-shoulders | Fotos de perfil |
upper-body | LinkedIn / formal |
half-body | Parte superior do corpo completa |
Transcrever Áudio
Rota da ferramenta: transcribe-audio
Modelo: faster-whisper
Converte fala em texto. Suporta os formatos de saída texto simples, SRT e VTT.
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
language | string | "auto" | Idioma: auto, en, de, fr, es, zh, ja, ko, id, th, vi |
outputFormat | "txt" | "srt" | "vtt" | "txt" | Formato de saída |
Legendas Automáticas
Rota da ferramenta: auto-subtitles
Modelo: faster-whisper (extrai o áudio do vídeo e depois transcreve)
Gera arquivos de legenda a partir da trilha de áudio de um vídeo.
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
language | string | "auto" | Idioma: auto, en, de, fr, es, zh, ja, ko, id, th, vi |
format | "srt" | "vtt" | "srt" | Formato de saída da legenda |
Corretor de Transparência PNG
Rota da ferramenta: transparency-fixer
Modelo: matting HR do BiRefNet (resolução 2048x2048)
Corrige PNGs de "falsa transparência" onde o fundo foi removido, mas deixou franjas, halos ou artefatos semitransparentes. Usa o modelo de matting de alta resolução do BiRefNet para produzir um canal alfa limpo e depois aplica um processamento de remoção de franjas configurável para eliminar a contaminação de cor ao longo das bordas.
Cadeia de fallback em caso de OOM: Se o matting HR do BiRefNet exceder a memória disponível, a ferramenta recorre automaticamente a birefnet-general e depois a u2net.
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
defringe | number (0-100) | 30 | Força da remoção de franjas nas bordas para eliminar contaminação de cor |
outputFormat | "png" | "webp" | "png" | Formato da imagem de saída |
removeWatermark | boolean | false | Aplicar pré-processamento de remoção de marca d'água (filtro de mediana) |
bash
curl -X POST http://localhost:1349/api/v1/tools/image/transparency-fixer \
-H "Authorization: Bearer <token>" \
-F "file=@fake-transparent.png" \
-F 'settings={"defringe":30,"outputFormat":"png"}'Ferramentas com Capacidades Opcionais de IA
As ferramentas a seguir não são ferramentas do sidecar Python, mas usam recursos de IA quando certas opções estão habilitadas.
Realce de Imagem
Rota da ferramenta: image-enhancement
Motor: baseado em análise (histograma e estatísticas do Sharp)
Analisa a imagem e aplica correções automáticas de exposição, contraste, balanço de branco, saturação, nitidez e ruído. Suporta modos específicos de cena.
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
mode | "auto" | "portrait" | "landscape" | "low-light" | "food" | "document" | "auto" | Modo de cena para ajustar as correções |
intensity | number (0-100) | 50 | Força geral da correção |
corrections.exposure | boolean | true | Aplicar correção de exposição |
corrections.contrast | boolean | true | Aplicar correção de contraste |
corrections.whiteBalance | boolean | true | Aplicar correção de balanço de branco |
corrections.saturation | boolean | true | Aplicar correção de saturação |
corrections.sharpness | boolean | true | Aplicar correção de nitidez |
corrections.denoise | boolean | true | Aplicar remoção de ruído |
deepEnhance | boolean | false | Ativar remoção de ruído por IA via SCUNet (requer o pacote upscale-enhance) |
Um endpoint de análise adicional está disponível em POST /api/v1/tools/image/image-enhancement/analyze, que retorna as correções detectadas sem aplicá-las.
Redimensionamento com Reconhecimento de Conteúdo (Seam Carving)
Rota da ferramenta: content-aware-resize
Motor: binário Go caire (não Python - sem benefício de GPU)
Redimensiona imagens de forma inteligente removendo costuras de baixa energia, preservando o conteúdo importante.
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
width | number | - | Largura alvo |
height | number | - | Altura alvo |
protectFaces | boolean | false | Proteger as regiões de rosto detectadas (requer o pacote face-detection) |
blurRadius | number (0-20) | 4 | Desfoque prévio para o cálculo de energia |
sobelThreshold | number (1-20) | 2 | Limiar de sensibilidade das bordas |
square | boolean | false | Forçar saída quadrada |
