Stabil videodiffusion

av Stabil videodiffusion

Lägg till de bilder du behöver genom att dra och släppa eller ladda upp lokala bilder. Modellerna kommer att behandlas snabbt,

bild 21
bild 20

klicka på genereringsknappen nedan. Börja generera, här eftersom det körs på A100 videominne. Det kommer att ta längre tid. Bild-till-video-effekten kommer att visas så snart som 177 sekunder efter generering.

bild 22
bild 22 1

Stabil videodiffusion är en stabil video diffusionsmodell för högupplöst, toppmodern text-till-video och bild-till-video generering. Nyligen omvandlades latenta diffusionsmodeller för 2D-bildsyntes till generativa videomodeller genom att infoga temporala lager och finjustera dem på små, högkvalitativa videodatauppsättningar. Träningsmetoderna i litteraturen varierar dock kraftigt, och fältet har ännu inte kommit överens om en enhetlig strategi för videodata. I det här dokumentet identifierar och utvärderar vi tre distinkta steg för framgångsrik träning av en video-LDM (Latent Diffusion Model): förträning av text-till-bild, förträning av video och finjustering av högkvalitativ video.

Detta är stabil video diffusionsmodellen erbjuder en ny metod för att producera högkvalitativa videor. Den tar text eller bilder som input och genererar realistiska videor som är relaterade till det inmatade innehållet. Denna modell har en bred potentiell tillämpning inom filmproduktion, virtuell verklighet, spelutveckling och andra områden.

Forskning om stabil videodiffusion är avgörande för att förbättra tekniken för videogenerering. Den ger forskarna ett ramverk för att ytterligare utforska utbildningsmetoder och datastrategier för videogenereringsmodeller för att förbättra kvaliteten och trovärdigheten hos genererade videor.

Stabilitet AIett välkänt AI-ritningsföretag, har äntligen gett sig in i branschen för AI-genererad video.

bild 18

På tisdag denna vecka, Stabil videodiffusionen videogenereringsmodell baserad på Stable Diffusion, lanserades och AI-communityn började omedelbart diskutera den.

Stabil videodiffusion Bild-till-videomodell Kort

Stabil videodiffusion (SVD) Bild-till-video är en diffusionsmodell som tar in en stillbild som en condition frame och genererar en video från den.

640
640 1
640 2

(SVD) Image-to-Video är en latent diffusionsmodell som tränats för att generera korta videoklipp från en bildbehandling. Denna modell tränades för att generera 25 bildrutor med upplösningen 576×1024 givet en kontextram av samma storlek, finjusterad från SVD bild-till-video [14 bilder]. Vi finjusterar också de allmänt använda f8-avkodare för tidsmässig konsistens. För enkelhetens skull förser vi dessutom modellen med den ramvisa standardavkodaren här.

  • Utvecklad av: Stabilitet AI
  • Finansieras av: Stabilitet AI
  • Modell typ: Generativ bild-till-video-modell
  • Finjusterad från modell: SVD bild-till-video [14 bilder]

