Skip to content

Adds Boogu image support#1419

Merged
mcmonkey4eva merged 17 commits into
mcmonkeyprojects:masterfrom
jtreminio:boogu-support
Jun 28, 2026
Merged

Adds Boogu image support#1419
mcmonkey4eva merged 17 commits into
mcmonkeyprojects:masterfrom
jtreminio:boogu-support

Conversation

}
else if (IsBoogu() && id is null && (qwenImage = GetPromptImage(true, true)) is not null)
{
if (!NodeHelpers.TryGetValue("__boogu_edit_cond__", out string booguNode))

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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() )

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

format

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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);

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

are you sure this model needs a custom default shift?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

609322581-f91b1a90-59f3-4243-ad9b-1538fd4b4957 Going off of [implementation PR](https://github.com/Comfy-Org/ComfyUI/pull/14523), can maybe just scale it back to only apply on edit?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's already defaulted to 3.16, I don't see why you would custom-default to 3 instead of 3.16?

@jtreminio

Copy link
Copy Markdown
Contributor Author
CleanShot 2026-06-17 at 19 47 26@2x CleanShot 2026-06-17 at 19 47 59@2x

@jtreminio jtreminio marked this pull request as ready for review June 18, 2026 02:15
helpers.DoVaeLoader(UserInput.SourceSession?.User?.Settings?.VAEs?.DefaultFluxVAE, "flux-1", "flux-ae");
if (IsBooguEdit())
{
double shift = UserInput.Get(T2IParamTypes.SigmaShift, 3.16, sectionId: sectionId);

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm still wondering why the custom default sigma shift

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed. I missed that it's baked into ComfyUI. I don't know why it was in the printed workflow then.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

presumably to suggest users try modifying it, ie for Swarm side it should be on the AuraFlow modifiable sigma shift list

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added back in, user overrideable

Comment thread docs/Model Support.md Outdated
[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 |

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the No here doesn't sound correct to what was said on discord

... Also I kinda doubt MLLM is correct

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's uncensored in my tests, has poor knowledge of genitals but doesn't shy away from it.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Then "Minimal" means it's eg missing genitals but otherwise complete,

Comment thread docs/Model Support.md Outdated
- 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.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

init image is strange

Comment thread src/BuiltinExtensions/ComfyUIBackend/WorkflowGenerator.cs Outdated
AddStep(g =>
{
g.FinalPrompt = g.CreateConditioning(g.UserInput.Get(T2IParamTypes.Prompt), g.CurrentTextEnc.Path, g.UserInput.Get(T2IParamTypes.Model), true, "6");
if (g.IsBooguEdit())

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

wrong place to impl this

AddStep(g =>
{
g.FinalNegativePrompt = g.CreateConditioning(g.UserInput.Get(T2IParamTypes.NegativePrompt, ""), g.CurrentTextEnc.Path, g.UserInput.Get(T2IParamTypes.Model), false, "7");
if (!g.IsBooguEdit())

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what

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;

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

/// <summary>Creates a "CLIPTextEncode" or equivalent node for the given input, applying prompt-given conditioning modifiers as relevant.</summary>
public JArray CreateConditioning(string prompt, JArray clip, T2IModel model, bool isPositive, string firstId = null, bool isRefiner = false, bool isVideo = false, bool isVideoSwap = false, bool isPixelDecoder = false)
{
if (IsBooguEdit() && isPositive)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wrong place for this, put it where the code for other model-specific stuff is. And make sure swarmtextencodeadvanced works when it's supposed to

Comment thread docs/Model Support.md Outdated
- 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 a prompt image - SwarmUI automatically wires it in as the reference.
- **Parameters:**
- **Sampler**: For Turbo, use LCM, otherwise DPM++ 2M is fine.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is Base, Edit, Turbo. They are different models with different defaults and potentially different recommendations, this should be clarified here.

{
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.16, sectionId: sectionId);

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The custom-default unmodified shift is weird and shouldn't be here

@mcmonkey4eva mcmonkey4eva merged commit 05d9913 into mcmonkeyprojects:master Jun 28, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants