ComfyUI Node

PosterCraft

The one node that actually makes the poster — everything else is just setup

By Yuan-ManX·Created about a year ago·Updated about a year ago· 24
PosterCraft
  • pipeline_path
  • custom_transformer_path
  • qwen_model_path
  • prompt
  • image
width832
height1216
num_inference_steps28
guidance_scale3.50
seed42
devicecuda

This is the node the whole pack exists for. The four Load* nodes above it just hand it paths; PosterCraft is where FLUX.1-dev actually gets loaded, the fine-tuned transformer gets swapped in, and an image finally comes out the other end. If you've been following along with the pack's naming, yes, it does all the "loading" the other nodes merely pretend to do.

It's a ComfyUI port of the upstream PosterCraft framework (arXiv 2506.10741, from the PosterCraft research group), and it runs the pipeline exactly the way the paper's inference.py does: load FluxPipeline from your base model, replace its transformer with the PosterCraft fine-tune, optionally let a Qwen LLM rewrite your prompt into a longer poster brief, then sample. The crisp text rendering and layout harmony you're after come from that fine-tuned transformer, not from any separate text-overlay stage - this wrapper is a straight text-to-image pass, just with a transformer that was trained to draw posters.

The inputs that matter

The first four inputs (pipeline_path, custom_transformer_path, qwen_model_path, prompt) are just the outputs of the four Load nodes wired in order. You barely touch them. The ones you'll actually fiddle with:

  • width / height - defaults 832×1216, a portrait poster aspect ratio close to Flux's native training resolution. Keep both divisible by 8 or expect a forced round.
  • num_inference_steps - 28 by default, which is a very standard Flux value; dropping to 20 is usually fine, going past 30 buys little.
  • guidance_scale - 3.5, again textbook Flux. Crank it up if text starts getting mushy.
  • seed - 42, boring but reproducible.
  • device - cuda or cpu. The "cpu" option technically exists; don't try it unless you enjoy waiting twenty minutes per poster.

The single image output is the finished poster. One important caveat about that IMAGE port: under the hood it's a PIL image, not a ComfyUI tensor, so this pack is designed to feed its own SavePosterCraft node. Don't wire this output into the stock Save Image node expecting a tensor - it'll choke.

Install and models

The pack installs the usual way - Manager (search "PosterCraft") or:

cd ComfyUI/custom_nodes
git clone https://github.com/Yuan-ManX/ComfyUI-PosterCraft

The heavy part is the models. FLUX.1-dev and the PosterCraft transformer (roughly 23 GB in BF16) download from HuggingFace on first run, and FLUX.1-dev is gated - you need to log in (huggingface-cli login) and accept the license on the model page first. Note the README's requirements.txt pins exact versions of torch, diffusers, and transformers; those can clash with your existing ComfyUI install, so a dedicated venv is the safer route.

Where people get burned

First: this node reconstructs the whole PosterGenerator on every execution, which means a full reload of Flux, the transformer, and Qwen each time you hit queue. Iterating is slow - budget minutes per generation, not seconds. Second: there's no CPU offloading wired into this port (the upstream repo has an inference_offload.py that shows the pattern; this wrapper doesn't use it), so the Flux weights alone eat ~24 GB of VRAM. A 12–16 GB card will OOM, and even 24 GB is snug once Qwen loads too. And third, remember the Qwen prompt-rewrite only activates if you give it a path that actually exists on disk - with the default string it's silently skipped, so your poster runs on your raw prompt. Full story on that in the Load Qwen Model article. Worth remembering too that the PosterCraft weights carry Flux's non-commercial license - great for portfolios, not for selling posters.

CategoryPosterCraft

Inputs (10)

NameTypeDefaultDescription
pipeline_pathPIPELINE
custom_transformer_pathMODEL
qwen_model_pathQWEN
promptPROMPT
widthINT832
heightINT1216
num_inference_stepsINT28
guidance_scaleFLOAT3.50
seedINT42
deviceCOMBOcuda2 options: cuda, cpu

Outputs (1)

NameTypeDescription
imageIMAGE