AIパーソナル・ラーニング
と実践的なガイダンス
TRAE

InstantCharacter:単一の画像から一貫性のある文字を生成するオープンソースツール

はじめに

InstantCharacterは、Tencent HunyuanとInstantXチームによって開発されたオープンソースプロジェクトで、GitHubでホストされています。リファレンス画像とテキストの説明を使用して、様々なシーンやスタイルに対応した一貫性のあるキャラクター画像を生成します。このプロジェクトはDiffusion Transformer技術に基づいており、従来のU-Netアーキテクチャの限界を打破し、より高い画質と柔軟性を提供している。ユーザーは複雑な調整をする必要がなく、簡単な操作だけで描写に合ったキャラクター画像を生成することができ、アニメーション、ゲーム、デジタルアートなどで幅広く活用されている。このプロジェクトはFlux.1モデルをサポートし、スタイルLoRAの適応を提供することで、ユーザーがスタイル化された生成を容易に実現します。

InstantCharacter:単一の画像から一貫性のある文字を生成するオープンソースツール-1


 

機能一覧

  • 1枚の画像から一貫性のあるキャラクターを生成:1枚の参照画像だけで、異なるシーン、アクション、視点のキャラクター画像を生成できます。
  • テキスト駆動型ジェネレーション:「通りでギターを弾く女の子」など、テキストプロンプトでキャラクターの動きやシーン、スタイルを調整。
  • スタイルマイグレーション対応:ジブリ風や新海誠風など、様々なスタイルのLoRAに対応し、アーティスティックな映像を生成。
  • 高画質画像出力:Flux.1のモデルに基づき、高解像度で詳細なキャラクタ画像を生成します。
  • オープンソースモデルのサポート:Fluxと他のオープンソースのテキストから画像へのモデルをサポートし、開発者は自由に機能を拡張することができます。
  • 軽量アダプタ:スケーラブルなアダプタ・モジュールを使用することで、計算リソースの消費を抑え、世代効率を向上させる。
  • 大規模データセットの最適化:1,000万件のサンプルデータセットに基づくトレーニングにより、役割の一貫性とテキストの制御性を確保。

 

ヘルプの使用

設置プロセス

InstantCharacterはGPU対応環境を必要とし、NVIDIA GPUを推奨します(最低48GBのVRAM、24GBに最適化)。以下は、詳細なインストール手順です:

  1. 環境準備::
    • 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がインストールされていることを確認してください。
  2. クローン倉庫::
    • ターミナルを開き、以下のコマンドを実行してInstantCharacterリポジトリをクローンする:
      git clone https://github.com/Tencent/InstantCharacter.git
      cd InstantCharacter
      
  3. チェックポイント・モデルのダウンロード::
    • 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 などのカタログがある。
  4. 実行環境のセットアップ::
    • 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 パラメーター

 

アプリケーションシナリオ

  1. アニメーションと映画制作
    • キャラクターのコンセプトアートやストーリーボードを素早く生成し、プリデザインサイクルを短縮します。ユーザーはキャラクターのスケッチをアップロードし、シーンの説明(「キャラクターが森の中を走る」など)を入力し、アニメーションのプレビューやキャラクターのテスト用に一貫性のある画像を生成できます。
  2. ゲーム開発
    • ゲームキャラクターのマルチビュー、マルチモーション画像を生成します。開発者はキャラクターデザインをアップロードし、2Dまたは3Dのゲームリソースで使用するためのさまざまなポーズ(例えば「キャラクターが剣を振る」など)のスプライトを生成します。
  3. デジタルアート制作
    • アーティストがスタイルLoRAを使用して、リアルなキャラクターをジブリ風に変換したようなアーティスティックなキャラクター画像を生成し、イラストやNFT制作に使用します。
  4. ソーシャルメディア・コンテンツ
    • ユーザーが自撮り写真をアップロードすると、アニメ風のアバターやアニメシーン(例えば「SFの街でひとりダンス」)が生成され、パーソナライズされたソーシャルメディア・コンテンツが楽しめる。

 

品質保証

  1. InstantCharacterはどのようなモデルをサポートしていますか?
    • Flux.1モデルは現在サポートされており、将来的には他のオープンソースのテキストから画像へのモデルにも拡張される可能性がある。
  2. そのために必要なビデオメモリの容量は?
    • 推奨48GBメモリ、最適化により24GBをサポート。メモリ要件を低減する定量化技術を開発中。
  3. モデルのダウンロード失敗を解決するには?
    • ハギング・フェイスのミラー・アドレスを使うか --resume-download パラメータを使用して、ネットワークの安定性を確保する。
  4. なぜ生成される動物のキャラクターは不安定なのか?
    • モデルのトレーニングデータは人間のキャラクターが多く、動物の特徴は最適化されていない。
  5. 市販されていますか?
    • 現在のライセンスは研究利用のみで、商用利用にはテンセントからのライセンスが必要です。
無断転載を禁じます:チーフAIシェアリングサークル " InstantCharacter:単一の画像から一貫性のある文字を生成するオープンソースツール
ja日本語