Skip to content

Adds Boogu image support#1419

Open
jtreminio wants to merge 12 commits into
mcmonkeyprojects:masterfrom
jtreminio:boogu-support
Open

Adds Boogu image support#1419
jtreminio wants to merge 12 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

{
if (IsBooguEdit())
{
defsampler ??= "dpmpp_2m";

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.

Is this wrong or are the docs wrong

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'm following along with the upstream Comfy PR

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

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.

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