gikoha’s blog

個人的メモがわり

manga image batch translator

https://github.com/zyddnys/manga-image-translator

git clone https://github.com/zyddnys/manga-image-translator.git
cd manga-image-translator 
# project's Python requirement: `>=3.10, <3.12`だったのでやむなく..
uv venv venv --python 3.11 --seed
source venv/bin/activate
pip install torch torchvision --index-url https://download.pytorch.org/whl/rocm7.1
sudo apt install g++-12 
pip install -r requirements.txt

cp example/config-example.json ./config.json

config.jsonを編集
以下のように直す
  "translator": {
    "translator": "m2m100",
    "target_lang": "JPN",

python -m manga_translator local  --config-file config.json -v  -i ~/Downloads/illust

 

翻訳がテキトーなのはm2m100のせいもあるので有料サービスを使ってみてはどうか

 

 

sd-scripst更新

Anima学習ができるようになったので更新

 

参考: 

画像生成モデルAnimaのLoRA学習およびFinetuningコード|yumihari

git clone https://github.com/kohya-ss/sd-scripts

cd sd-scripts

# python3.14ではエラーが出る. error: the configured Python interpreter version (3.14) is newer than PyO3's maximum supported version (3.13)

uv venv venv --python 3.13 --seed
source venv/bin/activate

pip install torch torchvision --index-url https://download.pytorch.org/whl/rocm7.1
pip install -r requirements.txt

# Anima uses full bf16, so it cannot be trained with fp16.


とりあえず動いた設定


SDXLと同じ設定でやったらOOMエラー
やむなくnetwork_train_unet_onlyにした
あとfp16ではエラーになるらしくて、bf16に変更した

1_XXXXXXX/
2_sls_XXXXXXX/を用意
画像と.txtを2_slsの方に入れる

    
cd ${homedir}
. ./venv/bin/activate

# 7900XTXのエミュレーション
export HSA_OVERRIDE_GFX_VERSION=11.0.0
export PYTORCH_HIP_ALLOC_CONF=garbage_collection_threshold:0.9,max_split_size_mb:512

# EDIT: network_alpha=1 network_dim=8 に変更中

accelerate launch --num_cpu_threads_per_process=2 \  "./anima_train_network.py" --enable_bucket \  --min_bucket_reso=512 --max_bucket_reso=2048 \  --pretrained_model_name_or_path=${sdmodel}/Stable-diffusion/anima-base-v1.0.safetensors \  --qwen3=${sdmodel}/text_encoder/qwen_3_06b_base.safetensors \  --vae=${sdmodel}/VAE/qwen_image_vae.safetensors \  --train_data_dir=${traindir} \  --reg_data_dir=${traindir}/1_XXXXXXX \  --resolution="1024,1024" \  --output_dir=${traindir}/outputAnima/ \  --network_alpha=1 \  --save_model_as=safetensors \  --network_module=networks.lora_anima \  --network_dim=8 \  --output_name=XXXXXXX_anima_XL \  --lr_scheduler_num_cycles="1" \  --lr_scheduler_power="1" \  --no_half_vae \  --learning_rate="0.00015" \  --lr_scheduler="cosine_with_restarts" \  --train_batch_size="2" \  --max_train_steps="5000" \  --mixed_precision="bf16" \  --save_precision="bf16" \  --seed="0" \  --caption_extension=".txt" \  --cache_latents \  --cache_latents_to_disk \  --network_train_unet_only \  --optimizer_type="Lion" \  --max_grad_norm="1" \  --max_train_epochs=50 \  --max_data_loader_n_workers="0" \  --caption_dropout_rate="0.05" \  --bucket_reso_steps=64 \  --min_snr_gamma=5 \  --gradient_checkpointing \  --mem_eff_attn

sd forge neo

rocm7.1環境下に久しぶりにインストール

参考
https://note.com/aiaicreate/n/nae1f2b3c07c7

うちのlinuxにはpython3.10, 3.13, 3.14しかなかったので3.13にしておく

git clone https://github.com/Haoming02/sd-webui-forge-classic sd-webui-forge-neo --branch neo
cd sd-webui-forge-neo
chmod +x webui.sh
chmod +x webui-user.sh

 

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.13"
export TORCH_COMMAND="pip install torch torchvision --index-url https://download.pytorch.org/whl/rocm7.1"
export COMMANDLINE_ARGS="--uv --listen --enable-insecure-extension-access"

上記変更

 

uv venv venv --python 3.13 --seed
./webui-user.sh --uv

 

参考URLでは —sageをつけておけば sageattensionが自動インストールされると書いてあったが、

Installing sageattention
Failed to install sageattention; Please manually install it

と拒絶されてしまう


dynamic prompts などの機能拡張のインストール方法
通常の拡張機能のインストールだとエラーになるので、下記の方法を使う

Extensions」>Install from URL
から、下記のURLを入れる

https://github.com/abzaloff/sd-dynamic-prompts.git

同様に WD14 Taggerも
https://github.com/hirorohi03/stable-diffusion-webui-wd14-tagger.git

を使って入れる

stable-diffusion-webui-dataset-tag-editorは動作しなかった

ComfyUIServerと Qwen Image Edit 2509

Radeonで Comfyの QwenImageEditがちょっとでも画像が大きいとたとえvae encode/decodeをtiledにしても 16GBでも OOMで動かないため、リモートのRTX3060 12GB搭載windows machineで Qwen Image Editをさせてみることとした

https://github.com/Zuntan03/SimpleComfyUi


「Qwen-Image-Edit-2509 を簡単に試せる Setup-QwenImageEdit2509.bat を追加しました。」
と書いてあったため、SimpleComfyUiInstaller.batでインストールした後Setup-QwenImageEdit2509.batを起動してダウンロード

リモートでやるときは
ComfyUI.bat をコピーして編集、--listenを付ける
" call %~dp0ComfyUi_NoArgs.bat  --fast --listen %* "

さらにWindows firewallを変更して、ポート3188をあける
こうすると他のPCから参照可能となり、無事Qwen Image Editで編集することができた

(Q3_Kはかなり画像の品質が劣化しており、多少時間かかっても Q5_Kのほうがよかった)

 

HunyuanImage-gguf

HunyuanImageも試してみた

ComfyUIをアップデート: git pull

やり方は下記をみてやりました

ComfyUIでFP8/GGUF版のHunyuanImage-2.1 Distilledを試す(推奨VRAM 12~16GB)|まゆひらa

fp8版はHIP OOMで1024x1024でも落ちるので、gguf版を試してみたところとりあえず1024x1024で動作しました

 

whisperによる音声認識

qiitaに音声認識させてchatgptで?要約や翻訳させるというプログラムがでていた

ただ認識さえしてくれればいいからそんな感じでwhisperだけ導入

しかも音声wavを要するにtextにしてくれればいいからcli.pyのみ作成

python3 -m venv venv
source venv/bin/activate
pip3 install torch torchvision --index-url https://download.pytorch.org/whl/rocm6.4
pip install .

使い方

# python cli.py sample.wav

import argparse
import whisper
import torch

def main():
    parser = argparse.ArgumentParser(
        description="Whisper CLI - wavファイルを文字起こし"
    )
    parser.add_argument("audio", type=str, help="入力音声ファイル (wav, mp3, m4a
など)")
    parser.add_argument(
        "--model", type=str, default="large",
        choices=["tiny", "base", "small", "medium", "large"],
        help="使用するWhisperモデル (デフォルト: large)"
    )
    parser.add_argument(
        "--translate", action="store_true",
        help="翻訳モード(日本語→英語など)"
    )
    args = parser.parse_args()

    # GPU利用チェック
    device = "cuda" if torch.cuda.is_available() else "cpu"
    print(f"Using device: {device}")

    # モデルロード
    model = whisper.load_model(args.model, device=device)

    # 文字起こし
    if args.translate:
        result = model.transcribe(args.audio, task="translate")
    else:
        result = model.transcribe(args.audio)

    print("\n=== Transcription Result ===\n")
    print(result["text"])


if __name__ == "__main__":
    main()

 

Xiaomi Mi Lite 5Gの電池交換

再度ふくれてきたのでめんどくさいから電池だけ交換

まわりを薄いプラで両面テープを切ってあけていく

もともとくぱぁしているので非常に簡単

まわりの両面テープを綺麗にはがしたあと、

上のカメラユニットまわりにたくさんネジがあるからてきとーにはずしていく

下にもネジがありますって書いてあるほかに、カメラの下の黒い両面テープの下にもネジがあった

上のカメラユニットカバーをはずすと電源コネクタが出てくるのは、poco x6pと同じだね

電池上のケーブルも一応外して、電池よこの薄いフィルムをx6pと同じようにはがすと、わりと簡単に電池をはがせる 交換用に用意したaliexpressで買ったBP42電池は

コネクタサイズがえらく違うかと思ったがはめるところのサイズは同じだった

はめるとこんな感じ、起動も確認した

カバーをネジ止めして、周りに両面テープをまた貼り付けて閉じる

無事終了