gikoha’s blog

個人的メモがわり

EPSON EP816Aでのディスクレーベルプリント(gLabels)

gLabelsを立ち上げる

なければUbuntu software storeからインストール

 

テンプレートデザイナーで

ベンダー:EPSON パーツ番号適当

用紙の大きさ:その他 幅:120mm 高さ:120mm

ラベルの形状:CD/DVDの形

ラベルの大きさ:外形60mm インナーの半径:10mm クリッピング:0mm 余分な部分: 0mm 余白:0mm

レイアウトの数:1

レイアウト:nx:1 ny:1 x0:0 y0:0 dx:0 dy:0

 

プリンターの方の「設定」から

プリンター設定>ディスクレーベル外形内径調整:外形116mm 内径18mmにする

 

最後に印刷のときのダイアログで

ページの設定から 種類:Optical Disc  用紙のソース:Disc 出力先のトレイ:Face up

 

これを選ぶといい

 

Illustriousの学習について

Illustriousの学習について

  • いままで Illustriousの学習をすると学習元の枚数が増えると急にnanが出るようになっていた
  • anyIllustrious系を使ってもダメ
  • learning rateを下げてもダメ
  • sd-scriptを最新版にupdateしてもダメ
  • 学習元の画像数を20枚程度に制限すると完走
  • こんな感じ
steps:   2%|â–Ž                 | 32/1800 [01:32<1:25:20,  2.90s/it, avr_loss=nan]
  • step 32あたりから急に出現し、枚数を減らすとなくなる
  • 学習設定の問題の問題かと思いきや
  • https://civitai.com/articles/8688/nov-2024-rocm-622-rdna2-sd-scripts-installation-memo によると、
  • # If NaN occurs during LoRA training, try switching from --sdpa to --mem_eff_attn.
  • --mem_eff_attn を付けると nanにならずに済んだ
  • つまりはradeonのメモリ不足で nan になっていたのか..

v-prediction modelをreforgeで使うには

v-prediction modelをreforgeで使うには

git clone https://github.com/Panchovix/stable-diffusion-webui-reForge -b dev_upstream_experimental

これをビルドする

text generation 画面のしたの方に NegPipやら ControlNet Integratedがあるが、その下の方に Advanced Mode Sampling for Forgeがある

Enable Advanced Model SamplingをONにして、

Sampling mode Discrete

Discrete Sampling Typeを v_predictionにすると使えるようになる

  • vPredモデルかどうか自分で判断して変えないといけない
  • 再起動すると元に戻ってしまいやり直す必要がある

torch2.5 (rocm6.2対応正式版)を使ったstable-diffusion-webui-reForge

webui-user.shを編集

以下を変更

# 以下の環境変数はつけてもつけなくても変わりなかった..
export TORCH_BLAS_PREFER_HIPBLASLT=0
export HSA_OVERRIDE_GFX_VERSION=11.0.0
export PYTORCH_ROCM_ARCH=gfx1100
# export HSA_OVERRIDE_GFX_VERSION=11.0.1ではなぜかRX7800XTではうまくいかない
export HIP_VISIBLE_DEVICES=0
export PYTORCH_HIP_ALLOC_CONF=garbage_collection_threshold:0.9,max_split_size_mb:512

python_cmd="python3.10"
export TORCH_COMMAND="pip install torch torchvision  --index-url https://download.pytorch.org/whl/rocm6.2"
export COMMANDLINE_ARGS="--listen --enable-insecure-extension-access --always-offload-from-vram"

以下を入力

cd stable-diffusion-webui-reForge 
deactivate
rm -rf venv
python3.10 -m venv venv
git pull
source venv/bin/activate
pip install torch torchvision  --index-url https://download.pytorch.org/whl/rocm6.2
# https://huggingface.co/docs/bitsandbytes/main/en/installation を参考
pushd ~/Develop
git clone -b multi-backend-refactor https://github.com/bitsandbytes-foundation/bitsandbytes.git && cd bitsandbytes/
pip install -r requirements-dev.txt
cmake -DCOMPUTE_BACKEND=hip -S .
make
pip install -e .
popd

bash webui.sh

スピード比較 SDXL 1120x1120 30枚程度の生成

  • forge2 at rocm6.1 -- 7min41s
  • forge2 at rocm6.2 -- 7min32s あれちょっとはやくなってね?

rocm6.2が出ていた

6.1でやっていたけれどいつのまにか6.2が出ていて、bitsandbytesや fp8が強化されたらしい

よくわからんがインストールしておく

このとおりやるだけ

https://rocm.docs.amd.com/projects/install-on-linux/en/docs-6.2.0/install/native-install/ubuntu.html

ただtorchはnightly build(6.2正式対応?)を使ってforge2で生成してみると、生成がだいぶ遅くなる
tiled upscaleの前に、毎回Warning: Ran out of memory when regular VAE decoding, retrying with tiled VAE decoding.が出る

そんなわけで torchはrocm6.1対応stable buildに戻しました (rocmは6.2でいけてる)

