Nodes/ComfyUI_Eclipse/Character Shot Planner
ComfyUI Node

Character Shot Planner

Plan one close, mid and wide candidate per requested image, then select one. Project owns the history; batch ID names one saved plan. Reserve records all candidates before image generation, including skipped options; it does not track completed images. Use preview while testing, then reserve for final generation.

By r-vage·Created 11 months ago·Updated about 15 hours ago· 38
Character Shot Planner
    • plan
    • prompts
    • seeds
    • shot_ids
    • report
    ◄projectmy-character►
    ◄batch_idbatch-001►
    ◄count40►
    ◄character_lockThe same character as the reference images; preserve facial identity, hair and body proportions.►
    ◄outfit_lock►
    ◄sceneAn uninterrupted featureless white background and light floor, soft natural light.►
    ◄body_modeany►
    ◄selectionbalanced►
    ◄choices►
    ◄seed0►
    ◄pose_cooldown3►
    ◄expression_cooldown3►
    ◄camera_cooldown2►
    ◄operationreserve►
    ◄pose_categoryall►
    ◄expressionrandom►
    ◄stop_whenposes►
    Category🌒 Eclipse/ Text

    Inputs (17)

    NameTypeDefaultDescription
    projectSTRINGmy-characterName of the persistent history under output/eclipse/shot_ledgers. All batches with this project name share camera reservations. Use Reset reservations to start fresh with the same name. Changing batch_id or reloading prompt files does not clear history. The report shows the ledger file for manual backup/removal while the queue is stopped.
    batch_idSTRINGbatch-001Names one plan within this project. Same ID and settings replay saved shots, useful when generation fails. Changed settings automatically use -2, -3, etc.; report shows the actual ID. A new ID requests fresh shots from the remaining pool, not a history reset. Pool-file edits need a new ID to take effect.
    countINT401–100Maximum selected prompts in this batch, not completed images. Each shot has three candidates recorded in reserve mode. Coverage completion can return fewer prompts. Reserve stops automatic queueing with a yellow popup; preview shows an informational capacity notice and continues. Try 3 while testing; this is not the project's lifetime limit.
    character_lockSTRINGThe same character as the reference images; preserve facial identity, hair and body proportions.Identity and reference-role instructions included in every shot. Connect Character Reference Pack's character_lock here. Keep fixed pose/framing instructions out of this field so the planner can vary them. Changing it creates a new batch variant in reserve mode.
    outfit_lockSTRINGOptional wardrobe instructions added to every shot. Leave empty if the connected character_lock already specifies the outfit. Keep this consistent with clothing references and the approved anchor.
    sceneSTRINGAn uninterrupted featureless white background and light floor, soft natural light.Background and lighting for dataset shots. Applied to every planned prompt; camera, pose and expression come from the shot pools. This does not change the separate character-review scene.
    body_modeCOMBOanyPosture filter: any mixes seated, standing and lying poses. Seated includes benches, stools, floor cushions and supported reclining; lying keeps the body horizontal on a support. Standing + sports includes boxing and martial arts. Close portraits retain posture but cannot show full-body actions. Filters need compatible poses in your editable files; high cooldowns can exhaust small pools.
    selectionCOMBObalancedWhich candidate becomes the output image prompt. Balanced favors the least-used distance across project history; close/mid/wide always select that distance. All three candidates are still planned and reserved. Nonempty choices overrides this setting.
    choicesSTRINGOptional manual selection, one close/mid/wide per requested shot, separated by commas or newlines. Example for count=3: close, wide, mid. Overrides selection. Choices affect later cooldowns, so preview again after editing.
    seedINT00–18446744073709550000Controls new candidate draws and the per-shot generation seeds. A connected seed overrides this widget. Keep it fixed for retries; changing it requests a new batch variant in reserve mode. It does not reset reservations or control reference/anchor sampler seeds.
    pose_cooldownINT30–20Number of previous selected shots whose poses cannot be offered again, including earlier batches. 0 allows immediate reuse between sets; the three candidates within a set still have distinct poses. Lower this if a restricted pose pool runs out.
    expression_cooldownINT30–20Applies only to expression=random: number of previous selected shots whose expressions cannot be offered again, including earlier batches. 0 allows immediate reuse between sets; random candidates within a set still have distinct expressions. Fixed expressions and off ignore this cooldown.
    camera_cooldownINT20–20Number of previous selected shots whose camera families are excluded, including earlier batches. In cameras stop mode, exact combinations never repeat even at 0. Other stop modes cycle depleted camera pools and relax this cooldown if necessary, with a warning, so cameras do not end pose/expression coverage.
    operationCOMBOreservepreview: plan from empty history using current files, ignoring all saved reservations and batches; no history is saved and downstream generation remains enabled. reserve: save all three candidates per shot before generation, including skipped ones. Later generation failure does not undo reservations; retry unchanged settings to replay. Planning failure saves none of the batch. Existing batches replay only in reserve mode. Preview and reserve match when project history is empty.
    pose_categoryoptCOMBOallActivity filter, combined with body_mode. all includes everyday, sports and sexy. Everyday selects casual poses; sports selects solo boxing, martial arts, warm-ups and exercise; sexy selects suggestive solo glamour poses for standing, seated and lying subjects. Does not change wardrobe, facial expression or location. Edit category on poses in prompts/shot_planner/poses.json; omitted category means everyday. Existing reserved batches replay their saved prompts.
    expressionoptCOMBOrandomrandom draws distinct expressions with cooldowns. A specific ID applies that expression to every candidate and ignores expression_cooldown. off omits planner expression wording while preserving your prompt text. Edit expressions.json and click Reload planner files to refresh choices. Removed IDs fail for new batches; reserved batches replay their snapshots.
    stop_whenoptCOMBOposesposes (default): finish when every compatible pose has appeared in a selected output. expressions: cover each selected expression; fixed/off has one variant. poses_and_expressions: finish both lists, cycling the shorter one. cameras: legacy unique-camera limit. never: keep cycling. Camera pools cycle in all modes except cameras; camera cooldown may relax to continue. Reserve coverage uses project history; preview starts empty. Both use current body/category/output-distance filters. The final coverage batch can be shorter than count. Reserve shows a yellow popup and stops automatic queueing; preview shows capacity information. Reserved batches replay unchanged in reserve mode.

    Outputs (5)

    NameTypeDescription
    planECLIPSE_SHOT_PLANComplete plan with all three candidates, selected choices and saved settings. Connect to Shot Plan Slice to split generation into ranges. This contains reservations, not image-completion records.
    promptsSTRINGOne selected positive prompt per shot, in order. Connect to the dataset text encoder. Keep aligned with seeds and shot_ids.
    seedsINTOne generation seed per selected prompt. Connect to the dataset sampler's seed input; do not reuse the planner seed as a substitute.
    shot_idsSTRINGStable IDs for selected shots: resolved batch ID / shot number / distance. Aligned with prompts and seeds; useful for filenames or captions.
    reportSTRINGReadable plan showing the resolved batch ID, ledger path and all candidates; * marks the selected candidate. Connect to Show Any to inspect it before generating images.