|
--- |
|
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') |
|
``` |
|
|
|
|