Nodes/FlowState-Creator-Nodes/πŸŒŠπŸ‘©πŸ»β€πŸ³ FlowState Chef
ComfyUI Node

πŸŒŠπŸ‘©πŸ»β€πŸ³ FlowState Chef

The two-pass editing pipeline that fixes Qwen-Image-Edit's weak polish

By flowstatelabsΒ·Created 2 years agoΒ·Updated 11 months agoΒ· 25
πŸŒŠπŸ‘©πŸ»β€πŸ³ FlowState Chef
  • chef_ingredients
  • image
  • latent
β—„model_label --- πŸ€– Model Settings --- β–Ί
β—„qwen_modelβ–Ύβ–Ί
β—„flux_model_filetypeβ–Ύβ–Ί
β—„flux_modelβ–Ύβ–Ί
β—„weight_dtypeβ–Ύβ–Ί
β—„aumentation_label --- πŸ”₯ Augmentation Settings --- β–Ί
β—„qwen_optimization_loraβ–Ύβ–Ί
β—„qwen_style_loraβ–Ύβ–Ί
β—„qwen_style_lora_strength1.00β–Ί
β—„flux_style_loraβ–Ύβ–Ί
β—„flux_style_lora_strength1.00β–Ί
β—„sage_attentionβ–Ύβ–Ί
β—„encoders_label --- πŸ”£ Encoder Settings --- β–Ί
β—„qwen_clipβ–Ύβ–Ί
β—„qwen_vaeβ–Ύβ–Ί
β—„flux_clip_1β–Ύβ–Ί
β—„flux_clip_2β–Ύβ–Ί
β—„flux_vaeβ–Ύβ–Ί
β—„tiled_decodefalseβ–Ί
β—„image_label --- πŸ–ΌοΈ Image Settings --- β–Ί
β—„resolutionβ–Ύβ–Ί
β—„orientationβ–Ύβ–Ί
β—„latent_typeβ–Ύβ–Ί
β—„custom_width1024β–Ί
β—„custom_height1024β–Ί
β—„custom_batch_size1β–Ί
β—„sampling_label --- πŸ§ͺ Sampling Settings --- β–Ί
β—„seed32β–Ί
β—„sampling_algorithmβ–Ύβ–Ί
β—„scheduling_algorithmβ–Ύβ–Ί
β—„qwen_steps32β–Ί
β—„qwen_denoise1.00β–Ί
β—„flux_guidance3.2β–Ί
β—„flux_steps32β–Ί
β—„flux_denoise0.24β–Ί

FlowState Chef exists to solve a specific annoyance: Qwen-Image-Edit is great at understanding "change the shirt to red" and genuinely bad at making the result look finished, while Flux is great at looking finished and hopeless at following that kind of instruction. So the Chef does what you'd do anyway, minus the wiring - it runs Qwen-Image-Edit for the edit, then re-samples the result through Flux at low denoise to polish it. Two models, one node, one seed.

What's actually happening

Stage one loads a Qwen-Image-Edit diffusion model and runs it against your image with your edit prompt (encoded via TextEncodeQwenImageEdit). The qwen_denoise default of 1.0 means it's doing a full-strength edit pass. Stage two takes that output, encodes it back into latents with a Flux VAE, appends FluxGuidance at your flux_guidance value (default 3.2), and samples with flux_denoise at 0.24 by default. That low number is the whole trick: Flux isn't reimagining your image, it's just cleaning up Qwen's edges, artifacts, and texture.

The node is smart about not redoing work - it tracks which stage's inputs changed and only re-runs the Qwen stage, the Flux stage, or both. Change only the Flux refinement prompt and it won't re-run Qwen. It even unloads the Qwen model from VRAM before Flux loads, so you're never holding 20B of Qwen and 12B of Flux at once.

