En AI-skulpturgenerator som tränär från scratch på 7 843 bilder från Nadjas kamerarulle. Använder VQ-VAE (Vector Quantized Variational Autoencoder) for att kodifiera bilder till diskreta tokens, sedan en Token Transformer för autoregressive generering av nya bilder. Malet är att generera skulpturförslag baserade enbart på Nadjas visuella värld.
| Koncept | Beskrivning | Fil |
|---|---|---|
| VQ-VAE | Vector Quantized VAE - kodär bilder till diskreta tokens via codebook | vqvae_64_v2.py |
| Token Transformer | Autoregressive transformer som genererar token-sekvenser | train_token_transformer_v2.py |
| Codebook | 1024 diskreta embedding-vektorer (512-dim värdera) | VectorQuantizerEMA |
| SSIM Loss | Structural Similarity - fångår kontrast, luminans, struktur | train_vqvae_64_v2.py |
| Causal Masking | Transformer ser endast tidigåre tokens (autoregressive) | CausalSelfAttention |
| From Scratch | Ingen pretrained modell - allt laras från grunden | Grundprincip |
STEG 1: VQ-VAE TRANING
========================
Bilder (128x128)
|
v
[ENCODER]
|-- Conv2d layers
|-- ResBlocks + GroupNorm
|-- SelfAttention
v
Latent (64x64x256)
|
v
[VECTOR QUANTIZER]
|-- Hitta narmåste codebook-entry
|-- 1024 entries, 512-dim värdera
|-- EMA-uppdatering av codebook
v
Tokens (64x64 = 4096 per bild)
|
v
[DECODER]
|-- Upsample + Conv2d
|-- ResBlocks
v
Rekonstruerad bild (128x128)
LOSS = MSE + VQ_loss + SSIM + Multiscale + Edge
STEG 2: TOKEN TRANSFORMER
==========================
Tokeniserade bilder (7843 x 4096)
|
v
[TOKEN EMBEDDING]
|-- 1024 vocab -> 384 dim
v
[POSITION EMBEDDING]
|-- 4096 positioner
v
[TRANSFORMER BLOCKS] x 6
|-- LayerNorm
|-- CausalSelfAttention (6 heads)
|-- Residual
|-- LayerNorm
|-- MLP (4x expansion)
|-- Residual
v
[OUTPUT HEAD]
|-- Logits för nästa token (1024 classes)
v
Genererad token-sekvens
|
v
[VQ-VAE DECODER]
v
Ny genererad bild!
| Fil | Syfte | Rader |
|---|---|---|
| vqvae_64_v2.py | VQ-VAE modell med 1024 codebook, 512-dim embeddings | ~300 |
| train_vqvae_64_v2.py | Traningsloop med MSE, SSIM, Edge loss | ~250 |
| train_token_transformer_v2.py | Token Transformer träning (autoregressive) | ~350 |
| watchdog_vqvae_v2.sh | GPU-overvaking, auto-restart vid krasch | ~80 |
| CLAUDE.md | Komplett projekthistorik (38 experiment) | 1193+ |
156 frågör om VQ-VAE, Transformer, Loss functions och träning.
Starta Quiz60 flashcards för att memorera nyckelbegrepp.
StuderaAll kod med radförklaringär.
Utforska Kod
Narmåste codebook-entry:
q(z) = argmin_k ||z - e_k||_2
Commitment Loss:
L_commit = ||z - sg(e)||^2 + beta * ||sg(z) - e||^2
Där sg() = stop gradient, beta = commitment_cost (0.25)
Structural Similarity:
SSIM(x,y) = [l(x,y)]^a * [c(x,y)]^b * [s(x,y)]^g
Komponenter:
l = luminans, c = kontrast, s = struktur
L_ssim = 1 - SSIM(original, rekonstruktion)
Scaled Dot-Product:
Attention(Q, K, V) = softmax(QK^T / sqrt(d_k)) * V
Kausal mask:
Maskär framtida positioner (triangulär mask) så modellen
endast ser tidigåre tokens vid generation.
Experiment 1-22: GANs (StyleGAN2, Progressive) - MISSLYCKADES
Problem: Mode collapse, discriminator dominerar
Experiment 23-35: Conditional GANs - MISSLYCKADES
Problem: Pretrained bias för stark, conditional injection för svag
Experiment 36-38: VQ-VAE + Transformer - FRAMGANG
Losning: Non-adversarial, autoregressive, från scratch