この記事について(広告・アフィリエイトリンクはありません)
使ったモデルとソフトは、すべて無料で入手できます。試した環境の一覧は検証の記録にあります。
Qwen Image 2.1 で、編集した画像をまた編集する、を繰り返すと、壁や服に細かいざらつきが積み重なって、数回で画像が荒れていきます。 TailSteer は、この崩れを抑えるように追加学習したモデルです。ComfyUI で10回続けて編集して比べると、崩れ始めが1〜2回ぶん遅くなりましたが、10回目にはどちらも大きく崩れていました。
TailSteer は ComfyUI でそのままは読めない形で配られているため、この記事では1つのファイルにまとめ直して試しました。所要時間は30分ほど、難しさは中級です。
先に結論(今回のテスト条件で)
| 編集の回数 | ベースの顔(PSNR) | TailSteer の顔(PSNR) | 見た目 |
|---|---|---|---|
| 1回目 | 31.6 dB | 33.2〜34.5 dB | どちらもほぼ元のまま |
| 3回目 | 19.1〜20.0 dB | 23.8〜23.9 dB | ベースは壁がざらつき始める。TailSteer はまだ滑らか |
| 5回目 | 14.3〜15.0 dB | 17.0〜17.3 dB | どちらも荒れが目立つ |
| 10回目 | 11.6〜12.1 dB | 12.1〜12.4 dB | どちらも大きく崩れる |
PSNR は、変えていないはずの2人の顔のあたりを元画像と比べた値で、高いほど元のままです。1回の編集は、どちらも 12.4秒前後で同じでした。
なぜ何度も編集すると崩れる?
画像編集では、モデルが入力の画像を一度読み取り、指示どおりに描き直します。描き直すたびに、細かい質感が少しずつ変わります。1回なら気になりませんが、その結果を次の入力にすると、ずれが積み重なっていきます。
TailSteer の作者は、これを「テクスチャのドリフト(ずれの蓄積)」と呼び、編集のたびに生まれる小さなずれが次の入力に引き継がれる問題として扱っています。
TailSteer とは?
Qwen Image 2.1 の最後の学習段階として、繰り返し編集したときの崩れを減らすように追加学習したモデルです。重みは丸ごと差し替える形で、LoRA ではありません。作者のページでは、次のように説明されています。
- 独自のベンチマーク(Add & Preserve、100枚・10回)で、10回目の編集範囲の外の PSNR が 16.93 → 18.15 dB、LPIPS が 0.270 → 0.239 に改善
- 文字から画像や1回の編集の成績は、ベースとほぼ同じ。ただし RISE というベンチマークでは 20.56% → 18.06% に下がる
- ライセンスは Qwen RESEARCH LICENSE AGREEMENT(非商用のみ)
作者の数値は diffusers(Python のライブラリ)で動かしたもので、この記事の ComfyUI の結果とは条件が違います。
ComfyUI で読むには
TailSteer は diffusers 用の形(3つに分かれたファイル、合計 13.3GB)で配られています。ComfyUI の「拡散モデルを読み込む」でそのまま選べる1つのファイルにはなっていません。
筆者は、3つのファイルを1つにまとめ、ComfyUI の公式 bf16 ファイルと同じ名前・形にそろえました。違っていたのは MLP という部分の名前だけで、TailSteer では2つに分かれている重み(gate_layer と proj)が、ComfyUI 用では1つ(gate_up)にまとめられています。重みを比べて、gate_layer が前半、proj が後半であることを確かめてからつなげました。
まとめ直したファイルは、ComfyUI 0.44.0 でエラーなく読めました。配布元の許可を確かめていないので、まとめたファイルの配布はしていません。

RTX 5090 で試すとどうなる?
ベースの Qwen Image 2.1 で作った写真を元に、ComfyUI の公式テンプレート(画像編集、25ステップ、CFG 1)で、前の結果を次の入力にして10回続けて編集しました。編集の指示は、TailSteer の作者が例に使っているもの(スカーフに柄を入れる、ジャケットにワッペンを付ける、机を置く、など)の最初の10個です。

ベースは、3回目で壁にざらつきが出始め、6回目には壁と服が色の粒で埋まりました。TailSteer は3回目まで壁が比較的滑らかで、荒れ始めが遅れています。ただ、6回目以降はどちらも荒れが進み、10回目にはほぼ同じくらい崩れていました。

