Nodes/SDXL Auto Prompter/APNext H3 Presentation Writer
ComfyUI Node

APNext H3 Presentation Writer

Turns source material (findings, data, code, a changelog) into a presented video: a presenter walks through it scene by scene, charts and on-screen numbers taken VERBATIM from the material. No audio input - the script, visuals and pacing are all generated. `scenes`, `durations` and `lengths` are matching lists for a downstream H3 video node; join the clips with H3 Scenes Join.

By dagthomas·Created 3 years ago·Updated about 18 hours ago· 289
APNext H3 Presentation Writer
  • llm
  • image_1
  • image_2
  • image_3
  • image_4
  • image_5
  • image_6
  • image_7
  • image_8
  • image_9
  • scenes
  • durations
  • lengths
  • scenes_text
  • synopsis
  • script
  • cast
  • scene_count
  • total_seconds
  • session_id
  • info
  • image_1
  • image_2
  • image_3
  • image_4
  • image_5
  • image_6
  • image_7
  • image_8
  • image_9
source_material
direction
presentation_formatAuto
scene_count6
duration_modeVary 5-15s (let Claude pace each scene)
scene_duration12.0
visual_aidsAuto (a graphic wherever it helps)
continuity_modeIndependent clips (hard cuts, T2V openers)
visual_styleLive-action, 35mm cinematic film aesthetic
dialogue_languageEnglish
wildness10
modelsonnet
researchfalse
directortrue
use_subscriptiontrue
timeout_seconds1200
seed-1
cast_1
cast_2
cast_3
cast_4
extra_cast
custom_dialogue_language
custom_visual_style
wardrobe
locations
enforce_wardrobetrue
extra_instructions
image_notes
include_soundscapetrue
include_non_diegetic_musicfalse
resume_session_id
working_dir
context_1
context_2
context_3
context_4
context_5
context_6
context_7
context_8
reference_image_useCharacters only (ignore picture backgrounds)
scene_briefs
save_scenestrue
scenes_per_call4
Categorycomfyui_dagthomas/H3

Inputs (55)

