sdcpp-gradio 日本語画像生成ツール

# sdcpp-gradio 日本語画像生成ツール
画像生成AI初心者向けに、日本語で文章を入力し、解像度を選び、生成ボタンを押すだけでアニメ調の画像を生成できるツールを作りました。動作は若干遅めですが、Vulkanを使用して様々な環境で低メモリでも動作します。

詳細な仕組み等は[レポジトリ](https://github.com/asfdrwe/sdcpp-gradio)を参照してください。

## 動作環境と生成時間の目安

| 動作環境         | 時間 |
|--------------|------|
| Windows + Ryzen 5600 + Geforce 3060 12GB | 30秒〜1分 |
| Windows + Core i5 1235U (内蔵GPU) | 11分 |
| M4 Mac mini | 2 分 |
| Linux Fedora 42 + Ryzen 5600G (内蔵GPU) | 6分 |

## 2種類の実行プログラム

- sdcpp-gradio-safe
こちらは一般向け画像のみが生成されます。日本語から英語プロンプトを生成する段階と英語プロンプトから画像を生成する段階の両方で一般向けになるよう制限がかかります。

- sdcpp-gradio
こちらはセンシティブ設定(4段階)が可能です。センシティブ設定を右にすればするほどより性的な画像が生成されます。生成画像の扱いに気をつけてください。

どちらも著作権が存在するキャラク生成に対する制限は行っていません。
生成画像の利用についてについて私的使用の例外(著作権法第30条)の範囲を超える場合は、著作権法に反しないよう心がけてください。

参考資料: [文化庁のAIと著作権について](https://www.bunka.go.jp/seisaku/chosakuken/aiandcopyright.html)

## Windows 版

### インストール
Hugging Faceより[zipファイル](https://huggingface.co/asfdrwe/waiDMD2/resolve/main/sdcpp-gradio.zip?download=true)をダウンロードし、ダウンロードしたファイルを右クリックで『すべて展開』を選び展開してください。ファイルは3.4GBほどあります。

### 実行
sdcpp-gradio フォルダを開き、sdcpp-gradio-safe.exe もしくは sdcpp-gradio.exe をダブルクリックしてください。

実行の際にWindowsによってPCが保護されましたという警告が出る場合がありますが、そのまま詳細情報を押して実行を押してください。

![tmp01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/882900/57f744e1-6b88-45c7-81f3-cb98a7ec3035.png)

![tmp02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/882900/c7f62c77-4dcd-4c1b-9e72-8b93adcac6af.png)

Windows ターミナルが起動し、自動的にブラウザが開かれます。

![tmp1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/882900/b337f4cd-8261-4127-98fa-8f7931757562.png)

『生成した画像を日本語の文章で入力』欄に生成したい画像を文章でいれてください。

例: 少女が微笑む画像。

解像度を選んでください。

生成を押ししばらくすると右の『output』に画像が生成されます。

![tmp3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/882900/4184f7d3-a413-4267-9510-64e557f53ca7.png)

生成されたファイルはsdcpp-gradio フォルダの output フォルダに『年月日時分秒.png』形式(例: 20250514192813.png)で保存されます。

### 終了方法
ブラウザを閉じ、Windowsターミナルを閉じてください。

### うまく動かない場合
sd-master-10feacf-bin-win-avx2-x64 フォルダに CPU 用 stable-diffusion.cpp があるので、sd.exe と stable-diffusion.dll を sdcpp-gradio フォルダに上書きコピーしてVulkan版から差し替えてください。CPU 用なら生成時間がかかりますが動くはずです(Ryzen 5600 で 12 分、Core i7100 で36分かかります。

## macOS 版

### インストール
Hugging faceから[zipファイル](https://huggingface.co/asfdrwe/waiDMD2/resolve/main/sdcpp-gradio-mac.zip?download=true)をダウンロードし、ダウンロードしたファイルを右クリックで展開してください。
ファイルは3.3GBほどあります。

そのままでは [GateKeeper](https://support.apple.com/ja-jp/guide/security/sec5599b66df/web) によるセキュリティチェックに引っかかります。

Finderでダウンロードフォルダのsdcpp-gradio-macフォルダを開きます。
拡張属性削除.workflowをダブルクリックしてインストールしてください。
Finderで上のフォルダに戻り、sdcpp-gradio-macフォルダの上で右クリックし、クイックアクションの拡張属性削除を選び、検疫を解除してください。

ただしlibMoltenVK.dylibの検疫を解除しきれていないので、実行時にさらに対応が必要です。

### 実行
sdcpp-gradio フォルダを開き、sdcpp-gradio-safe.command もしくはsdcpp-gradio.command をダブルクリックしてください。

ターミナルが起動し自動的にブラウザが開かれます。

![tmp1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/882900/b337f4cd-8261-4127-98fa-8f7931757562.png)

『生成した画像を日本語の文章で入力』欄に生成したい画像を文章でいれてください。

例: 少女が微笑む画像。

解像度を選んでください。

生成を押すとlibMoltenVK.dylibのエラーがでます。

![tmp21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/882900/df9687bd-ea3b-46fe-9dbf-d0650f5db2e9.png)

一旦完了を押し、Launchpadからシステム設定を開いてください。
プライバシーとセキュリティを選び、『お使いのMacを保護するために"libMoltenVK.dylibがブロックされました。』のこのまま許可を押してください。

![tmp22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/882900/6f296a2c-9f95-4253-9a44-471a00f90e94.png)

もう一度生成を押してください。

![tmp23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/882900/38b3ed9e-77b4-4248-8b30-a9ea5367517e.png)

またlibMoltenVK.dylibの警告が出ますが、このまま開くを押してください。

![tmp24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/882900/4f879202-48e2-4521-8990-57de3f6b3802.png)

パスワードを聞かれるので入力してください。

![tmp25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/882900/da49dc75-6c3f-46a5-900d-7076a6d4e948.png)

これでlibMoltenVK.dylibの検疫が解除されるので、以後は正常に画像生成できます。

#### 終了方法
ブラウザを閉じ、ターミナルも閉じてください。

## Linux
あらかじめgit と gcc 等の開発ツールと Vulkan 開発環境をインストールして
ください(Fedoraなら`sudo dnf install vulkan-headers`等)。

git で本体をダウンロードしてください。

```
git clone https://github.com/asfdrwe/sdcpp-gradio
cd sdcpp-gradio
```

[stable-diffusion.cpp](https://github.com/leejet/stable-diffusion.cpp)の
指示に従い stable-diffusion.cpp を Vulkan 対応でビルドします。

```
git clone https://github.com/leejet/stable-diffusion.cpp
cd stable-diffusion.cpp
git submodule init
git submodule update
mkdir build
cmake .. -DSD_VULKAN=ON 
cmake --build . --config Release -j
```

生成された実行ファイルのsd を sdcpp-gradio フォルダに移動させてください。

Windows 版か macOS 版 をダウンロードし、右クリックで展開し、DanbotNL-2408-260MフォルダとwaiNSFWIllustrious_v140_DMD2_Q4_K.gguf  を sdcpp-gradio フォルダに移動させてください。

python の仮想環境を作ります。

```
python -m venv venv
. venv/bin/activate
```

必要なモジュールをインストールします。

```
pip install torch --index-url https://download.pytorch.org/whl/cpu
pip install -r requirements.txt
```

### 実行

```
python sd-gradio-safe.py
```

または

```
python sd-gradio.py
```

で実行してください。

あとは Windows 版と同じです。

## 更新履歴
- 2025/6/8
細かいミスの修正
- 2025/5/19
第12世代 Core i5 1235Uでの実行時間を追加
- 2025/5/17
公開