* fix: make OCR portable and reliable * fix: harden OCR installation portability * fix: pin OCR partials across downloads * fix: make OCR execution reliably asynchronous * fix: harden OCR portability and docs routes * fix: preserve decoder and docs safeguards
29 KiB
description, i18n_output_hash, i18n_source_hash, i18n_provenance
| description | i18n_output_hash | i18n_source_hash | i18n_provenance |
|---|---|---|---|
| Referência do motor de IA com todas as ferramentas de ML locais. Remoção de fundo, ampliação, OCR, detecção de rostos, restauração de fotos e muito mais. | 37b479358342 | aa9a56cdddc7 | human |
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.
::: info 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) |
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 |