Stabil videodiffusion

af Stabil videodiffusion

Tilføj de billeder, du har brug for, ved at trække og slippe eller uploade lokale billeder. Modellerne vil blive behandlet hurtigt,

billede 21
billede 20

klik på genereringsknappen nedenfor. Start genereringen her, fordi den kører på A100 videohukommelse. Det vil tage længere tid. Billede-til-video-effekten vises allerede 177 sekunder efter genereringen.

billede 22
billede 22 1

Stabil videodiffusion er en stabil Video diffusionsmodel til generering af tekst-til-video og billede-til-video i høj opløsning. For nylig blev latente diffusionsmodeller til 2D-billedsyntese omdannet til generative videomodeller ved at indsætte tidsmæssige lag og finjustere dem på små videodatasæt af høj kvalitet. Men træningsmetoderne i litteraturen varierer meget, og feltet er endnu ikke blevet enige om en samlet strategi for videodata. I denne artikel identificerer og evaluerer vi tre forskellige faser for vellykket træning af en video-LDM (Latent Diffusion Model): fortræning af tekst-til-billede, fortræning af video og finjustering af video i høj kvalitet.

Den her Stabil video Diffusionsmodellen giver en ny metode til at producere videoer af høj kvalitet. Den tager tekst eller billeder som input og genererer realistiske videoer, der er relateret til inputindholdet. Denne model har et bredt anvendelsespotentiale inden for filmproduktion, virtual reality, spiludvikling og andre områder.

Forskning i stabil videodiffusion er afgørende for at forbedre videogenereringsteknologien. Det giver forskere en ramme til yderligere at udforske træningsmetoder og datastrategier for videogenereringsmodeller for at forbedre kvaliteten og troværdigheden af genererede videoer.

Stabilitet AIen velkendt AI-tegnevirksomhed, er endelig gået ind i den AI-genererede videobranche.

billede 18

På tirsdag i denne uge, Stabil videodiffusionen videogenereringsmodel baseret på Stable Diffusion, udkom, og AI-samfundet begyndte straks at diskutere den.

Stabil videodiffusion Billede-til-video-modelkort

Stabil videodiffusion (SVD) Billede til video er en diffusionsmodel, der tager et stillbillede som en condition frame og genererer en video ud fra det.

640
640 1
640 2

(SVD) Image-to-Video er en latent diffusionsmodel, der er trænet til at generere korte videoklip ud fra en billedkonditionering. Denne model blev trænet til at generere 25 billeder med en opløsning på 576×1024 givet et kontekstbillede af samme størrelse, finjusteret fra SVD Billede-til-Video [14 billeder]. Vi finjusterer også den meget anvendte f8-decoder for tidsmæssig konsistens. For nemheds skyld forsyner vi desuden modellen med standard frame-wise-dekoderen her.

  • Udviklet af: Stabilitet AI
  • Finansieret af: Stabilitet AI
  • Model type: Generativ billede-til-video model
  • Finjusteret fra model: SVD Billede-til-Video [14 billeder]

