--- title: Character View Sheet (Qwen Image 2.1 turbo) emoji: 🎨 colorFrom: blue colorTo: gray sdk: gradio sdk_version: 5.49.1 python_version: "3.12" app_file: app.py pinned: false license: apache-2.0 short_description: ポーズ人形による11視点生成の速度・同一性・追従精度を評価する研究デモ --- # Character View Sheet (Qwen Image 2.1 turbo) 参照キャラクター画像と、付属する11種類のポーズ人形を使い、各視点を1枚ずつ生成する Hugging Face Gradio Space用の研究試作版です。**ローカル実機で11視点生成を検証済み**です。 公開Space: [Character View Sheet (Qwen Image 2.1 turbo)](https://huggingface.co/spaces/darask0/Qwen-Image-Edit-2511-Lora-Sheet) **HF ZeroGPU largeでも、認証情報を送らないAPI接続から標準サイズ11視点の完走を確認しました。** 2026-10-12、GPU内処理68.0秒、割当・転送込み68.5秒、 ピーク割当33.01GiB。角度LoRAあり・人形あり・白背景全身の切り出しあり・Seed0です。 確認GPUは`NVIDIA RTX PRO 6000 Blackwell Server Edition MIG 2g.48gb`。110秒予約でPNG11枚を取得しました。 1例・1回の匿名API試験で、ブラウザ操作や他の入力・混雑時の完走を保証するものではありません。 上記は別の検証用Spaceで取得した計測です。この検証済みTurbo版で既存の2511 Spaceを置き換えました。 URLは従来のものを継続し、表示名・使用モデル・アプリ内容を更新しています。 RTX PRO 6000 Blackwell(96GB、PyTorchの割当を48GiBに制限)では、標準サイズ・速度優先設定で 11枚を推論36.1秒、PNG保存込み39.3秒、ピーク割当33.01GiBで生成しました。 これは全GPUの演算能力を使用した値です。ZeroGPU largeの半GPU性能、転送、待ち時間は再現していません。 高速設定は11枚を推論17.7秒・保存込み19.0秒で完走しました。 人物1例の評価で、構図や衣装の細部に誤りが残るため、学習用画像は選別してください。 同じ人物では、標準・速度優先+参照切り出し+2.1角度LoRA(強度0.8)が最も良い結果でした。 この条件は11枚を推論37.3秒・保存込み40.2秒、ピーク割当33.02GiBで完走しました。 短パン化と背中への胸模様の転写が解消し、顔・上半身の寄り構図も改善しましたが、 左右非対称の袖模様、背景色、細かな関節位置は一致しません。 用途は研究・評価です。未ログイン利用者も参加できる研究用デモとして、 生成速度、キャラクター同一性、ポーズ人形への追従精度を検証する想定です。 対象モデルは `Qwen/Qwen-Image-2.1-Turbo`。未ログイン利用者の120秒枠で11視点を 生成できるよう、最大110秒のGPU予約、低解像度設定、実行時間の記録を用意しています。 110秒は処理の上限であり、11枚の完成所要時間を測った値ではありません。 ## 変更内容 - 元Spaceと同じ11視点を選択可能。 - キャプション生成、タガー、比較レポート、トリガーワード/除外タグ設定を削除。 - 出力ZIPは `dataset/NN_view.png` のみ。TXT、キャプション、ポーズ人形は混入しません。 - 全視点でユーザーの元画像を参照。生成画像を次の視点に回す中間アンカー生成はありません。 - 白背景の直立全身画像に限り、寄り4視点の参照切り出しを選べます(既定は無効)。 - 11枚のグレーのポーズ人形PNGを同梱。人形参照のオン・オフを比較可能。 - Turboの保存済み8ステップsigmaを使用。CFG=1、KV cache有効。 - GPUサイズは明示的に `large`。1ジョブずつ処理し、VAE tilingを有効化。 - 時間が不足しそうなら次の視点を開始せず、完成済みの画像を返します。 - モデル内のステップ境界でも期限を確認。通常の後続視点エラーでも完成画像を保持します。 ただしプロセス強制終了・GPU割当失敗・ステップ途中の長時間停止は救済できません。 ## ポーズ人形 ![11種類の人形](assets/pose_preview.png) `pose_guides.py` が同じ立体モデルを異なるカメラから投影して作ります。 画像生成AIや外部の人形画像は使用していません。個別PNGには文字が入りません。 一覧だけに確認用ラベルがあります。 1. 全身の正面・左側面・右側面・背面 2. 腿上の正面・背面 3. 上半身正面・顔正面 4. 膝を抱えた座り姿の正面・背面 5. うつ伏せの後方俯瞰 条件画像は `[元のキャラ画像, その視点の人形画像]` の2枚です。 「白背景の直立全身画像」の切り出しを有効にすると、腿上・上半身・顔用に元画像から それぞれ前景高さの72%・45%・20%を切り出します。縦横比を保ち、白い余白を付けます。 背景付き画像、座り姿、既に寄った画像には使わないでください。寄り構図は改善しましたが、 切断面を衣装の裾と解釈し長ズボンを短パンに変える例もあり、実験オプションです。 指示文でも「Image 1から外見、Image 2からポーズと構図」を区別します。 これは画像編集の参照機能であり、ControlNetや骨格座標による強制制御ではありません。 顔や衣装の保持、背面の補完、関節配置への追従は生成結果で確認する必要があります。 人形は標準体型のため、デフォルメ体型では余白や手足の配置を調整する余地があります。 再生成: ```bash python pose_guides.py --regenerate ``` ## HF Spaceでの検証手順 1. このディレクトリの内容をGradio Spaceのルートに置きます。 2. HardwareをZeroGPUに設定します。アプリの閲覧者にHFログインを要求する設定はありません。 3. 既定の `GPU_SIZE=large`、標準・速度優先、人形参照ありで起動します。公開Spaceは `ENABLE_ANGLES_LORA=1` で、検証済みの2.1角度LoRAを使用します。 4. 所有者の利用枠で、正面・側面・背面をまず比較し、続いて11視点を生成します。 5. 「実行時間の記録」からJSONを保存し、全11視点の完成、ピークVRAM、1枚ごとの時間を確認します。 6. 同じ参照画像・Seed・出力サイズで人形参照のオン/オフを比較します。 7. 未ログイン状態では、その日の残り利用枠がある状態で11視点を検証します。 HF上で依存インストール・起動・ZeroGPU推論・画像ZIP取得を確認済みです。 HFのビルドが供給したTorch2.13.0を維持し、Torchvision0.28.0へ解決されました。 Spaces0.51.3、Gradio5.49.1、Python3.12.12、Transformers5.19.0、PEFT0.21.2、Accelerate1.15.0で動作しました。 `requirements.txt` はQwen公式案内に沿い、Turboを扱える上流Diffusersコミットを固定しました。 ZeroGPUが供給するtorch/spaces/Gradioはrequirementsで重ねて固定しません。 旧 `tagging.py` / `optimization.py` / `qwenimage/` / `bench/` は削除しました。 旧requirementsを追加せず、本版のものを使用します。 ## 解像度と時間枠 | 設定 | 縦長 | 正方形 | 横長 | 条件画像の面積設定 | |---|---|---|---|---| | 高速 | 512×768 | 640×640 | 768×512 | `output_resolution=640` | | 標準・速度優先(既定) | 832×1216 | 1024×1024 | 1216×832 | `output_resolution=640` | | 標準・細部優先 | 832×1216 | 1024×1024 | 1216×832 | `output_resolution=1024` | 条件画像をPILで縮小するだけではモデル内部で拡大されるため、`output_resolution`も明示しています。 高速モードの画像は標準より小さく、学習用細部の情報量も減ります。 標準・速度優先は出力サイズを保ち、参照画像の処理面積を減らします。 細かい模様の再現は別途比較が必要です。元2511版との同一条件の速度比較は未実施です。 GPU時間枠は `min(MAX_GPU_SECONDS, max(45, 15 + 10 × 視点数))` 秒。 この式は測定結果からの推定ではなく、試作の予約上限です。 初期転送に15秒、生成終了処理に6秒の余裕を取り、残り時間で生成します。 11視点は110秒予約、`large`では120秒の匿名日次枠内に予約できますが、他のSpaceでの利用や 残り枠、混雑、実行速度によって利用・完成を保証するものではありません。 公式の現行仕様では `large`は48GB・1倍消費、`xlarge`は96GB・2倍消費です。 `xlarge`へ変更すると11視点の予約が220秒相当になり、未ログイン枠を超えます。 Turboのsafetensorsファイル合計は約32.44GBで、演算時のVRAMはこれより増えます。 ローカル実測で標準解像度・2参照画像のピーク割当は36.10GiB、標準・速度優先では33.01GiBでした。 HF largeでも標準・速度優先のピーク割当は33.01GiBでした。 | Space Variable | 既定値 | 意味 | |---|---|---| | `GPU_SIZE` | `large` | `large` / `xlarge`。明示指定 | | `MAX_GPU_SECONDS` | `110` | 45〜110。実行時間枠の上限 | | `ENABLE_ANGLES_LORA` | `0` | `1`で2.1用Multiple-Angles v2を追加する比較実験 | ## 角度LoRA 旧2511用のLightning/Multiple-Anglesは使用しません。 2.1は異なるモデル構造です。必要なら `akhaliq/Qwen-Image-2.1-Multiple-Angles-LoRA` の v2、強度0.8を起動時に適用できます。``語彙を使います。 作者の学習実装とDiffusersではMLPの層名と構造が異なるため、`angles_adapter.py`が 結合されたgate/upのLoRAを分割変換し、全224モジュール・448テンソルの読込を確認します。 未対応層を黙って無視しません。変換後のモデルで11視点の実GPU推論を完走しました。 本検証の人物1例では衣装と寄り構図が改善しました。品質比較用オプションで、既定では無効です。 この比較を再現するには `ENABLE_ANGLES_LORA=1`、標準・速度優先、白背景全身用の切り出しを選びます。 ## 利用条件 アプリのコードと手続き的に作成した人形はApache-2.0です。 **モデル重みのライセンスは別**で、TurboはQwen Research Licenseです。 公開本文では非商用を研究・評価目的と定義し、商用利用には別許諾を求めています。 無料公開であることだけから利用可能とは判断できません。 出力を用いて学習・改善したAIモデルを配布・提供する場合、関連文書への `Built with Qwen` または `Improved using Qwen` 表示条件があります。 本試作版は、上記の研究・評価用途を前提とします。 ## ローカルで検証した範囲 PillowとPython標準ライブラリで、CPU側のデータ処理テストを実行できます。 モデル重みをダウンロードすることはありません。 ```bash python -m unittest discover -s tests -v ``` 画像だけのZIP、11視点の選択、各視点の参照画像、途中失敗時の保存、時間枠の中断、 入力画像の透過処理・縮小、選択順に依存しないSeedを確認します。 人形画像は目視および寸法・RGBモードを確認しました。 CPUテストは生成品質を評価しません。GPUベンチマークは次のコマンドで別途実行できます。 モデルのダウンロードには約33GB、実行にはCUDA環境が必要です。 ```bash python benchmark_local.py --image character.png --output-dir results \ --resolution balanced --pose-guides on --reference-crop on --memory-limit-gib 48 ``` `--reference-crop on` は白背景・直立全身の場合だけ指定します。 `--resolution fast/standard/balanced`、`--angles-lora on/off`、`--repeat 2`で比較できます。 `--create-sample`は検証用の成人キャラクターを先に生成し、その時間を11枚の計測から分離します。 `--image`と`--create-sample`を省略すると人形の速度試験となり、人物同一性の評価には使えません。 計測JSONは各視点の同期済み推論時間、PNG保存込み時間、ロード時間、ピークVRAM、 モデルrevision、プロンプト、Seedを記録します。48GiB制限はPyTorch allocatorだけを制限し、 半GPUの演算性能やZeroGPU環境を再現しません。 ## 一次資料(2026-10-12確認) - [置き換え前の11視点Spaceのソース](https://huggingface.co/spaces/darask0/Qwen-Image-Edit-2511-Lora-Sheet/tree/0e9ee21fcd738c71b4ccd0606e854b79521fbbd3) - [Turbo公式モデルカード](https://huggingface.co/Qwen/Qwen-Image-2.1-Turbo) - [使用するDiffusers実装](https://github.com/huggingface/diffusers/blob/85c9fa4caee33d1c5b473395784471d2d7957c1b/src/diffusers/pipelines/qwenimage21/pipeline_qwenimage21.py) - [2.1用角度LoRAの作者資料](https://huggingface.co/akhaliq/Qwen-Image-2.1-Multiple-Angles-LoRA) - [HF ZeroGPU仕様・利用枠](https://huggingface.co/docs/hub/en/spaces-zerogpu) - [Turboライセンス](https://huggingface.co/Qwen/Qwen-Image-2.1-Turbo/blob/main/LICENSE)