指示した編集(柄、房飾り、ワッペン、マグカップなど)は、どちらも反映されました。
なお、作者のページの例では、ベースでも10回目までここまで荒れていません。作者は diffusers で動かしていて、ComfyUI の公式テンプレートとは処理の流れが違います。ComfyUI でテキストエンコーダーを bf16 にしたり、ステップ数を増やしたりしても、崩れ方は変わりませんでした。
| 回 | ベース 女性の顔 | ベース 男性の顔 | TailSteer 女性の顔 | TailSteer 男性の顔 |
|---|---|---|---|---|
| 1 | 31.64 | 31.55 | 33.15 | 34.49 |
| 3 | 19.96 | 19.13 | 23.87 | 23.80 |
| 5 | 15.03 | 14.28 | 17.25 | 16.99 |
| 10 | 12.08 | 11.62 | 12.40 | 12.13 |
単位は dB。元画像の同じ場所と比べた PSNR です。40ステップにして3回まで試しても、崩れ方はほとんど変わりませんでした。
- Qwen Image 2.1 画像編集のワークフロー(TailSteer を選んだもの、JSON)公式テンプレートの unet_name を変えたものです。TailSteer のファイルは自分でまとめる必要があります
使ったモデル
| ファイル | 大きさ | 置き場所 |
|---|---|---|
| qwen_image_2.1_bf16.safetensors(ベース) | 14.2GB | models\diffusion_models |
| TailSteer の transformer フォルダー(3ファイル) | 13.3GB | まとめてから models\diffusion_models |
| qwen3vl_8b_int8_convrot.safetensors | 8.7GB | models\text_encoders |
| qwen_image_2.1_vae_bf16.safetensors | 0.6GB | models\vae |
商用で使える?
使えません。TailSteer のライセンスは Qwen RESEARCH LICENSE AGREEMENT で、研究と評価の目的(非商用)に限られます。商用で使うには、Qwen の提供元に別に許諾を受ける必要があります。
RTX 5090 以外の人へ
ベースも TailSteer も bf16 で約14GB あり、テキストエンコーダーを合わせると、16GB 以下の GPU では一度に載りません。ComfyUI は入りきらない分をメインメモリに置いて動かしますが、そのぶん遅くなります。TailSteer には int8 などの軽いファイルがなく、--reserve-vram での簡易テストもしていません。
よくある質問(FAQ)
Q. Qwen Image 2.1 で何度も編集すると画像が荒れるのはなぜ?
編集のたびに細かい質感が少しずつ描き変わり、その結果を次の入力にすると、ずれが積み重なるためです。今回の試験では、3回目あたりから壁や服にざらつきが出ました。
Q. TailSteer を使えば何回編集しても崩れない?
崩れ始めは遅くなりましたが、10回続けるとベースと同じくらい崩れました。今回の条件では、効果は3〜5回目までで大きく出ています。
Q. TailSteer は ComfyUI で使える?
配布は diffusers 用の分かれたファイルで、そのままは選べません。1つのファイルにまとめ、MLP の重みの名前をそろえると、ComfyUI 0.44.0 で読めました。
まとめ
何度も編集すると崩れるのは、Qwen Image 2.1 の編集でも起きます。TailSteer で崩れ始めは遅らせられますが、10回も続けると防げませんでした。
編集はなるべく元の画像から少ない回数で。崩れてきたら元に戻ってまとめて指示する。
検証メモ
- 元画像:ベースの Qwen Image 2.1(文字から画像の公式テンプレート、25ステップ、シード 31)で作った 1024×1024 の写真です。
- 編集:画像編集の公式テンプレート(25ステップ、CFG 1、euler・simple、シード 42、プロンプト拡張はオフ)で、前の回の出力を次の入力にしました。指示の末尾には、作者の例と同じく「ほかの部分と前の編集は変えない」という文を付けています。
- PSNR:女性の顔(x 250〜400、y 200〜380)と男性の顔(x 660〜830、y 150〜360)の範囲を元画像と比べました。画像全体では、10回目でベース 9.0 dB、TailSteer 9.95 dB です。
- 作者の結果との違い:作者の例では、ベースでもここまで荒れていません。作者は diffusers で 40ステップ、テキストエンコーダーは bf16 です。筆者は ComfyUI の公式テンプレート(テキストエンコーダーは int8_convrot)です。ベースで3回目まで、40ステップにする、テキストエンコーダーを bf16 にする、Qwen Image 2.1 キャッシュを off にする、をそれぞれ試しましたが、顔の PSNR は 19.1〜20.0 dB でほとんど変わりませんでした。差が出る理由はわかっていません。
- まとめ直し:3つのファイルをつなぎ、32ブロック分の gate_layer と proj を gate_up にまとめました。まとめたあとの名前と形は、公式 bf16 の 265 個と一致しています。
- 未確認のこと:diffusers での動作、作者のベンチマーク(Add & Preserve)の再現、LPIPS・SSIM。