Til forskningsformål anbefaler vi vores generative modeller Github-arkiv (https://github.com/Stability-AI/generative-models), som implementerer de mest populære diffusionsrammer (både træning og inferens).

Diagrammet ovenfor evaluerer brugernes præferencer for SVD-Billede-til-Video frem for GEN-2 og PikaLabs. SVD-Image-to-Video foretrækkes af menneskelige vælgere med hensyn til videokvalitet. For detaljer om brugerundersøgelsen henviser vi til forskningsartikel

Modellen er kun beregnet til forskningsformål. Mulige forskningsområder og opgaver omfatter

  • Forskning i generative modeller.
  • Sikker implementering af modeller, der har potentiale til at generere skadeligt indhold.
  • Undersøgelse og forståelse af generative modellers begrænsninger og bias.
  • Produktion af kunstværker og brug i design og andre kunstneriske processer.
  • Anvendelser i pædagogiske eller kreative værktøjer.

Ekskluderede anvendelser er beskrevet nedenfor.

Modellen blev ikke trænet til at være faktuelle eller sande repræsentationer af mennesker eller begivenheder, og derfor er det uden for denne models evner at bruge modellen til at generere sådant indhold. Modellen bør ikke bruges på nogen måde, der overtræder Stability AI's Politik for acceptabel brug.

  • De genererede videoer er ret korte (<= 4 sek.), og modellen opnår ikke perfekt fotorealisme.
  • Modellen kan generere videoer uden bevægelse eller meget langsomme kameravandringer.
  • Modellen kan ikke styres gennem tekst.
  • Modellen kan ikke gengive læsbar tekst.
  • Ansigter og mennesker i almindelighed genereres måske ikke korrekt.
  • Den automatiske kodningsdel af modellen er tabsgivende.

Modellen er kun beregnet til forskningsformål.

Tjek ud https://github.com/Stability-AI/generative-models

billede 18

Generative modeller fra Stability AI

prøve1

21. november 2023

  • Vi frigiver Stable Video Diffusion, en billede-til-video-model, til forskningsformål:
    • SVD: Denne model blev trænet til at generere 14 frames med en opløsning på 576×1024 ud fra en kontekstframe af samme størrelse. Vi bruger standardbilledkoderen fra SD 2.1, men erstatter dekoderen med en tidsbevidst dekoder til deflickering.
    • SVD-XT: Samme arkitektur som SVD men finjusteret til generering af 25 billeder.
    • Vi tilbyder en streamlight-demo scripts/demo/video_sampling.py og et selvstændigt python-script scripts/sampling/simple_video_sample.py til udledning af begge modeller.
    • Sammen med modellen udgiver vi en teknisk rapport.

26. juli 2023

prøve2

4. juli 2023

  • En teknisk rapport om SDXL er nu tilgængelig her.

22. juni 2023

  • Vi frigiver to nye diffusionsmodeller til forskningsformål:
    • SDXL-base-0.9: Basismodellen blev trænet på en række forskellige størrelsesforhold på billeder med en opløsning på 1024^2. Basismodellen bruger OpenCLIP-ViT/G og CLIP-ViT/L til tekstkodning, mens refiner-modellen kun bruger OpenCLIP-modellen.
    • SDXL-refiner-0.9: Refiner er blevet trænet til at denoise små støjniveauer i data af høj kvalitet og forventes derfor ikke at fungere som en tekst-til-billede-model; i stedet bør den kun bruges som en billede-til-billede-model.

Hvis du gerne vil have adgang til disse modeller til din forskning, bedes du ansøge via et af følgende links: SDXL-0.9-Basismodel, og SDXL-0.9-Refiner. Det betyder, at du kan ansøge om et af de to links - og hvis du bliver godkendt, kan du få adgang til begge. Log ind på din Hugging Face-konto med din organisations e-mail for at anmode om adgang. Vi planlægger at lave en fuld udgivelse snart (juli).

Generel filosofi

Modularitet er konge. Dette repo implementerer en konfigurationsdrevet tilgang, hvor vi bygger og kombinerer undermoduler ved at kalde instantiate_from_config() på objekter defineret i yaml-konfigurationer. Se også configs/ for mange eksempler.

Changelog fra den gamle ldm kodebase

Til træning bruger vi PyTorch Lightning, men det burde være nemt at bruge andre træningsindpakninger omkring basismodulerne. Den centrale diffusionsmodelklasse (tidligere LatentDiffusion, nu DiffusionEngine) er blevet ryddet op:

  • Ikke mere omfattende underklassedannelse! Vi håndterer nu alle typer konditioneringsinput (vektorer, sekvenser og rumlige konditioneringer og alle kombinationer heraf) i en enkelt klasse: GeneralConditioner, se sgm/modules/encoders/modules.py.
  • Vi adskiller vejledere (såsom klassifikationsfri vejledning, se sgm/modules/diffusionmodules/guiders.py) fra prøveudtagerne (sgm/modules/diffusionmodules/sampling.py), og samplerne er uafhængige af modellen.
  • Vi vedtager "denoiser framework" til både træning og inferens (den mest bemærkelsesværdige ændring er nok nu muligheden for at træne kontinuerlige tidsmodeller):
    • Diskrete tidsmodeller (denoisers) er simpelthen et specialtilfælde af kontinuerlige tidsmodeller (denoisers); se sgm/modules/diffusionmodules/denoiser.py.
    • Følgende funktioner er nu uafhængige: vægtning af diffusionstabsfunktionen (sgm/modules/diffusionmodules/denoiser_weighting.py), forkonditionering af netværket (sgm/modules/diffusionmodules/denoiser_scaling.py), og sampling af støjniveauer under træning (sgm/modules/diffusionmodules/sigma_sampling.py).
  • Der er også blevet ryddet op i modellerne for automatisk kodning.

1. Klon repoen

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

2. Opsætning af virtualenv

Dette forudsætter, at du har navigeret til generative modeller root efter kloning af den.

BEMÆRK: Dette er testet under python3.10. For andre python-versioner kan du støde på versionskonflikter.

PyTorch 2.0# installer nødvendige pakker fra pypi python3 -m venv .pt2 source .pt2/bin/activate pip3 install -r requirements/pt2.txt

3. Installer sgm

pip3 install .

4. Installer sdata til træning

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

Emballage

Dette repositorium bruger PEP 517-kompatibel pakning ved hjælp af Luge.

For at bygge et distribuerbart hjul skal du installere luge og kør Lugebygning (med angivelse af -t hjul vil springe over at bygge en sdist, hvilket ikke er nødvendigt).

pip install hatch
hatch build -t wheel

Du finder den byggede pakke i dist/. Du kan montere hjulet med pip install dist/*.whl.

Bemærk, at pakken ikke ikke angiver i øjeblikket afhængigheder; du bliver nødt til at installere de nødvendige pakker manuelt, afhængigt af din brugssituation og PyTorch-version.

Vi tilbyder en strømoplyst demo for tekst-til-billede og billede-til-billede sampling i scripts/demo/sampling.py. Vi leverer filhashes for hele filen såvel som for kun de gemte tensorer i filen ( se Model-specifikation for et script til at evaluere det). Følgende modeller understøttes i øjeblikket:

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

Vægte til SDXL:

SDXL-1.0: Vægtene i SDXL-1.0 er tilgængelige (med forbehold for en CreativeML Open RAIL++-M Licens) her:

SDXL-0.9: Vægtene for SDXL-0.9 er tilgængelige og underlagt en forskningslicens. Hvis du gerne vil have adgang til disse modeller til din forskning, bedes du ansøge via et af følgende links: SDXL-base-0.9-model, og SDXL-refiner-0.9. Det betyder, at du kan ansøge om et af de to links - og hvis du bliver godkendt, kan du få adgang til begge. Log ind på din Hugging Face-konto med din organisations e-mail for at anmode om adgang.

Når du har fået vægtene, skal du placere dem i checkpoints/. Start derefter demoen ved hjælp af

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

Billeder genereret med vores kode bruger usynligt-vandmærke bibliotek til at indlejre et usynligt vandmærke i modellens output. Vi leverer også et script til nemt at opdage vandmærket. Bemærk venligst, at dette vandmærke ikke er det samme som i tidligere Stable Diffusion 1.x/2.x versioner.

For at køre scriptet skal du enten have en fungerende installation som ovenfor eller prøve en eksperimentel import med kun et minimum af pakker: 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

For at køre scriptet skal du have en fungerende installation som ovenfor. Scriptet kan derefter bruges på følgende måder (glem ikke at aktivere dit virtuelle miljø på forhånd, f.eks. kilde .pt1/bin/activate):# test en enkelt fil python scripts/demo/detect.py # test flere filer på én gang python scripts/demo/detect.py ... # test alle filer i en bestemt mappe python scripts/demo/detect.py /*

Vi giver eksempler på træningskonfigurationer i configs/example_training. For at starte en træning, kør

python main.py --base configs/ configs/

hvor konfigurationer flettes fra venstre mod højre (senere konfigurationer overskriver de samme værdier). Dette kan bruges til at kombinere model-, trænings- og datakonfigurationer. De kan dog også alle defineres i en enkelt konfiguration. For at køre en klassebetinget pixelbaseret diffusionsmodeltræning på MNIST, runpython main.py -base configs/example_training/toy/mnist_cond.yaml

NOTE 1: Brug af konfigurationer uden legetøjsdatasæt configs/example_training/imagenet-f8_cond.yamlconfigs/example_training/txt2img-clipl.yaml og configs/example_training/txt2img-clipl-legacy-ucg-training.yaml til træning vil kræve redigeringer afhængigt af det anvendte datasæt (som forventes at være gemt i en tar-fil i webdatasæt-format). For at finde de dele, der skal tilpasses, skal du søge efter kommentarer, der indeholder BRUGER: i den respektive konfiguration.

NOTE 2: Dette arkiv understøtter både pytorch1.13 og pytorch2til træning af generative modeller. Men til autoencoder-træning som f.eks. i configs/example_training/autoencoder/kl-f4/imagenet-attnfree-logvar.yaml, kun pytorch1.13 er understøttet.

NOTE 3: Træning af latente generative modeller (som f.eks. i configs/example_training/imagenet-f8_cond.yaml) kræver hentning af kontrolpunktet fra Krammende ansigt og udskiftning af CKPT_PATH pladsholder i denne linje. Det samme skal gøres for de medfølgende tekst-til-billede-konfigurationer.

Balsam

Den GeneralConditioner er konfigureret gennem conditioner_config. Dens eneste egenskab er emb_models, en liste over forskellige indlejringer (alle nedarvet fra AbstractEmbModel), der bruges til at betinge den generative model. Alle embeddere skal definere, om de kan trænes eller ej (is_trainable, standard Falsk), anvendes en klassifikationsfri frafaldsrate for vejledning (ucg_rate, standard 0), og en input-tast (input_key), for eksempel, txt til tekstbehandling eller cls til klassebetingelse. Når man beregner konditioneringer, får embedderen batch[input_key] som input. Vi understøtter i øjeblikket to til fire dimensionelle konditioneringer, og konditioneringer af forskellige embeddere sammenkædes på passende vis. Bemærk, at rækkefølgen af indlejringerne i conditioner_config er vigtig.

Netværk

Det neurale netværk indstilles gennem network_config. Det plejede at hedde unet_confighvilket ikke er generelt nok, da vi planlægger at eksperimentere med transformerbaserede diffusions-backbones.

Tab

Tabet konfigureres gennem loss_config. For standard diffusion model træning, skal du indstille sigma_sampler_config.

Som nævnt ovenfor er sampleren uafhængig af modellen. I den sampler_configindstiller vi typen af numerisk solver, antallet af trin, typen af diskretisering samt f.eks. guidance wrappers til klassifikationsfri guidance.

Til træning i stor skala anbefaler vi at bruge datapipelines fra vores Datapipelines projekt. Projektet er indeholdt i kravet og inkluderes automatisk, når du følger trinene fra Sektion om installation. Små datasæt i map-stil skal defineres her i depotet (f.eks. MNIST, CIFAR-10, ...) og returnere en dict med datanøgler/værdier, f.eks. eksempel = {"jpg": x, # dette er en tensor -1...1 chw "txt": "et smukt billede"}

hvor vi forventer billeder i -1...1, kanal-først format.

da_DKDanish