Min Bild AI - AI-skulpturgenerator

Del av Hard Copy

Min Bild AI

Projektbeskrivning

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.

Huvudkoncept

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

Systemarkitektur

TVA-STEGS PIPELINE
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!

Viktiga filer

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+

Snabblankar

Quiz

156 frågör om VQ-VAE, Transformer, Loss functions och träning.

Starta Quiz
Flashcards

60 flashcards för att memorera nyckelbegrepp.

Studera
Kodgenomgang

All kod med radförklaringär.

Utforska Kod

Matematiska formler

Vector Quantization

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)

SSIM Loss

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)

Causal Self-Attention

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.

Experimenthistorik

38 experiment, ~300 timmar

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

Min Bild AI 7 843 bilder 156 quiz-frågor