The inputs that matter

  • chef_ingredients - the only input you can't skip. It comes from the sibling FlowState_Chef_Ingredients node, which packs the edit prompt, the refinement prompt, and up to four images into one wire. No ingredients, no cooking.
  • qwen_denoise - how hard Qwen edits. 1.0 is "do what I said"; lower keeps more of the original structure.
  • flux_denoise - how much Flux polishes. Keep it near the 0.24 default; crank it and Flux starts rewriting the edit.
  • flux_guidance - Flux's flow-matching guidance, 3.2 default. Ignore your SDXL muscle memory: CFG 7 is not a thing here.
  • resolution / orientation / latent_type - pick a preset (there are 18, biased toward 16:9 and 21:9 production ratios) or go Custom, then say whether the source is an Empty Latent or your Input Image. For this node you want Input Image.
  • tiled_decode - turn this on for big outputs; VAE decoding a 4096px-wide image in one chunk is a bottleneck you don't need.

The giant --- πŸ€– Model Settings --- fields are non-functional labels, straight from the author. Ignore them.

Outputs

image (IMAGE) is the finished, Flux-refined result. latent (LATENT) is the same thing still in latent space, handy if you're chaining another sampling pass instead of decoding.

Install

This is a FlowState Creator Suite node, so install the whole pack once:

cd ComfyUI/custom_nodes
git clone https://github.com/flowstateeng/FlowState-Creator-Nodes

…then restart ComfyUI. Or just search FlowState-Creator-Nodes in ComfyUI Manager and click install. The pack has no pip dependencies - its requirements.txt is empty because it wraps ComfyUI's own core nodes. What you do need are the model files: a Qwen-Image-Edit checkpoint (they live in diffusion_models, it's a 20B beast), its text encoder and VAE, and a Flux model plus its dual CLIP and VAE. Pick a Flux checkpoint and the flux_model_filetype dropdown will correctly tell you that the separate clip and VAE fields are ignored - they're baked into the checkpoint.

Where people get burned

Qwen-Image-Edit is 20B and heavy. On a mid-range card this thing is slow, and the sage_attention option only shows anything beyond "disabled" if you've actually installed Sage Attention and KJNodes - the pack prints a startup status telling you which is missing. If your edits look like they were ignored, your qwen_denoise is too low; if the result looks mushy, your flux_denoise is too high. That second slider is doing the real work - treat it as your quality dial.

CategoryFlowState Creator Suite/Alteration

Inputs (36)

