Nodes/agate-comfyui/Agate Generate
ComfyUI Node

Agate Generate

One node, no VAE file, 256×256 in under two seconds

By logolabs·Created about 15 hours ago·Updated about 12 hours ago· 0
Agate Generate
  • agate
  • images
◄prompta minimalist logo of a fox head, orange, flat design, white background►
◄negative_prompt►
◄seed0►
◄steps50►
◄cfg3.0►
◄autoguide0.0►
◄batch_size1►
◄live_previewside_by_side►

If you just want a picture out of Agate and don't care how ComfyUI's latent plumbing works, this is the node. Agate Generate samples the model and decodes it, in one box, and outputs a normal ComfyUI IMAGE batch - B × 256 × 256 × 3, floats in 0–1, ready for Save Image or an upscaler.

The real selling point: you don't need an SD 1.5 VAE file. Agate Loader → Agate Generate → Save Image is a complete workflow. The pack ships agate_generate.json as exactly that, and it's the example to open first if you're new to all this.

How it works, and where it differs

Agate is LogoLabs' 260M text-to-image model - trained from scratch in 145 GPU-hours, MIT weights, 256 px native, 0.550 GenEval. It's a rectified flow model where a thinker lays the image out on a 16 × 16 grid and a renderer paints from that plan alone, and it happens to sample in SD 1.x's latent space.

Agate Generate runs that sampling loop and then hands the latent to a decoder it owns, rather than making you find a VAELoader. Which decoder is decided on Agate Loader, not here: sd-vae (SD-VAE ft-MSE, best quality) or taesd (tiny decoder, faster, lighter, slightly softer). That's a mild UX sting - the dropdown controlling this node lives on another node - but it's why one loader feeds all three samplers consistently. Because the decode is diffusers-based, the first run fetches that decoder into your Hugging Face cache. After that it's local.

You give up essentially nothing by doing it this way: the author measured Agate Generate against Agate Sampler → stock VAE Decode, and they match to within 5/255 per pixel, mean 0.2/255 - the gap between the diffusers and ComfyUI VAE implementations, not a quality difference.

The inputs

They're the sampler's inputs minus the img2img ones, because there's no img2img here.

prompt is English, up to 512 tokens read. negative_prompt should stay empty; that's what Agate was trained with. seed has the usual control_after_generate dropdown - and the usual trap, since it fires after the run, so lock a seed before you fall in love with an image. steps 50 is the default and the recommendation; 30 is a legitimate draft. cfg 3.0, and it wants to stay low - this is a 260M model, not an SDXL checkpoint. autoguide at 1.0 with cfg 4 sharpens faces and fine detail at about 50% more time, and pulls in the extra 0.5 GB guide model on first use. batch_size is images per run from one seed.

live_preview is the widget you won't see on a normal sampler: side_by_side by default, showing the developing image and the thinker's 16 × 16 plan next to each other while it samples. Also image, plan and none. It's the cheapest way to watch the layout get decided in the first few steps.

Output is images - one wire, into Save Image or an upscaler.

Installing it

ComfyUI Manager → search Agate or agate-comfyui → Install → restart. By hand:

cd ComfyUI/custom_nodes
git clone https://github.com/logolabs/agate-comfyui
pip install -r agate-comfyui/requirements.txt     # ComfyUI's python; portable build:
                                                  # ..\python_embeded\python.exe -m pip install -r agate-comfyui\requirements.txt

That pulls in diffusers>=0.30, transformers>=4.48, safetensors and huggingface_hub - nothing that touches torch. Weights are the 522 MB agate-preview-001.safetensors, dropped into ComfyUI/models/agate/ automatically on first use, plus agate-guide-27600.safetensors if you ever raise autoguide. The model repo is public; no login. Nodes appear under LogoLabs → Agate.

What to expect next

256 px is the native size and the model was trained at nothing else, so don't fight it - generate small, upscale after. Upscale Image By at 4× lanczos gets you a clean 1024 × 1024 for effectively nothing and with no hallucination risk, which suits Agate's flat, logo-ish output. Want more bite? An ESRGAN-type 4× model (Load Upscale Model → Upscale Image (using Model)) is sharper on line work. For actual logos, tracing to SVG afterwards beats any pixel upscaler.Speed, on the author's RTX 4060 with TAESD previews and CUDA graphs on: 1.7 s per queued prompt at 50 steps, 1.05 s at 30, 4.6 s for a batch of four, 2.5 s with autoguide at 1.0. The first run after starting ComfyUI is 26–28 seconds - weights load, cuDNN picks kernels, the CUDA graph gets recorded - and something similar happens again for each new batch size or prompt-length bucket, since each shape gets its own graph. "Why did my first Agate image take 27 seconds" is the predictable first post.

Then the honest limits, because they aren't bugs: exact text, counting above three, and negation all fail. "A bowl with no fruit" comes back full of fruit. It's a research preview and not converged; if you need a caption rendered inside the image, no amount of CFG will get you there.

Two footnotes worth filing. There's no denoise and no latent_image on this node - img2img, variations and re-renders live on Agate Sampler, so the moment you want to iterate on an existing image you move down the pack. And under the hood, loading Agate sets torch.backends.cudnn.benchmark = True and disables PyTorch's cuDNN attention backend for the whole ComfyUI process, because those are the kernels Agate was trained with. Other models keep working - with those settings.

CategoryLogoLabs/Agate

Inputs (9)

NameTypeDefaultDescription
agateAGATE_MODEL—
promptSTRINGa minimalist logo of a fox head, orange, flat design, white background—
negative_promptSTRINGThe unconditional prompt for CFG; empty is what Agate was trained with
seedINT00–18446744073709550000—
stepsINT501–200—
cfgFLOAT3.00–20—
autoguideFLOAT0.00–3Also steer away from Agate's early (step 27,600) checkpoint: sharper faces and detail. Try 1.0 with cfg 4. ~50% slower; loads the guide model (+0.5 GB) on first use.
batch_sizeINT11–64—
live_previewCOMBOside_by_sideLive preview on this node during sampling: side_by_side shows both the developing image and the thinker's 16x16 plan.

Outputs (1)

NameTypeDescription
imagesIMAGE—