Difusão de vídeo estável

por Difusão de vídeo estável

Adicione as imagens de que necessita arrastando e largando ou carregando imagens locais. Os modelos serão processados rapidamente,

imagem 21
imagem 20

clique no botão gerar abaixo. Comece a gerar, aqui porque está a correr na memória de vídeo A100. Vai demorar mais tempo. O efeito de imagem para vídeo aparecerá em apenas 177 segundos após a geração.

imagem 22
imagem 22 1

Difusão de vídeo estável é estável vídeo modelo de difusão latente para a geração de texto para vídeo e imagem para vídeo de alta resolução e de última geração. Recentemente, os modelos de difusão latente para a síntese de imagens 2D foram transformados em modelos de vídeo generativos, inserindo camadas temporais e ajustando-os em pequenos conjuntos de dados de vídeo de alta qualidade. No entanto, os métodos de treinamento na literatura variam muito, e o campo ainda não chegou a um acordo sobre uma estratégia unificada para dados de vídeo. Neste documento, identificamos e avaliamos três fases distintas para o treino bem-sucedido de um LDM (Latent Diffusion Model) de vídeo: pré-treino de texto para imagem, pré-treino de vídeo e afinação de vídeo de alta qualidade.

Este vídeo estável O modelo de difusão fornece um novo método para produzir vídeos de alta qualidade. Toma texto ou imagens como entrada e gera vídeos realistas relacionados com o conteúdo de entrada. Este modelo tem um vasto potencial de aplicação na produção de filmes, realidade virtual, desenvolvimento de jogos e outros domínios.

A investigação sobre a difusão estável de vídeo é crucial para melhorar a tecnologia de geração de vídeo. Fornece aos investigadores um quadro para explorar melhor os métodos de formação e as estratégias de dados para os modelos de geração de vídeo, a fim de melhorar a qualidade e a fidelidade dos vídeos gerados.

Estabilidade IA, uma conhecida empresa de desenho com IA, entrou finalmente no sector dos vídeos gerados por IA.

imagem 18

Na terça-feira desta semana, Difusão de vídeo estável, um modelo de geração de vídeo baseado na Difusão Estável, foi lançado e a comunidade de IA começou imediatamente a discuti-lo.

Cartão de modelo de imagem para vídeo de difusão de vídeo estável

Difusão de vídeo estável (SVD) Imagem para vídeo é um modelo de difusão que recebe uma imagem fixa como quadro de condicionamento e gera um vídeo a partir dela.

640
640 1
640 2

(SVD) Image-to-Video é um modelo de difusão latente treinado para gerar pequenos clips de vídeo a partir de um condicionamento de imagem. Este modelo foi treinado para gerar 25 fotogramas com uma resolução de 576×1024, tendo em conta um fotograma de contexto do mesmo tamanho, ajustado de SVD Imagem-para-Vídeo [14 fotogramas]. Também afinamos o amplamente utilizado f8-decodificador para garantir a consistência temporal. Por uma questão de conveniência, fornecemos adicionalmente o modelo com o descodificador padrão de frame-wise aqui.

  • Desenvolvido por: Estabilidade IA
  • Financiado por: Estabilidade IA
  • Tipo de modelo: Modelo gerador de imagem para vídeo
  • Afinado a partir do modelo: SVD Imagem-para-Vídeo [14 fotogramas]

