Esta IA da Netflix Remove Qualquer Ator de Qualquer Cena (Análise do Modelo VOID)
BBetter Stack
Computing/SoftwareMoviesPhotography/ArtInternet Technology
Transcript
00:00:00Uau, isso parece meio triste, pobre Kate Winslet, meu Deus, ali parada sozinha, com
00:00:09nenhum Jack.
00:00:11A Netflix acaba de lançar uma ferramenta de IA de código aberto muito interessante chamada Video Object and Interaction
00:00:17Deletion ou VOID.
00:00:19A maioria das ferramentas de vídeo com IA já é ótima para apagar objetos, isso não é novidade.
00:00:24Mas elas são terríveis em apagar as consequências desses objetos na cena.
00:00:29Por exemplo, se você remover uma bola de boliche atingindo os pinos, a maioria dos modelos deixa os pinos
00:00:34caindo sem motivo, mas o VOID tenta corrigir esse problema.
00:00:39É um novo framework da Netflix e da Insight que entende causa e efeito e modifica
00:00:44o conteúdo do vídeo com base nos objetos removidos.
00:00:47Neste vídeo, vamos analisar mais de perto este modelo, ver como funciona, e eu até
00:00:52criei um web app para testar este modelo em toda a sua glória, então faremos alguns testes de vídeo
00:00:57por conta própria.
00:00:58Vai ser muito divertido, então vamos lá.
00:01:05VOID significa Exclusão de Objetos de Vídeo e Interação.
00:01:09Para entender por que isso é tão importante, você precisa ver como o inpainting de vídeo geralmente
00:01:15funciona.
00:01:16As borrachas de IA padrão são basicamente o "content-aware fill" do Photoshop com esteroides.
00:01:20Elas olham para os pixels ao redor do buraco e tentam adivinhar o que deveria estar lá.
00:01:24Isso funciona para uma marca d'água ou uma pessoa parada, mas desmorona no momento em que
00:01:29há uma interação física.
00:01:31Se você remover uma garota fazendo um smoothie no liquidificador, uma IA normal apagará a pessoa,
00:01:36mas deixará o liquidificador girando e batendo sem motivo.
00:01:40Corrige a aparência, mas ignora a física dos outros objetos ao redor.
00:01:46O VOID foi projetado para resolver esse problema de interação fantasma, reimaginando uma realidade contrafactual.
00:01:53Basicamente, uma versão do vídeo onde aquele objeto ou pessoa nunca existiu em primeiro
00:01:57lugar.
00:01:58E a maneira como ele consegue isso é bem inteligente.
00:02:01Ele não começa a pintar imediatamente.
00:02:03Em vez disso, utiliza um sistema de duas etapas.
00:02:06No primeiro passo, há uma fase de raciocínio.
00:02:08Primeiro, o VOID usa um modelo de linguagem visual e o SAM2 (Segment Anything Model 2) para analisar
00:02:15a cena.
00:02:16Eu fiz um vídeo inteiro separado sobre como o SAM2 funciona, então dê uma olhada se tiver interesse.
00:02:22Enquanto o SAM2 cria um rastreamento perfeito do objeto que você quer remover, a IA se pergunta:
00:02:28"Se eu remover isso, o que mais muda?"
00:02:32Se você remover um dominó de uma fileira, a IA identifica que os outros dominós são casualmente
00:02:38afetados.
00:02:39Ela então cria o que os pesquisadores chamam de "Quad Mask", um mapa específico que diz ao
00:02:44modelo de difusão não apenas onde apagar, mas onde reescrever a física da área
00:02:50ao redor.
00:02:51E o passo dois é a geração e o refinamento.
00:02:54Uma vez gerado esse mapa, um modelo de difusão de vídeo gera a nova filmagem.
00:03:00Às vezes, esses modelos podem ser meio imprecisos, como objetos mudando de forma ou perdendo o contorno.
00:03:05Para corrigir isso, o VOID tem um segundo passo opcional.
00:03:08Ele usa algo chamado "flow warp noise" para travar essas formas no lugar, garantindo que,
00:03:14enquanto a física muda, os objetos restantes permaneçam sólidos e consistentes.
00:03:19Mas você deve estar se perguntando: como ensinar uma IA o que não aconteceu?
00:03:23A equipe da Netflix e da Insight não podia simplesmente filmar um acidente de carro e depois desfazê-lo na
00:03:28vida real para obter os dados de treinamento.
00:03:30Em vez disso, eles usaram ambientes sintéticos como o Kubrick.
00:03:34Eles rodaram milhares de simulações de física onde tinham uma versão antes e depois.
00:03:40Uma versão com colisão e outra onde o objeto nunca esteve lá.
00:03:44Ao mostrar as duas versões à IA, ela aprendeu a relação entre a presença de um objeto e
00:03:49seu impacto no ambiente.
00:03:51Tudo isso parece fascinante, mas vamos testar essa ferramenta nós mesmos.
00:03:57A melhor forma de executá-la seria usar uma GPU na nuvem, como um módulo RunPod rodando em
00:04:02uma GPU H100 ou algo equivalente.
00:04:05Mas já vou avisando: configurar não é nada simples.
00:04:10A documentação do GitHub tem muitas lacunas e informações enganosas.
00:04:14Para fazê-la funcionar corretamente, há algumas coisas que você precisa observar.
00:04:18Por exemplo, este comando provavelmente falhará porque nunca especificaram que você precisa
00:04:23do modelo SAM3 para este procedimento.
00:04:25E este outro comando pode falhar porque não especificaram que as "quad masks" devem ser nomeadas
00:04:30estritamente como quad_mask_0.mp4 para funcionar direito.
00:04:35Há muitos desses probleminhas não documentados aqui.
00:04:38E a demo do Gradio é legal se você já tiver uma máscara segmentada com o SAM2, mas eles
00:04:44não fornecem a interface gráfica para criar essa máscara.
00:04:48Então, eu construí um web app customizado que resolve todos esses problemas e oferece
00:04:54uma interface pronta que passa pela etapa de segmentação, pela etapa de inferência e
00:05:00até pelo sistema de dois passos.
00:05:02Você só precisa carregar seu vídeo, segmentar a máscara e renderizar o resultado final.
00:05:07E é exatamente isso que vamos fazer agora.
00:05:09Primeiro, você precisa iniciar uma instância no RunPod com uma GPU potente.
00:05:14Vou usar uma H100 para este teste.
00:05:17Na seção de template, certifique-se de aumentar o tamanho do container para 100 gigabytes.
00:05:22E na seção de portas, adicione a porta 8998, pois é por onde vamos expor
00:05:27nosso web app.
00:05:29Depois, basta acessar o pod via SSH, clonar meu repositório, entrar na pasta e rodar o comando
00:05:36run.sh.
00:05:38Ele também pedirá um token do Hugging Face para baixar os
00:05:42modelos; certifique-se de ter acesso ao repositório do SAM3, pois este é um modelo
00:05:48restrito e você precisa pedir permissão para usá-lo.
00:05:51Mas geralmente o processo é rápido e você é aprovado em poucos minutos.
00:05:55Você também precisará de uma chave de API do Gemini porque, na etapa de segmentação, o modelo
00:06:00usa o Gemini para determinar a estimativa de pose para uma geração precisa da quad mask.
00:06:06Tudo bem.
00:06:07Com essas credenciais em mãos, deixe o comando run.sh instalar tudo.
00:06:13Feito isso, podemos lançar o web app com o seguinte comando descrito
00:06:18aqui.
00:06:19Agora, na página do RunPod, clique nesta porta e isso abrirá nosso
00:06:24web app.
00:06:25E agora finalmente podemos começar a testar o modelo.
00:06:28Para o meu primeiro teste, usarei esta cena famosa de Matrix e tentarei remover
00:06:32o Neo da cena para ver o que acontece.
00:06:35A primeira coisa que você deve fazer é especificar o comando de remoção.
00:06:41Neste caso, podemos especificar algo como "remover o lutador de quimono branco
00:06:45da cena".
00:06:46Depois disso, chegamos à seção onde você segmenta alguns pontos ao redor do
00:06:51objeto ou pessoa que quer remover para que o modelo SAM2 saiba em qual forma focar
00:06:57e então especifica a pasta de saída onde salvaremos os arquivos de resultado.
00:07:02Lembre-se do nome desta pasta, pois este será o identificador único
00:07:06que usaremos em outras abas para identificar com qual vídeo estamos trabalhando.
00:07:11Depois disso, podemos prosseguir para a segunda aba, que executará nossa etapa de segmentação e
00:07:16o processo.
00:07:17Concluído isso, vamos para a aba 3, a etapa de inferência, onde
00:07:22o modelo tentará de fato remover o objeto ou pessoa desejada.
00:07:26Aqui precisamos digitar o nome daquela pasta novamente.
00:07:29E aqui precisamos de um prompt que descreva como o vídeo deve parecer sem a
00:07:34existência do objeto ou pessoa removida.
00:07:37No nosso caso, seria algo como "um lutador em um quimono escuro parado dentro
00:07:42de uma academia".
00:07:43Eles também recomendam não mencionar o objeto removido, apenas focar
00:07:48no que deve estar no vídeo, e rodar a inferência.
00:07:52Uma vez terminado, podemos ir para a aba de resultados e ver nosso vídeo final.
00:07:58Mais uma vez, precisamos especificar a pasta do vídeo.
00:08:01E pronto.
00:08:03Olhe só.
00:08:04É, parece que o Morpheus está lutando com um fantasma.
00:08:07Podemos ver que há algumas inconsistências na remoção das mãos e outras coisas.
00:08:12Não está perfeito, mas há outra coisa que podemos fazer para tentar melhorar.
00:08:18Podemos passá-lo pelo filtro de segunda etapa, na aba 4, para tentar obter resultados melhores.
00:08:24Após rodar o segundo passo, ganhamos esta janela adicional onde vemos o
00:08:29resultado do segundo passo.
00:08:32E, novamente, ainda parece meio estranho.
00:08:34Ainda parece que o Morpheus está lutando com um fantasma ou dançando.
00:08:39Como você pode ver, não funciona para todas as cenas.
00:08:42Algumas cenas ficarão bem estranhas, mas ele faz um bom trabalho removendo o Neo
00:08:48da cena completamente.
00:08:49Dito isso, vamos tentar mais dois exemplos divertidos.
00:08:53Aqui está a famosa cena de dança de La La Land.
00:08:56E aqui vou tentar remover Emma Stone da cena para ver o que acontece.
00:09:01Uau, olhe para isso.
00:09:03Parece quase impecável.
00:09:05Eu realmente acredito que o Ryan Gosling está dançando sozinho aqui.
00:09:09E veja o momento em que Emma Stone passa na frente de Ryan Gosling.
00:09:13Essa transição é quase imperceptível.
00:09:15Vemos alguns pequenos artefatos, mas no geral, uau, este é um resultado impressionante.
00:09:21De todos os resultados que testei, este foi o melhor.
00:09:24E, por algum motivo, achei que este seria o exemplo mais difícil.
00:09:28Surpreendentemente, este rendeu os melhores resultados de todos os testes que fiz.
00:09:33Certo.
00:09:34Quero tentar mais um exemplo.
00:09:35Neste, quero tentar remover Leonardo DiCaprio da famosa cena do Titanic e
00:09:41ver o que acontece.
00:09:42Oh, uau, isso parece meio triste.
00:09:48Pobre Kate Winslet.
00:09:49Meu Deus.
00:09:50Ali parada sozinha, sem o Jack.
00:09:53Isso parece interessante.
00:09:55Podemos ver que este modelo fez um ótimo trabalho removendo o Leo da cena.
00:09:59Embora possamos ver alguns artefatos sobrando no braço da Kate Winslet.
00:10:03E meu Deus, isso é tão bizarro.
00:10:06Ainda tem uma mão bizarra sobrando segurando o braço da Kate do outro lado.
00:10:10Ah não.
00:10:11Agora não consigo mais desver isso.
00:10:14Sinceramente, o erro foi meu por não ter segmentado aqueles pontos específicos para remoção
00:10:19na etapa de segmentação.
00:10:21Então a culpa é minha.
00:10:23Também vemos que o rosto da Kate Winslet se deforma um pouco.
00:10:26Então com certeza tem um pouco de "vale da estranheza" acontecendo aqui.
00:10:30No geral, acho que esta ferramenta cumpre o que promete.
00:10:33É apenas uma questão do vídeo específico e da natureza dele.
00:10:37Obviamente, não podemos forçar o Morpheus a ficar parado nesta cena.
00:10:41Mas se olharmos outros exemplos na página do projeto deles, são absolutamente incríveis.
00:10:46Acho que este modelo tem capacidades sólidas e talvez com treinamento extra
00:10:51fique ainda melhor.
00:10:52Então é isso, pessoal.
00:10:53Esse é o modelo VOID em poucas palavras.
00:10:55Sinceramente, me diverti muito testando isso.
00:10:58E como foi desenvolvido pela Netflix, estou super curioso para saber para que eles vão usar
00:11:03isso.
00:11:04Poderia ser usado para alterar narrativas de vídeo com base nas preferências ou escolhas do usuário?
00:11:09Semelhante a como a Netflix adicionou aquela experiência interativa do tipo escolha sua aventura
00:11:15no episódio Bandersnatch de Black Mirror?
00:11:17Vocês lembram disso?
00:11:18Quem sabe?
00:11:19Mas de qualquer forma, será muito interessante ver como o uso desta ferramenta evolui daqui para
00:11:23frente.
00:11:24E então, o que você acha desse framework?
00:11:27Para que tipo de casos de uso essa ferramenta seria útil?
00:11:30Conte-nos sua opinião na seção de comentários abaixo.
00:11:33E pessoal, se vocês gostam desse tipo de análise técnica, por favor, deixem seu like
00:11:37clicando no botão embaixo do vídeo.
00:11:39E também não se esqueça de se inscrever no nosso canal.
00:11:42Aqui foi o Andres da Better Stack e vejo vocês nos próximos vídeos.