🚀 このモデルについて
このモデルはStable Diffusionをファインチューニングしたもので、Imaginary Network Expanded Dataset で学習されています。最大の利点は、複数の名前空間(ラベル付きタグ)を使用して最終生成の様々な部分を制御できることです。
現在のモデルは「コンテキストエラー」を起こしやすく、正しい方向に導くために大量のネガティブプロンプトが必要ですが、このモデルでは名前空間(例:「species:seal」や「studio:dc」)を使用することで、アザラシを歌手のシールと誤解したり、DCコミックをワシントンDCと誤解することを防ぎます。
このモデルは英語以外の言語も理解できます。現在は中国語、日本語、スペイン語のプロンプトを部分的に理解できます。これらの言語を完全に理解し、英語のプロンプトと同じように機能するように、さらなる学習が行われています。
このモデルは幅広いコンテンツでファインチューニングされているため、多種多様な画像や構図を生成でき、ポートレート、建築、反射、ファンタジー、コンセプトアート、アニメ、風景などの分野で、他のコミュニティのファインチューニングモデルのように過度に特殊化することなく、元のモデルを簡単に上回ります。
⚠️ 重要提示
必要なプロンプトエンジニアリング技術は、他のファインチューニングモデルや元のStable Diffusionモデルとは若干異なります。したがって、お気に入りのプロンプトを引き続き使用できますが、最適な結果を得るには、名前空間を利用するためにプロンプトを調整する必要があるかもしれません。詳細なガイドは後ほど提供されますが、Dataset Explorer で見つかったタグと名前空間を使用することで、正しい方向に進むことができます。
💡 使用建议
このモデルの作業が役に立った場合は、GitHub Sponsors で支援を検討してください!
このモデルはまだ初期段階で、時間の経過とともにますます多くのデータで更新および学習されることを目的としています。したがって、Discord Server またはHugging Faceのディスカッションセクションでフィードバックを提供してください。将来的には、より多くの良質なタグでモデルを改善する予定ですので、どんな助けも大歓迎です😛

🚀 クイックスタート
モデルの概要
メトリクス
- 精度
- BERTScore
- BLEU
- BLEURT
- ブライアスコア
- 文字誤り率
- 文字レベルの評価
- チャーカットMT
- CHRF
- コード評価
✨ 主な機能
- 複数の名前空間(ラベル付きタグ)を使用して最終生成の様々な部分を制御できます。
- 英語以外の言語(中国語、日本語、スペイン語)のプロンプトを部分的に理解できます。
- 幅広いコンテンツでファインチューニングされているため、多種多様な画像や構図を生成できます。
📦 インストール
🤗's Diffusers library を使用して、Sygil Diffusionを簡単かつ効率的に実行するには、次のコマンドを実行します。
pip install diffusers transformers accelerate scipy safetensors
💻 使用例
基本的な使用法
import torch
from diffusers import StableDiffusionPipeline, DPMSolverMultistepScheduler
model_id = "Sygil/Sygil-Diffusion"
pipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16)
pipe.scheduler = DPMSolverMultistepScheduler.from_config(pipe.scheduler.config)
pipe = pipe.to("cuda")
prompt = "a beautiful illustration of a fantasy forest"
image = pipe(prompt).images[0]
image.save("fantasy_forest_illustration.png")
高度な使用法
import torch
from diffusers import StableDiffusionPipeline, DPMSolverMultistepScheduler
model_id = "Sygil/Sygil-Diffusion"
pipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16)
pipe.scheduler = DPMSolverMultistepScheduler.from_config(pipe.scheduler.config)
pipe = pipe.to("cuda")
pipe.enable_attention_slicing()
prompt = "a beautiful illustration of a fantasy forest"
image = pipe(prompt).images[0]
image.save("fantasy_forest_illustration.png")
⚠️ 重要提示
依存関係ではありませんが、メモリ効率の高いアテンション(パフォーマンス向上)のために、xformers のインストールを強くお勧めします。
💡 使用建议
GPU RAMが少ない場合、VRAM使用量を減らすために、cuda
に送信した後に pipe.enable_attention_slicing()
を追加してください(速度が低下します)。
📚 ドキュメント
利用可能なチェックポイント
ベータ版のチェックポイントは、毎日または少なくとも週に3 - 4回更新されます。これは通常、1 - 2回の学習セッションに相当し、安定するまでこのように更新され、通常は1 - 2週間ごとに正式リリースに移行されます。ベータ版のチェックポイントは使用可能ですが、リポジトリには最新バージョンのみが保持され、新しいチェックポイントがアップロードされると古いものは削除され、リポジトリをクリーンに保ちます。HuggingFaceの推論APIおよびDiffusersライブラリは、常にDiffusers形式の最新のベータ版チェックポイントを使用します。特殊な場合、異なるStable Diffusionモデルをベースに使用するモデル(例:Stable Diffusion 1.5 vs 2.1)のように、Diffusersモデルのコピーを保持するために追加のリポジトリを作成することがあります。
学習情報
- 学習データ:Imaginary Network Expanded Dataset
- ハードウェア:1台のNvidia RTX 3050 8GB GPU
- 学習時間:約857時間
- オプティマイザ:AdamW
- Adam Beta 1:0.9
- Adam Beta 2:0.999
- Adam Weight Decay:0.01
- Adam Epsilon:1e-8
- 勾配チェックポインティング:有効
- 勾配蓄積:400
- バッチサイズ:1
- 学習率:1e-7
- 学習率スケジューラ:cosine_with_restarts
- 学習率ウォームアップステップ:10,000
- Lora unet学習率:1e-7
- Loraテキストエンコーダ学習率:1e-7
- 解像度:512ピクセル
- 総学習ステップ数:2,370,200
学習率については新しい方法を試しています。v0.3がリリースされた後、constant
スケジューラから cosine_with_restarts
に変更したところ、損失値を最小化しながらほぼ最適な学習率を使用していることがわかりました。そのため、各学習セッションが終了するたびに、次のセッションでは前回のセッションの最後の数ステップで表示された最新の学習率を使用します。これにより、学習率は時間とともに一定の割合で低下します。学習データセットに大量のデータを一度に追加するときは、学習率を1e-7に戻し、スケジューラが新しいデータから学習するにつれて再び低下させます。これにより、学習が過学習したり、学習率が低すぎてモデルがしばらくの間新しいことを学習できなくなることを防ぎます。
開発者
コミュニティの貢献
ライセンス
このモデルはオープンアクセスで、すべての人が利用できます。CreativeML Open RAIL++ - Mライセンスにより、権利と使用方法がさらに明確に規定されています。こちらで完全なライセンスを読むことができます。