⭐ Star Image Edit for Qwen/Kontext
Stop hand-writing Qwen-Edit prompts. Fill in a form instead.
- prompt
- params_hint
The single biggest lesson the community learned about Qwen-Image-Edit is that the prompt decides everything. The model is genuinely capable - swap a background, remove an object, change a shirt, fix text inside an image - but "make it look nicer" gets you mush, while "replace the blue jacket with a red leather one, keep the folds and lighting" gets you a usable edit. There's a reason the Qwen-Image-Edit prompt playbook post went huge: the difference between a messy fail and a perfect edit is phrasing.
StarImageEditQwenKontext is that lesson turned into a form. Instead of composing the sentence yourself, you pick a task and fill in the blanks, and it assembles the natural-language instruction for you - and it can target either of the two instruction editors that matter.
What it builds
- model -
Qwen Image EditorFLUX.1 Kontext. The node produces a prompt tuned to whichever editor you're actually running. - task - the core dropdown, with ten jobs: Change Color, Replace Background, Add Object, Remove Object, Style Transfer, Edit Text In Image, Change Lighting, Change Expression, Change Clothing, Image Restore.
- Then a pile of optional fields that match the task -
subject,color,background,object,location,style,surface,text,lighting,expression,clothing_item,style_or_color, andkeep_clause. Thekeep_clauseis the quiet hero: a "keep X unchanged" field, which is exactly the phrasing that stops the editor from re-imagining the rest of your image.
Outputs are prompt (the finished instruction - wire it into your CLIP/encoder node) and params_hint (a secondary string with the parameters the builder wants passed along, useful if your workflow separates instruction from settings).
The Kontext vs Qwen question
Worth knowing which you're targeting. FLUX.1 Kontext was BFL's 12B instruction editor - great character consistency, famous watermark removal - but it ships under the FLUX.1 [dev] Non-Commercial License, and BFL's anti-circumvention clause turned NSFW fine-tunes and LoRAs into takedowns. Qwen-Image-Edit answered two months later under Apache 2.0, no enforcement drama, and it's the one the community standardized on. If you're picking fresh, that's the tie-breaker; this node just means you don't have to remember two different prompt grammars.
Install
Same as the rest of the pack: ComfyUI_StarBetaNodes is the retired beta repo, and the nodes now live in ComfyUI_StarNodes (the README is explicit). Install via ComfyUI Manager - search Starnodes - or git clone https://github.com/Starnodes2024/ComfyUI_StarNodes into custom_nodes, then restart. The prompt model itself is the one you already need for the edit workflow (Qwen-Image-Edit or Kontext checkpoint); this node just writes the words.
Where people get burned
The obvious one: this node only makes the prompt. If you wire its output into a plain text encoder for the wrong model family, nothing good happens - match the model selector to the checkpoint you actually loaded. And don't treat the fields as optional-to-the-point-of-empty: Qwen-Edit prompts with vague instructions reproduce the mush this node exists to prevent. Fill in the subject and the change, use keep_clause to protect what you like, and let it write the sentence.
Inputs (15)
| Name | Type | Default | Description |
|---|---|---|---|
| model | COMBO | Qwen Image Edit | 2 options: Qwen Image Edit, FLUX.1 Kontext |
| task | COMBO | Change Color | 10 options: Change Color, Replace Background, Add Object, Remove Object, Style Transfer, Edit Text In Image, +4 |
| subjectopt | STRING | — | |
| coloropt | STRING | — | |
| backgroundopt | STRING | — | |
| objectopt | STRING | — | |
| locationopt | STRING | — | |
| styleopt | STRING | — | |
| surfaceopt | STRING | — | |
| textopt | STRING | — | |
| lightingopt | STRING | — | |
| expressionopt | STRING | — | |
| clothing_itemopt | STRING | — | |
| style_or_coloropt | STRING | — | |
| keep_clauseopt | STRING | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| prompt | STRING | — |
| params_hint | STRING | — |