← Matthew Li
VOLCANO GAN
Input conditioning (degrade / filters)
- Paired input synthesized on the fly from each target — no fixed pairs.
- Blob (default): grayscale → heavy downscale (24×) → upscale + brightness/contrast jitter; GPU, fresh randomness per batch.
- Filters: A1111-style canny / sobel / softedge / scribble. Selectable at train + infer; model only generalizes to the filter it was trained on.
Model
- UNetGenerator — 8-level U-Net, skip connections, InstanceNorm, dropout on first 3 decoder blocks. 1ch (degraded gray) → 3ch color. Fully conv → runs at 256 (1×1 bottleneck) or 512 (2×2).
- PatchDiscriminator — 70×70 PatchGAN, conditioned on (input, target).
Training
- Per step: target batch →
make_input() (blob or filter) → update D, then G.
- Loss: GAN (BCE-logits) + 100·L1 + λ·VGG16 perceptual (kills L1 blur).
- Adam (2e-4, β 0.5/0.999), batch 4, AMP, ~100k–500k iters.