Kolorsを使った驚異の画像生成:初心者ガイド
はじめに:Kolorsとは?
Kolorsは、Kuaishou Kolorsチームによって開発された最先端のテキスト-画像生成モデルです。数十億のテキストと画像のペアでトレーニングされており、高品質な画像生成能力を持っています。
```mermaid
%%{init: {"themeVariables": { "primaryColor": "#ffcccc", "secondaryColor": "#ccffcc", "tertiaryColor": "#ccccff", "mainBkg": "#fff0f0", "nodeBorder": "#ff9999", "clusterBkg": "#fffaf0", "clusterBorder": "#ffe4b5", "lineColor": "#ff9999", "fontFamily": "arial"}}}%%
graph TD
A[テキスト入力] --> B[Kolorsモデル]
B --> C[高品質画像出力]
B --> D[中国語サポート]
B --> E[英語サポート]
B --> F[複雑な意味理解]
B --> G[優れた文字描画]
```
Kolorsの主な特徴: - 高品質な画像生成 - 中国語と英語の入力サポート - 複雑な意味の正確な理解 - 優れた文字描画能力
それでは、このすごいモデルを使って画像を生成する方法を、順を追って見ていきましょう!
環境セットアップ
まず、必要なライブラリをインストールします。以下のコードを実行してください。
# 必要なライブラリのインストール
!apt-get install git-lfs
!pip install -U diffusers fire accelerate xformers transformers
このコードは以下の作業を行います: 1. git-lfs(大容量ファイルの取り扱いに必要)をインストール 2. 画像生成に必要な Python ライブラリをインストールまたはアップデート
Kolorsのインストール
次に、KolorsのGitHubリポジトリをクローンし、セットアップします。
# Kolorsリポジトリのクローンとディレクトリ移動
!git clone https://github.com/Kwai-Kolors/Kolors
%cd /content/Kolors
# Kolorsのセットアップ
!python3 setup.py install
このステップでは: 1. GitHubからKolorsのソースコードをダウンロード 2. ダウンロードしたKolorsディレクトリに移動 3. Kolorsをインストール
モデルの重みのダウンロード
Kolorsモデルの重みをダウンロードします。これは画像生成に必須です。
# Kolorsモデルの重みをダウンロード
!huggingface-cli download --resume-download Kwai-Kolors/Kolors --local-dir weights/Kolors
このコマンドは: - Hugging Faceのリポジトリから Kolors の重みをダウンロード - ダウンロードした重みをweights/Kolorsディレクトリに保存
基本的な画像生成
さあ、いよいよ画像生成です!以下のコードで、簡単に画像を生成できます。
# 基本的な画像生成の実行
!python3 scripts/sample.py "A photo of a cat, macro, zoom, high quality, film, holding a sign"Sample""
このコードは: - 指定されたプロンプト(ここでは猫の写真)に基づいて画像を生成 - 生成された画像は "scripts/outputs/sample_test.jpg" に保存されます
```mermaid
%%{
init: {
'theme': 'base',
'themeVariables': {
'primaryColor': '#ffcccc',
'secondaryColor': '#ccffcc',
'tertiaryColor': '#ccccff',
'mainBkg': '#fff0f0',
'nodeBorder': '#ff9999',
'clusterBkg': '#fffaf0',
'clusterBorder': '#ffe4b5',
'lineColor': '#ff9999',
'fontFamily': 'arial'
}
}
}%%
sequenceDiagram
participant User
participant Kolors
participant FileSystem
User->>Kolors: テキストプロンプト入力
Kolors->>Kolors: 画像生成処理
Kolors->>FileSystem: 生成画像の保存
FileSystem-->>User: 画像ファイルの確認
```
カスタム推論関数の作成
より柔軟に画像生成を行うため、カスタム推論関数を作成しましょう。
import os, torch
from kolors.pipelines.pipeline_stable_diffusion_xl_chatglm_256 import StableDiffusionXLPipeline
from kolors.models.modeling_chatglm import ChatGLMModel
from kolors.models.tokenization_chatglm import ChatGLMTokenizer
from diffusers import UNet2DConditionModel, AutoencoderKL
from diffusers import EulerDiscreteScheduler
root_dir = "/content/Kolors"
def infer(prompt):
# モデルの各コンポーネントを読み込む
ckpt_dir = f'{root_dir}/weights/Kolors'
text_encoder = ChatGLMModel.from_pretrained(
f'{ckpt_dir}/text_encoder',
torch_dtype=torch.float16).half()
tokenizer = ChatGLMTokenizer.from_pretrained(f'{ckpt_dir}/text_encoder')
vae = AutoencoderKL.from_pretrained(f"{ckpt_dir}/vae", revision=None).half()
scheduler = EulerDiscreteScheduler.from_pretrained(f"{ckpt_dir}/scheduler")
unet = UNet2DConditionModel.from_pretrained(f"{ckpt_dir}/unet", revision=None).half()
# パイプラインの設定
pipe = StableDiffusionXLPipeline(
vae=vae,
text_encoder=text_encoder,
tokenizer=tokenizer,
unet=unet,
scheduler=scheduler,
force_zeros_for_empty_prompt=False)
pipe = pipe.to("cuda")
pipe.enable_model_cpu_offload()
# 画像生成
image = pipe(
prompt=prompt,
height=1024,
width=1024,
num_inference_steps=50,
guidance_scale=5.0,
num_images_per_prompt=1,
generator= torch.Generator(pipe.device)).images[0]
# 生成画像の保存
image.save(f'{root_dir}/scripts/outputs/sample_test_{prompt}.jpg')
# 関数の実行
infer("A photo of a cat, macro, zoom, high quality, holding a sign"v0.3.0"")
このinfer関数は: 1. 必要なモデルコンポーネントを読み込み 2. 画像生成パイプラインを設定 3. 指定されたプロンプトに基づいて画像を生成 4. 生成された画像をファイルとして保存
関数を実行すると、指定したプロンプトに基づいた画像が生成されます。
```mermaid
%%{init: {"themeVariables": { "primaryColor": "#ffcccc", "secondaryColor": "#ccffcc", "tertiaryColor": "#ccccff", "mainBkg": "#fff0f0", "nodeBorder": "#ff9999", "clusterBkg": "#fffaf0", "clusterBorder": "#ffe4b5", "lineColor": "#ff9999", "fontFamily": "arial"}}}%%
graph TD
A[プロンプト入力] --> B[モデルコンポーネント読み込み]
B --> C[パイプライン設定]
C --> D[画像生成]
D --> E[画像保存]
E --> F[生成画像の確認]
```
まとめと次のステップ
おめでとうございます!これであなたもKolorsを使って素晴らしい画像を生成できるようになりました。
次のステップとして以下のことに挑戦してみましょう: 1. さまざまなプロンプトを試して、モデルの能力を探る 2. 生成された画像の品質や正確さを評価する 3. 日本語のプロンプトを使用して、モデルの多言語能力をテストする
Kolorsの世界を楽しんでください。素晴らしい創造の旅が、ここから始まります!
📒ノートブック
https://colab.research.google.com/drive/1d1bDboRfyhR8L1zKkGGs670O-kObDK2q?usp=sharing
この記事が気に入ったらサポートをしてみませんか?