För forskningsändamål rekommenderar vi vår generativa modeller Github-förvar (https://github.com/Stability-AI/generative-models), som implementerar de mest populära diffusionsramverken (både träning och inferens).

Diagrammet ovan utvärderar användarnas preferenser för SVD-Image-to-Video jämfört med GEN-2 och PikaLabs. SVD-Image-to-Video föredras av mänskliga väljare när det gäller videokvalitet. För detaljer om användarstudien hänvisar vi till forskningsrapport

Modellen är endast avsedd för forskningsändamål. Möjliga forskningsområden och uppgifter omfattar

  • Forskning om generativa modeller.
  • Säker driftsättning av modeller som har potential att generera skadligt innehåll.
  • Undersöka och förstå begränsningar och fördomar hos generativa modeller.
  • Skapande av konstverk och användning i design och andra konstnärliga processer.
  • Tillämpningar i pedagogiska eller kreativa verktyg.

Uteslutna användningsområden beskrivs nedan.

Modellen har inte tränats för att vara sakliga eller sanna återgivningar av personer eller händelser, och därför ligger det utanför modellens förmågor att använda modellen för att generera sådant innehåll. Modellen får inte användas på något sätt som strider mot Stability AI:s Policy för godtagbar användning.

  • De genererade videorna är ganska korta (<= 4 sek), och modellen uppnår inte perfekt fotorealism.
  • Modellen kan generera videor utan rörelse eller mycket långsamma kamerapanor.
  • Modellen kan inte styras via text.
  • Modellen kan inte återge läsbar text.
  • Ansikten och personer i allmänhet kanske inte genereras korrekt.
  • Den autokodande delen av modellen är förlustbaserad.

Modellen är endast avsedd för forskningsändamål.

Kolla upp https://github.com/Stability-AI/generative-models

bild 18

Generativa modeller från Stability AI

prov1

21 november 2023

  • Vi släpper Stable Video Diffusion, en bild-till-videomodell, för forskningsändamål:
    • SVD: Denna modell tränades för att generera 14 bilder med upplösningen 576×1024 givet en kontextbild av samma storlek. Vi använder standardbildkodaren från SD 2.1, men ersätter avkodaren med en tidsmedveten deflickering avkodare.
    • SVD-XT: Samma arkitektur som SVD men finjusterad för 25 frame generation.
    • Vi erbjuder en strömlinjeformad demo skript/demo/video_sampling.py och ett fristående pythonskript skript/sampling/simple_video_sample.py för inferens av båda modellerna.
    • Tillsammans med modellen släpper vi en teknisk rapport.

26 juli 2023

prov2

4 juli 2023

  • En teknisk rapport om SDXL finns nu tillgänglig här.

22 juni 2023

  • Vi lanserar två nya diffusionsmodeller för forskningsändamål:
    • SDXL-base-0.9: Basmodellen tränades på en mängd olika bildförhållanden på bilder med upplösningen 1024^2. Basmodellen använder OpenCLIP-ViT/G och CLIP-ViT/L för textkodning medan refiner-modellen endast använder OpenCLIP-modellen.
    • SDXL-refiner-0.9: Förädlaren har tränats för att denoise små brusnivåer av högkvalitativa data och förväntas därför inte fungera som en text-till-bild-modell; istället bör den endast användas som en bild-till-bild-modell.

Om du vill ha tillgång till dessa modeller för din forskning, vänligen ansök via en av följande länkar: SDXL-0.9-Basismodelloch SDXL-0.9-Refiner. Det innebär att du kan ansöka om vilken som helst av de två länkarna - och om du blir beviljad - kan du få tillgång till båda. Logga in på ditt Hugging Face-konto med din organisations e-postadress för att begära åtkomst. Vi planerar att göra en fullständig release snart (juli).

Allmän filosofi

Modularitet är kung. Denna repo implementerar en konfigurationsdriven metod där vi bygger och kombinerar undermoduler genom att anropa instansiera_från_konfig() på objekt som definieras i yaml-konfigurationer. Se konfigurationer/ för många exempel.

Ändringslogg från den gamla ldm kodbas

För utbildning använder vi PyTorch Blixtnedslag, men det bör vara enkelt att använda andra utbildningsomslag runt basmodulerna. Den centrala diffusionsmodellklassen (tidigare LatentDiffusion, nu DiffusionEngine) har rensats upp:

  • Ingen mer omfattande underklassning! Vi hanterar nu alla typer av konditioneringsingångar (vektorer, sekvenser och spatiala konditioneringar samt alla kombinationer av dessa) i en enda klass: Allmän konditionerare, se sgm/modules/encoders/modules.py.
  • Vi separerar vägledare (såsom klassificeringsfri vägledning, se sgm/modules/diffusionmodules/guiders.py) från provtagarna (sgm/modules/diffusionmodules/sampling.py), och provtagarna är oberoende av modellen.
  • Vi antar följande "ramverk för denoiser" för både träning och inferens (den mest anmärkningsvärda förändringen är förmodligen nu möjligheten att träna kontinuerliga tidsmodeller):
    • Diskreta tidsmodeller (denoisers) är helt enkelt ett specialfall av kontinuerliga tidsmodeller (denoisers); se sgm/modules/diffusionmodules/denoiser.py.
    • Följande funktioner är nu oberoende: viktning av diffusionsförlustfunktionen (sgm/modules/diffusionmodules/denoiser_weighting.py), förkonditionering av nätverket (sgm/modules/diffusionmodules/denoiser_scaling.py), och provtagning av bullernivåer under utbildning (sgm/modules/diffusionmodules/sigma_sampling.py).
  • Modeller för automatisk kodning har också rensats upp.

1. Klona repot

git-klon [email protected]:Stability-AI/generative-models.git cd generativa modeller

2. Konfigurera virtualenv

Detta förutsätter att du har navigerat till generativa modeller root efter kloning.

OBS: Detta testas under python3.10. För andra pythonversioner kan du stöta på versionskonflikter.

PyTorch 2.0# installera nödvändiga paket från pypi python3 -m venv .pt2 source .pt2/bin/activate pip3 install -r requirements/pt2.txt

3. Installera sgm

pip3 installera .

4. Installera sdata för utbildning

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

Förpackning

Detta arkiv använder PEP 517-kompatibla förpackningar med Lucka.

För att skapa ett distribuerbart hjul, installera Lucka och kör Bygga en lucka (med angivande av -t hjul kommer att hoppa över att bygga en sdist, vilket inte är nödvändigt).

pip installera hatch
hatch build -t hjul

Du hittar det byggda paketet i dist/. Du kan montera hjulet med pip installera dist/*.whl.

Observera att paketet inte inte anger för närvarande beroenden; du måste installera de paket som krävs, beroende på ditt användningsområde och PyTorch-version, manuellt.

Vi tillhandahåller en strömljus demo för text-till-bild och bild-till-bild sampling i skript/demo/sampling.py. Vi tillhandahåller filhashvärden för hela filen samt för endast de sparade tensorerna i filen (se Modellspecifikation för ett skript för att utvärdera detta). Följande modeller stöds för närvarande:

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

Vikter för SDXL:

SDXL-1.0: Vikterna för SDXL-1.0 är tillgängliga (med förbehåll för en CreativeML öppen RAIL++-M licens) här:

SDXL-0.9: Vikterna för SDXL-0.9 är tillgängliga och föremål för en forskningslicens. Om du vill ha tillgång till dessa modeller för din forskning, vänligen ansök via en av följande länkar: SDXL-base-0.9-modelloch SDXL-refiner-0.9. Det innebär att du kan ansöka om vilken som helst av de två länkarna - och om du blir beviljad - kan du få tillgång till båda. Logga in på ditt Hugging Face-konto med din organisations e-postadress för att begära åtkomst.

Efter att ha erhållit vikterna, placera dem i kontrollpunkter/. Starta sedan demonstrationen med hjälp av

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

Bilder som genereras med vår kod använder osynligt vattenmärke bibliotek för att bädda in ett osynligt vattenmärke i modellutdata. Vi tillhandahåller också ett skript för att enkelt upptäcka vattenstämpeln. Observera att denna vattenstämpel inte är densamma som i tidigare versioner av Stable Diffusion 1.x/2.x.

För att köra skriptet måste du antingen ha en fungerande installation enligt ovan eller prova en experimentell importera med endast en minimal mängd paket: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

För att köra skriptet måste du ha en fungerande installation enligt ovan. Skriptet kan sedan användas på följande sätt (glöm inte att aktivera din virtuella miljö i förväg, t.ex. källa .pt1/bin/aktivera):# testa en enda fil python scripts/demo/detect.py # testa flera filer samtidigt python scripts/demo/detect.py ... # testa alla filer i en viss mapp python scripts/demo/detect.py /*

Vi tillhandahåller exempel på utbildningskonfigurationer i konfigurationer/exempel_utbildning. För att starta en utbildning, kör

python main.py --base configs/ configs/

där konfigurationer slås samman från vänster till höger (senare konfigurationer skriver över samma värden). Detta kan användas för att kombinera modell-, tränings- och datakonfigurationer. Alla dessa kan dock också definieras i en enda konfiguration. Till exempel, för att köra en klassvillkorlig pixelbaserad diffusionsmodellträning på MNIST, runpython main.py -base configs/example_training/toy/mnist_cond.yaml

NOT 1: Använda konfigurationer som inte är leksaksdataset configs/example_training/imagenet-f8_cond.yamlconfigs/example_training/txt2img-clipl.yaml och configs/example_training/txt2img-clipl-legacy-ucg-training.yaml för utbildning kommer att kräva ändringar beroende på vilken dataset som används (som förväntas lagras i en tar-fil i format för webbdataset). För att hitta de delar som måste anpassas, sök efter kommentarer som innehåller ANVÄNDARE: i respektive konfiguration.

NOT 2: Detta arkiv stöder både pytorch1.13 och pytorch2för utbildning av generativa modeller. För autoencoderträning som t.ex. i configs/example_training/autoencoder/kl-f4/imagenet-attnfree-logvar.yaml, endast pytorch1.13 stöds.

NOT 3: Träning av latenta generativa modeller (som t.ex. i configs/example_training/imagenet-f8_cond.yaml) kräver att kontrollpunkten hämtas från Kramande ansikte och ersätta CKPT_PATH platshållare i denna linje. Detsamma gäller för de text-till-bild-konfigurationer som tillhandahålls.

Balsam

Den Allmän konditionerare konfigureras via konditionering_konfig. Dess enda egenskap är emb_modeller, en lista över olika inbäddare (alla ärvda från AbstraktEmbModell) som används för att villkora den generativa modellen. Alla inbäddare bör definiera om de är träningsbara eller inte (är_utbildningsbar, standard Falskt), en klassificeringsfri bortfallsfrekvens för vägledning används (ucg_ränta, standard 0), och en inmatningsknapp (input_key), till exempel, txt för textkonditionering eller cls för klassbetingning. Vid beräkning av villkor kommer inbäddaren att få batch[input_key] som indata. Vi stöder för närvarande två till fyra dimensionella villkor och villkor med olika inbäddningar konkateneras på lämpligt sätt. Observera att ordningen på inbäddningarna i konditionering_konfig är viktigt.

Nätverk

Det neurala nätverket ställs in via nätverk_konfig. Detta kallades tidigare unet_konfigvilket inte är tillräckligt generellt eftersom vi planerar att experimentera med transformatorbaserade diffusionsbackbones.

Förlust

Förlusten konfigureras genom förlust_konfig. För träning med standarddiffusionsmodell måste du ställa in sigma_sampler_konfig.

Som diskuterats ovan är provtagaren oberoende av modellen. I den sampler_config, ställer vi in typ av numerisk lösare, antal steg, typ av diskretisering samt, till exempel, vägledningsomslag för klassificeringsfri vägledning.

För storskalig träning rekommenderar vi att du använder datapipelines från vår datapipelines projekt. Projektet ingår i kravet och inkluderas automatiskt när du följer stegen från Avsnitt om installation. Små kartliknande datamängder bör definieras här i arkivet (t.ex. MNIST, CIFAR-10, ...) och returnera en dict med datanycklar/värden, t.ex.,example = {"jpg": x, # detta är en tensor -1...1 chw "txt": "en vacker bild"}

där vi förväntar oss bilder i -1...1, kanal-första format.

sv_SESwedish