6.2stableになったらまた試してみる

flux.1 sd-scripts

  • 前提: メインメモリを64GB以上に造設
  • VRAMã‚‚16GB以上ほしい
  • 使用マシン:Corei5 64GB RX7800XT 16GB Ubuntu22.04

  • まず Flux.1 学習のために kohya sd-scriptsをインストール

# sd-scripts の sd3ブランチを clone
git clone -b sd3 https://github.com/kohya-ss/sd-scripts/
cd sd-scripts
python3 -m venv venv
source venv/bin/activate
  • rocm6.1公式バージョンのpytorchインストール
pip install torch torchvision --index-url https://download.pytorch.org/whl/rocm6.1

export HSA_OVERRIDE_GFX_VERSION=11.0.0
  • pipのアップグレード
python3 -m pip install --upgrade pip wheel
  • req のインストール
  • 必要ならdadaptationもインストールしておく
pip install -r requirements.txt

pip install dadaptation
  • rocm用のbitsandbytesをソースからインストールする
  • ただし bitsandbytes is fully supported from ROCm 6.1 onwards (currently in alpha release). アルファリリース
# bitsandbytes を https://huggingface.co/docs/bitsandbytes/main/en/installation#amd-gpu を参考に入れ替える
# AMD GPU以下を見ること
# 下記のgfx1100;1101の部分は自分のGPUに合わせて書き換えてください

pip uninstall bitsandbytes
  git clone --depth 1 -b multi-backend-refactor https://github.com/TimDettmers/bitsandbytes.git && cd bitsandbytes/
  pip install -r requirements-dev.txt
  apt-get install -y build-essential cmake  # install build tools dependencies, unless present
  cmake -DCOMPUTE_BACKEND=hip -DBNB_ROCM_ARCH="gfx1100;gfx1101" -S .
  make
  pip install -e .   # `-e` for "editable" install, when developing BNB (otherwise leave that out)
  • accelerate config
accelerate config
...
bf16選ぶ
  • 実際にちょっとLORA効果があったかな、、ってサンプル
  • Lion optimizerを使ってみて epoch 50まで回している
#!/bin/bash

# よりよい設定がわかったら教えてほしい

# dataset.tomlは

# [general]
# caption_extension = ".txt"
# enable_bucket = true

# [[datasets]]
# batch_size = 1
# resolution = 768  #1024だとOutOfMemory
#   [[datasets.subsets]]
#   image_dir = "/hogehoge/2_sls_hogehoge"
#   num_repeats = 2

# となっている

accelerate launch  --mixed_precision bf16 \
--num_cpu_threads_per_process 2 \
flux_train_network.py \
--enable_bucket \
--max_bucket_reso 2048 \
--min_bucket_reso 512 \
--mixed_precision bf16 \
--pretrained_model_name_or_path ${sdmodel}/Stable-diffusion/flux1-dev.safetensors \
--clip_l ${sdmodel}/VAE/clip_l.safetensors \
--t5xxl ${sdmodel}/VAE/t5xxl_fp16.safetensors \
--ae ${sdmodel}/VAE/ae.safetensors \
--cache_latents \
--cache_latents_to_disk \
--save_model_as safetensors \
--sdpa \
--optimizer_type "Lion" \
--optimizer_args "weight_decay=0.01" \
--learning_rate 0.00015  \
--persistent_data_loader_workers \
--max_data_loader_n_workers 1 \
--seed 42 \
--gradient_checkpointing \
--noise_offset=0.0 \
--save_precision fp16 \
--network_module networks.lora_flux \
--network_dim 8  \
--network_alpha 8 \
--logging_dir ${traindir}/log \
--bucket_reso_steps=64 \
--network_train_unet_only \
--cache_text_encoder_outputs \
--cache_text_encoder_outputs_to_disk \
--fp8_base \
--max_train_epochs 50 \
--save_every_n_epochs 10 \
--dataset_config ${traindir}/dataset.toml \
--output_dir ${traindir}/outputFlux/ \
--output_name goro_FluxDev \
--guidance_scale 1.0 \
--loss_type l2  \
--timestep_sampling sigmoid \
--model_prediction_type raw \
--lr_scheduler cosine_with_restarts \
--lr_scheduler_num_cycles 1 \
--lr_scheduler_power 1

forge2 & flux1-schnell-fp8

forgeがバージョンアップし flux1にも対応

RX7800XTで早速試してみる

webui-user.shは

export HSA_OVERRIDE_GFX_VERSION=11.0.0

export TORCH_COMMAND="pip install --pre torch torchvision --index-url https://download.pytorch.org/whl/nightly/rocm6.1"

を入れて bash webui.sh としただけ

 

流行のNF4bnbは使えなかったが、flux1-schnell-fp8.safetensors や flux1S16gb_v10.safetensors, flux1-dev-Q4_0.ggufは普通に使えた

1024x1024が30秒程度で作れるのがいいね (CFG=1 step=10)

追記 NF4 gguf も 次の記事の bitsandbytes をインストールしたら普通に使えた

 

Â