Šiame vadove atliksime nuodugnų, interaktyvų NVIDIA „StyleGAN2-ANA Pytorch“ modelį, parodydami savo galingas galimybes kurti fotorealistinius vaizdus. Pasitelkdami iš anksto suderintą FFHQ modelį, vartotojai gali generuoti aukštos kokybės sintetinius veido vaizdus iš vienos latentinės sėklos arba vizualizuoti sklandžius perėjimus per latentinę erdvės interpoliaciją tarp skirtingų sėklų. Intuityvi sąsaja, kurią maitina interaktyvūs valdikliai, šis vadovėlis yra vertingas šaltinis tyrėjams, menininkams ir entuziastams, norintiems suprasti ir eksperimentuoti su pažangiais generatyviniais prieštaringais tinklais.
!git clone https://github.com/NVlabs/stylegan2-ada-pytorch.git
Pirmiausia mes klonuojame „NVIDIA StyleGAN2 -ADA Pytorch“ saugyklą iš „GitHub“ į jūsų dabartinę „Colab“ darbo vietą.
!mkdir -p stylegan2-ada-pytorch/pretrained
!wget https://nvlabs-fi-cdn.nvidia.com/stylegan2-ada-pytorch/pretrained/ffhq.pkl -O stylegan2-ada-pytorch/pretrained/ffhq.pkl
Šioje kodo dalyje pirmoji komanda sukuria reikiamą katalogą (jei jo dar nėra), kad būtų galima saugoti išankstinius modelius. Antroji komanda atsisiunčia FFHQ iš anksto apdorotą modelį ir išsaugo jį tame kataloge, kad būtų galima naudoti su „StyleGAN2 -ADA“ modeliu.
import sys
sys.path.append('stylegan2-ada-pytorch')
Šiame kode prie „Python“ modulio paieškos kelio pridedame „StyleGAN2-ADA-PYTORCH“ katalogą, užtikrindami, kad modulius iš saugyklos būtų galima lengvai importuoti ir naudoti.
import torch
import numpy as np
import PIL.Image
import matplotlib.pyplot as plt
import ipywidgets as widgets
from IPython.display import display
Čia importuojame teiginius ir įkeliame būtiniausias bibliotekas, skirtas giliai mokytis, skaitmeninėms operacijoms, vaizdo apdorojimui, vizualizavimui ir interaktyviam valdikliui į jūsų kodą. Šios bibliotekos užtikrina, kad turite įrankius, kaip interaktyviai kurti, manipuliuoti ir rodyti sugeneruotus vaizdus.
import legacy
import dnnlib
def generate_image(seed=42, truncation=1.0, network_pkl="stylegan2-ada-pytorch/pretrained/ffhq.pkl"):
print(f'Generating image with seed {seed} and truncation {truncation}')
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
with dnnlib.util.open_url(network_pkl) as f: # Load the pretrained generator network
G = legacy.load_network_pkl(f)('G_ema').to(device)
z = torch.from_numpy(np.random.RandomState(seed).randn(1, G.z_dim)).to(device) # Create a latent vector using the provided seed
label = None # FFHQ is unconditional
with torch.no_grad(): # Generate image
img = G(z, label, truncation_psi=truncation, noise_mode="const")
# Convert image tensor to uint8 and format for display
img = (img + 1) * (255/2)
img = img.clamp(0,255).to(torch.uint8)
img = img(0).permute(1,2,0).cpu().numpy()
plt.figure(figsize=(4,4))
plt.imshow(img)
plt.axis('off')
plt.show()
Šioje dalyje mes apibrėžiame funkciją, vadinamą generate_image, kuri įkelia iš anksto iš anksto apdorotą „StyleGAN2 -AADA Generator“ tinklą iš nurodyto URL. Sukuria latentinį vektorių, pagrįstą sėkla, sukuria vaizdą su nurodytu sutrumpinimo parametru, tada apdoroja ir parodo gautą vaizdą naudojant matplotlib.
def interpolate_images(seed1=42, seed2=123, steps=10, truncation=1.0, network_pkl="stylegan2-ada-pytorch/pretrained/ffhq.pkl"):
print(f'Interpolating between seeds {seed1} and {seed2} with {steps} steps and truncation {truncation}')
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
with dnnlib.util.open_url(network_pkl) as f: # Load the pretrained generator network
G = legacy.load_network_pkl(f)('G_ema').to(device)
# Generate latent vectors for the two seeds
z1 = torch.from_numpy(np.random.RandomState(seed1).randn(1, G.z_dim)).to(device)
z2 = torch.from_numpy(np.random.RandomState(seed2).randn(1, G.z_dim)).to(device)
# Create interpolation latent vectors
alphas = np.linspace(0, 1, steps)
z_interp = ()
for a in alphas:
z_interp.append((1 - a) * z1 + a * z2)
z_interp = torch.cat(z_interp, dim=0)
label = None
# Generate images for each interpolated latent vector
with torch.no_grad():
imgs = G(z_interp, label, truncation_psi=truncation, noise_mode="const")
imgs = (imgs + 1) * (255/2)
imgs = imgs.clamp(0,255).to(torch.uint8).cpu().numpy()
plt.figure(figsize=(steps * 2, 2)) # Plot images in a row to visualize the interpolation
for i in range(steps):
plt.subplot(1, steps, i+1)
img = np.transpose(imgs(i), (1,2,0))
plt.imshow(img)
plt.axis('off')
plt.show()
Čia mes apibrėžiame interpolate_images, kurie generuoja vaizdus, interpoliuodami tarp latentinių vektorių, gautų iš dviejų sėklų. Jis įkelia iš anksto parengtą „StyleGAN2 -ADA“ generatorių, apskaičiuoja sklandų perėjimą tarp dviejų sėklų latentinių kodų per nurodytą skaičių žingsnių, o po to gautus vaizdus iš eilės rodo, kad vizualizuotų interpoliaciją.
Apibendrinant, mes pademonstravome universalų ir praktinį požiūrį, naudodami NVIDIA „StyleGAN2-ADA“ modelį, skirtą statiniam vaizdų generavimui ir dinaminei latentinei erdvės interpoliacijai. Leisdama vartotojams interaktyviai koreguoti parametrus, tokius kaip sėklų vertės ir sutrumpinimo lygiai, šis nešiojamasis kompiuteris suteikia įžvalgos apie GAN pagrįstos vaizdo sintezės ir skatinančių kūrybiškumo bei inovacijų painiavą.
Čia yra „Colab“ užrašų knygelė Aukščiau pateiktam projektui. Be to, nepamirškite sekti mūsų „Twitter“ ir prisijunkite prie mūsų „Telegram“ kanalas ir „LinkedIn GrOUP. Nepamirškite prisijungti prie mūsų 75K+ ml subreddit.
🚨 Rekomenduojama „Read-LG AI Research“ išleidžia „Nexus“: pažangių sistemos integracinių agentų AI sistemos ir duomenų atitikties standartų, skirtų teisiniams klausimams spręsti AI duomenų rinkiniuose

Asif Razzaq yra „MarkTechPost Media Inc“ generalinis direktorius. Kaip vizionierius verslininkas ir inžinierius, ASIF yra įsipareigojęs išnaudoti dirbtinio intelekto potencialą socialiniam gėrybei. Naujausias jo siekis yra dirbtinio intelekto žiniasklaidos platformos „MarkTechPost“, kuri išsiskiria išsamia mašininio mokymosi ir giluminio mokymosi naujienų, kuri yra techniškai pagrįsta, ir lengvai suprantama plačiai auditorijai. Platforma gali pasigirti daugiau nei 2 milijonai mėnesinių peržiūrų, parodydama jos populiarumą tarp auditorijos.
