5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ComfyUIってなんだろな? いまさら聞けないComfyUIの使い方講座とQwen-imageEditor2059の最適化挑戦

Last updated at Posted at 2025-12-01

この記事は、NTTテクノクロスAdvent Calendar 2025 シリーズ1の1日目の記事になります。

皆さんこんにちは。NTTテクノクロスの畑です。現在はXR機器を使用したARコンテンツ表示やAIを活用したソリューション検討などを行っています。

最近のAIについて

ここ数年でAIに対する一般の考え方は様変わりしました。
汎用AI、万能AI、AIソリューション、AIによるDX推進、AIアバター、AIアナウンサー、画像生成AI、AI音声合成...etc
マルチモーダルAIなんてものも出てきました。
なんだったらchatGPTに対して「チャッピー」という愛称をつけて人生の相談相手として利用している人もいるのだとか。(都市伝説かな?

これらの社会現象からも見て取れる通り大規模学習モデル(LLM)の利用が一般に浸透してきているのは紛れもない事実であり、世間一般の皆さんが今「AI」という言葉に大きな期待を寄せていることは確かでしょう。

この期待に伴ってLLMを利用するエンジニアは様々な工夫を行うことが当然のようになってきました。
例えばあるタスクをAIによって分解し、それぞれの専門的な回答が可能なAIに分配することで複雑なタスクを実行することを可能にしたりなどですね。(オーケストレーション)
最近ですとGeminiで行えるようになったDeepSearchなんて機能を使って感動した人もいるのではないでしょうか?

そのような時代の流れに即して、画像生成AIのインターフェイスもこれまでメジャーだったインターフェイス(Automatic1111)では望みの実装に手間がかかるため、新たなインターフェイスへ乗り換える人も増えました。

そんな中、画像生成AIインターフェイスのメジャーとして今注目を浴びているのがComfyUIと呼ばれるインターフェイスなんです!
このインターフェイスの特徴としては各Nodeがそれぞれ単独の役割を持ち、その出力を以下の図にあるように各Nodeを紐づけていくことで生成AIの裏側に隠れていた複雑なワークフローを実現することが出来るというものになっています。
※ノーコードのプログラミングと似ている部分がありますね('ω')
image.png
なのですが、これは同時にLLMが出力を返してくれるまでの道のりについてきちんと理解をしている人が作成しなければ正常に動作しないという側面も持っており、これによって多くの人が挫折してきたインターフェイスでもありました。
ですが今ではインターフェイスのメジャー化に伴い、既存のワークフローが最適化されてきた影響で、各nodeを少しいじるだけで様々なことが出来るようになりました。

そんなわけでこの記事ではComfyUIというインターフェイスの使い方を学びつつ、Qwen-imageEditor2059を利用してイラストを自然言語で加工できるようにしていきたいと思いますのでよろしくお願いします!

お品書き

[Step1] ComfyUIの使い方を学ぶ

[Step2] Qwen-image-Editor2059のプロンプト最適解への挑戦

[Step1] ComfyUIの使い方を学ぶ

Comfyuiって何ぞや?

ComfyUIとは「comfyanonymous」さんが開発された画像・動画生成インターフェイスです。
もともとはStable Diffusionのパイプライン(処理の流れ)をそのままグラフ化するという哲学の元作られたStable Diffusion環境インターフェイスの一種でしたが、柔軟性の高さや制御できる幅の広さなどから徐々に人気を集めていき今では画像・動画生成インターフェイスでTOPを走るシステムになりました。

この特徴としては上記でも述べた通り、「各Nodeがそれぞれ単独の役割を持ち、その出力を糸のように紐づけていく」ことによって発揮される「柔軟性」と「きめ細かい制御ができる」というものがあります。
これによってStable Diffusionモデルにこだわらない多様なモデルへの活用やメモリ管理がシビアな動画生成AI環境での最適化などを手軽に行うことが出来るインターフェイスとなっています。

改めて皆さん、ComfyUIという単語に聞き覚えはありますでしょうか?
あると思った皆さん… 
一つ問いかけたいのですが、実際にNodeを使って望みの動作を再現するまで苦労しませんでしたか?
自分は激しく苦労しました。
そんな思いからまずはComfyUIの基本的な使い方などを実際に各Nodeを組み合わせながら実演することで、理解を深めていきたいと思います。

この記事ではNodeを組み合わせながらワークフローを作成していきます。
有志でComfyUIの使い方を分かりやすく解説してくれているwikiもあるので、本記事での不明点については、こちらで補完していただけると助かります。
※このwikiなのですが、長年の研鑽により非常に分かりやすい解説となっていますので是非一度目を通してみてください!

https://comfyui-wiki.com/ja

環境作成

筆者は以下の環境を使用して動作実験を行いました。

CPU : Intel(R) Core(TM) i7-9700K CPU @ 3.00GHz
GPU : NVIDIA GeForce RTX 3060
GPUドライバー:NVIDIA Studio Driver ver.560.94
memory : 32GB
SSD : 1TB

とにもかくにもComfyUIが利用できる環境を構築しないことには始まりません。
今回は「Stable Matrix」という画像生成の環境を簡単に構築することが出来るソフトウェアを使用します。
このソフトウェアのインストールに関しては以前私が記事にしていますのでこちらを参照ください

https://qiita.com/NTT-TX_syotaroh/items/c6b224540c3592f9156f

上記記事では「Stable Diffusion web UI by AUTOMATIC1111」のインターフェイスを利用するようになっているので、その部分に関しては以下の様な形でcomfyUIをインストールするようにしてください。

image.png
image.png
image.png

これでComfyUIの本当に基本的な環境構築はできました。
次に、ComfyUIを立ち上げてみましょう。
すると次の様な画面が出てくるはずです。

image.png

これにて起動確認ができたので、一度Stable MatrixからComfyUIを停止してください。

拡張機能のインストール

画像生成を始める前にComfyUIにはなくてはならない拡張機能をインストールしたいと思います。

D:\StabilityMatrix-win-x64\Data\Packages\ComfyUI_Qiita\custom_nodes

の配下で

git clone https://github.com/ltdrdata/ComfyUI-Manager.git

を実行してください。

PCにgitがインストールされていない場合、下記のページにアクセスし、ファイルをダウンロードしたのちに、上記と同じ場所に展開した状態で配置してください。

https://github.com/Comfy-Org/ComfyUI-Manager

image.png

この拡張機能はComfyUIの機能を拡張するために有志が作成したカスタムノードと呼ばれるものを一括で管理するための拡張機能になります。
この拡張機能では既存のテンプレートで不足しているカスタムノードを自動的に検知しインストールしたり、いちいち拡張機能をインストールするたびにgitからファイルをクローンすることなく、カスタムノードをインストール出来るようになります。
多くの経験者の中には「これがないと生きていけない(>_<)」という人も多いのではないでしょうか?
少なくとも自分はインストール必須だと思っています!

これが完了したら実際にもう一度ComfyUIを起動しましょう!
すると以下の様な画面が出てきて右上にManagerという記載が増えているはずです。

image.png

もし「Manager」という記載が出ていない場合、何らかのエラーでインストールが失敗しています。もう一度上記の手順を確認しインストールしなおしてください。
※大抵の場合はzipを展開し忘れていたり、ComfyUIを一度停止していなかったりなどのうっかりミスなことが多いので今一度手順を確かめてみてください。

ここまでこればComfyUIを動かすことが出来ると思います!

チュートリアル

まず手始めに簡単なワークフローを呼び出してみましょう!
ComfyUIでは便利なことに各モデルを動かすためのテンプレートが用意されています!
手始めにQwen-imageEditor2059のテンプレートを呼び出してみましょう!

image.png

呼び出すと次の様な形になっていると思います。

呼び出す際に次のようなエラーが出ると思います。
これは必要なモデルのInsatllが出来ていないために起こるエラーです。
「Model links」と書かれたところにモデルをダウンロードするためのリンクが貼られており、ファイル構造についても記載があるので、これに従って各フォルダにモデルをダウンロードしてみてください。
ここにあるComfyUIはManagerをインストールした際に利用したディレクトリ(D:\StabilityMatrix-win-x64\Data\Packages\ComfyUI_Qiita)のことを意味しているので注意してください。
image.png

image.png

これがQwen-imageEditor2059のワークフローになります。
それぞれの四角い枠がNodeになっており、Nodeにあるinputとoutputを適切に繋げることで各動作が紐づけられ、Qwen-imageEditor2059による画像編集を実現しています。
手始めに画像をアップロードというボタンを押下して参考画像の載せて、「TextEncodeQwenImageEditPlus」のところに画像の変えたい部分を日本語の自然文で打ち込んだのちに、「実行する」というボタンを押下してみましょう!

今回は参考画像として「Nova Anime XL」というモデルを活用させていただいています!
ありがとうございます!

https://civitai.com/images/109595300

するとStableMatrixのコマンドラインが動きだすと思います。
しばらく待つと次の様な形で画像を編集することが出来ていると思います!
ここでは「女の子の髪色を黒色にしてください」と指示しました。
image.png

image.png

この状態でも十分かもしれませんが、自分好みのワークフローを実現するためにNode同士の結び方やその法則について学んでいきたいと思います!
文字で説明してもなんのこっちゃ(; ・`д・´)という感じになると思いますので、
実際に各Nodeの結び方を変えて動きを見ることで感覚的につかんでいきましょう!

手始めに

まずは直観的にわかりやすいpromptをいじってみましょう!
ComfyUIでは何もない場所でダブルクリックをすることで現在ActiveになっているNodeを検索することが出来ます。
※自分はこの機能に気づくまで1週間かかりました…orz

image.png

この検索Boxに「文字列」と入力してみましょう!
すると次のようにいくつかの候補が表示されるかと思いますので、文字列(複数)を選択しましょう

筆者の環境では日本語で設定を行っているので、「文字列」という名前になっていますが英語の設定になっていると「文字列」ではヒットしないと思います。その際は「String」と検索すると同様の形でNodeを検索することが出来ます。

追伸:カスタムノードは日本語化されていない場合がほとんどですので、英語のほうが変に混乱しなくていいかもしれません。

そうすることでテキストボックスを呼び出すことが出来ました。
次にこれをTextEncodeQwenImageEditPlusのテキストボックスと繋げてみましょう!

これによって「文字列(複数)」に入力された文字列がpromptとして認識されるようになりました!
あとはここに目的のpromptを入力することでLLMにプロンプトを入力することが出来るようになります。

image.png

ワイルドカード機能を手作りしてみよう!

次に少し複雑なワークフローを作成してみましょう!
ここでは例として画像生成でよく用いられるワイルドカードの作成を行ってみます。
※ワイルドカードとは特定のキーワードを指定した言葉へランダムに入れ替えることで様々な構図の画像を作ることが出来る手法のことです。

そのためには基礎的なプログラム演算(変数の定義や四則演算、テキストの置き換えなど)ができるカスタムノードたちをインストールする必要があります。

実はワイルドカードはカスタムノード一つでできるものもあるのですが、今回は使い方の学習のために実際にフローを作成するところを実施していきたいと思います。
※こちらの記事に「Impact wild card」というワイルドカードに相当するようなカスタムノードに関する説明が載っています…(;´∀`)

https://note.com/gentle_murre488/n/nc73d145ec709

インストールするカスタムノードは「ComfyUI-Easy-Use」と「Was Node Suite (Revised)」になります。
どちらも細かな演算などの痒い所に手が届くカスタムノードを多く提供していただいているものになります。

https://github.com/yolain/ComfyUI-Easy-Use
https://github.com/ltdrdata/was-node-suite-comfyui

先ほどComfyUI_Managerをインストールした時と同じ手順でもインストールできるのですが、今回はComfyUI_Managerを使ってインストールしていきましょう!

まず右上のManagerのボタンを押下してください。

image.png

するとこのような画面になるはずです。

image.png

ここの「Custom Nodes Manager」を押下し、検索窓にComfyUI-Easy-Useと入力してください。
すると以下の様な画面が出てきますので、こちらのInstallのボタンを押下してください。

image.png

しばらくすると右下にRestartという表記が出てきますが、先に「Was Node Suite (Revised)」も同じ手順でインストールしておきましょう。

image.png

両方のinstallが終了したらStable Matrixの方からリスタートを実行してください。

image.png

ComfyUIからRestartを行うとStable Matrixの方でComfyUIが動いているのかの確認が取れなくなってしまい、Stable Matrix側でComfyUIを起動、停止することが出来なくなってしまうことが確認できています。
※ComfyUIからは操作できるのでそこまで大きな弊害にはならないかもですが注意してください。

何もない場所で右クリックをしてノードを追加の中に「EasyUse」と「WAS Suite」のタブがあればインストール成功です!

一度の再起動では依存関係が正しくインストールされないこと場合もあるので何度が試してみてください。

もし表示がない場合インストールに失敗しています。
上記手順を確認したのちにエラー内容を確認してください。
※最近はComfyUIが世界的に広まっているのでGeminiなどにエラー文を投げれば解決策を教えてくれると思います。

ワークフローで不足しているカスタムノードを自動インストールする方法

ComfyUIの利用方法としてはやはり有志の方が作成してくれたワークフローを読み込んで、それを改造するという機会が自然と多くなっていきます。
※利用者拡大に伴い優秀なワークフローが増えてきているため

ワークフローの読み込み自体は配布されているjsonファイルを画面上にドラッグアンドドロップすれば読み込めるのですが、この際にカスタムノードが不足しているとエラー表示が出ます。
image.png

これを解消する最も簡単な方法としてManager画面の「Install Missing Custom Nodes」を押下することで不足しているカスタムノードを自動で検出し、インストールすることが出来るのでぜひ覚えておいてください。

※Step2で利用します。

ここまでで必要なカスタムノードのインストールは完了です!

では実際にNodeを組んでいきたいと思います。
今回は以下のNodeたちを使っていきます

comfyui-easy-use:「Text Index Switch」「Show Any」「Math Int」
was-ns:「Text Find and Replace」
ComfyUICore(もともとComfyUIが持っているNode群):「文字列」「文字列(複数行)」

まずはどのようなフローでワイルドカードを実現するかを考えましょう!

(; ・`д・´)思考中・・・・・


・・
・・・
・・・・
・・・・・

( ゚Д゚)ピコーン!

今回はある特定のキーワードを入力文の中に仕込んで置き、それをリプレースすることでワイルドカードを実現したいと思います。

段階で分けるとこうなります。
1. キーワードを入力文の中に仕込んで、任意の文字でreplaceするフローを作成する。
2. このリプレースされる文字が複数の中からランダムで選ばれるようにする。

ということで、まずは1をつくっていきましょう!

まずは、入力文の部分から作成していきます。
まず「文字列(複数行)」を検索してこのように配置してみます。(名前は分かりやすいようにinputとかにしておきましょう。)

image.png

次に文字を置き換えるカスタムノード「Text Find and Replace」を配置して次のように線を結んでみます。

image.png

カスタムノードが受け付けている入力・出力に関してはカスタムノードを配布している方のgitページに行くか「runComfy」という有志のサイトで情報を集めてることをお勧めします。
このrunComfyには有志の方が公開しているワークフロー(設計図)であったり、カスタムノードに関する豊富な知識がぎっちり詰まっているのでComfyUIを触る際には、抑えておきたいwebサイトだと思います!( ..)φメモメモ

https://www.runcomfy.com/

次に置き換えた文字を出力する場所を把握しておきましょう。
result_textの場所に「showAny」をつなげることで出力を見ることが出来ます。

image.png

実際に動かしてみると次の様な形になっています。
image.png

「find」にて記載した文字列「HairStyle」をキーワードとして「replace」に記載した「赤」へ文字が置き換わっていることが分かると思います。
これで「1.ある特定のキーワードを入力文の中に仕込んで置き、それをリプレースする」が出来ました。

あとはワイルドカードとして機能させるために「2.このリプレースされる文字が複数の中からランダムで選ばれるようにする。」を実装する必要があります。

う~ん( ̄ー ̄)

いくつも手段はあると思いますが、自分はsampleとしてこのようなものを用意してみました。

image.png

基本的なフローとしては以下のようになっています。
・ワイルドカードとして使いたい文字列を
 ワイルドカード生成部(Text Index Switch)に事前登録する。
・Indexの値に応じてどのワイルドカードが採用されるかが決定されるため
 この値を乱数で作成する。

工夫点としてはMODで余りを求めることで必ずIndexの値が
ワイルドカードの数以下になるよう調整しました('ω')!

(* ̄ ̄ ̄ ̄ー ̄ ̄ ̄ ̄) ぬーん

皆さん落ち着いてください。
上のフローはお手本としてはあまりにも杜撰なものになっています。
※まだまだ改良の余地が多くあるワークフローになっています。
(入力に応じて計算式が連動していない、ワイルドカードの文字を増やすのにいちいちNodeの繋ぎ方を変えないといけないetc....)

ですが一応ワイルドカードの動作は実現できています。

こういうことは、考えながら改良しているときが一番楽しいと思うので、あとは皆さんの手でより良い完成形を目指してみてください!
※自分の最適解を出すのはやめておきますね。゚+.(`・∀・´)゚+.゚

ここまでの操作である程度ComfyUIの基本的な操作については慣れて貰えたかなと思います。

ほかにもここには書ききれなかった機能(Subgraph機能やGroupNode機能)も山ほどありますのでそちらについてはぜひ「comfyui-wiki」の情報を見て進めてもらえればなと思います。
※結局一番早い習熟方法は人気のワークフローを見ることだったりしますので、「runcomfy」で代表的なワークフローを調べてみてもいいかもしれません!

https://comfyui-wiki.com/ja
https://www.runcomfy.com/

[Step2] Qwen-image-Editor2059のプロンプト最適解への挑戦

ここからはStep2です!

これまではComfyUIの使い方を解説してきましたが、ここからは実際にComfyUIを利用して、Qwen-image-editor2059を効率的に利用するためのプロンプト最適化の方法を考えたいと思います!

テンプレートの紹介の際に少し名前を出しましたが、Qwen-image-editor2059とは自然言語で参考画像に対して画像編集を行うことができる画像生成AIになります。
具体的にはこのようなことができます。
image.png

ですが、当然意図した結果にならないこともよくあります。

image.png
※このように女の子の容姿を入れ替えてほしいのに、容姿はそのままでposeが変わってしまう。

これを抑制するために世界中の人が知恵を出し合っているのですが、基本的には英語で会話しているものがほとんどですし、そもそもQwen-image-editor2059自体日本語よりも英語でpromptを入力する方が意図通りの結果になるという報告も多いです。

そこで今回はLMStudioというアプリケーションと連携することで適したプロンプトを自動生成することでQwen-image-editor2059での画像編集を楽にしよう!という目的でお話を進めていきます。

まずはLMStudioと連携させるためのカスタムノードをインストールしましょう!
これまでの手順同様に検索ボックスに「YANC_LMStudio」と入力し、これをインストールしてください。

https://github.com/ALatentPlace/YANC_LMStudio

ほかに必要なnodeとしては、「ComfyUI-Easy-Use」をインストールしてください。
※step1を実施いただいた方はすでに入手済みになっています。

https://github.com/yolain/ComfyUI-Easy-Use

次に私の方でComfyUIにあったQwen-image-editor2059のテンプレートを一部改良したものを作成しましたのでこちらをワークフローへ落とし込んでください。
※下記のものを.jsonというファイル名で保存し、それをcomfyUIにドラッグアンドドロップすれば表示できるはずです。

{"id":"91f6bbe2-ed41-4fd6-bac7-71d5b5864ecb","revision":1,"last_node_id":437,"last_link_id":698,"nodes":[{"id":75,"type":"CFGNorm","pos":[740,-20],"size":[290,60],"flags":{},"order":32,"mode":0,"inputs":[{"localized_name":"model","name":"model","type":"MODEL","link":141},{"localized_name":"strength","name":"strength","type":"FLOAT","widget":{"name":"strength"},"link":null}],"outputs":[{"localized_name":"patched_model","name":"patched_model","type":"MODEL","links":[186]}],"properties":{"cnr_id":"comfy-core","ver":"0.3.50","Node name for S&R":"CFGNorm","enableTabs":false,"tabWidth":65,"tabXOffset":10,"hasSecondTab":false,"secondTabText":"Send Back","secondTabOffset":80,"secondTabWidth":65,"ue_properties":{"widget_ue_connectable":{"strength":true}}},"widgets_values":[1]},{"id":39,"type":"VAELoader","pos":[-250,320],"size":[330,60],"flags":{},"order":0,"mode":0,"inputs":[{"localized_name":"vae_name","name":"vae_name","type":"COMBO","widget":{"name":"vae_name"},"link":null}],"outputs":[{"localized_name":"VAE","name":"VAE","type":"VAE","slot_index":0,"links":[76,168,206,207]}],"properties":{"cnr_id":"comfy-core","ver":"0.3.48","Node name for S&R":"VAELoader","models":[{"name":"qwen_image_vae.safetensors","url":"https://huggingface.co/Comfy-Org/Qwen-Image_ComfyUI/resolve/main/split_files/vae/qwen_image_vae.safetensors","directory":"vae"}],"enableTabs":false,"tabWidth":65,"tabXOffset":10,"hasSecondTab":false,"secondTabText":"Send Back","secondTabOffset":80,"secondTabWidth":65,"widget_ue_connectable":{}},"widgets_values":["qwen_image_vae.safetensors"]},{"id":38,"type":"CLIPLoader","pos":[-250,160],"size":[330,110],"flags":{},"order":1,"mode":0,"inputs":[{"localized_name":"clip名","name":"clip_name","type":"COMBO","widget":{"name":"clip_name"},"link":null},{"localized_name":"タイプ","name":"type","type":"COMBO","widget":{"name":"type"},"link":null},{"localized_name":"デバイス","name":"device","shape":7,"type":"COMBO","widget":{"name":"device"},"link":null}],"outputs":[{"localized_name":"CLIP","name":"CLIP","type":"CLIP","slot_index":0,"links":[204,205]}],"properties":{"cnr_id":"comfy-core","ver":"0.3.48","Node name for S&R":"CLIPLoader","models":[{"name":"qwen_2.5_vl_7b_fp8_scaled.safetensors","url":"https://huggingface.co/Comfy-Org/Qwen-Image_ComfyUI/resolve/main/split_files/text_encoders/qwen_2.5_vl_7b_fp8_scaled.safetensors","directory":"text_encoders"}],"enableTabs":false,"tabWidth":65,"tabXOffset":10,"hasSecondTab":false,"secondTabText":"Send Back","secondTabOffset":80,"secondTabWidth":65,"widget_ue_connectable":{}},"widgets_values":["qwen_2.5_vl_7b_fp8_scaled.safetensors","qwen_image","default"]},{"id":66,"type":"ModelSamplingAuraFlow","pos":[740,-130],"size":[290,60],"flags":{},"order":26,"mode":0,"inputs":[{"localized_name":"モデル","name":"model","type":"MODEL","link":185},{"localized_name":"シフト","name":"shift","type":"FLOAT","widget":{"name":"shift"},"link":null}],"outputs":[{"localized_name":"モデル","name":"MODEL","type":"MODEL","links":[141]}],"properties":{"cnr_id":"comfy-core","ver":"0.3.48","Node name for S&R":"ModelSamplingAuraFlow","enableTabs":false,"tabWidth":65,"tabXOffset":10,"hasSecondTab":false,"secondTabText":"Send Back","secondTabOffset":80,"secondTabWidth":65,"widget_ue_connectable":{}},"widgets_values":[3]},{"id":37,"type":"UNETLoader","pos":[-250,-100],"size":[330,90],"flags":{},"order":2,"mode":0,"inputs":[{"localized_name":"unet_name","name":"unet_name","type":"COMBO","widget":{"name":"unet_name"},"link":null},{"localized_name":"重みdtype","name":"weight_dtype","type":"COMBO","widget":{"name":"weight_dtype"},"link":null}],"outputs":[{"localized_name":"モデル","name":"MODEL","type":"MODEL","slot_index":0,"links":[184]}],"properties":{"cnr_id":"comfy-core","ver":"0.3.48","Node name for S&R":"UNETLoader","models":[{"name":"qwen_image_edit_2509_fp8_e4m3fn.safetensors","url":"https://huggingface.co/Comfy-Org/Qwen-Image-Edit_ComfyUI/resolve/main/split_files/diffusion_models/qwen_image_edit_2509_fp8_e4m3fn.safetensors","directory":"diffusion_models"}],"enableTabs":false,"tabWidth":65,"tabXOffset":10,"hasSecondTab":false,"secondTabText":"Send Back","secondTabOffset":80,"secondTabWidth":65,"widget_ue_connectable":{}},"widgets_values":["qwen_image_edit_2509_fp8_e4m3fn.safetensors","default"]},{"id":88,"type":"VAEEncode","pos":[490,900],"size":[140,46],"flags":{},"order":29,"mode":0,"inputs":[{"localized_name":"ピクセル","name":"pixels","type":"IMAGE","link":614},{"localized_name":"vae","name":"vae","type":"VAE","link":168}],"outputs":[{"localized_name":"潜在","name":"LATENT","type":"LATENT","links":[221]}],"properties":{"cnr_id":"comfy-core","ver":"0.3.50","Node name for S&R":"VAEEncode","enableTabs":false,"tabWidth":65,"tabXOffset":10,"hasSecondTab":false,"secondTabText":"Send Back","secondTabOffset":80,"secondTabWidth":65,"ue_properties":{"widget_ue_connectable":{}}},"widgets_values":[]},{"id":110,"type":"TextEncodeQwenImageEditPlus","pos":[220,180],"size":[400,200],"flags":{},"order":30,"mode":0,"inputs":[{"localized_name":"clip","name":"clip","type":"CLIP","link":204},{"localized_name":"vae","name":"vae","shape":7,"type":"VAE","link":206},{"localized_name":"image1","name":"image1","shape":7,"type":"IMAGE","link":615},{"localized_name":"image2","name":"image2","shape":7,"type":"IMAGE","link":692},{"localized_name":"image3","name":"image3","shape":7,"type":"IMAGE","link":218},{"localized_name":"prompt","name":"prompt","type":"STRING","widget":{"name":"prompt"},"link":null}],"outputs":[{"localized_name":"条件付け","name":"CONDITIONING","type":"CONDITIONING","links":[210]}],"properties":{"cnr_id":"comfy-core","ver":"0.3.59","Node name for S&R":"TextEncodeQwenImageEditPlus"},"widgets_values":[""],"color":"#223","bgcolor":"#335"},{"id":113,"type":"MarkdownNote","pos":[730,1030],"size":[330,90],"flags":{},"order":3,"mode":0,"inputs":[],"outputs":[],"title":"Note: About image size","properties":{},"widgets_values":["You can use the latent from the **EmptySD3LatentImage** to replace **VAE Encode**, so you can customize the image size."],"color":"#432","bgcolor":"#653"},{"id":335,"type":"CFGNorm","pos":[760,1400],"size":[290,60],"flags":{},"order":33,"mode":4,"inputs":[{"localized_name":"model","name":"model","type":"MODEL","link":499},{"localized_name":"strength","name":"strength","type":"FLOAT","widget":{"name":"strength"},"link":null}],"outputs":[{"localized_name":"patched_model","name":"patched_model","type":"MODEL","links":[503]}],"properties":{"cnr_id":"comfy-core","ver":"0.3.50","Node name for S&R":"CFGNorm","enableTabs":false,"tabWidth":65,"tabXOffset":10,"hasSecondTab":false,"secondTabText":"Send Back","secondTabOffset":80,"secondTabWidth":65,"ue_properties":{"widget_ue_connectable":{"strength":true}}},"widgets_values":[1]},{"id":337,"type":"VAELoader","pos":[-250,1750],"size":[330,60],"flags":{},"order":4,"mode":4,"inputs":[{"localized_name":"vae_name","name":"vae_name","type":"COMBO","widget":{"name":"vae_name"},"link":null}],"outputs":[{"localized_name":"VAE","name":"VAE","type":"VAE","slot_index":0,"links":[501,593]}],"properties":{"cnr_id":"comfy-core","ver":"0.3.48","Node name for S&R":"VAELoader","models":[{"name":"qwen_image_vae.safetensors","url":"https://huggingface.co/Comfy-Org/Qwen-Image_ComfyUI/resolve/main/split_files/vae/qwen_image_vae.safetensors","directory":"vae"}],"enableTabs":false,"tabWidth":65,"tabXOffset":10,"hasSecondTab":false,"secondTabText":"Send Back","secondTabOffset":80,"secondTabWidth":65,"widget_ue_connectable":{}},"widgets_values":["qwen_image_vae.safetensors"]},{"id":338,"type":"CLIPLoader","pos":[-250,1590],"size":[330,110],"flags":{},"order":5,"mode":4,"inputs":[{"localized_name":"clip名","name":"clip_name","type":"COMBO","widget":{"name":"clip_name"},"link":null},{"localized_name":"タイプ","name":"type","type":"COMBO","widget":{"name":"type"},"link":null},{"localized_name":"デバイス","name":"device","shape":7,"type":"COMBO","widget":{"name":"device"},"link":null}],"outputs":[{"localized_name":"CLIP","name":"CLIP","type":"CLIP","slot_index":0,"links":[510,515]}],"properties":{"cnr_id":"comfy-core","ver":"0.3.48","Node name for S&R":"CLIPLoader","models":[{"name":"qwen_2.5_vl_7b_fp8_scaled.safetensors","url":"https://huggingface.co/Comfy-Org/Qwen-Image_ComfyUI/resolve/main/split_files/text_encoders/qwen_2.5_vl_7b_fp8_scaled.safetensors","directory":"text_encoders"}],"enableTabs":false,"tabWidth":65,"tabXOffset":10,"hasSecondTab":false,"secondTabText":"Send Back","secondTabOffset":80,"secondTabWidth":65,"widget_ue_connectable":{}},"widgets_values":["qwen_2.5_vl_7b_fp8_scaled.safetensors","qwen_image","default"]},{"id":340,"type":"KSampler","pos":[760,1510],"size":[300,474],"flags":{},"order":36,"mode":4,"inputs":[{"localized_name":"モデル","name":"model","type":"MODEL","link":503},{"localized_name":"ポジティブ","name":"positive","type":"CONDITIONING","link":691},{"localized_name":"ネガティブ","name":"negative","type":"CONDITIONING","link":631},{"localized_name":"潜在画像","name":"latent_image","type":"LATENT","link":600},{"localized_name":"シード","name":"seed","type":"INT","widget":{"name":"seed"},"link":null},{"localized_name":"ステップ","name":"steps","type":"INT","widget":{"name":"steps"},"link":null},{"localized_name":"cfg","name":"cfg","type":"FLOAT","widget":{"name":"cfg"},"link":null},{"localized_name":"サンプラー名","name":"sampler_name","type":"COMBO","widget":{"name":"sampler_name"},"link":null},{"localized_name":"スケジューラ","name":"scheduler","type":"COMBO","widget":{"name":"scheduler"},"link":null},{"localized_name":"ノイズ除去","name":"denoise","type":"FLOAT","widget":{"name":"denoise"},"link":null}],"outputs":[{"localized_name":"潜在","name":"LATENT","type":"LATENT","slot_index":0,"links":[500]}],"properties":{"cnr_id":"comfy-core","ver":"0.3.48","Node name for S&R":"KSampler","enableTabs":false,"tabWidth":65,"tabXOffset":10,"hasSecondTab":false,"secondTabText":"Send Back","secondTabOffset":80,"secondTabWidth":65,"widget_ue_connectable":{}},"widgets_values":[169748939648760,"randomize",4,1,"euler","simple",1]},{"id":341,"type":"UNETLoader","pos":[-250,1330],"size":[330,90],"flags":{},"order":6,"mode":4,"inputs":[{"localized_name":"unet_name","name":"unet_name","type":"COMBO","widget":{"name":"unet_name"},"link":null},{"localized_name":"重みdtype","name":"weight_dtype","type":"COMBO","widget":{"name":"weight_dtype"},"link":null}],"outputs":[{"localized_name":"モデル","name":"MODEL","type":"MODEL","slot_index":0,"links":[521]}],"properties":{"cnr_id":"comfy-core","ver":"0.3.48","Node name for S&R":"UNETLoader","models":[{"name":"qwen_image_edit_2509_fp8_e4m3fn.safetensors","url":"https://huggingface.co/Comfy-Org/Qwen-Image-Edit_ComfyUI/resolve/main/split_files/diffusion_models/qwen_image_edit_2509_fp8_e4m3fn.safetensors","directory":"diffusion_models"}],"enableTabs":false,"tabWidth":65,"tabXOffset":10,"hasSecondTab":false,"secondTabText":"Send Back","secondTabOffset":80,"secondTabWidth":65,"widget_ue_connectable":{}},"widgets_values":["qwen_image_edit_2509_fp8_e4m3fn.safetensors","default"]},{"id":345,"type":"EmptySD3LatentImage","pos":[770,2280],"size":[270,106],"flags":{},"order":7,"mode":4,"inputs":[{"localized_name":"幅","name":"width","type":"INT","widget":{"name":"width"},"link":null},{"localized_name":"高さ","name":"height","type":"INT","widget":{"name":"height"},"link":null},{"localized_name":"バッチサイズ","name":"batch_size","type":"INT","widget":{"name":"batch_size"},"link":null}],"outputs":[{"localized_name":"潜在","name":"LATENT","type":"LATENT","links":[]}],"properties":{"cnr_id":"comfy-core","ver":"0.3.59","Node name for S&R":"EmptySD3LatentImage"},"widgets_values":[1024,1024,1]},{"id":351,"type":"MarkdownNote","pos":[750,2450],"size":[330,90],"flags":{},"order":8,"mode":4,"inputs":[],"outputs":[],"title":"Note: About image size","properties":{},"widgets_values":["You can use the latent from the **EmptySD3LatentImage** to replace **VAE Encode**, so you can customize the image size."],"color":"#432","bgcolor":"#653"},{"id":339,"type":"ModelSamplingAuraFlow","pos":[760,1290],"size":[290,60],"flags":{},"order":27,"mode":4,"inputs":[{"localized_name":"モデル","name":"model","type":"MODEL","link":502},{"localized_name":"シフト","name":"shift","type":"FLOAT","widget":{"name":"shift"},"link":null}],"outputs":[{"localized_name":"モデル","name":"MODEL","type":"MODEL","links":[499]}],"properties":{"cnr_id":"comfy-core","ver":"0.3.48","Node name for S&R":"ModelSamplingAuraFlow","enableTabs":false,"tabWidth":65,"tabXOffset":10,"hasSecondTab":false,"secondTabText":"Send Back","secondTabOffset":80,"secondTabWidth":65,"widget_ue_connectable":{}},"widgets_values":[3]},{"id":99,"type":"MarkdownNote","pos":[-840,-140],"size":[550,550],"flags":{},"order":9,"mode":0,"inputs":[],"outputs":[],"title":"Model links","properties":{"widget_ue_connectable":{}},"widgets_values":["[Tutorial](https://docs.comfy.org/tutorials/image/qwen/qwen-image-edit)\n\n\n## Model links\n\nYou can find all the models on [Comfy-Org/Qwen-Image_ComfyUI](https://huggingface.co/Comfy-Org/Qwen-Image_ComfyUI/tree/main) and  [Comfy-Org/Qwen-Image-Edit_ComfyUI](https://huggingface.co/Comfy-Org/Qwen-Image-Edit_ComfyUI) \n\n**Diffusion model**\n\n- [qwen_image_edit_2509_fp8_e4m3fn.safetensors](https://huggingface.co/Comfy-Org/Qwen-Image-Edit_ComfyUI/resolve/main/split_files/diffusion_models/qwen_image_edit_2509_fp8_e4m3fn.safetensors)\n\n**LoRA**\n\n- [Qwen-Image-Edit-2509-Lightning-4steps-V1.0-bf16.safetensors](https://huggingface.co/lightx2v/Qwen-Image-Lightning/resolve/main/Qwen-Image-Edit-2509/Qwen-Image-Edit-2509-Lightning-4steps-V1.0-bf16.safetensors)\n\n**Text encoder**\n\n- [qwen_2.5_vl_7b_fp8_scaled.safetensors](https://huggingface.co/Comfy-Org/Qwen-Image_ComfyUI/resolve/main/split_files/text_encoders/qwen_2.5_vl_7b_fp8_scaled.safetensors)\n\n**VAE**\n\n- [qwen_image_vae.safetensors](https://huggingface.co/Comfy-Org/Qwen-Image_ComfyUI/resolve/main/split_files/vae/qwen_image_vae.safetensors)\n\nModel Storage Location\n\n```\n📂 ComfyUI/\n├── 📂 models/\n│   ├── 📂 diffusion_models/\n│   │   └── qwen_image_edit_2509_fp8_e4m3fn.safetensors\n│   ├── 📂 loras/\n│   │   └── Qwen-Image-Lightning-4steps-V1.0.safetensors\n│   ├── 📂 vae/\n│   │   └── qwen_image_vae.safetensors\n│   └── 📂 text_encoders/\n│       └── qwen_2.5_vl_7b_fp8_scaled.safetensors\n```\n\n## Report issue\nIf you have any problems running this workflow, please report template-related issues via this link: [report the template issue here](https://github.com/Comfy-Org/workflow_templates/issues)"],"color":"#432","bgcolor":"#653"},{"id":354,"type":"LoraLoaderModelOnly","pos":[-250,1470],"size":[330,82],"flags":{},"order":22,"mode":4,"inputs":[{"localized_name":"モデル","name":"model","type":"MODEL","link":521},{"localized_name":"lora_name","name":"lora_name","type":"COMBO","widget":{"name":"lora_name"},"link":null},{"localized_name":"モデルの強度","name":"strength_model","type":"FLOAT","widget":{"name":"strength_model"},"link":null}],"outputs":[{"localized_name":"モデル","name":"MODEL","type":"MODEL","links":[502]}],"properties":{"cnr_id":"comfy-core","ver":"0.3.50","Node name for S&R":"LoraLoaderModelOnly","models":[{"name":"Qwen-Image-Edit-2509-Lightning-4steps-V1.0-bf16.safetensors","url":"https://huggingface.co/lightx2v/Qwen-Image-Lightning/resolve/main/Qwen-Image-Edit-2509/Qwen-Image-Edit-2509-Lightning-4steps-V1.0-bf16.safetensors","directory":"loras"}],"enableTabs":false,"tabWidth":65,"tabXOffset":10,"hasSecondTab":false,"secondTabText":"Send Back","secondTabOffset":80,"secondTabWidth":65,"ue_properties":{"widget_ue_connectable":{"lora_name":true,"strength_model":true}}},"widgets_values":["Qwen-Image-Edit-2509-Lightning-4steps-V1.0-bf16.safetensors",1]},{"id":97,"type":"MarkdownNote","pos":[740,610],"size":[300,160],"flags":{},"order":10,"mode":0,"inputs":[],"outputs":[],"title":"Note: KSampler settings","properties":{},"widgets_values":["You can test and find the best setting by yourself. The following table is for reference.\n| Parameters   | Qwen Team | Comfy Original | with 4steps LoRA |\n|--------|---------|------------|---------------------------|\n| Steps  | 50      | 20         | 4                         |\n| CFG    | 4.0     | 2.5        | 1.0                       |"],"color":"#432","bgcolor":"#653"},{"id":390,"type":"FluxKontextImageScale","pos":[-196.70278945481118,909.0556206393708],"size":[187.7544921875,26],"flags":{},"order":24,"mode":0,"inputs":[{"localized_name":"image","name":"image","type":"IMAGE","link":694}],"outputs":[{"localized_name":"画像","name":"IMAGE","type":"IMAGE","links":[614,615,616]}],"properties":{"cnr_id":"comfy-core","ver":"0.3.70","Node name for S&R":"FluxKontextImageScale"},"widgets_values":[]},{"id":336,"type":"VAEDecode","pos":[1100,1290],"size":[210,46],"flags":{"collapsed":false},"order":38,"mode":4,"inputs":[{"localized_name":"サンプル","name":"samples","type":"LATENT","link":500},{"localized_name":"vae","name":"vae","type":"VAE","link":501}],"outputs":[{"localized_name":"画像","name":"IMAGE","type":"IMAGE","slot_index":0,"links":[507]}],"properties":{"cnr_id":"comfy-core","ver":"0.3.48","Node name for S&R":"VAEDecode","enableTabs":false,"tabWidth":65,"tabXOffset":10,"hasSecondTab":false,"secondTabText":"Send Back","secondTabOffset":80,"secondTabWidth":65,"widget_ue_connectable":{}},"widgets_values":[]},{"id":108,"type":"LoadImage","pos":[352.16015625,530],"size":[284,314.0000305175781],"flags":{},"order":11,"mode":4,"inputs":[{"localized_name":"画像","name":"image","type":"COMBO","widget":{"name":"image"},"link":null},{"localized_name":"アップロードするファイルを選択","name":"upload","type":"IMAGEUPLOAD","widget":{"name":"upload"},"link":null}],"outputs":[{"localized_name":"画像","name":"IMAGE","type":"IMAGE","links":[217,218]},{"localized_name":"マスク","name":"MASK","type":"MASK","links":null}],"properties":{"cnr_id":"comfy-core","ver":"0.3.50","Node name for S&R":"LoadImage","enableTabs":false,"tabWidth":65,"tabXOffset":10,"hasSecondTab":false,"secondTabText":"Send Back","secondTabOffset":80,"secondTabWidth":65,"ue_properties":{"widget_ue_connectable":{"image":true,"upload":true}}},"widgets_values":["image_qwen_image_edit_2509_input_image.png","image"]},{"id":8,"type":"VAEDecode","pos":[1080,-130],"size":[210,46],"flags":{"collapsed":false},"order":39,"mode":0,"inputs":[{"localized_name":"サンプル","name":"samples","type":"LATENT","link":128},{"localized_name":"vae","name":"vae","type":"VAE","link":76}],"outputs":[{"localized_name":"画像","name":"IMAGE","type":"IMAGE","slot_index":0,"links":[110]}],"properties":{"cnr_id":"comfy-core","ver":"0.3.48","Node name for S&R":"VAEDecode","enableTabs":false,"tabWidth":65,"tabXOffset":10,"hasSecondTab":false,"secondTabText":"Send Back","secondTabOffset":80,"secondTabWidth":65,"widget_ue_connectable":{}},"widgets_values":[]},{"id":388,"type":"MarkdownNote","pos":[-600,1250],"size":[310,150],"flags":{},"order":12,"mode":0,"inputs":[],"outputs":[],"title":"Note: Raw latent version","properties":{},"widgets_values":["Since the **TextEncodeQwenImageEditPlus** node will scale the image to 1M pixels, you might find that the output has a pixel-shifting issue.\n\nThe **Raw latent version** is to provide the raw latent to the sampler. This is the way you can provide the raw latent as an input condition."],"color":"#432","bgcolor":"#653"},{"id":89,"type":"LoraLoaderModelOnly","pos":[-240,40],"size":[310,82],"flags":{},"order":19,"mode":4,"inputs":[{"localized_name":"モデル","name":"model","type":"MODEL","link":184},{"localized_name":"lora_name","name":"lora_name","type":"COMBO","widget":{"name":"lora_name"},"link":null},{"localized_name":"モデルの強度","name":"strength_model","type":"FLOAT","widget":{"name":"strength_model"},"link":null}],"outputs":[{"localized_name":"モデル","name":"MODEL","type":"MODEL","links":[185]}],"properties":{"cnr_id":"comfy-core","ver":"0.3.50","Node name for S&R":"LoraLoaderModelOnly","models":[{"name":"Qwen-Image-Edit-2509-Lightning-4steps-V1.0-bf16.safetensors","url":"https://huggingface.co/lightx2v/Qwen-Image-Lightning/resolve/main/Qwen-Image-Edit-2509/Qwen-Image-Edit-2509-Lightning-4steps-V1.0-bf16.safetensors","directory":"loras"}],"enableTabs":false,"tabWidth":65,"tabXOffset":10,"hasSecondTab":false,"secondTabText":"Send Back","secondTabOffset":80,"secondTabWidth":65,"ue_properties":{"widget_ue_connectable":{"lora_name":true,"strength_model":true}}},"widgets_values":["Qwen-Image-Edit-2509-Lightning-4steps-V1.0-bf16.safetensors",1]},{"id":3,"type":"KSampler","pos":[740,90],"size":[300,474],"flags":{},"order":37,"mode":0,"inputs":[{"localized_name":"モデル","name":"model","type":"MODEL","link":186},{"localized_name":"ポジティブ","name":"positive","type":"CONDITIONING","link":211},{"localized_name":"ネガティブ","name":"negative","type":"CONDITIONING","link":210},{"localized_name":"潜在画像","name":"latent_image","type":"LATENT","link":221},{"localized_name":"シード","name":"seed","type":"INT","widget":{"name":"seed"},"link":null},{"localized_name":"ステップ","name":"steps","type":"INT","widget":{"name":"steps"},"link":null},{"localized_name":"cfg","name":"cfg","type":"FLOAT","widget":{"name":"cfg"},"link":null},{"localized_name":"サンプラー名","name":"sampler_name","type":"COMBO","widget":{"name":"sampler_name"},"link":null},{"localized_name":"スケジューラ","name":"scheduler","type":"COMBO","widget":{"name":"scheduler"},"link":null},{"localized_name":"ノイズ除去","name":"denoise","type":"FLOAT","widget":{"name":"denoise"},"link":null}],"outputs":[{"localized_name":"潜在","name":"LATENT","type":"LATENT","slot_index":0,"links":[128]}],"properties":{"cnr_id":"comfy-core","ver":"0.3.48","Node name for S&R":"KSampler","enableTabs":false,"tabWidth":65,"tabXOffset":10,"hasSecondTab":false,"secondTabText":"Send Back","secondTabOffset":80,"secondTabWidth":65,"widget_ue_connectable":{}},"widgets_values":[2301094008313,"randomize",20,2.5,"euler","simple",1]},{"id":60,"type":"SaveImage","pos":[1070,-30],"size":[950,1040],"flags":{},"order":41,"mode":0,"inputs":[{"localized_name":"画像","name":"images","type":"IMAGE","link":110},{"localized_name":"ファイル名_プレフィックス","name":"filename_prefix","type":"STRING","widget":{"name":"filename_prefix"},"link":null}],"outputs":[],"properties":{"cnr_id":"comfy-core","ver":"0.3.48","Node name for S&R":"SaveImage","enableTabs":false,"tabWidth":65,"tabXOffset":10,"hasSecondTab":false,"secondTabText":"Send Back","secondTabOffset":80,"secondTabWidth":65,"widget_ue_connectable":{}},"widgets_values":["ComfyUI"]},{"id":397,"type":"FluxKontextImageScale","pos":[100,1970],"size":[187.7544921875,26],"flags":{},"order":23,"mode":4,"inputs":[{"localized_name":"image","name":"image","type":"IMAGE","link":632}],"outputs":[{"localized_name":"画像","name":"IMAGE","type":"IMAGE","links":[633]}],"properties":{"cnr_id":"comfy-core","ver":"0.3.70","Node name for S&R":"FluxKontextImageScale"},"widgets_values":[]},{"id":375,"type":"VAEEncode","pos":[110,2080],"size":[140,46],"flags":{},"order":28,"mode":4,"inputs":[{"localized_name":"ピクセル","name":"pixels","type":"IMAGE","link":633},{"localized_name":"vae","name":"vae","type":"VAE","link":593}],"outputs":[{"localized_name":"潜在","name":"LATENT","type":"LATENT","links":[600,618]}],"properties":{"cnr_id":"comfy-core","ver":"0.3.50","Node name for S&R":"VAEEncode","enableTabs":false,"tabWidth":65,"tabXOffset":10,"hasSecondTab":false,"secondTabText":"Send Back","secondTabOffset":80,"secondTabWidth":65,"ue_properties":{"widget_ue_connectable":{}}},"widgets_values":[]},{"id":395,"type":"ReferenceLatent","pos":[400,2060],"size":[200,50],"flags":{},"order":34,"mode":4,"inputs":[{"localized_name":"conditioning","name":"conditioning","type":"CONDITIONING","link":625},{"localized_name":"latent","name":"latent","shape":7,"type":"LATENT","link":618}],"outputs":[{"localized_name":"条件付け","name":"CONDITIONING","type":"CONDITIONING","links":[691]}],"properties":{"cnr_id":"comfy-core","ver":"0.3.63","Node name for S&R":"ReferenceLatent"},"widgets_values":[]},{"id":389,"type":"MarkdownNote","pos":[760,2030],"size":[300,160],"flags":{},"order":13,"mode":4,"inputs":[],"outputs":[],"title":"Note: KSampler settings","properties":{},"widgets_values":["You can test and find the best setting by yourself. The following table is for reference.\n| Parameters   | Qwen Team | Comfy Original | with 4steps LoRA |\n|--------|---------|------------|---------------------------|\n| Steps  | 50      | 20         | 4                         |\n| CFG    | 4.0     | 2.5        | 1.0                       |"],"color":"#432","bgcolor":"#653"},{"id":112,"type":"EmptySD3LatentImage","pos":[750,860],"size":[270,106],"flags":{},"order":14,"mode":4,"inputs":[{"localized_name":"幅","name":"width","type":"INT","widget":{"name":"width"},"link":null},{"localized_name":"高さ","name":"height","type":"INT","widget":{"name":"height"},"link":null},{"localized_name":"バッチサイズ","name":"batch_size","type":"INT","widget":{"name":"batch_size"},"link":null}],"outputs":[{"localized_name":"潜在","name":"LATENT","type":"LATENT","links":[]}],"properties":{"cnr_id":"comfy-core","ver":"0.3.59","Node name for S&R":"EmptySD3LatentImage"},"widgets_values":[1024,1024,1]},{"id":349,"type":"LoadImage","pos":[-220,1950],"size":[284,314.0000305175781],"flags":{},"order":15,"mode":4,"inputs":[{"localized_name":"画像","name":"image","type":"COMBO","widget":{"name":"image"},"link":null},{"localized_name":"アップロードするファイルを選択","name":"upload","type":"IMAGEUPLOAD","widget":{"name":"upload"},"link":null}],"outputs":[{"localized_name":"画像","name":"IMAGE","type":"IMAGE","links":[632]},{"localized_name":"マスク","name":"MASK","type":"MASK","links":null}],"properties":{"cnr_id":"comfy-core","ver":"0.3.50","Node name for S&R":"LoadImage","enableTabs":false,"tabWidth":65,"tabXOffset":10,"hasSecondTab":false,"secondTabText":"Send Back","secondTabOffset":80,"secondTabWidth":65,"ue_properties":{"widget_ue_connectable":{"image":true,"upload":true}}},"widgets_values":["image_qwen_image_edit_2509_input_image-2.png","image"]},{"id":342,"type":"SaveImage","pos":[1090,1390],"size":[950,1040],"flags":{},"order":40,"mode":4,"inputs":[{"localized_name":"画像","name":"images","type":"IMAGE","link":507},{"localized_name":"ファイル名_プレフィックス","name":"filename_prefix","type":"STRING","widget":{"name":"filename_prefix"},"link":null}],"outputs":[],"properties":{"cnr_id":"comfy-core","ver":"0.3.48","Node name for S&R":"SaveImage","enableTabs":false,"tabWidth":65,"tabXOffset":10,"hasSecondTab":false,"secondTabText":"Send Back","secondTabOffset":80,"secondTabWidth":65,"widget_ue_connectable":{}},"widgets_values":["ComfyUI"]},{"id":348,"type":"TextEncodeQwenImageEditPlus","pos":[220,1340],"size":[400,200],"flags":{},"order":21,"mode":4,"inputs":[{"localized_name":"clip","name":"clip","type":"CLIP","link":515},{"localized_name":"vae","name":"vae","shape":7,"type":"VAE","link":null},{"localized_name":"image1","name":"image1","shape":7,"type":"IMAGE","link":null},{"localized_name":"image2","name":"image2","shape":7,"type":"IMAGE","link":null},{"localized_name":"image3","name":"image3","shape":7,"type":"IMAGE","link":null},{"localized_name":"prompt","name":"prompt","type":"STRING","widget":{"name":"prompt"},"link":null}],"outputs":[{"localized_name":"条件付け","name":"CONDITIONING","type":"CONDITIONING","links":[625]}],"properties":{"cnr_id":"comfy-core","ver":"0.3.59","Node name for S&R":"TextEncodeQwenImageEditPlus"},"widgets_values":["Change the time to night, keep the same scene"],"color":"#232","bgcolor":"#353"},{"id":347,"type":"TextEncodeQwenImageEditPlus","pos":[220,1610],"size":[400,200],"flags":{},"order":20,"mode":4,"inputs":[{"localized_name":"clip","name":"clip","type":"CLIP","link":510},{"localized_name":"vae","name":"vae","shape":7,"type":"VAE","link":null},{"localized_name":"image1","name":"image1","shape":7,"type":"IMAGE","link":null},{"localized_name":"image2","name":"image2","shape":7,"type":"IMAGE","link":null},{"localized_name":"image3","name":"image3","shape":7,"type":"IMAGE","link":null},{"localized_name":"prompt","name":"prompt","type":"STRING","widget":{"name":"prompt"},"link":null}],"outputs":[{"localized_name":"条件付け","name":"CONDITIONING","type":"CONDITIONING","links":[631]}],"properties":{"cnr_id":"comfy-core","ver":"0.3.59","Node name for S&R":"TextEncodeQwenImageEditPlus"},"widgets_values":[""],"color":"#223","bgcolor":"#335"},{"id":78,"type":"LoadImage","pos":[-240,530],"size":[284,314.0000305175781],"flags":{},"order":16,"mode":0,"inputs":[{"localized_name":"画像","name":"image","type":"COMBO","widget":{"name":"image"},"link":null},{"localized_name":"アップロードするファイルを選択","name":"upload","type":"IMAGEUPLOAD","widget":{"name":"upload"},"link":null}],"outputs":[{"localized_name":"画像","name":"IMAGE","type":"IMAGE","links":[694]},{"localized_name":"マスク","name":"MASK","type":"MASK","links":null}],"properties":{"cnr_id":"comfy-core","ver":"0.3.50","Node name for S&R":"LoadImage","enableTabs":false,"tabWidth":65,"tabXOffset":10,"hasSecondTab":false,"secondTabText":"Send Back","secondTabOffset":80,"secondTabWidth":65,"ue_properties":{"widget_ue_connectable":{"image":true,"upload":true}}},"widgets_values":["pasted/image.png","image"]},{"id":106,"type":"LoadImage","pos":[56.080078125,530],"size":[284,314.0000305175781],"flags":{},"order":17,"mode":0,"inputs":[{"localized_name":"画像","name":"image","type":"COMBO","widget":{"name":"image"},"link":null},{"localized_name":"アップロードするファイルを選択","name":"upload","type":"IMAGEUPLOAD","widget":{"name":"upload"},"link":null}],"outputs":[{"localized_name":"画像","name":"IMAGE","type":"IMAGE","links":[692,693]},{"localized_name":"マスク","name":"MASK","type":"MASK","links":null}],"properties":{"cnr_id":"comfy-core","ver":"0.3.50","Node name for S&R":"LoadImage","enableTabs":false,"tabWidth":65,"tabXOffset":10,"hasSecondTab":false,"secondTabText":"Send Back","secondTabOffset":80,"secondTabWidth":65,"ue_properties":{"widget_ue_connectable":{"image":true,"upload":true}}},"widgets_values":["pasted/image (1).png","image"]},{"id":111,"type":"TextEncodeQwenImageEditPlus","pos":[220,-90],"size":[400,200],"flags":{},"order":35,"mode":0,"inputs":[{"localized_name":"clip","name":"clip","type":"CLIP","link":205},{"localized_name":"vae","name":"vae","shape":7,"type":"VAE","link":207},{"localized_name":"image1","name":"image1","shape":7,"type":"IMAGE","link":616},{"localized_name":"image2","name":"image2","shape":7,"type":"IMAGE","link":693},{"localized_name":"image3","name":"image3","shape":7,"type":"IMAGE","link":217},{"localized_name":"prompt","name":"prompt","type":"STRING","widget":{"name":"prompt"},"link":698}],"outputs":[{"localized_name":"条件付け","name":"CONDITIONING","type":"CONDITIONING","links":[211]}],"properties":{"cnr_id":"comfy-core","ver":"0.3.59","Node name for S&R":"TextEncodeQwenImageEditPlus"},"widgets_values":["女の子の髪を黒髪にしてください"],"color":"#232","bgcolor":"#353"},{"id":435,"type":"PrimitiveString","pos":[-597.4139730497809,-642.5242250926079],"size":[270,58],"flags":{},"order":18,"mode":0,"inputs":[{"localized_name":"値","name":"value","type":"STRING","widget":{"name":"value"},"link":null}],"outputs":[{"localized_name":"文字列","name":"STRING","type":"STRING","links":[695]}],"properties":{"cnr_id":"comfy-core","ver":"0.3.75","Node name for S&R":"PrimitiveString"},"widgets_values":["image1の女の子をimage2と入れ替えてください"]},{"id":433,"type":"> LMStudio","pos":[-258.3890360093143,-640.2640588456719],"size":[400,372],"flags":{},"order":25,"mode":0,"inputs":[{"localized_name":"prompt","name":"prompt","type":"STRING","link":695},{"localized_name":"image","name":"image","shape":7,"type":"IMAGE","link":null},{"localized_name":"model_identifier","name":"model_identifier","type":"STRING","widget":{"name":"model_identifier"},"link":null},{"localized_name":"draft_model","name":"draft_model","type":"STRING","widget":{"name":"draft_model"},"link":null},{"localized_name":"system_message","name":"system_message","type":"STRING","widget":{"name":"system_message"},"link":null},{"localized_name":"reasoning_tag","name":"reasoning_tag","type":"STRING","widget":{"name":"reasoning_tag"},"link":null},{"localized_name":"seed","name":"seed","type":"INT","widget":{"name":"seed"},"link":null},{"localized_name":"ip","name":"ip","type":"STRING","widget":{"name":"ip"},"link":null},{"localized_name":"port","name":"port","type":"INT","widget":{"name":"port"},"link":null},{"localized_name":"temperature","name":"temperature","type":"FLOAT","widget":{"name":"temperature"},"link":null},{"localized_name":"max_tokens","name":"max_tokens","type":"INT","widget":{"name":"max_tokens"},"link":null},{"localized_name":"unload_llm","name":"unload_llm","type":"BOOLEAN","widget":{"name":"unload_llm"},"link":null},{"localized_name":"unload_comfy_models","name":"unload_comfy_models","type":"BOOLEAN","widget":{"name":"unload_comfy_models"},"link":null}],"outputs":[{"localized_name":"Extended Prompt","name":"Extended Prompt","type":"STRING","links":[697]},{"localized_name":"Reasoning","name":"Reasoning","type":"STRING","links":null}],"properties":{"cnr_id":"yanc_lmstudio","ver":"1.2.0","Node name for S&R":"> LMStudio"},"widgets_values":["qwen/qwen3-vl-8b","","Qwen-Image-Edit Prompt Guide: The Complete Playbook\nTutorial - Guide\nI’ve been experimenting with Qwen-Image-Edit, and honestly… the difference between a messy fail and a perfect edit is just the prompt. Most guides only show 2–3 examples, so I built a full prompt playbook you can copy straight into your workflow.\n\nThis covers everything: text replacement, object tweaks, style transfer, scene swaps, character identity control, poster design, and more. If you’ve been struggling with warped faces, ugly fonts, or edits that break the whole picture, this guide fixes that.\n\n\n\n📚 Categories of Prompts\n\n\n\n📝 1. Text Edits (Signs, Labels, Posters)\n\nUse these for replacing or correcting text without breaking style.\n\n\tReplace text on a sign:\n“Replace the sign text with ‘GRAND OPENING’. Keep original font, size, color, and perspective. Do not alter background or signboard.”\n\n\tFix a typo on packaging:\n“Correct spelling of the blue label to ‘Nitrogen’. Preserve font family, color, and alignment.”\n\n\tAdd poster headline:\n“Add headline ‘Future Expo 2025’ at the top. Match font style and color to existing design. Do not overlap the subject.”\n\n\n\n🎯 2. Local Appearance Edits\n\nSmall, surgical changes to an object or clothing.\n\n\tRemove unwanted item:\n“Remove the coffee cup from the table. Keep shadows, reflections, and table texture consistent.”\n\n\tChange clothing style:\n“Turn the jacket into red leather. Preserve folds, stitching, and lighting.”\n\n\tSwap color/texture:\n“Make the car glossy black instead of silver. Preserve reflections and background.”\n\n\n\n🌍 3. Global Style or Semantic Edits\n\nChange the entire look but keep the structure intact.\n\n\tRotate or re-angle:\n“Rotate the statue to show a rear 180° view. Preserve missing arm and stone texture.”\n\n\tStyle transfer:\n“Re-render this scene in a Studio Ghibli art style. Preserve character identity, clothing, and layout.”\n\n\tPhotorealistic upgrade:\n“Render this pencil sketch scene as a photorealistic photo. Keep pose, perspective, and proportions intact.”\n\n\n\n🔎 4. Micro / Region Edits\n\nTarget tiny details with precision.\n\n\tFix character stroke:\n“Within the red box, replace the lower component of the character ‘稽’ with ‘旨’. Match stroke thickness and calligraphy style. Leave everything else unchanged.”\n\n\tSmall object replace:\n“Swap the apple in the child’s hand with a pear, keeping hand pose and shadows unchanged.”\n\n\n\n🧍 5. Identity & Character Control\n\nPreserve or swap identities without breaking features.\n\n\tSwap subject:\n“Replace the subject with a man in sunglasses, keeping pose, outfit colors, and background unchanged.”\n\n\tPreserve identity in new scene:\n“Place the same character in a desert environment. Keep hairstyle, clothing, and facial features identical.”\n\n\tMinor facial tweak:\n“Add glasses to the subject. Keep face, lighting, and hairstyle unchanged.”\n\n\n\n🎨 6. Poster & Composite Design\n\nFor structured layouts and graphic design edits.\n\n\tAdd slogan without breaking design:\n“Add slogan ‘Comfy Creating in Qwen’ under the logo. Match typography, spacing, and style to design.”\n\n\tTurn sketch mock-up into final poster:\n“Refine this sketched poster layout into a clean finished design. Preserve layout, text boxes, and logo positions.”\n\n\n\n📷 7. Camera & Lighting Controls\n\nDirect Qwen like a photographer.\n\n\tChange lighting:\n“Relight the scene with a warm key light from the right and cool rim light from the back. Keep pose and background unchanged.”\n\n\tSimulate lens choice:\n“Render with a 35 mm lens, shallow depth of field, focus on subject’s face. Preserve environment blur.”\n\n\n\n💡 Pro Tips for Killer Results\n\n\tAlways add “Keep everything else unchanged” → avoids drift.\n\n\tLock identity with “Preserve face/clothing features”.\n\n\tFor text → “Preserve font, size, and alignment”.\n\n\tDon’t overload one edit. Chain 2–3 smaller edits instead.\n\n\tUse negatives → “no distortion, no warped text, no duplicate faces.”\n\n\n🚀 Final Thoughts\n\nI’m still experimenting with photo-bashing + sketch+photo mashups (rough drawings + pasted photos → polished characters). If people are interested, I’ll post that guide next, it’s 🔥 for concept art.\n\nOrder:\nPlease modify the input image to best match the prompt content provided above.Please output in English following the format above.\nThe answer is to display only the prompt.","think",0,"randomize","localhost",1234,0.7,600,false,false]},{"id":437,"type":"easy showAnything","pos":[402.7095912195957,-648.1746407099489],"size":[140,26],"flags":{},"order":31,"mode":0,"inputs":[{"localized_name":"anything","name":"anything","shape":7,"type":"*","link":697}],"outputs":[{"localized_name":"output","name":"output","type":"*","links":[698]}],"properties":{"cnr_id":"comfyui-easy-use","ver":"1.3.4","Node name for S&R":"easy showAnything"},"widgets_values":[]}],"links":[[76,39,0,8,1,"VAE"],[110,8,0,60,0,"IMAGE"],[128,3,0,8,0,"LATENT"],[141,66,0,75,0,"MODEL"],[168,39,0,88,1,"VAE"],[184,37,0,89,0,"MODEL"],[185,89,0,66,0,"MODEL"],[186,75,0,3,0,"MODEL"],[204,38,0,110,0,"CLIP"],[205,38,0,111,0,"CLIP"],[206,39,0,110,1,"VAE"],[207,39,0,111,1,"VAE"],[210,110,0,3,2,"CONDITIONING"],[211,111,0,3,1,"CONDITIONING"],[217,108,0,111,4,"IMAGE"],[218,108,0,110,4,"IMAGE"],[221,88,0,3,3,"LATENT"],[499,339,0,335,0,"MODEL"],[500,340,0,336,0,"LATENT"],[501,337,0,336,1,"VAE"],[502,354,0,339,0,"MODEL"],[503,335,0,340,0,"MODEL"],[507,336,0,342,0,"IMAGE"],[510,338,0,347,0,"CLIP"],[515,338,0,348,0,"CLIP"],[521,341,0,354,0,"MODEL"],[593,337,0,375,1,"VAE"],[600,375,0,340,3,"LATENT"],[614,390,0,88,0,"IMAGE"],[615,390,0,110,2,"IMAGE"],[616,390,0,111,2,"IMAGE"],[618,375,0,395,1,"LATENT"],[625,348,0,395,0,"CONDITIONING"],[631,347,0,340,2,"CONDITIONING"],[632,349,0,397,0,"IMAGE"],[633,397,0,375,0,"IMAGE"],[691,395,0,340,1,"CONDITIONING"],[692,106,0,110,3,"IMAGE"],[693,106,0,111,3,"IMAGE"],[694,78,0,390,0,"IMAGE"],[695,435,0,433,0,"STRING"],[697,433,0,437,0,"*"],[698,437,0,111,5,"STRING"]],"groups":[{"id":1,"title":"Step1 - Load models","bounding":[-270,-170,370,570],"color":"#3f789e","font_size":24,"flags":{}},{"id":2,"title":"Step 2 - Upload image for editing","bounding":[-270,430,970,550],"color":"#3f789e","font_size":24,"flags":{}},{"id":3,"title":"Step 4 - Prompt","bounding":[130,-170,570,570],"color":"#3f789e","font_size":24,"flags":{}},{"id":4,"title":"Step3 - Image Size","bounding":[730,780,310,200],"color":"#3f789e","font_size":24,"flags":{}},{"id":49,"title":"Raw latent version","bounding":[-280,1220,2330,1363.5999755859375],"color":"#3f789e","font_size":24,"flags":{}},{"id":45,"title":"Step1 - Load models","bounding":[-270,1260,370,570],"color":"#3f789e","font_size":24,"flags":{}},{"id":46,"title":"Step 2 - Upload image for editing","bounding":[-270,1860,970,430],"color":"#3f789e","font_size":24,"flags":{}},{"id":47,"title":"Step 4 - Prompt","bounding":[130,1260,570,570],"color":"#3f789e","font_size":24,"flags":{}},{"id":48,"title":"Step3 - Image Size","bounding":[750,2210,310,200],"color":"#3f789e","font_size":24,"flags":{}}],"config":{},"extra":{"ds":{"scale":0.8848906591322261,"offset":[1420.1144869346467,816.5570261067141]},"frontendVersion":"1.30.6","ue_links":[],"links_added_by_ue":[],"VHS_latentpreview":false,"VHS_latentpreviewrate":0,"VHS_MetadataImage":true,"VHS_KeepIntermediate":true,"workflowRendererVersion":"LG"},"version":0.4}

最後にLMStudioのインストール方法についてです。
インストールの方法としてはアプリケーションをダウンロードするだけで完了いたしますので、公式サイトを参考にダウンロードを実施してください。

https://lmstudio.ai/

次に利用するモデル(今回はQwen3)をインストールします。
虫眼鏡のマークをクリックし、検索ボックスにQwen3と入力します。
するとHuggingfaceなどに登録されているモデルを自動でダウンロードすることが出来ます。
image.png

そして開発者タブへ移動をしてください。
image.png

「モデルを選択してください」という部分を押下しモデルを読み込もうとすると次の様な画面になると思います。
image.png
この画面の「API識別子」にある文字列(環境によって名前が変化します)を「YANC_LMStudio」の「Model_identifier」に入力することで、LMStudioのAPIを経由してLLMモデルに対して問いかけを行いその結果を受け取りができるようになります。

非常に簡単な形になりますが流れを説明します。
行っていることはQwen-imageEditor2059の利用にて最適化されたpromptをLMStudioから出力し、この出力をQwen-imageEditor2059のプロンプトに与えることでプロンプトの最適化を実施しています。

システムプロンプトとしては以下のRedditスレッドを参考に不足している情報などをAIに補足させ、英語でプロンプトのみを返すようにチューニングしてあります。

https://www.reddit.com/r/StableDiffusion/comments/1n1n81o/qwenimageedit_prompt_guide_the_complete_playbook/

システムプロンプト
Qwen-Image-Edit Prompt Guide: The Complete Playbook
Tutorial - Guide
I’ve been experimenting with Qwen-Image-Edit, and honestly… the difference between a messy fail and a perfect edit is just the prompt. Most guides only show 2–3 examples, so I built a full prompt playbook you can copy straight into your workflow.

This covers everything: text replacement, object tweaks, style transfer, scene swaps, character identity control, poster design, and more. If you’ve been struggling with warped faces, ugly fonts, or edits that break the whole picture, this guide fixes that.

⸻

📚 Categories of Prompts

⸻

📝 1. Text Edits (Signs, Labels, Posters)

Use these for replacing or correcting text without breaking style.

•	Replace text on a sign:
“Replace the sign text with ‘GRAND OPENING’. Keep original font, size, color, and perspective. Do not alter background or signboard.”

•	Fix a typo on packaging:
“Correct spelling of the blue label to ‘Nitrogen’. Preserve font family, color, and alignment.”

•	Add poster headline:
“Add headline ‘Future Expo 2025’ at the top. Match font style and color to existing design. Do not overlap the subject.”

⸻

🎯 2. Local Appearance Edits

Small, surgical changes to an object or clothing.

•	Remove unwanted item:
“Remove the coffee cup from the table. Keep shadows, reflections, and table texture consistent.”

•	Change clothing style:
“Turn the jacket into red leather. Preserve folds, stitching, and lighting.”

•	Swap color/texture:
“Make the car glossy black instead of silver. Preserve reflections and background.”

⸻

🌍 3. Global Style or Semantic Edits

Change the entire look but keep the structure intact.

•	Rotate or re-angle:
“Rotate the statue to show a rear 180° view. Preserve missing arm and stone texture.”

•	Style transfer:
“Re-render this scene in a Studio Ghibli art style. Preserve character identity, clothing, and layout.”

•	Photorealistic upgrade:
“Render this pencil sketch scene as a photorealistic photo. Keep pose, perspective, and proportions intact.”

⸻

🔎 4. Micro / Region Edits

Target tiny details with precision.

•	Fix character stroke:
“Within the red box, replace the lower component of the character ‘稽’ with ‘旨’. Match stroke thickness and calligraphy style. Leave everything else unchanged.”

•	Small object replace:
“Swap the apple in the child’s hand with a pear, keeping hand pose and shadows unchanged.”

⸻

🧍 5. Identity & Character Control

Preserve or swap identities without breaking features.

•	Swap subject:
“Replace the subject with a man in sunglasses, keeping pose, outfit colors, and background unchanged.”

•	Preserve identity in new scene:
“Place the same character in a desert environment. Keep hairstyle, clothing, and facial features identical.”

•	Minor facial tweak:
“Add glasses to the subject. Keep face, lighting, and hairstyle unchanged.”

⸻

🎨 6. Poster & Composite Design

For structured layouts and graphic design edits.

•	Add slogan without breaking design:
“Add slogan ‘Comfy Creating in Qwen’ under the logo. Match typography, spacing, and style to design.”

•	Turn sketch mock-up into final poster:
“Refine this sketched poster layout into a clean finished design. Preserve layout, text boxes, and logo positions.”

⸻

📷 7. Camera & Lighting Controls

Direct Qwen like a photographer.

•	Change lighting:
“Relight the scene with a warm key light from the right and cool rim light from the back. Keep pose and background unchanged.”

•	Simulate lens choice:
“Render with a 35 mm lens, shallow depth of field, focus on subject’s face. Preserve environment blur.”

⸻

💡 Pro Tips for Killer Results

•	Always add “Keep everything else unchanged” → avoids drift.

•	Lock identity with “Preserve face/clothing features”.

•	For text → “Preserve font, size, and alignment”.

•	Don’t overload one edit. Chain 2–3 smaller edits instead.

•	Use negatives → “no distortion, no warped text, no duplicate faces.”
⸻

🚀 Final Thoughts

I’m still experimenting with photo-bashing + sketch+photo mashups (rough drawings + pasted photos → polished characters). If people are interested, I’ll post that guide next, it’s 🔥 for concept art.

Order:
Please modify the input image to best match the prompt content provided above.Please output in English following the format above.
The answer is to display only the prompt.

このワークフローによって作成した画像が以下になります。
image.png

以前失敗したようにPoseは切り替わることなくimage2の女の子の要素を取り入れることに成功しました!
女の子に耳が生えましたね!

ほかにも同様の形で最適化を行うことでより良い結果(女の子が完全に入れ替わる)を得ることが出来るかもしれませんが、自分にはこれが限界でした(´・ω・`)
※参考画像の内容をpromptに含ませたりもしたのですがあまり効果がなく…

今回は最高の結果を得るということまではできませんでしたが、
ComfyUIの使い方を少しでも理解しておけば画像生成や画像編集の効率と精度を向上させることが出来ます!
ぜひ皆様も自分だけのワークフローを作ってみてください!

ご拝読いただきまして大変ありがとうございました!

5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?