Diffusion vidéo stable

par Diffusion vidéo stable

Veuillez ajouter les images dont vous avez besoin par glisser-déposer ou en téléchargeant des images locales. Les modèles seront traités rapidement,

image 21
image 20

cliquez sur le bouton générer ci-dessous. Commencez à générer, ici parce qu'il fonctionne sur la mémoire vidéo A100. Cela prendra plus de temps. L'effet de transformation de l'image en vidéo apparaîtra dans les 177 secondes suivant la génération.

image 22
image 22 1

Diffusion vidéo stable est stable vidéo pour la génération de texte-vidéo et d'image-vidéo à haute résolution et à la pointe de la technologie. Récemment, des modèles de diffusion latente pour la synthèse d'images 2D ont été transformés en modèles vidéo génératifs en insérant des couches temporelles et en les affinant sur de petits ensembles de données vidéo de haute qualité. Toutefois, les méthodes d'entraînement utilisées dans la littérature varient considérablement et le domaine n'est pas encore parvenu à s'accorder sur une stratégie unifiée pour les données vidéo. Dans cet article, nous identifions et évaluons trois étapes distinctes pour une formation réussie d'un MLD vidéo (modèle de diffusion latent) : préformation texte-image, préformation vidéo et mise au point vidéo de haute qualité.

Le présent vidéo stable fournit une nouvelle méthode pour produire des vidéos de haute qualité. Il prend du texte ou des images en entrée et génère des vidéos réalistes en rapport avec le contenu d'entrée. Ce modèle a de nombreuses applications potentielles dans la production de films, la réalité virtuelle, le développement de jeux et d'autres domaines.

La recherche sur la diffusion vidéo stable est essentielle pour améliorer la technologie de génération de vidéos. Elle fournit aux chercheurs un cadre pour explorer plus avant les méthodes de formation et les stratégies de données pour les modèles de génération vidéo afin d'améliorer la qualité et la fidélité des vidéos générées.

Stabilité AIune société bien connue spécialisée dans le dessin d'IA, s'est enfin lancée dans l'industrie de la vidéo générée par l'IA.

image 18

Le mardi de cette semaine, Diffusion vidéo stableun modèle de génération de vidéos basé sur la diffusion stable, est sorti et la communauté de l'IA a immédiatement commencé à en discuter.

Carte modèle image-vidéo à diffusion vidéo stable

Diffusion vidéo stable (SVD) De l'image à la vidéo est un modèle de diffusion qui prend une image fixe comme cadre de conditionnement et génère une vidéo à partir de celle-ci.

640
640 1
640 2

(SVD) Image-to-Video est un modèle de diffusion latente entraîné à générer de courts clips vidéo à partir d'une image conditionnée. Ce modèle a été entraîné à générer 25 images à une résolution de 576×1024 à partir d'une image de contexte de la même taille. SVD Image-to-Video [14 images]. Nous affinons également le système largement utilisé f8-décodeur pour la cohérence temporelle. Pour des raisons de commodité, nous fournissons également le modèle avec le décodeur standard par image ici.

  • Développé par : Stabilité AI
  • Financé par : Stabilité AI
  • Type de modèle : Modèle génératif image-vidéo
  • Ajusté à partir du modèle : SVD Image-to-Video [14 images]

