はじめに
Sanaは、NVIDIA Labsで開発された効率的な高解像度画像生成フレームワークで、最大4096×4096の解像度の画像を数秒で生成します。Sanaは、線形拡散変換器と深層圧縮自動エンコーダ技術を使用して、画像生成の速度と品質を劇的に向上させると同時に、計算リソースの必要性を低減します。このフレームワークは、低コストのコンテンツ制作のために、通常のラップトップGPUでの実行をサポートしています。
機能一覧
- 高解像度画像生成最大解像度4096×4096の画像生成に対応。
- リニア拡散コンバーター線形注意メカニズムを用いた高解像度画像生成の効率化
- 深圧縮オートエンコーダ画像を最大32倍まで圧縮し、潜在的なマーカーの数を減らし、トレーニングと生成の効率を向上させます。
- テキストから画像への変換デコーダとテキスト・エンコーダのみによって、画像とテキストの位置合わせを強化。
- 効率的なトレーニングとサンプリングFlow-DPM-Solverは、サンプリングステップを減らし、収束を加速するために使用されます。
- 低コストでの展開16GBのノートパソコン用GPUをサポートし、1024×1024解像度の画像を1秒以内に生成します。
ヘルプの使用
設置プロセス
- Pythonのバージョンが3.10.0以上であることを確認してください。
- PyTorch のバージョン >= 2.0.1+cu12.1 をインストールしてください。
- 佐奈倉庫のクローン:
git clone https://github.com/NVlabs/Sana.git cd サナ
- 環境設定スクリプトを実行する:
./environment_setup.sh sana
または
環境設定.sh
の説明に従って、各コンポーネントを段階的にインストールします。
使用方法
ハードウェア要件
- 0.6Bモデルは9GBのVRAMを、1.6Bモデルは12GBのVRAMを必要とする。定量化バージョンは推論に8GB以下のビデオメモリを必要とする。
クイックスタート
- Gradioを使って公式オンラインデモを開始する:
demo_port=15432 python app/app_sana.py --config=configs/sana_config/1024ms/Sana_1600M_img1024.yaml \ ---model_path=hf://Efficient-Large-Model/Sana_1600M_1024px/checkpoints/Sana_1600M_1024px.pth
- 推論コードを実行して画像を生成する:
インポートトーチ from app.sana_pipeline import SanaPipeline from torchvision.utils import save_image device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") generator = torch.Generator(device=device).manual_seed(42) sana = SanaPipeline("configs/sana_config/1024ms/Sana_1600M_img1024.yaml") sana.from_pretrained("hf://Efficient-Large-Model/Sana_1600M_1024px/checkpoints/Sana_1600M_1024px.pth") prompt = '「サナ」と書かれたネオンサインを持つサイバーパンクな猫' image = sana(prompt=prompt, height=1024, width=1024, guidance_scale=5.0, pag_guidance_scale=2.0, num_inference_steps=18, generator=ジェネレーター) save_image(image, 'output/sana.png', nrow=1, normalise=True, value_range=(-1, 1))
トレーニングモデル
- 以下の形式でデータセットを用意する:
asset/example_data AAA.txt AAA.png ├── BCC.txt ├── BCC.png ├── CCC.txt
- トレーニングを開始する:
bash train_scripts/train.sh \ configs/sana_config/512ms/sana_600M_img512.yaml ⇦ -data.data_dir="asset_example_data"。 -data.data_dir="asset/example_data"。 --data.type=SanaImgDataset ⇦ -data.multi_scale=Sana_600M_img512 ---を指定します。 ---train.train_batch_size=32