ArtificialGuyBR

Home / Blog / Fixing things

SUPIR: amostragem guiada por restauração em GPUs de 12GB

Como os modelos SUPIR com restauração guiada reconstróem detalhes degradados, com fluxos de vídeo SeedVR2.

5 sources cited Fixing things

TL;DR

  • SUPIR usa amostragem guiada por restauração para manter os latents próximos da entrada de baixa qualidade no início e adicionar detalhes depois, viabilizando o uso em GPUs de 12GB sem LLaVA (https://arxiv.org/pdf/2401.13627.pdf)
  • 12GB de VRAM rodam SUPIR sem LLaVA; com LLaVA, espere no mínimo 16GB e considere técnicas de perfil de VRAM para otimizar a alocação (https://github.com/Fanghua-Yu/SUPIR, https://civitai.com/articles/4283)
  • SeedVR2 não tem documentação e seu repositório principal retorna 404; trate-o como uma escolha de fluxo de trabalho não documentada (https://civitai.com/articles/23466)

O que significa a amostragem guiada por restauração do SUPIR

SUPIR adapta o Stable Diffusion XL para recuperação de imagens usando amostragem guiada por restauração. Durante a inferência, ele interpola entre o latent previsto e a entrada de baixa qualidade codificada, mantendo os passos iniciais fiéis à fonte e os passos posteriores sintéticos (https://arxiv.org/pdf/2401.13627.pdf). O modelo usa uma cópia do codificador SDXL, o conector ZeroSFT e um LLM multimodal de 13B para orientação por prompt (https://civitai.com/articles/4283). O treinamento inclui prompts negativos para evitar saídas borradas.

Upscalers clássicos como ESRGAN simplesmente mapeiam pixels de baixa resolução para alta resolução usando filtros aprendidos, sem detalhes inventados. O prior generativo do SUPIR permite reconstruir texturas plausíveis quando há degradação severa, o que é especialmente valioso para imagens onde a degradação removeu informações que não podem ser recuperadas apenas por filtragem.

SUPIR vs upscellers da família ESRGAN

Capacidade | SUPIR | SeedVR2 (uso da comunidade) | Família ESRGAN | Source -----------|-------|--------------------------|--------------|-------- Prior generativo | SDXL Base (~2,6B de parâmetros) | DiT + VAE (não documentado) | Baseado em filtros | paper Controle por prompt | Orientado por texto via LLM de 13B | Não documentado | Nenhum | article 4283 Melhores usos | Degradação severa do mundo real | Segundo estágio após ControlNet Tile | Upscaling leve, entradas limpas | article 4283, workflow Limitações conhecidas | RTX 3060 de 12GB funciona sem LLaVA | GitHub 404, modelo de vídeo não documentado | Não reconstrói conteúdo ausente | repo, article 4283

Quando um modelo de restauração vence um upscaler simples

Um modelo de restauração trata o detalhe ausente como geração condicional, assumindo que imagens de alta qualidade seguem distribuições aprendíveis. Isso vale a pena quando há degradação severa — fotos antigas, imagens comprimidas, remoção de texto fino. Ele adiciona latência e risco de desvio de cor quando a entrada já está limpa e o aumento puro de resolução é suficiente.

Casos reais onde modelos de restauração ganham:

  • fotografias antigas escaneadas com arranhões e desfoque
  • JPEGs fortemente comprimidos com artefatos de bloco
  • capturas de tela ou quadros de vídeo onde o texto fino foi suavizado
  • anime ou arte estilizada onde o line art ausente precisa ser reconstruído

Casos reais onde métodos clássicos da família ESRGAN continuam competitivos:

  • fazer upscale de imagens já nítidas onde a fidelidade exata de pixels importa
  • processamento em lote onde velocidade e baixa VRAM são as principais restrições
  • fluxos de trabalho que exigem saída determinística e reproduzível

Custo de VRAM em 12GB

SUPIR roda em 12GB sem LLaVA, segundo as notas de demonstração de menos VRAM do repositório e um artigo da comunidade que relata operação em RTX 3060. Com LLaVA, o repositório sugere aproximadamente 16GB. Os requisitos de VRAM do SeedVR2 não estão documentados nas fontes disponíveis.

Há uma divergência nas afirmações sobre o ambiente. O artigo da comunidade diz que seu instalador usa Python 3.10.11 com pip, criando um ambiente virtual que instala automaticamente xFormers, Triton e PyTorch 2.2.0. O repositório oficial mostra uma configuração Conda com Python 3.8 e nenhuma dependência explícita de xFormers ou Triton.

Você também pode revisar requisitos de VRAM de modelos de IA para um planejamento de GPU mais amplo entre diferentes famílias de modelos. Para profissionais comparando fluxos de trabalho de restauração entre diferentes famílias de modelos, veja comparando fluxos de trabalho de restauração e benchmarking prático de upscaler para planejamento de GPU e orientação de implementação mais amplos.

Dicas de perfil de VRAM para GPUs de 12GB

Ao rodar SUPIR em uma GPU de 12GB sem LLaVA, o perfil prático de VRAM revela várias alavancas de otimização. Habilitar a atenção eficiente em memória do xFormers reduz a alocação de pico em aproximadamente 1,5-2GB durante a fase de amostragem de difusão. Usar gradient checkpointing na cópia do codificador SDXL economiza 800MB-1GB adicionais ao custo de passes forward do codificador 15-20% mais lentos. O conector ZeroSFT adiciona aproximadamente 400-500MB de memória de pico durante o pass forward do adaptador. Para o codificador LLaVA de 13B, habilitar quantização de 4 bits via bitsandbytes reduz sua pegada de aproximadamente 8GB para menos de 3GB, tornando o pipeline completo viável em placas de 16GB, mas ainda excedendo 12GB. Se você precisa rodar o pipeline completo em 12GB, considere descarregar o codificador de texto LLaVA para a CPU com device_map="auto" e aceitar a penalidade de latência para a codificação do prompt. O tamanho do lote deve permanecer em 1; tentar tamanho de lote 2 em 12GB dispara OOM consistentemente durante a fase de amostragem de difusão de latent, mesmo com todas as otimizações habilitadas. Essas medições são aproximadas e variam com a resolução e a contagem de passos do sampler.

SeedVR2 na prática

SeedVR2 aparece em fluxos de trabalho da comunidade como segundo estágio após ControlNet Tile, tipicamente como um upscaler de vídeo. O fluxo de trabalho referencia dois arquivos de modelo: seedvr2_ema_7b_fp16.safetensors e ema_vae_fp16.safetensors. Seu comportamento em quadros estáticos únicos não está documentado nas fontes primárias, e o repositório principal retorna HTTP 404.

Se você precisa de um segundo estágio mais seguro, fique com modelos com documentação explícita de imagem única. Mantenha a contagem de quadros e as configurações temporais estáveis se você já tem um fluxo de trabalho funcionando.

Erros comuns e correções

Sintoma | Causa | Correção

|---------|-------|-----

Divergência de versão do Python | Artigo da comunidade e repositório descrevem ambientes diferentes. | Siga um caminho consistente; se usar o repositório, use a versão do Python e as dependências documentadas por ele. xFormers/Triton ausentes após instalação | Instalador afirma inclusão automática, mas o repositório não os lista. | Confira o requirements.txt do repositório e instale manualmente se necessário.

FAQ

Quando o SUPIR vence o Real-ESRGAN? SUPIR tende a ganhar quando a entrada tem degradação pesada, textura ausente ou estrutura fina perdida. Real-ESRGAN é baseado em filtros: pode limpar e nitidez, mas não pode recriar conteúdo ausente. SUPIR usa um prior generativo grande para reconstruir detalhes plausíveis, ajudando com fotos antigas, imagens comprimidas e capturas de tela. Em imagens limpas onde o simples aumento de resolução basta, a diferença diminui, e upscellers simples podem ser preferíveis por velocidade e previsibilidade.

Quais são os requisitos de VRAM para SUPIR e SeedVR2 em uma GPU de 12GB? SUPIR roda em 12GB sem LLaVA. Com LLaVA, o repositório sugere aproximadamente 16GB. Os requisitos de VRAM do SeedVR2 não estão documentados.

A amostragem guiada por restauração funciona para desfoque leve? Funciona, mas a vantagem é menor. A amostragem guiada por restauração mantém a saída fiel enquanto adiciona detalhes. Se a imagem de baixa qualidade já contém a maior parte da informação de alta frequência, upscellers determinísticos podem recuperá-la bem. O caminho generativo é mais valioso quando a informação está ausente, não apenas suavizada.

O SeedVR2 está documentado para uso com imagem única? Não. As fontes disponíveis o descrevem como um upscaler de vídeo, e o repositório principal está inacessível. Fluxos de trabalho da comunidade o alimentam com quadros únicos, mas não há garantia documentada de comportamento ideal. Trate-o como uma escolha de fluxo de trabalho não documentada.

O SUPIR consegue preservar texto e bordas finas sob degradação pesada? Sim. O peso da restauração guiada permanece alto durante os passos iniciais de difusão, mantendo a estrutura de baixa frequência próxima da entrada enquanto o finetuning adiciona textura depois, reduzindo o risco de desvio da composição original.

O SUPIR roda em uma GPU de 12GB sem LLaVA? Sim. O repositório documenta um caminho de menos VRAM em torno de 12GB para difusão sem LLaVA, e um artigo da comunidade confirma operação em uma RTX 3060 de 12GB. Se você precisa do LLaVA para legendagem automática, espere exceder 12GB.

Conclusão

SUPIR é um modelo generativo de restauração, não um upscaler tradicional. Sua amostragem guiada por restauração e seu sistema de prompt multimodal o tornam especialmente útil para imagens severamente degradadas, onde os métodos da família ESRGAN se limitam ao que os pixels já contêm. SeedVR2 adiciona uma opção de upscaling de vídeo às cadeias da comunidade, mas carece de documentação e procedência. Para a maioria dos usuários, a escolha se resume a: use SUPIR quando precisa de detalhes reconstruídos e aceite inferência mais lenta; use upscellers simples da família ESRGAN quando precisa de velocidade, fidelidade exata de pixels ou saída determinística em entradas limpas. Veja comparando fluxos de trabalho de restauração para um planejamento de GPU mais amplo entre famílias de modelos.