À des fins de recherche, nous recommandons notre modèles génératifs Dépôt Github (https://github.com/Stability-AI/generative-models), qui met en œuvre les cadres de diffusion les plus populaires (à la fois pour la formation et l'inférence).

Le graphique ci-dessus évalue la préférence des utilisateurs pour SVD-Image-to-Video par rapport à SVD-Image-to-Video. GEN-2 et PikaLabs. Les votants humains préfèrent SVD-Image-to-Video en termes de qualité vidéo. Pour plus de détails sur l'étude de l'utilisateur, nous nous référons à l'étude de l'utilisateur. document de recherche

Le modèle est destiné à des fins de recherche uniquement. Les domaines de recherche et les tâches possibles sont les suivants

  • Recherche sur les modèles génératifs.
  • Déploiement en toute sécurité de modèles susceptibles de générer des contenus préjudiciables.
  • Sonder et comprendre les limites et les biais des modèles génératifs.
  • Création d'œuvres d'art et utilisation dans la conception et d'autres processus artistiques.
  • Applications dans les outils éducatifs ou créatifs.

Les utilisations exclues sont décrites ci-dessous.

Le modèle n'a pas été formé pour être une représentation factuelle ou véridique de personnes ou d'événements. Par conséquent, l'utilisation du modèle pour générer un tel contenu est hors de portée des capacités de ce modèle. Le modèle ne doit pas être utilisé d'une manière qui enfreindrait les principes de stabilité de l'IA. Politique d'utilisation acceptable.

  • Les vidéos générées sont assez courtes (<= 4sec), et le modèle n'atteint pas un photoréalisme parfait.
  • Le modèle peut générer des vidéos sans mouvement ou des panoramiques de caméra très lents.
  • Le modèle ne peut pas être contrôlé par le texte.
  • Le modèle ne peut pas rendre un texte lisible.
  • Les visages et les personnes en général peuvent ne pas être générés correctement.
  • La partie auto-codage du modèle est avec perte.

Le modèle est destiné à des fins de recherche uniquement.

Vérifier https://github.com/Stability-AI/generative-models

image 18

Modèles génératifs par Stability AI

échantillon1

21 novembre 2023

  • Nous publions Stable Video Diffusion, un modèle image-vidéo, à des fins de recherche :
    • SVD: Ce modèle a été entraîné à générer 14 images à une résolution de 576×1024 à partir d'une image de contexte de la même taille. Nous utilisons l'encodeur d'images standard de SD 2.1, mais nous remplaçons le décodeur par un encodeur décodeur de déflexion.
    • SVD-XT: Même architecture que SVD mais ajustée pour la génération de 25 images.
    • Nous fournissons une démonstration éclairée scripts/demo/video_sampling.py et un script python autonome scripts/sampling/simple_video_sample.py pour l'inférence des deux modèles.
    • Parallèlement au modèle, nous publions un rapport technique.

26 juillet 2023

échantillon2

4 juillet 2023

  • Un rapport technique sur SDXL est maintenant disponible ici.

22 juin 2023

  • Nous publions deux nouveaux modèles de diffusion à des fins de recherche :
    • SDXL-base-0.9: Le modèle de base a été entraîné sur une variété de rapports d'aspect sur des images avec une résolution de 1024^2. Le modèle de base utilise OpenCLIP-ViT/G et CLIP-ViT/L pour l'encodage du texte, alors que le modèle du raffineur n'utilise que le modèle OpenCLIP.
    • SDXL-refiner-0.9: L'affineur a été formé pour débruiter de faibles niveaux de bruit de données de haute qualité et, en tant que tel, ne devrait pas fonctionner comme un modèle texte-image ; il devrait plutôt être utilisé comme un modèle image-image.

Si vous souhaitez accéder à ces modèles pour vos recherches, veuillez utiliser l'un des liens suivants : SDXL-0.9-Modèle de baseet SDXL-0.9-Refiner. Cela signifie que vous pouvez demander n'importe lequel des deux liens - et si vous êtes accepté - vous pouvez accéder aux deux. Veuillez vous connecter à votre compte Hugging Face avec l'adresse électronique de votre organisation pour demander l'accès. Nous prévoyons une version complète bientôt (juillet).

Philosophie générale

La modularité est reine. Ce repo implémente une approche basée sur la configuration où nous construisons et combinons des sous-modules en appelant instantiate_from_config() sur les objets définis dans les configurations yaml. Voir configs/ pour de nombreux exemples.

Changelog de l'ancienne version ldm base de code

Pour la formation, nous utilisons PyTorch Lightningmais il devrait être facile d'utiliser d'autres enveloppes de formation autour des modules de base. La classe principale du modèle de diffusion (anciennement Diffusion latente, maintenant Moteur de diffusion) a été nettoyée :

  • Finies les sous-classes étendues ! Nous traitons désormais tous les types d'entrées de conditionnement (vecteurs, séquences et conditionnements spatiaux, ainsi que toutes leurs combinaisons) dans une seule classe : Conditionneur général, voir sgm/modules/encoders/modules.py.
  • Nous séparons les guides (tels que les guides sans classificateur, voir sgm/modules/diffusionmodules/guiders.py) des échantillonneurs (sgm/modules/diffusionmodules/sampling.py), et les échantillonneurs sont indépendants du modèle.
  • Nous adoptons la "cadre de débruitage" pour la formation et l'inférence (le changement le plus notable est probablement l'option de formation de modèles à temps continu) :
    • Les modèles à temps discret (débruiteurs) sont simplement un cas particulier des modèles à temps continu (débruiteurs) ; voir sgm/modules/diffusionmodules/denoiser.py.
    • Les caractéristiques suivantes sont désormais indépendantes : pondération de la fonction de perte de diffusion (sgm/modules/diffusionmodules/denoiser_weighting.py), le préconditionnement du réseau (sgm/modules/diffusionmodules/denoiser_scaling.py), et l'échantillonnage des niveaux de bruit pendant la formation (sgm/modules/diffusionmodules/sigma_sampling.py).
  • Les modèles d'auto-codage ont également été nettoyés.

