Nodes/ComfyUI-ListHelper/Photo Magazine Prompt Generator
ComfyUI Node

Photo Magazine Prompt Generator

Not a generator — it's the spec-writer for a magazine shoot

By dseditor·Created about a year ago·Updated 7 months ago· 75
Photo Magazine Prompt Generator
  • reference_image
  • prompt
templateREADME.md
model_name
photo_style自然清新
custom_scene
content_pages8
features

The name oversells it. PhotoMagazinePromptGenerator doesn't generate an image prompt and it doesn't generate images. What it actually does is build a structured spec - a prompt for an LLM - that tells an LLM to plan out a full photo-magazine spread: a model name, a shooting style, a scene, and a page count. You feed that spec to an LLM node, it replies with JSON, and a sibling node called PhotoMagazineParser turns that JSON into a list of per-page image prompts. So think of this as stage one of a four-stage pipeline, not a stand-alone generator.

This is a niche workflow and the pack is honest about that. The defaults are Chinese-first (the default photo_style is 自然清新, "natural fresh"), and it's aimed at people making 寫真集-style sets - a real but specific use case. If you just want one good prompt, skip it. If you want a coherent 8-page "magazine" with the same model in different scenes, this is the scaffold.

How it works

The mechanism is almost boringly simple. The node reads a .md template from the pack's DesignPrompt/ folder and does a Python str.format() injection: your model_name, features, photo_style, custom_scene, and content_pages get dropped into {placeholder} slots, and the whole thing comes out as one STRING output. That string is the LLM's job assignment.

One trap worth knowing: the optional reference_image input does not analyze the photo. When you connect one, the node swaps your features text for an {EXTRACT_FROM_IMAGE} placeholder and prints console hints telling you to load the extract_person_features.md template in your LLM node. The actual feature extraction happens in the LLM, not here. Cute, but easy to mistake for magic.

The inputs that matter

  • template - dropdown of .md files in DesignPrompt/. Pick which "shooting plan" spec the LLM receives.
  • model_name - the model's name (小美, Lisa…), feeds the magazine's premise.
  • photo_style - shooting style, free text.
  • custom_scene - optional scene setting; empty = LLM decides.
  • content_pages - how many pages/spreads to plan (3–30, default 8).
  • features - optional person description; leave blank and the template tells the LLM to infer from the name.
  • reference_image (optional) - wires in the placeholder path described above.

Output: a single prompt (STRING) that goes into an LLM node - this pack ships OpenRouterLLM and OpenAIHelper, or the local QwenGPUInference. From there: parser → prompt list → your sampler.

The real gotcha

The DesignPrompt/ folder in the current release ships with only README.md - the actual generation templates (photomagazine_json_output.md, photomagazine_simple.md) are documented but not included. So out of the box your dropdown may only offer README.md, which isn't a working template. The fix is the pack's own DesignPrompt/README.md, which is a decent template-authoring guide: required variables ({model_name}, {features}, {photo_style}, {custom_scene}, {content_pages}, {features_description}), and the {{ / }} escaping you need for JSON braces. Write your own .md, restart ComfyUI, and it appears in the dropdown.

Install

Standard for this pack:

cd ComfyUI/custom_nodes
git clone https://github.com/dseditor/ComfyUI-ListHelper

Then restart ComfyUI. ComfyUI Manager also finds it if you search "ComfyUI-ListHelper". No extra Python packages for this node - regex, accelerate, reportlab in the pack's requirements cover the pack as a whole.

If a template isn't in the dropdown after you add it, restart ComfyUI. If your {variables} come through verbatim, check your braces - it's a Python format string and the names are exact.

CategoryDesignPack

Inputs (7)

NameTypeDefaultDescription
templateCOMBOREADME.md1 options: README.md
model_nameSTRING
photo_styleSTRING自然清新
custom_sceneSTRING
content_pagesINT83–30
featuresSTRING
reference_imageoptIMAGE

Outputs (1)

NameTypeDescription
promptSTRING