NameTypeDefaultDescription
source_materialSTRINGThe content to present - findings, benchmark numbers, a paper abstract, a changelog, data tables, code, release notes. This is the GROUND TRUTH: every number, name and claim spoken or shown on screen comes verbatim from here, and nothing is invented.
directionSTRINGThe presentation concept: who presents, where, the tone (enthusiastic keynote, calm lecture, playful explainer), the look, who the audience is. Free text; empty = the model stages it to fit the material.
presentation_formatCOMBOAutoHow the talk is staged and where the charts live (stage screen, whiteboard, studio insets, screencast). Auto picks what fits the material; the direction text can override any of it.
scene_countINT61–24How many scenes/clips the presentation is told in. Scene 01 hooks and names the topic, the middle scenes cover one point each, the last scene lands the takeaway.
duration_modeCOMBOVary 5-15s (let Claude pace each scene)2 options: Fixed (every scene = scene_duration), Vary 5-15s (let Claude pace each scene)
scene_durationFLOAT12.05–15Seconds per scene in Fixed mode, and the fallback when the model omits a duration in Vary mode.
visual_aidsCOMBOAuto (a graphic wherever it helps)How often a chart, graph, diagram, table or code panel is on screen. Every graphic shows real values from the source material with short verbatim labels.
continuity_modeCOMBOIndependent clips (hard cuts, T2V openers)Independent clips: each scene is its own clip with hard cuts. Continuous chain: scenes are written for C2V / motion-context chaining - scene N+1 opens on scene N's last frame, one continuous take.
visual_styleCOMBOLive-action, 35mm cinematic film aestheticOpens every [Shot 1]; kept identical across the whole presentation.
dialogue_languageCOMBOEnglishThe language the presenter speaks (the <d>[...] tag).
wildnessINT100–100How wild the STAGING may get: 0 = sober and literal, ~50 = weird and imaginary elements creep in, 100 = totally unhinged. Only the level is sent to the model - no specific surreal elements are injected - and the facts, chart values and on-screen text stay verbatim from the source material at every level.
modelCOMBOsonnetWho writes the prompt. sonnet / opus / haiku / fable / default are Claude Code aliases (`default` = whatever the CLI is configured for). `codex` is the OpenAI Codex CLI with its configured model (shown when installed; `codex:<model-id>` in an H3 LLM Backend picks a specific one). ollama: / lmstudio: / local: entries are whatever your local servers were serving when the page loaded; pick one to run fully offline. Anything not listed goes in model_override.
researchBOOLEANfalseLet the agent CLI (Claude Code or Codex) search the web for real references before writing - the actual location, wardrobe, lighting and physics. Slower, and it reaches the internet.
directorBOOLEANtrueLoad the H3 director skills (data/h3/skills): the core writing rules, the format this node emits, and style/motion craft, each with a reference library of gold examples and style anchors that Claude Code reads on demand. Costs a few extra seconds and tokens per run.
use_subscriptionBOOLEANtrueHide the API key from the CLI so it uses your login and subscription seat (ANTHROPIC_API_KEY for Claude Code, OPENAI_API_KEY for Codex). Turn off to bill the API key instead.
timeout_secondsINT120060–7200How long to wait PER CALL before the node gives up on the CLI (this is the node's own watchdog, not a Claude limit). Single H3 prompts take 25-60s; a multi-scene chunk with director/research on can take 10-20 minutes. The multi-scene writers retry a timed-out chunk at half size automatically.
seedINT-1-1–18446744073709550000Controls caching. -1 re-runs every queue; any fixed value reuses the cached result.
cast_1optSTRINGA cast line or block from an H3 Characters node (its `cast` output): the presenter, a co-host, an interviewee.
cast_2optSTRINGA cast line or block from an H3 Characters node (its `cast` output): the presenter, a co-host, an interviewee.
cast_3optSTRINGA cast line or block from an H3 Characters node (its `cast` output): the presenter, a co-host, an interviewee.
cast_4optSTRINGA cast line or block from an H3 Characters node (its `cast` output): the presenter, a co-host, an interviewee.
extra_castoptSTRINGPresenter(s) typed by hand, one per line, e.g. `Presenter: a woman in her 40s with grey-streaked hair and rectangular glasses`. Merged with the cast sockets. Empty = the model invents a presenter that fits the material.
custom_dialogue_languageoptSTRING
custom_visual_styleoptSTRINGAny visual style not in the dropdown; overrides the dropdown when filled in.
wardrobeoptSTRINGWardrobe lock, one line per character, e.g. `Sheldon: brown corduroy jacket, green Flash T-shirt, khaki trousers, small silver ring in the left nostril`. Used word-for-word in every shot. Empty = Claude fixes one outfit per character itself (in the synopsis) and repeats it in every shot.
locationsoptSTRINGLocation lock, one line per recurring place, e.g. `Sheldon's living room: beige three-seat sofa facing a wall-mounted TV on the LEFT, tall bookshelf of comics behind it, bay window with white blinds on the RIGHT, warm tungsten floor lamp in the far corner`. Used word-for-word in every scene set there, so the room looks the same in every scene. Empty = the model fixes each recurring place itself (in the synopsis) and repeats it.
enforce_wardrobeoptBOOLEANtrueAfter writing, check that every shot a character is in restates all of that character's wardrobe anchors verbatim, and that every scene set in a locked location restates that location's anchors. If anything is dropped or changed, the model gets one repair turn in the same session. Off = trust the first answer.
extra_instructionsoptSTRING
image_notesoptSTRINGPer-picture notes, one per line: `Image 1: the presenter`, `Image 2: the lecture hall, use as the location`. With reference_image_use = Characters only (the default), a note like that is the ONLY way a picture may be read as a location or prop.
include_soundscapeoptBOOLEANtrueRoom tone, audience reactions, marker squeaks, keyboard clicks. Off = `N/A`.
include_non_diegetic_musicoptBOOLEANfalseA light music bed under the talk. Off (the default) keeps the voice clean, which reads as more credible for data-heavy material.
resume_session_idoptSTRINGContinue an earlier run by feeding it that node's session_id. The whole conversation, images included, is still in context. A session sticks to its backend: Claude Code ids resume with Claude Code, `codex-` ids with Codex, `local-` ids with the same local model.
working_diroptSTRINGA folder Claude Code may read while writing - a script, a shot list, lookbook notes. Empty uses a throwaway scratch folder, which is the safe default.
llmoptAPNEXT_LLMOptional. Connect an APNext H3 LLM Backend node to write with Ollama, LM Studio, another OpenAI-compatible server or an API model instead of Claude Code. Overrides the model dropdown while connected.
context_1optSTRINGSteering input from another APNext node (Time, Scene, Poses, Plots, Feelings, Cinematic, Science, Geography, Architecture, Fashion, ...). The node detects which kind it is and tells Claude how to use it. Sockets grow as you connect them.
context_2optSTRINGSteering input from another APNext node (Time, Scene, Poses, Plots, Feelings, Cinematic, Science, Geography, Architecture, Fashion, ...). The node detects which kind it is and tells Claude how to use it. Sockets grow as you connect them.
context_3optSTRINGSteering input from another APNext node (Time, Scene, Poses, Plots, Feelings, Cinematic, Science, Geography, Architecture, Fashion, ...). The node detects which kind it is and tells Claude how to use it. Sockets grow as you connect them.
context_4optSTRINGSteering input from another APNext node (Time, Scene, Poses, Plots, Feelings, Cinematic, Science, Geography, Architecture, Fashion, ...). The node detects which kind it is and tells Claude how to use it. Sockets grow as you connect them.
context_5optSTRINGSteering input from another APNext node (Time, Scene, Poses, Plots, Feelings, Cinematic, Science, Geography, Architecture, Fashion, ...). The node detects which kind it is and tells Claude how to use it. Sockets grow as you connect them.
context_6optSTRINGSteering input from another APNext node (Time, Scene, Poses, Plots, Feelings, Cinematic, Science, Geography, Architecture, Fashion, ...). The node detects which kind it is and tells Claude how to use it. Sockets grow as you connect them.
context_7optSTRINGSteering input from another APNext node (Time, Scene, Poses, Plots, Feelings, Cinematic, Science, Geography, Architecture, Fashion, ...). The node detects which kind it is and tells Claude how to use it. Sockets grow as you connect them.
context_8optSTRINGSteering input from another APNext node (Time, Scene, Poses, Plots, Feelings, Cinematic, Science, Geography, Architecture, Fashion, ...). The node detects which kind it is and tells Claude how to use it. Sockets grow as you connect them.
image_1optIMAGEReference image 1: <Picture 1> in the prompt. Connect the same image to image_1 on the MiniMax H3 Reference to Video node, or use this node's image_1 output.
image_2optIMAGEReference image 2: <Picture 2> in the prompt. Connect the same image to image_2 on the MiniMax H3 Reference to Video node, or use this node's image_2 output.
image_3optIMAGEReference image 3: <Picture 3> in the prompt. Connect the same image to image_3 on the MiniMax H3 Reference to Video node, or use this node's image_3 output.
image_4optIMAGEReference image 4: <Picture 4> in the prompt. Connect the same image to image_4 on the MiniMax H3 Reference to Video node, or use this node's image_4 output.
image_5optIMAGEReference image 5: <Picture 5> in the prompt. Connect the same image to image_5 on the MiniMax H3 Reference to Video node, or use this node's image_5 output.
image_6optIMAGEReference image 6: <Picture 6> in the prompt. Connect the same image to image_6 on the MiniMax H3 Reference to Video node, or use this node's image_6 output.
image_7optIMAGEReference image 7: <Picture 7> in the prompt. Connect the same image to image_7 on the MiniMax H3 Reference to Video node, or use this node's image_7 output.
image_8optIMAGEReference image 8: <Picture 8> in the prompt. Connect the same image to image_8 on the MiniMax H3 Reference to Video node, or use this node's image_8 output.
image_9optIMAGEReference image 9: <Picture 9> in the prompt. Connect the same image to image_9 on the MiniMax H3 Reference to Video node, or use this node's image_9 output.
reference_image_useoptCOMBOCharacters only (ignore picture backgrounds)How the reference pictures may be read. Characters only: every picture is a character/performer reference - identity (and wardrobe) carries over, the photo's background, setting and lighting are ignored, and no scene or location is ever derived from them; a picture note can still declare a specific image a location or prop. Auto: the model decides what each picture shows (a backdrop can become the scene).
scene_briefsoptSTRINGManually planned scenes from chained H3 Scene Brief nodes: each brief (what happens, where, which cast members and pictures) becomes the binding plan for its scene. Pinned numbers take that scene; unpinned briefs fill in order; scenes without a brief stay the model's to invent.
save_scenesoptBOOLEANtrueStore every successful run as a JSON bundle in output/apnext_scenes/ (scenes, synopsis, durations, cast). Reload it any time with APNext H3 Scenes Load - re-render without paying for the LLM again.
scenes_per_calloptINT41–8How many scenes to ask the model for per call. Smaller chunks finish well inside timeout_seconds and fail smaller (a timed-out chunk is retried at half size automatically); larger chunks are slightly cheaper per scene.

Outputs (20)

NameTypeDescription
scenesSTRING
durationsFLOAT
lengthsINT
scenes_textSTRING
synopsisSTRING
scriptSTRING
castSTRING
scene_countINT
total_secondsFLOAT
session_idSTRING
infoSTRING
image_1IMAGE
image_2IMAGE
image_3IMAGE
image_4IMAGE
image_5IMAGE
image_6IMAGE
image_7IMAGE
image_8IMAGE
image_9IMAGE