IP-Adapter の InstantStyle を試してみる (3) - レイアウトレイヤーだけ IP-Adapter を適用してみる
前回の記事
前回は スタイルレイヤー と思われる up プロパティを残して出力してみました。
今回は レイアウトレイヤー と思われる down プロパティを残して出力してみたいと思います。
まずは結果から
スクリプトは前回とほぼ一緒なので、後述に省略します。

両方適用したときとほぼ一緒!洋服の色とか目の色が違うくらい
スクリプト全体
(折りたたみ)
各種インストール
!pip install git+https://github.com/huggingface/diffusers !pip install -U transformers accelerate peft
diffusers v0.27.2 には実装されていない機能を使うので main branch をインストールします!間違えないように!
各種モデルをロードする
import torch
from diffusers import AutoPipelineForText2Image
# ベースモデルをロードする
pipe = AutoPipelineForText2Image.from_pretrained(
"stabilityai/stable-diffusion-xl-base-1.0",
torch_dtype=torch.float16
).to("cuda")
# IP-Adapter をロードする
pipe.load_ip_adapter(
"h94/IP-Adapter",
subfolder="sdxl_models",
weight_name="ip-adapter_sdxl.bin"
)
IP-Adapter のスケールを設定する
# IP-Adapter のスケールを設定する
scale = {
"down": {
"block_2": [0.0, 1.0]
},
}
pipe.set_ip_adapter_scale(scale)
ここがポイントです。今回はdownのみを定義します。
IP-Adapter に使用する画像をロードする
from diffusers.utils import load_image # IP-Adapter に使用する画像をロードする ip_adapter_image_url = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/0052a70beed5bf71b92610a43a52df6d286cd5f3/diffusers/rabbit.jpg" ip_adapter_image = load_image(ip_adapter_image_url)
パイプラインを実行する
import torch
# シードを設定する
generator = torch.Generator(device="cpu").manual_seed(26)
# パイプラインを実行する
# 猫、傑作、最高品質、高品質
prompt = "a cat, masterpiece, best quality, high quality"
negative_prompt = "text, watermark, lowres, low quality, worst quality, deformed, glitch, low contrast, noisy, saturation, blurry"
images = pipe(
prompt,
negative_prompt=negative_prompt,
ip_adapter_image=ip_adapter_image,
guidance_scale=5,
num_inference_steps=30,
num_images_per_prompt=1,
generator=generator,
).images
画像プロンプト

テキストプロンプト
a cat, masterpiece, best quality, high quality
実行結果を保存する
from datetime import datetime
from zoneinfo import ZoneInfo
# Asia/Tokyo タイムゾーンの現在時刻を YYYYMMDDhhmmss 形式で得る
formattedNow = datetime.now(tz=ZoneInfo("Asia/Tokyo")).strftime("%Y%m%d%H%M%S")
for idx, image in enumerate(images):
# 実行結果
image.save(f"image_{formattedNow}_{idx}_{generator.initial_seed()}.png")
まとめ
画像プロンプトのウサギの格好が維持されたように思います。
果たして、レイアウトだけ IP-Adapter が適用される。。。とは?
相変わらず、スッと理解できない状態です。