File size: 3,897 Bytes
6acc51f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
---

library_name: diffusers
base_model: sd2-community/stable-diffusion-2-1
tags:
  - stable-diffusion
  - lora
  - text-to-image
  - ukiyo-e
  - art
  - aetherart
license: creativeml-openrail-m
pipeline_tag: text-to-image
---


# AetherArt — SD 2.1 Ukiyo-e LoRA

A rank-8 LoRA adapter that steers Stable Diffusion 2.1 toward Japanese ukiyo-e woodblock print style. Trained on 80 WikiArt Ukiyo-e images against the `sd2-community/stable-diffusion-2-1` base model. Activate the style with the trigger token **`ukyowood`** anywhere in the prompt.

## Usage

```python

from diffusers import StableDiffusionPipeline

import torch



pipe = StableDiffusionPipeline.from_pretrained(

    "sd2-community/stable-diffusion-2-1",

    torch_dtype=torch.float16,

).to("cuda")



pipe.load_lora_weights("gauravgandhi2411/aetherart-ukiyo-sd21")



img = pipe(

    "a ukyowood mountain landscape at sunset, traditional woodblock print",

    negative_prompt="text, watermark, calligraphy, signature, words, letters",

    num_inference_steps=30,

    guidance_scale=7.5,

).images[0]

img.save("output.png")

```

## Training details

| Parameter | Value |
|-----------|-------|
| Base model | `sd2-community/stable-diffusion-2-1` |
| LoRA rank | 8 |
| Training images | 80 (WikiArt Ukiyo-e) |
| Resolution | 512 × 512 |
| Steps | 1500 |
| Precision | fp16 mixed |
| Batch size | 1 (gradient accumulation = 4, effective batch = 4) |
| Learning rate | 1e-4 |
| Seed | 42 |
| Hardware | NVIDIA RTX 3070 Laptop GPU (8 GB VRAM) |
| Training time | ~2 h 8 min |

## Checkpoint selection

Selected **checkpoint-1000** over the other checkpoints trained during the run:

- **checkpoint-500**: underfit — style signal present but not saturated, more like a mild filter than a transformation.
- **checkpoint-1000**: selected — consistent warm amber palette and characteristic flatness of traditional woodblock prints across test prompts.
- **checkpoint-1500**: overfit — validation loss rose from 0.268 to 0.495. Outputs showed over-saturated colors and partial prompt-alignment breakdown.

Checkpoint selection was made by visual evaluation only — no quantitative held-out set was used.

## Default negative prompt

The following negative prompt is applied automatically by the AetherArt application whenever this adapter is active:

```

text, watermark, calligraphy, signature, words, letters

```

## Known limitations

- **Calligraphy artifact (partially mitigated, not fixed):** WikiArt Ukiyo-e source images contain metadata captions with artist signatures and script text embedded in the image margins. The adapter learned these as part of "ukiyo-e style." The default negative prompt suppresses most instances but does not eliminate the artifact entirely — the style signal and text signal are entangled in the adapter weights. The correct fix is retraining on a curated dataset with no text annotations, which would require approximately 5 hours of curation work.
- The adapter was trained and evaluated on 512 × 512 resolution. Results at other resolutions are untested.
- CLIP scoring does not capture the quality improvements from this adapter. See the CLIP-blindness finding linked below.

## Links

- **AetherArt repository:** https://github.com/gaurav-gandhi-2411/AetherArt
- **CLIP-blindness finding:** see [`reports/clip_blindness.md`](https://github.com/gaurav-gandhi-2411/AetherArt/blob/main/reports/clip_blindness.md) — nine Phase 6b experiments showing CLIP delta <1 SE while LPIPS ranged 0.40–0.73; underfitting paradox; why CLIP cannot guide LoRA training decisions.
- **Companion SDXL adapter (1024×1024):** [`gauravgandhi2411/aetherart-ukiyo-sdxl`](https://huggingface.co/gauravgandhi2411/aetherart-ukiyo-sdxl) — same rank-8, same dataset, trained on GCP L4. Both runs independently select checkpoint-1000.