Daily Prompt Scheduler
A fresh batch of prompts every day, with zero babysitting
- daily_prompts
- total_index
Set it once, get new prompts every morning
Content pipelines run on volume - a different image set every day, generated while you sleep, with no human picking prompts. That's the job of Daily Prompt Scheduler. You give it a plain text file of prompts (one per line), tell it how many to use per day, and it hands back a list for today. Tomorrow it hands back a different one. Rinse, repeat, collect.
It's the meatiest node in ComfyUI-ScheduledTask, and the one that makes the whole pack feel complete: the scheduler fires your workflow at 6am, this node picks today's prompts, Time to Seed List picks today's seeds, and the thing basically runs itself.
Two modes, one boolean
The scheduled toggle (default off) picks the strategy:
- Random Mode (off): seeds the RNG with today's date plus the filename, then samples
daily_countprompts without replacement. Same selection all day - run the workflow forty times and you get the same prompts, which is the point: consistent until midnight, then a new set. - Scheduled Mode (on): the predictable one. On first run it writes
{filename}_time_seed.jsonnext to the txt file, recording the date. Each day it counts how many days have passed and advances a pointer bydaily_count. With 12 prompts and 3 per day: day 1 gets prompts 1–3, day 2 gets 4–6, and it wraps around when you run out. Great when you want a sequence rather than a lottery.
The node's change-detection key is built from the file's modification time plus today's date, so ComfyUI re-executes it when the day flips or you edit the file. No stale cache holding yesterday's prompts.
Inputs and outputs that matter
txt_file- dropdown of the.txtfiles in the pack'sPrompt/folder. Drop files there, one prompt per line; empty lines are ignored and UTF-8 is fine.daily_count- prompts per day (1–5000, default 3). Capped by file length; you can't get more than the file holds.scheduled- the mode toggle above.
Outputs: daily_prompts (a STRING list of today's picks) and total_index (INT - the number actually returned, handy as a loop bound).
Where people stumble
- The dropdown only lists files that existed when ComfyUI built the node's menu. Drop a new txt into
Prompt/and you'll need to reload the workflow (or restart) before it shows up. - To use all of today's prompts as separate images you need an iterate/loop node -
daily_promptsis a list, and a single CLIP Text Encode wants one string. Same list-handling caveat as the pack's Time to Seed List. - In Scheduled Mode, deleting
{filename}_time_seed.jsonresets the sequence to day one. It's also the file to back up if the progression matters to you. - One fine print on Random Mode: the date seed mixes in Python's per-process string hash, so a mid-day ComfyUI restart can reshuffle today's pick. Within a single running session it stays stable - don't panic if it's different after a reboot.
- "Same selection all day" in Random Mode makes people think it's broken. It's deliberate.
Install
- ComfyUI Manager: search "ComfyUI-ScheduledTask", install, restart.
- Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/dseditor/ComfyUI-ScheduledTask
cd ComfyUI-ScheduledTask
pip install -r requirements.txt
Only schedule and requests - no models to fetch. Then drop your txt files into ComfyUI-ScheduledTask/Prompt/ (there's an Example.txt to crib from). The node shows up under text/scheduled.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| txt_file | COMBO | Please place txt files in Prompt folder | 1 options: Please place txt files in Prompt folder |
| daily_count | INT | 31–5000 | — |
| scheduled | BOOLEAN | false | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| daily_prompts | STRING | — |
| total_index | INT | — |