Adds Boogu image support#1419
Conversation
| } | ||
| else if (IsBoogu() && id is null && (qwenImage = GetPromptImage(true, true)) is not null) | ||
| { | ||
| if (!NodeHelpers.TryGetValue("__boogu_edit_cond__", out string booguNode)) |
There was a problem hiding this comment.
this is probably not a good idea
| } | ||
| // TODO: Registry of model default preferences instead of this | ||
| else if (IsFlux() || IsWanVideo() || IsWanVideo22() || IsOmniGen() || IsQwenImage() || IsZImage() || IsZetaChroma() || IsErnie() || IsHiDreamO1() || IsLens() || IsPixelDiT()) | ||
| else if (IsFlux() || IsWanVideo() || IsWanVideo22() || IsOmniGen() || IsQwenImage() || IsZImage() || IsZetaChroma() || IsErnie() || IsHiDreamO1() || IsLens() || IsPixelDiT() || IsBoogu() ) |
There was a problem hiding this comment.
I had to stare at this for a good 2 minutes before figuring out where the problem was
| { | ||
| helpers.LoadClip("boogu", helpers.GetQwen3vl_8bModel()); | ||
| helpers.DoVaeLoader(UserInput.SourceSession?.User?.Settings?.VAEs?.DefaultFluxVAE, "flux-1", "flux-ae"); | ||
| double shift = UserInput.Get(T2IParamTypes.SigmaShift, 3, sectionId: sectionId); |
There was a problem hiding this comment.
are you sure this model needs a custom default shift?
There was a problem hiding this comment.
Going off of [implementation PR](https://github.com/Comfy-Org/ComfyUI/pull/14523), can maybe just scale it back to only apply on edit?
There was a problem hiding this comment.
It's already defaulted to 3.16, I don't see why you would custom-default to 3 instead of 3.16?
| helpers.DoVaeLoader(UserInput.SourceSession?.User?.Settings?.VAEs?.DefaultFluxVAE, "flux-1", "flux-ae"); | ||
| if (IsBooguEdit()) | ||
| { | ||
| double shift = UserInput.Get(T2IParamTypes.SigmaShift, 3.16, sectionId: sectionId); |
There was a problem hiding this comment.
I'm still wondering why the custom default sigma shift
There was a problem hiding this comment.
Removed. I missed that it's baked into ComfyUI. I don't know why it was in the printed workflow then.
There was a problem hiding this comment.
presumably to suggest users try modifying it, ie for Swarm side it should be on the AuraFlow modifiable sigma shift list
There was a problem hiding this comment.
Added back in, user overrideable
| [HiDream O1](#hidream-o1) | "Pixel UiT" | 2026 | HiDream | 8B | Minimal | Modern, intelligent, fast, decent quality | | ||
| [Lens](#lens) | MMDiT | 2026 | Microsoft | 4B | Minimal | Modern, lightweight, eh quality | | ||
| [Ideogram 4](#ideogram-4) | DiT | 2026 | Ideogram AI | 9B | Yes | Modern, advanced on input understanding | | ||
| [Boogu](#boogu) | MLLM | 2026 | Boogu | 10B | No | Modern, fast | |
There was a problem hiding this comment.
the No here doesn't sound correct to what was said on discord
... Also I kinda doubt MLLM is correct
There was a problem hiding this comment.
It's uncensored in my tests, has poor knowledge of genitals but doesn't shy away from it.
There was a problem hiding this comment.
Then "Minimal" means it's eg missing genitals but otherwise complete,
| - Turbo: [Comfy-Org/Boogu-Image - Turbo FP8](<https://huggingface.co/Comfy-Org/Boogu-Image/resolve/main/diffusion_models/boogu_image_turbo_fp8_scaled.safetensors>) | ||
| - Or the NVFP4 (6 gigs) here: [Comfy-Org/Boogu-Image - Turbo nvfp4](<https://huggingface.co/Comfy-Org/Boogu-Image/resolve/main/diffusion_models/boogu_image_turbo_nvfp4.safetensors>) | ||
| - Uses the Flux.1 VAE and a Qwen3-VL text encoder, both downloaded and handled automatically. | ||
| - For editing, use the `Edit` model and give it an init image - SwarmUI automatically wires it in as the reference. |
| { | ||
| if (IsBooguEdit()) | ||
| { | ||
| defsampler ??= "dpmpp_2m"; |
There was a problem hiding this comment.
Is this wrong or are the docs wrong
There was a problem hiding this comment.
I'm following along with the upstream Comfy PR
There was a problem hiding this comment.
The docs and the defaults should match up as much as possible
| AddStep(g => | ||
| { | ||
| g.FinalPrompt = g.CreateConditioning(g.UserInput.Get(T2IParamTypes.Prompt), g.CurrentTextEnc.Path, g.UserInput.Get(T2IParamTypes.Model), true, "6"); | ||
| if (g.IsBooguEdit()) |
| AddStep(g => | ||
| { | ||
| g.FinalNegativePrompt = g.CreateConditioning(g.UserInput.Get(T2IParamTypes.NegativePrompt, ""), g.CurrentTextEnc.Path, g.UserInput.Get(T2IParamTypes.Model), false, "7"); | ||
| if (!g.IsBooguEdit()) |
| public bool IsBoogu() => IsModelCompatClass(T2IModelClassSorter.CompatBoogu); | ||
|
|
||
| /// <summary>Returns true if the current model is Boogu and has a prompt image (consider it edit model).</summary> | ||
| public bool IsBooguEdit() => IsBoogu() && UserInput.TryGet(T2IParamTypes.PromptImages, out List<Image> images) && images.Count > 0; |
There was a problem hiding this comment.
This one I waffled on, ended up adding. Since the predicate is different than others in this file, let me know if you prefer to remove it.


Had to negative match OmniGen due to sharing the same matching headers: https://huggingface.co/Comfy-Org/Omnigen2_ComfyUI_repackaged/blob/main/split_files/diffusion_models/omnigen2_fp16.safetensors