はじめに
InstantCharacterは、Tencent HunyuanとInstantXチームによって開発されたオープンソースプロジェクトで、GitHubでホストされています。リファレンス画像とテキストの説明を使用して、様々なシーンやスタイルに対応した一貫性のあるキャラクター画像を生成します。このプロジェクトはDiffusion Transformer技術に基づいており、従来のU-Netアーキテクチャの限界を打破し、より高い画質と柔軟性を提供している。ユーザーは複雑な調整をする必要がなく、簡単な操作だけで描写に合ったキャラクター画像を生成することができ、アニメーション、ゲーム、デジタルアートなどで幅広く活用されている。このプロジェクトはFlux.1モデルをサポートし、スタイルLoRAの適応を提供することで、ユーザーがスタイル化された生成を容易に実現します。
機能一覧
- 1枚の画像から一貫性のあるキャラクターを生成:1枚の参照画像だけで、異なるシーン、アクション、視点のキャラクター画像を生成できます。
- テキスト駆動型ジェネレーション:「通りでギターを弾く女の子」など、テキストプロンプトでキャラクターの動きやシーン、スタイルを調整。
- スタイルマイグレーション対応:ジブリ風や新海誠風など、様々なスタイルのLoRAに対応し、アーティスティックな映像を生成。
- 高画質画像出力:Flux.1のモデルに基づき、高解像度で詳細なキャラクタ画像を生成します。
- オープンソースモデルのサポート:Fluxと他のオープンソースのテキストから画像へのモデルをサポートし、開発者は自由に機能を拡張することができます。
- 軽量アダプタ:スケーラブルなアダプタ・モジュールを使用することで、計算リソースの消費を抑え、世代効率を向上させる。
- 大規模データセットの最適化:1,000万件のサンプルデータセットに基づくトレーニングにより、役割の一貫性とテキストの制御性を確保。
ヘルプの使用
設置プロセス
InstantCharacterはGPU対応環境を必要とし、NVIDIA GPUを推奨します(最低48GBのVRAM、24GBに最適化)。以下は、詳細なインストール手順です:
- 環境準備::
- Python 3.8以降をインストールする。
- PyTorch(CUDA対応)のインストールを推奨。
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
. - 依存ライブラリをインストールするには、以下のコマンドを実行する:
pip install transformers accelerate diffusers huggingface_cli
- 大きなファイルをダウンロードするために、システムにGitとGit LFSがインストールされていることを確認してください。
- クローン倉庫::
- ターミナルを開き、以下のコマンドを実行してInstantCharacterリポジトリをクローンする:
git clone https://github.com/Tencent/InstantCharacter.git cd InstantCharacter
- ターミナルを開き、以下のコマンドを実行してInstantCharacterリポジトリをクローンする:
- チェックポイント・モデルのダウンロード::
- Hugging Faceからモデルをダウンロードする:
huggingface-cli download --resume-download Tencent/InstantCharacter --local-dir checkpoints --local-dir-use-symlinks False
- ハギング・フェイスにアクセスできない場合は、ミラーリングされたアドレスを使用することができます:
export HF_ENDPOINT=https://hf-mirror.com huggingface-cli download --resume-download Tencent/InstantCharacter --local-dir checkpoints --local-dir-use-symlinks False
- ダウンロードが完了したら、フォルダ構成が以下のようになっていることを確認する。
checkpoints
そしてassets
そしてmodels
などのカタログがある。
- Hugging Faceからモデルをダウンロードする:
- 実行環境のセットアップ::
- GPUドライバとCUDAのバージョンがPyTorchと互換性があることを確認してください。
- モデルとコードをCUDA対応デバイスに移動し、以下を実行します。
pipe.to("cuda")
.
使用方法
InstantCharacterの中核機能は、参照画像とテキストプロンプトから文字画像を生成することです。以下はその詳細な手順です:
1.ローディングモデルとアダプター
- 付属の
pipeline.py
スクリプトはベースモデルとアダプターをロードします。サンプルコードは以下の通りです:import torch from PIL import Image from pipeline import InstantCharacterFluxPipeline # 设置种子以确保可重复性 seed = 123456 # 加载基础模型 base_model = 'black-forest-labs/FLUX.1-dev' ip_adapter_path = 'checkpoints/instantcharacter_ip-adapter.bin' image_encoder_path = 'google/siglip-so400m-patch14-384' image_encoder_2_path = 'facebook/dinov2-giant' # 初始化管道 pipe = InstantCharacterFluxPipeline.from_pretrained(base_model, torch_dtype=torch.bfloat16) pipe.to("cuda") pipe.init_adapter( image_encoder_path=image_encoder_path, image_encoder_2_path=image_encoder_2_path, subject_ipadapter_cfg=dict(subject_ip_adapter_path=ip_adapter_path, nb_token=1024) )
- 上記のコードでは、Flux.1モデルとInstantCharacterのIPアダプターをロードし、モデルがGPU上で動作するようにしています。
2.参考写真の準備
- 文字を含む画像を選択する。
assets/girl.jpg
)、背景がシンプルであることを確認してください(例えば白背景)。 - 画像を読み込み、RGB形式に変換する:
ref_image_path = 'assets/girl.jpg' ref_image = Image.open(ref_image_path).convert('RGB')
3.キャラクター画像の生成(スタイル移行なし)
- テキストプロンプトを使用して画像を生成し、推論ステップ数やブートストラップスケールなどのパラメータを設定します:
prompt = "A girl is playing a guitar in street" image = pipe( prompt=prompt, num_inference_steps=28, guidance_scale=3.5, subject_image=ref_image, subject_scale=0.9, generator=torch.manual_seed(seed) ).images[0] image.save("flux_instantcharacter.png")
subject_scale
役割の一貫性をコントロールし、値が低いほどスタイル化が優先される(0.6や0.8など)。
4.スタイルLoRAによるスタイル移行
- InstantCharacterは、様式化されたLoRAをサポートしています(ジブリや新海誠スタイルなど)。LoRAファイルを読み込んで、スタイル付き画像を生成します:
lora_file_path = 'checkpoints/style_lora/ghibli_style.safetensors' trigger = 'ghibli style' prompt = "A girl is playing a guitar in street" image = pipe.with_style_lora( lora_file_path=lora_file_path, trigger=trigger, prompt=prompt, num_inference_steps=28, guidance_scale=3.5, subject_image=ref_image, subject_scale=0.9, generator=torch.manual_seed(seed) ).images[0] image.save("flux_instantcharacter_style_ghibli.png")
- 相互互換性
lora_file_path
歌で応えるtrigger
異なるスタイルに切り替え可能(例.Makoto_Shinkai_style.safetensors
).
5.Gradioインターフェイスを実行する(オプション)
- このプロジェクトはGradioインターフェイスを提供し、簡単に相互作用できる。実行
app.py
::python app.py
- ブラウザーを開いてローカルアドレスにアクセスする(例
http://127.0.0.1:7860
)、画像をアップロードし、プロンプトワードを入力して画像を生成する。
ほら
- 動物のキャラクター生成は不安定になる可能性があるため、人間のキャラクター画像を推奨する。
- より高解像度の生成にはより多くのメモリが必要であり、A100またはRTX 5000シリーズGPUが推奨される。
- モデルのダウンロードは、ネットワークの問題により中断されることがあります。
--resume-download
パラメーター
アプリケーションシナリオ
- アニメーションと映画制作
- キャラクターのコンセプトアートやストーリーボードを素早く生成し、プリデザインサイクルを短縮します。ユーザーはキャラクターのスケッチをアップロードし、シーンの説明(「キャラクターが森の中を走る」など)を入力し、アニメーションのプレビューやキャラクターのテスト用に一貫性のある画像を生成できます。
- ゲーム開発
- ゲームキャラクターのマルチビュー、マルチモーション画像を生成します。開発者はキャラクターデザインをアップロードし、2Dまたは3Dのゲームリソースで使用するためのさまざまなポーズ(例えば「キャラクターが剣を振る」など)のスプライトを生成します。
- デジタルアート制作
- アーティストがスタイルLoRAを使用して、リアルなキャラクターをジブリ風に変換したようなアーティスティックなキャラクター画像を生成し、イラストやNFT制作に使用します。
- ソーシャルメディア・コンテンツ
- ユーザーが自撮り写真をアップロードすると、アニメ風のアバターやアニメシーン(例えば「SFの街でひとりダンス」)が生成され、パーソナライズされたソーシャルメディア・コンテンツが楽しめる。
品質保証
- InstantCharacterはどのようなモデルをサポートしていますか?
- Flux.1モデルは現在サポートされており、将来的には他のオープンソースのテキストから画像へのモデルにも拡張される可能性がある。
- そのために必要なビデオメモリの容量は?
- 推奨48GBメモリ、最適化により24GBをサポート。メモリ要件を低減する定量化技術を開発中。
- モデルのダウンロード失敗を解決するには?
- ハギング・フェイスのミラー・アドレスを使うか
--resume-download
パラメータを使用して、ネットワークの安定性を確保する。
- ハギング・フェイスのミラー・アドレスを使うか
- なぜ生成される動物のキャラクターは不安定なのか?
- モデルのトレーニングデータは人間のキャラクターが多く、動物の特徴は最適化されていない。
- 市販されていますか?
- 現在のライセンスは研究利用のみで、商用利用にはテンセントからのライセンスが必要です。