Nodes/ComfyUI StoryCreater/Story Sampler Simple
ComfyUI Node

Story Sampler Simple

It writes the story, and that story becomes your image prompt

By oztrkoguz·Created 2 years ago·Updated about a year ago· 33
Story Sampler Simple
  • model
  • tokenizer
  • description
prompt

This is the node where the pack's whole premise finally pays off: feed it a list of keywords and it returns a complete short story as text - and that text is what you'll drop into a CLIPTextEncode to generate the image. The author's example workflow does exactly this: keywords in, story out, story straight into the SDXL prompt, image out. One node turns "dragon, walk, open, mouth, man" into a paragraph worth prompting with.

Mechanically it's simple, which is a compliment. It takes the model and tokenizer from StoryLoader, wraps your input in an Alpaca-style instruction template ("create a short story from this keywords"), runs a greedy generation capped at max_length=150, then strips the template off and returns just the story text. You never see the template; you get clean prose out the description output.

The inputs that matter

Three inputs, all required, and only one is yours to play with:

  • model (CUSTOM) - wire from StoryLoader.
  • tokenizer (CUSTOM) - wire from StoryLoader.
  • prompt (STRING, forceInput) - this is your keywords. Note the forceInput: you can't type into this field in the node graph. You must connect a text-source node to it. That's exactly why the pack ships Write2 (a plain text pass-through), and it's a common first stumble - the widget looks typable and isn't.

Outputs

One output, description (STRING): the generated story. It wires into two places, and both are in the example workflow:

  • a text viewer like ShowText|pysssss, so you can actually read it, and
  • the text input of a core CLIPTextEncode, so the story becomes your image prompt.

For best results pair it with the author's matching SDXL checkpoint, "Everly Heights Story Studio XL" on Civitai - the example workflows load everlyHeightsStory_v10.safetensors through a plain CheckpointLoaderSimple. Any SDXL checkpoint works, but the story-tuned one is what the whole pipeline was balanced around.

Install and gotchas

Install is the pack install (see the StoryLoader article - one git clone, or ComfyUI Manager searching "ComfyUI StoryCreator", plus pip install transformers in your ComfyUI venv since the pack ships no requirements.txt). The node-specific gotchas are:

  • GPU required. .to("cuda") is hardcoded, same as its loader. CPU-only installs will fail.
  • Stories are short, period. max_length=150 is a hard cap on the generated tokens. You can't lengthen it from the UI; the node just ends where it ends. For a "short story" node that's arguably correct, but don't expect novel-length prose.
  • The "No answer found." quirk. If the model's output doesn't contain the "Response:" marker, the code returns a bare string instead of a tuple, which can throw a TypeError in the console. It's a real edge case (the template makes it unlikely) and harmless - just rerun.

The one honest caveat: the model is a small fine-tune, not a frontier LLM. Stories are charming, a little formulaic, and sometimes drift mid-paragraph. If you want editor-grade prose you're better off elsewhere; if you want a reliable offline "keywords become a story" step that plugs into the rest of your workflow, this does its one job quietly and well.

CategoryStory Nodes/Story Sampler Simple

Inputs (3)

NameTypeDefaultDescription
modelCUSTOM
tokenizerCUSTOM
promptSTRING

Outputs (1)

NameTypeDescription
descriptionSTRING