Para fins de investigação, recomendamos a nossa modelos generativos Repositório Github (https://github.com/Stability-AI/generative-models), que implementa os quadros de difusão mais populares (tanto de formação como de inferência).

O gráfico acima avalia a preferência dos utilizadores por SVD-Image-to-Video em relação a GEN-2 e PikaLabs. O SVD-Image-to-Video é preferido pelos votantes humanos em termos de qualidade de vídeo. Para mais detalhes sobre o estudo do utilizador, consulte o trabalho de investigação

O modelo destina-se apenas a fins de investigação. As possíveis áreas e tarefas de investigação incluem

  • Investigação sobre modelos generativos.
  • Implantação segura de modelos susceptíveis de gerar conteúdos nocivos.
  • Sondar e compreender as limitações e os enviesamentos dos modelos generativos.
  • Geração de obras de arte e utilização em design e outros processos artísticos.
  • Aplicações em ferramentas educativas ou criativas.

As utilizações excluídas são descritas a seguir.

O modelo não foi treinado para ser uma representação factual ou verdadeira de pessoas ou eventos, pelo que a sua utilização para gerar esse tipo de conteúdo está fora do âmbito das capacidades deste modelo. O modelo não deve ser utilizado de forma a violar os princípios da Stability AI Política de utilização aceitável.

  • Os vídeos gerados são bastante curtos (<= 4 segundos) e o modelo não atinge um fotorrealismo perfeito.
  • O modelo pode gerar vídeos sem movimento ou panorâmicas de câmara muito lentas.
  • O modelo não pode ser controlado através de texto.
  • O modelo não pode apresentar texto legível.
  • Os rostos e as pessoas em geral podem não ser gerados corretamente.
  • A parte de auto-codificação do modelo é com perdas.

O modelo destina-se apenas a fins de investigação.

Verificar https://github.com/Stability-AI/generative-models

imagem 18

Modelos generativos da Stability AI

amostra1

21 de novembro de 2023

  • Estamos a lançar o Stable Video Diffusion, um modelo de imagem para vídeo, para fins de investigação:
    • SVD: Este modelo foi treinado para gerar 14 fotogramas com uma resolução de 576×1024, dado um fotograma de contexto do mesmo tamanho. Utilizamos o codificador de imagem padrão do SD 2.1, mas substituímos o descodificador por um descodificador temporalmente consciente descodificador de cintilação.
    • SVD-XT: A mesma arquitetura que SVD mas aperfeiçoado para a geração de 25 fotogramas.
    • Oferecemos uma demonstração em streamlit scripts/demo/video_sampling.py e um script python autónomo scripts/sampling/simple_video_sample.py para a inferência de ambos os modelos.
    • Juntamente com o modelo, lançamos um relatório técnico.

26 de julho de 2023

amostra2

4 de julho de 2023

  • Já está disponível um relatório técnico sobre o SDXL aqui.

22 de junho de 2023

  • Estamos a lançar dois novos modelos de difusão para fins de investigação:
    • SDXL-base-0.9: O modelo de base foi treinado numa variedade de rácios de aspeto em imagens com resolução 1024^2. O modelo de base utiliza OpenCLIP-ViT/G e CLIP-ViT/L para a codificação de texto, enquanto o modelo do refinador utiliza apenas o modelo OpenCLIP.
    • SDXL-refinador-0.9: O refinador foi treinado para eliminar pequenos níveis de ruído de dados de alta qualidade e, como tal, não se espera que funcione como um modelo de texto para imagem; em vez disso, só deve ser utilizado como um modelo de imagem para imagem.

Se pretender ter acesso a estes modelos para a sua investigação, candidate-se através de uma das ligações seguintes: SDXL-0.9-Modelo de baseSDXL-0.9-Refinador. Isto significa que pode candidatar-se a qualquer uma das duas ligações - e se lhe for concedido - pode aceder a ambas. Inicie sessão na sua conta Hugging Face com o e-mail da sua organização para solicitar o acesso. Tencionamos lançar uma versão completa em breve (julho).

Filosofia geral

A modularidade é rei. Este repositório implementa uma abordagem orientada para a configuração onde construímos e combinamos submódulos chamando instantiate_from_config() em objectos definidos em configurações yaml. Veja configs/ para muitos exemplos.

Registo de alterações da versão antiga ldm base de código

Para a formação, utilizamos PyTorch Lightningmas deve ser fácil utilizar outros invólucros de formação em torno dos módulos de base. A classe principal do modelo de difusão (anteriormente LatenteDifusão, agora Motor de difusão) foi limpo:

  • Acabaram-se as subclasses extensas! Agora lidamos com todos os tipos de entradas de condicionamento (vectores, sequências e condicionamentos espaciais, e todas as suas combinações) numa única classe: GeneralConditioner, ver sgm/modules/encoders/modules.py.
  • Separamos os guias (como o guia sem classificador, ver sgm/modules/diffusionmodules/guiders.py) dos colectores de amostras (sgm/modules/diffusionmodules/sampling.py), e os colectores de amostras são independentes do modelo.
  • Adoptamos a "estrutura do denoiser" para treino e inferência (a alteração mais notável é provavelmente a opção de treinar modelos de tempo contínuo):
    • Os modelos de tempo discreto (denoisers) são simplesmente um caso especial dos modelos de tempo contínuo (denoisers); ver sgm/modules/diffusionmodules/denoiser.py.
    • As seguintes características são agora independentes: ponderação da função de perda por difusão (sgm/modules/diffusionmodules/denoiser_weighting.py), o pré-condicionamento da rede (sgm/modules/diffusionmodules/denoiser_scaling.py), e amostragem dos níveis de ruído durante a formação (sgm/modules/diffusionmodules/sigma_sampling.py).
  • Os modelos de auto-codificação também foram melhorados.

1. Clonar o repositório

git clone [email protected]:Stability-AI/generative-models.git cd generative-models

2. Configurar o virtualenv

Isto assumindo que navegou para o modelos generativos raiz depois de o clonar.

NOTA: Isto é testado em python3.10. Para outras versões do python, poderá encontrar conflitos de versão.

PyTorch 2.0# instalar pacotes necessários a partir do pypi python3 -m venv .pt2 source .pt2/bin/activate pip3 install -r requirements/pt2.txt

3. Instalar sgm

pip3 install .

4. Instalar sdata para a formação

pip3 install -e git+https://github.com/Stability-AI/datapipelines.git@main#egg=sdata

Embalagem

Este repositório usa empacotamento compatível com PEP 517 usando Escotilha.

Para construir uma roda distribuível, instale escotilha e executar construção de escotilhas (especificando -t roda irá saltar a construção de um sdist, que não é necessário).

pip install hatch
hatch build -t wheel

Encontrará o pacote construído em dist/. Pode instalar a roda com pip install dist/*.whl.

Note-se que o pacote não especifica atualmente as dependências; terá de instalar manualmente os pacotes necessários, dependendo do seu caso de utilização e da versão do PyTorch.

Fornecemos um iluminado demonstração para amostragem texto-imagem e imagem-imagem em scripts/demo/sampling.py. Fornecemos hashes de ficheiro para o ficheiro completo, bem como apenas para os tensores guardados no ficheiro ( ver Especificações do modelo para um script para avaliar isso). Atualmente, são suportados os seguintes modelos:

  • SDXL-base-1.0Hash do ficheiro (sha256): 31e35c80fc4829d14f90153f4c74cd59c90b779f6afe05a74cd6120b893f7e5b Hash de Tensordata (sha256): 0xd7a9105a900fd52748f20725fe52fe52b507fd36bee4fc107b1550a26e6ee1d7
  • SDXL-refinador-1.0Hash do ficheiro (sha256): 7440042bbdc8a24813002c09b6b69b64dc90fded4472613437b7f55f9b7d9c5f Hash de Tensordata (sha256): 0x1a77d21bebc4b4de78c474a90cb74dc0d2217caf4061971dbfa75ad406b75d81
  • SDXL-base-0.9
  • SDXL-refinador-0.9
  • SD-2.1-512
  • SD-2.1-768

Pesos para SDXL:

SDXL-1.0: Os pesos da SDXL-1.0 estão disponíveis (sujeitos a um CreativeML Open RAIL++-M licença) aqui:

SDXL-0.9: Os pesos da SDXL-0.9 estão disponíveis e sujeitos a um licença de investigação. Se pretender ter acesso a estes modelos para a sua investigação, solicite-o através de uma das ligações seguintes: Modelo SDXL-base-0.9SDXL-refinador-0.9. Isto significa que pode candidatar-se a qualquer uma das duas ligações - e se lhe for concedido - pode aceder a ambas. Inicie sessão na sua conta Hugging Face com o e-mail da sua organização para solicitar o acesso.

Depois de obter os pesos, coloque-os em pontos de controlo/. De seguida, inicie a demonstração utilizando

streamlit run scripts/demo/sampling.py --server.port

As imagens geradas com o nosso código utilizam o marca de água invisível para incorporar uma marca de água invisível na saída do modelo. Também fornecemos um script para detetar facilmente essa marca de água. Tenha em atenção que esta marca de água não é a mesma que nas versões anteriores do Stable Diffusion 1.x/2.x.

Para executar o script, é necessário ter uma instalação funcional como acima ou tentar uma experimental importar utilizando apenas uma quantidade mínima de pacotes:python -m venv .detect source .detect/bin/activate pip install "numpy>=1.17" "PyWavelets>=1.1.1" "opencv-python>=4.1.0.25" pip install -no-deps invisible-watermark

Para executar o script, é necessário ter uma instalação funcional, como acima. O script pode então ser utilizado das seguintes formas (não se esqueça de ativar previamente o seu ambiente virtual, por exemplo fonte .pt1/bin/activate):# testar um único ficheiro python scripts/demo/detect.py # testar vários ficheiros de uma vez python scripts/demo/detect.py ... # testar todos os ficheiros numa pasta específica python scripts/demo/detect.py /*

Estamos a fornecer exemplos de configurações de formação em configs/example_training. Para iniciar uma formação, execute

python main.py --base configs/ configs/

onde as configurações são fundidas da esquerda para a direita (as configurações posteriores substituem os mesmos valores). Isto pode ser utilizado para combinar configurações de modelo, treino e dados. No entanto, todas elas também podem ser definidas numa única configuração. Por exemplo, para executar um treino de modelo de difusão baseado em píxeis com condições de classe no MNIST, executepython main.py -base configs/example_training/toy/mnist_cond.yaml

NOTA 1: Utilizar as configurações do conjunto de dados não brinquedo configs/example_training/imagenet-f8_cond.yamlconfigs/example_training/txt2img-clipl.yaml e configs/example_training/txt2img-clipl-legacy-ucg-training.yaml para treino necessitará de edições dependendo do conjunto de dados utilizado (que se espera que seja armazenado num ficheiro tar na pasta formato do conjunto de dados da web). Para encontrar as partes que devem ser adaptadas, procurar as observações que contenham UTILIZADOR: na respectiva configuração.

NOTA 2: Este repositório suporta tanto pytorch1.13 e pitão2para a formação de modelos generativos. No entanto, para o treino de autoencoders como, por exemplo, em configs/example_training/autoencoder/kl-f4/imagenet-attnfree-logvar.yaml, apenas pytorch1.13 é suportado.

NOTA 3: Treinar modelos generativos latentes (como, por exemplo, em configs/example_training/imagenet-f8_cond.yaml) requer a recuperação do ponto de controlo a partir de Cara de abraço e substituindo o CKPT_PATH espaço reservado em esta linha. O mesmo deve ser feito para as configurações de texto para imagem fornecidas.

Condicionador

GeneralConditioner é configurado através do condicionador_config. O seu único atributo é emb_models, uma lista de diferentes incorporadores (todos herdados de AbstractEmbModel) que são utilizados para condicionar o modelo generativo. Todas as incorporações devem definir se são ou não treináveis (is_trainable, predefinição Falso), é utilizada uma taxa de abandono de orientação sem classificador (ucg_rate, predefinição 0), e uma tecla de entrada (chave_de_entrada), por exemplo, txt para condicionamento de texto ou cls para o condicionamento de classes. Ao calcular os condicionamentos, o integrador obterá lote[chave_de_entrada] como entrada. Atualmente, suportamos condicionantes de duas a quatro dimensões e as condicionantes de diferentes encaixes são concatenadas de forma adequada. Note-se que a ordem dos condicionantes no condicionador_config é importante.

Rede

A rede neural é definida através da função configuração_de_rede. Antigamente chamava-se unet_configo que não é suficientemente geral, uma vez que planeamos fazer experiências com backbones de difusão baseados em transformadores.

Perda

A perda é configurada através de loss_config. Para a formação do modelo de difusão padrão, é necessário definir sigma_sampler_config.

Tal como referido anteriormente, o amostrador é independente do modelo. No modelo sampler_configdefinimos o tipo de solucionador numérico, o número de passos, o tipo de discretização, bem como, por exemplo, os invólucros de orientação para uma orientação sem classificador.

Para formação em grande escala, recomendamos a utilização dos pipelines de dados do nosso condutas de dados projeto. O projeto está contido no requisito e é automaticamente incluído quando se seguem os passos do Secção de instalação. Os pequenos conjuntos de dados do tipo mapa devem ser definidos aqui no repositório (por exemplo, MNIST, CIFAR-10, ...) e devolver um ditado de chaves/valores de dados, por exemplo,example = {"jpg": x, # este é um tensor -1...1 chw "txt": "uma imagem bonita"}

onde esperamos imagens em -1...1, formato de canal primeiro.

pt_PTPortuguese