2 pontos por GN⁺ 2025-04-21 | 1 comentários | Compartilhar no WhatsApp
  • FramePack é uma abordagem baseada em Next-Frame Prediction para usar um modelo de difusão de vídeo de 13B na geração de vídeos longos mesmo com 6 GB de memória de GPU de notebook
  • Em vez de tratar todos os frames de entrada com o mesmo comprimento, ele usa um patchifying kernel diferente para cada frame e aloca mais recursos de GPU para os frames importantes mais próximos do alvo de predição
  • No HunyuanVideo, um frame 480p pode ir de cerca de 1536 tokens com (1, 2, 2) até 192 tokens com (2, 4, 4), e a complexidade de computação em streaming é O(1)
  • O FramePack Scheduling ajusta a importância dos frames e a taxa de compressão, e no image-to-video também permite um agendamento que trata os frames iniciais como igualmente importantes
  • Para reduzir o drifting causado por erros acumulados na geração de vídeos longos, ele usa amostragem bidirecional que quebra a causalidade; o inverted anti-drifting sampling é adequado para image-to-video

Empacotamento de contexto de frames de entrada no FramePack

  • FramePack é uma abordagem em que modelos de Next-Frame ou Next-Frame-Section Prediction recebem vários frames de entrada e geram por difusão novos frames
  • O desempenho-alvo e as condições de uso são os seguintes
    • gerar milhares de frames a 30 fps com um modelo de 13B em 6 GB de memória de GPU de notebook
    • fazer fine-tuning de um modelo de vídeo 13B com batch size 64 em um único nó 8xA100/H100
    • geração a 2,5 s/frame antes de otimizações em uma RTX 4090 pessoal, e 1,5 s/frame usando teacache
    • sem timestep distillation
  • O ponto central é que, em vez de simplesmente concatenar as imagens dos frames de entrada, ele organiza comprimentos de contexto diferentes por frame em um layout lógico de memória de GPU
  • O comprimento de contexto de cada frame é controlado por patchifying kernels diferentes
    • no HunyuanVideo, um frame 480p tem cerca de 1536 tokens ao usar o patchifying kernel (1, 2, 2)
    • ao mudar para o patchifying kernel (2, 4, 4), isso cai para 192 tokens por frame
  • Frames mais importantes, como os que estão mais próximos do alvo da próxima predição de frame, recebem um contexto mais longo
  • A complexidade de computação em streaming é O(1), não O(nlogn) nem O(n)

Agendamento e prevenção de drift

  • O FramePack Scheduling suporta casos em que a importância dos frames não segue um padrão simples, em que a taxa de compressão muda, ou em que frames definidos pelo usuário devem ser tratados como mais importantes
  • Em image-to-video, como o primeiro frame é importante, pode-se usar um agendamento que torna os frames iniciais igualmente importantes
  • Todos os agendamentos são O(1), e a avaliação de vários agendamentos está incluída no Paper
  • Em modelos de Next-Frame Prediction, drifting, em que a qualidade do vídeo cai conforme ele fica mais longo, é um problema comum
    • ao repetir como entrada o último frame gerado para criar vídeos longos, o resultado se deteriora rapidamente após 5 a 6 iterações, e pode sofrer forte degradação após cerca de 10 iterações
    • esse problema também é chamado de error accumulation ou exposure bias
  • Experimentos com métodos existentes, como history noise augmentation, special cfg guidance e rolling diffusion timesteps, também estão incluídos no artigo
  • Para lidar com o drifting de forma fundamental, é preciso quebrar a causalidade e tornar a amostragem bidirecional
    • apenas a vanilla sampling é causal
    • anti-drifting sampling e inverted anti-drifting sampling são abordagens bidirecionais
    • o inverted anti-drifting sampling trata o primeiro frame como alvo aproximado em toda a inferência, sendo adequado para image-to-video

Condições do demo e materiais de referência

  • Os resultados de demonstração foram calculados com um notebook RTX 3060 6GB e a variante 13B HY
    • image-to-5-seconds: 30fps, 150 frames
    • image-to-60-seconds: 30fps, 1800 frames
    • para se adequar ao repositório GitHub, os vídeos foram comprimidos em h264crf18
  • Como materiais relacionados, são fornecidos Paper, Code e FramePack-P1 Preview

1 comentários

 
GN⁺ 2025-04-21
Opiniões no Hacker News
  • Esse cara é um gênio. Talvez alguns não saibam, mas o ControlNet também foi criado por ele.
    É significativo por ser o primeiro modelo de geração de vídeo realmente utilizável que roda em hardware de consumidor, e espero que em breve também saia suporte a poses no ControlNet.

    • O IC-Light também foi feito por ele. Fico curioso por que ele ainda contribui para o open source.
      Grandes empresas devem ter feito propostas enormes; ele é realmente muito talentoso.
    • Não mexi direito com geração de vídeo porque sou impaciente, mas o Wan também não é bem decente em hardware comum?
  • É engraçado como ele parece querer fazer todo mundo dançar. Até uma pessoa sentada para uma entrevista começa a dançar sentada.

    • Provavelmente porque há dança no prompt. Se mudar o prompt, deve dar para fazê-la realizar outras ações, mas talvez fique menos divertido.
    • Parece ser influência de um grande dataset público de treinamento do TikTok usado por muitos pesquisadores de vídeo.
    • Observação interessante.
      Em imagens estáticas, sempre acabam procurando olhos; em vídeos, sempre acabam procurando dança.
  • Os exemplos são bem impressionantes, mas os recursos usados para criá-los são, na prática, bem modestos. Parece que a inferência também pode rodar em hardware de consumidor da geração anterior.
    Um dia eu gostaria de ver números de throughput de inferência em uma 5090.

  • Será que isso também poderia ser feito na direção espacial? Por exemplo, em vez de gerar uma imagem de uma vez só, será que daria para gerá-la de cima para baixo?

  • Será que isso poderia ser usado para interpolação de vídeo, em vez de extrapolação?

    • O “inverted anti-drifting” mencionado no artigo é basicamente algo próximo de extrapolar bastante primeiro e depois interpolar no sentido inverso.
  • Impressionante. Com mais recursos, como RAM, poderia ficar mais rápido? Também fico curioso se seria possível extrair mais velocidade em uma H100 ou H200.

  • Parece que, na prática, a única ação que ele consegue fazer é dançar.

    • Há vários movimentos que não são dança. Só há um ou dois exemplos em que o movimento dos pés não é dança, mas não são só os pés que se mexem.
    • Como ele também aceita prompt de texto junto com a imagem de entrada, é bem provável que tenham colocado dança nos exemplos.