NameTypeDefaultDescription
chef_ingredients*β€”
model_labelSTRING --- πŸ€– Model Settings --- Label -------------------------------- - This field is not functional. It is just a label for the group of settings below.
qwen_modelCOMBO Full Diffusion Model List -------------------------------- - List of all available Diffusion Models (diffusion_models, checkpoints & unets folders).
flux_model_filetypeCOMBO Model File Type -------------------------------- - The type of model file to load. - Checkpoints (typically for fp8 models) contain the CLIP & VAE. - If using a checkpoint, then the weight_dtype, clip_1_name, clip_2_name & vae_name fields will ignored.
flux_modelCOMBO Full Diffusion Model List -------------------------------- - List of all available Diffusion Models (diffusion_models, checkpoints & unets folders).
weight_dtypeCOMBO Weight Datatype (DType) -------------------------------- - The data type to be used for your models weights.
aumentation_labelSTRING --- πŸ”₯ Augmentation Settings --- Label -------------------------------- - This field is not functional. It is just a label for the group of settings below.
qwen_optimization_loraCOMBO LoRA List -------------------------------- - List of available Low-Rank Adaptation models. - Used to transfer a pre-trained style (cyberpunk, anime, photorealism, disney, etc.) to a generated output image.
qwen_style_loraCOMBO LoRA List -------------------------------- - List of available Low-Rank Adaptation models. - Used to transfer a pre-trained style (cyberpunk, anime, photorealism, disney, etc.) to a generated output image.
qwen_style_lora_strengthFLOAT1.000–1 Low Rank Adaptation Model (LoRA) -------------------------------- - The LoRA used to patch your diffusion model.
flux_style_loraCOMBO LoRA List -------------------------------- - List of available Low-Rank Adaptation models. - Used to transfer a pre-trained style (cyberpunk, anime, photorealism, disney, etc.) to a generated output image.
flux_style_lora_strengthFLOAT1.000–1 Low Rank Adaptation Model (LoRA) -------------------------------- - The LoRA used to patch your diffusion model.
sage_attentionCOMBO Sage Attention Mode -------------------------------- - The type of Sage Attention to use. - This field will only show as "disabled" if you do not have the capability to run Sage Attention.
encoders_labelSTRING --- πŸ”£ Encoder Settings --- Label -------------------------------- - This field is not functional. It is just a label for the group of settings below.
qwen_clipCOMBO CLIP / Text Encoder List -------------------------------- - List of available Text Encoders and CLIP models. - Used to convert your text prompts into semantic attention vectors (i.e., numbers) that the model can process. - Contrastive Language-Image Pre-training (CLIP)
qwen_vaeCOMBO VAE List -------------------------------- - List of available Variational Autoencoders (VAE). - Used to encode and decode images.
flux_clip_1COMBO CLIP / Text Encoder List -------------------------------- - List of available Text Encoders and CLIP models. - Used to convert your text prompts into semantic attention vectors (i.e., numbers) that the model can process. - Contrastive Language-Image Pre-training (CLIP)
flux_clip_2COMBO CLIP / Text Encoder List -------------------------------- - List of available Text Encoders and CLIP models. - Used to convert your text prompts into semantic attention vectors (i.e., numbers) that the model can process. - Contrastive Language-Image Pre-training (CLIP)
flux_vaeCOMBO VAE List -------------------------------- - List of available Variational Autoencoders (VAE). - Used to encode and decode images.
tiled_decodeBOOLEANfalse Tiiled Decode -------------------------------- - VAE decoding for large images can be a severe bottleneck. - Tiled decode helps reduce time by performing decoding on smaller chunks of the image instead of decoding the whole image at once.
image_labelSTRING --- πŸ–ΌοΈ Image Settings --- Label -------------------------------- - This field is not functional. It is just a label for the group of settings below.
resolutionCOMBO Resolution Selector -------------------------------- - Select "Custom" to use the entered custom_width & custom_height. - Select a preset resolution & orientation.
orientationCOMBO Orientaion Selector -------------------------------- - Resolutions given in horizontal orientation. Select vertical to swap resolution aspect ratio.
latent_typeCOMBO Latent Type -------------------------------- - Your choice of an empty latent (all zeros) or an image as a latent.
custom_widthINT102416–16384 Width -------------------------------- - Defines the width of the image.
custom_heightINT102416–16384 Height -------------------------------- - Defines the height of the image.
custom_batch_sizeINT11–4096 Custom Batch Size -------------------------------- - The number of images you want to generate.
sampling_labelSTRING --- πŸ§ͺ Sampling Settings --- Label -------------------------------- - This field is not functional. It is just a label for the group of settings below.
seedINT32-9223372036854776000–9223372036854776000 Seed -------------------------------- - Seed used to generate inital random noise.
sampling_algorithmCOMBO Sampling Algorithm -------------------------------- - List of available Sampling Algorithms. - Used to control the noise removal during the sampling process.
scheduling_algorithmCOMBO Scheduling Algorithm -------------------------------- - List of available Scheduling Algorithms. - Used to control the denoising steps during the sampling process.
qwen_stepsINT321–10000 Steps -------------------------------- - Defines the number of steps to take in the sampling process.
qwen_denoiseFLOAT1.000–1 Sampler Denoise Amount -------------------------------- - The amount of denoising applied, lower values will maintain the structure of the initial image allowing for image to image sampling.
flux_guidanceFLOAT3.20–100 Guidance -------------------------------- - Defines the number of steps to take in the sampling process.
flux_stepsINT321–10000 Steps -------------------------------- - Defines the number of steps to take in the sampling process.
flux_denoiseFLOAT0.240–1 Sampler Denoise Amount -------------------------------- - The amount of denoising applied, lower values will maintain the structure of the initial image allowing for image to image sampling.

Outputs (2)

NameTypeDescription
imageIMAGEThe image output.
latentLATENTThe latent output.