File size: 1,453 Bytes
0321ad8
 
 
527f912
 
90f2fc7
527f912
9f7e6c5
 
3885c65
 
527f912
 
 
 
 
 
 
 
 
 
 
 
 
 
 
90f2fc7
aa8dd37
9f7e6c5
 
 
 
 
3885c65
 
 
 
 
 
 
 
 
 
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
---
license: openrail++
---

# はじめに
このモデルはStable Diffusionを0から作りたい人のモデルです。どこから作るかは個々人にお任せします。

## SDXL
### 単一ファイル
[sdxl_0.safetensors](sdxl_0.safetensors)はU-Netを0に置き換えています。作り方は以下のとおりです。


```python
from safetensors import safe_open
from safetensors.torch import save_file
import torch

tensors = {}
with safe_open("/path/to/sd_xl_base_1.0.safetensors", framework="pt", device=0) as f:
    for k in f.keys():
        tensors[k] = f.get_tensor(k)
        if("model.diffusion_model" in k):
            tensors[k]=torch.zeros_like(tensors[k])

save_file(tensors, "/path/to/sdxl_0.safetensors")
```

このファイルを[sd-scripts](https://github.com/kohya-ss/sd-scripts)でフルファインチューンをしてください。学習率は1e-4がおすすめです。(Stable Diffusion XL公式リポジトリより)
また、SDXLの場合、OpenCLIPの都合上、泣き顔などができないため、テキストエンコーダーの学習を行うこともおすすめします。

### diffusers

diffusersなどを使ってダウンロードしてください。
作り方は以下のとおりです。

```python
from diffusers import StableDiffusionXLPipeline
import torch

pipe = StableDiffusionXLPipeline.from_single_file('/path/to/sdxl_0.safetensors')
pipe.save_pretrained('/path/to/sd-0')
```