ComfyUI向け Qwen 画像編集(改良版)

AI/ML

概要

このリポジトリは、ComfyUI 上で動作する Qwen Image Edit ノードの編集結果に生じる「出力画像の位置ズレ(オフセット)」問題を解消するために作られたカスタムノード群を提供します。作者の調査では、既存の TextEncodeQwenImageEdit ノード内に含まれる画像スケーリングのロジックが原因で、モデルへ渡される入力の座標系やスケーリングがずれてしまい、編集結果が意図した位置からずれる事例が確認されました。本プロジェクトはスケーリング処理を独立したノード(QwenImageEditScale)に分離し、エンコード処理(TextEncodeQwenImageEditAdv)をスケール処理の影響を受けない形で実行することで、位置精度と再現性を改善しています。

GitHub

リポジトリの統計情報

  • スター数: 5
  • フォーク数: 2
  • ウォッチャー数: 5
  • コミット数: 7
  • ファイル数: 9
  • メインの言語: Python

主な特徴

  • 画像スケーリング処理とエンコード処理を明確に分離したカスタムノードを提供
  • TextEncodeQwenImageEditAdv:画像とプロンプトのみをエンコード(縮小を行わない)
  • QwenImageEditScale:Qwen Image Edit モデルの期待する入力サイズやアスペクト比に合わせたスケーリングを担当
  • 比較用ノードで「オフセットが発生しない」ことを視覚的に確認可能

技術的なポイント

本プロジェクトは主に「入力画像のスケーリングが原因で発生する座標系の不一致」を解消するための実装と設計改善に焦点を当てています。既存の TextEncodeQwenImageEdit ノードは、画像の縮小やパディングを内部で行った上でエンコードを実行しており、そのスケーリングアルゴリズム(リサイズ方法、アスペクト比保持の有無、中心合わせやパディングの方式など)が Qwen Image Edit モデルの期待する前処理と微妙にずれることで、モデルが生成する「編集された領域の位置」をずらしてしまっていました。こうしたズレはわずかでも、編集タスクでは視覚的に明白に現れ、再現性の低下やデバッグの困難さを招きます。

このリポジトリでは以下の技術的アプローチを採用しています。

  1. スケーリングとエンコードの分離:QwenImageEditScale ノードにより、ユーザーが明示的にどのように画像をリサイズするか(リサイズ法、アスペクト維持、パディング色、ターゲット解像度など)を制御できるようにします。一方で TextEncodeQwenImageEditAdv は「与えられた画像をそのまま(縮小せず)エンコードする」ことに特化しているため、エンコード時に自動的なリスケールが入らず、入力座標系を保ったまま埋め込みが得られます。
  2. 座標とバウンディングの整合性:編集マスクや座標ベースの編集を行う際、入力画像上のピクセル位置がモデルに対して正確に伝わることが重要です。スケールノードでは、元画像→スケール後画像への座標変換を明確に定義し、必要に応じて逆変換マップを保持することで、編集後の出力を元の座標系に正確に戻せる設計にしています。
  3. デバッグ容易性の確保:スケーリング処理を独立させ、各段階での画像を ComfyUI のフロー内で観察できるようにすることで、どの段階でズレが生じるかをユーザが特定しやすくしています。これにより「抽カード(何度も生成して運良く当たる)に頼らない」運用が可能になります。
  4. モデル互換性と最小侵襲:既存のワークフローに組み込みやすいよう、ノードは ComfyUI の一般的な入出力形式(画像、テキスト、マスクなど)に従います。これにより、既存のグラフへ置き換えや追加がしやすく、段階的な導入が可能です。

さらに実装面では、Python で ComfyUI のノードインターフェースに従ったカスタムクラスを提供しており、画像リサイズのアルゴリズム選択(Nearest / Bilinear / Lanczos 等)やパディング方式(ゼロパディング、反射、定色)を設定可能です。ドキュメントとサンプルスクリーンショットが README に含まれており、比較ビジュアルで「改良ノード導入前後の差」を確認できます。総じて、このプロジェクトは「入力前処理の不確かさを排し、モデルへの入力を明確に制御する」ことで Qwen Image Edit の編集精度と再現性を高めることを目指しています。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .github: dir

  • .gitignore: file

  • LICENSE: file

  • README.md: file

  • init.py: file

  • nodes.py: file(カスタムノードの定義)

  • utils.py: file(スケーリングや座標変換のユーティリティ)

  • examples/: dir(ComfyUI での使用例やスクリーンショット)

  • requirements.txt: file

…他 4 ファイル

まとめ

スケーリングとエンコードを分離することで、Qwen ベースの画像編集における位置ズレ問題を実用的に解決する軽量な改善パッチです。導入が容易でデバッグ性も高い点が魅力です。

リポジトリ情報:

READMEの抜粋:

Qwen Image Edit Adv - ComfyUI Nodes

这里提供了以下自定义节点:

  • TextEncodeQwenImageEditAdv: 仅编码图片和 prompt 不进行缩放
  • QwenImageEditScale: 缩放图片以符合 Qwen Image Edit 模型需要
image

使用对比节点可以看出没有任何的偏移出现,且不需要抽卡多次生成

背景

使用 comfyui 内置的 qwen image edit 节点编辑图片的时候,总是会导致输出编辑结果偏移 根据我的调查,主要问题出现在 TextEncodeQwenImageEdit 这个节点导致的,其中包含了对于图片的缩放逻辑,而其缩放规则不符合要求,且不透明难以调试。

所以我开发了这个自定义节点,将缩放和编码分离开,方便测试,…