1. Cloner le repo

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

2. Mise en place de l'environnement virtuel

Cela suppose que vous ayez navigué jusqu'à la rubrique modèles génératifs après l'avoir cloné.

NOTE : Il est testé dans le cadre de python3.10. Pour d'autres versions de Python, vous pouvez rencontrer des conflits de version.

PyTorch 2.0# installer les paquets requis à partir de pypi python3 -m venv .pt2 source .pt2/bin/activate pip3 install -r requirements/pt2.txt

3. Installer sgm

pip3 install .

4. Installer sdata pour la formation

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

Emballage

Ce référentiel utilise un packaging conforme à PEP 517 en utilisant Hachette.

Pour créer une roue distribuable, installez éclosion et exécuter construction de la trappe (en précisant -Roue d'entraînement évitera de construire une sdist, ce qui n'est pas nécessaire).

pip install hatch
hatch build -t wheel

Vous trouverez le paquet construit dans dist/. Vous pouvez installer la roue avec pip install dist/*.whl.

Notez que le paquet ne pas spécifie actuellement des dépendances ; vous devrez installer manuellement les paquets requis, en fonction de votre cas d'utilisation et de la version de PyTorch.

Nous fournissons un éclairé par un courant démo pour l'échantillonnage texte-image et image-image en scripts/demo/sampling.py. Nous fournissons des hachages de fichier pour le fichier complet ainsi que pour les seuls tenseurs sauvegardés dans le fichier ( voir Modèle Spec pour obtenir un script permettant de l'évaluer). Les modèles suivants sont actuellement pris en charge :

  • SDXL-base-1.0Fichier Hash (sha256) : 31e35c80fc4829d14f90153f4c74cd59c90b779f6afe05a74cd6120b893f7e5b Tensordata Hash (sha256) : 0xd7a9105a900fd52748f20725fe52fe52b507fd36bee4fc107b1550a26e6ee1d7
  • SDXL-refiner-1.0Fichier Hash (sha256) : 7440042bbdc8a24813002c09b6b69b64dc90fded4472613437b7f55f9b7d9c5f Tensordata Hash (sha256) : 0x1a77d21bebc4b4de78c474a90cb74dc0d2217caf4061971dbfa75ad406b75d81
  • SDXL-base-0.9
  • SDXL-refiner-0.9
  • SD-2.1-512
  • SD-2.1-768

Poids pour SDXL:

SDXL-1.0 : Les poids de SDXL-1.0 sont disponibles (sous réserve d'une CreativeML Open RAIL++-M licence) ici :

SDXL-0.9 : Les poids de SDXL-0.9 sont disponibles et font l'objet d'un licence de recherche. Si vous souhaitez accéder à ces modèles pour vos recherches, veuillez utiliser l'un des liens suivants : Modèle SDXL-base-0.9et SDXL-refiner-0.9. Cela signifie que vous pouvez demander n'importe lequel des deux liens - et si vous êtes accepté - vous pouvez accéder aux deux. Veuillez vous connecter à votre compte Hugging Face avec l'adresse électronique de votre organisation pour demander l'accès.

Après avoir obtenu les poids, les placer dans points de contrôle/. Ensuite, démarrez la démo en utilisant

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

Les images générées avec notre code utilisent la balise filigrane invisible pour intégrer un filigrane invisible dans la sortie du modèle. Nous fournissons également un script permettant de détecter facilement ce filigrane. Veuillez noter que ce filigrane n'est pas le même que dans les versions précédentes de Stable Diffusion 1.x/2.x.

Pour exécuter le script, vous devez soit disposer d'une installation fonctionnelle comme ci-dessus, soit essayer un expérimental importation en utilisant seulement un nombre minimal de paquets: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

Pour exécuter le script, vous devez disposer d'une installation fonctionnelle telle que décrite ci-dessus. Le script est alors utilisable de la manière suivante (n'oubliez pas d'activer votre environnement virtuel au préalable, par ex. source .pt1/bin/activate):# tester un seul fichier python scripts/demo/detect.py # tester plusieurs fichiers à la fois python scripts/demo/detect.py ... # tester tous les fichiers d'un dossier spécifique python scripts/demo/detect.py /*

Nous fournissons des exemples de configuration de formation dans configs/exemple_formation. Pour lancer une formation, exécutez

python main.py --base configs/ configs/

où les configurations sont fusionnées de gauche à droite (les configurations ultérieures écrasent les mêmes valeurs). Cela peut être utilisé pour combiner les configurations de modèle, d'entraînement et de données. Cependant, tous ces éléments peuvent également être définis dans une seule configuration. Par exemple, pour lancer l'entraînement d'un modèle de diffusion basé sur les pixels et conditionné par classe sur MNIST, runpython main.py -base configs/example_training/toy/mnist_cond.yaml

NOTE 1 : Utilisation des configurations sans jeu de données de jouets configs/example_training/imagenet-f8_cond.yamlconfigs/example_training/txt2img-clipl.yaml et configs/example_training/txt2img-clipl-legacy-ucg-training.yaml pour l'entraînement nécessitera des modifications en fonction de l'ensemble de données utilisé (qui est censé être stocké dans un fichier tar dans le répertoire webdataset-format). Pour trouver les parties qui doivent être adaptées, recherchez les commentaires contenant UTILISATEUR : dans la configuration correspondante.

NOTE 2 : Ce référentiel prend en charge à la fois pytorch1.13 et pytorch2pour l'apprentissage des modèles génératifs. Cependant, pour l'apprentissage d'un autoencodeur, comme par exemple dans le cas de configs/example_training/autoencoder/kl-f4/imagenet-attnfree-logvar.yaml, seulement pytorch1.13 est pris en charge.

NOTE 3 : Formation de modèles génératifs latents (comme par exemple en configs/example_training/imagenet-f8_cond.yaml) nécessite la récupération du point de contrôle à partir de Visage étreint et en remplaçant le CKPT_PATH dans l'espace réservé à la cette ligne. Il en va de même pour les configurations texte-image fournies.

Conditionneur

Les Conditionneur général est configuré par le biais de l'option conditionneur_config. Son seul attribut est emb_models, une liste de différents encodeurs (tous hérités de Modèle abstrait) qui sont utilisés pour conditionner le modèle génératif. Tous les embedders doivent définir s'ils sont entraînables ou non (est_formable, par défaut Faux), un taux d'abandon de l'orientation sans classification est utilisé (ucg_rate, par défaut 0) et une touche de saisie (clé d'entrée), par exemple, txt pour le conditionnement des textes ou cls pour le conditionnement des classes. Lors du calcul des conditionnements, l'intégrateur obtiendra batch[input_key] en entrée. Nous prenons actuellement en charge des conditionnements de deux à quatre dimensions et les conditionnements de différents encastrements sont concaténés de manière appropriée. Notez que l'ordre des encastrements dans l'élément conditionneur_config est importante.

Réseau

Le réseau neuronal est paramétré à l'aide de la fonction configuration_du_réseau. On l'appelait autrefois unet_configce qui n'est pas assez général puisque nous prévoyons d'expérimenter des dorsales de diffusion basées sur des transformateurs.

Perte

La perte est configurée par loss_config. Pour l'apprentissage d'un modèle de diffusion standard, vous devrez définir sigma_sampler_config.

Comme indiqué ci-dessus, l'échantillonneur est indépendant du modèle. Dans le sampler_configNous définissons le type de solveur numérique, le nombre d'étapes, le type de discrétisation, ainsi que, par exemple, les enveloppes de guidage pour un guidage sans classificateur.

Pour l'entraînement à grande échelle, nous recommandons d'utiliser les pipelines de données de notre site web pipelines de données le projet. Le projet est contenu dans l'exigence et est automatiquement inclus lorsque l'on suit les étapes de la section Section d'installation. Les petits ensembles de données de type carte doivent être définis ici dans le référentiel (par exemple, MNIST, CIFAR-10, ...), et retourner un dict de clés/valeurs de données, par exemple,exemple = {"jpg" : x, # ceci est un tenseur -1...1 chw "txt" : "une belle image"}

où nous attendons des images au format -1...1, canal par canal.

fr_FRFrench