Nodes/IAMCCS-nodes/IAMCCS Prompter — MiniMax H3 Screenplay
ComfyUI Node

IAMCCS Prompter — MiniMax H3 Screenplay

Write the scene in sections, not one giant prompt

By IAMCCS·Created 12 months ago·Updated 5 days ago· 115
IAMCCS Prompter — MiniMax H3 Screenplay
  • cine_linx
  • audio
  • cine_linx
  • final_prompt
  • project_json
  • report
  • audio_transcript
  • h3_dialogue_tag
◄project_data{"schema": "iamccs.minimax_h3.prompter_project", "schema_version": 4, "project_name": "Untitled H3 Prompt", "task_mode": "t2va", "injection_target": "global", "writing_mode": "guided", "merge_policy": "replace", "ai_direction": "", "ai_scope": "active_field", "ai_visual_roles": {}, "audio_transcript": "", "audio_dialogue_tag": "", "sections": {"scene": "", "shot_list": "", "acting": "", "dialogue": "", "light_and_image": "", "camera": "", "production_sound": "", "non_diegetic_music": "", "negatives": "", "reference_use": "", "identity_continuity_locks": "", "boundary_frames": "", "action": "", "subject_definitions": "", "summary": "", "retention_analysis": "", "detailed_description": "", "overall_soundscape": "", "v2va_subject_definitions": "", "v2va_source_video_authority": "", "v2va_replacement_retention": "", "v2va_interval_edits": "", "v2va_sound_policy": "", "v2va_exclusions": "", "audio_drive_contract": "", "audio_subject_map": "", "audio_scene_intent": "", "audio_timed_performance": "", "audio_dialogue_map": "", "audio_visual_sync": "", "audio_camera_sync": "", "audio_environment": "", "audio_continuity_locks": ""}}►
◄task_modet2va►
◄injection_targetglobal►
◄writing_modeguided►
◄merge_policyreplace►
◄character_budget6800►
◄audio_transcription_modeltiny►
◄audio_transcription_languageauto►
◄audio_dialogue_languageEnglish►
◄audio_dialogue_subject1►
◄assistant_draft►

The single biggest practical limit of MiniMax H3 is that its prompt has a hard character cap, and the people getting the best results treat it like a screenplay with separate fields - scene, shot list, acting, dialogue, lighting, camera, sound - rather than one blob of prose. IAMCCS_Prompter is a structured writing desk that makes you work that way: you fill the sections, it assembles them in the order the H3 conditioning actually wants, and hands the result downstream as a clean final prompt plus a cine_linx contract.

The default project_data field is a full JSON template (schema v3) with every section pre-labeled: scene, shot_list, acting, dialogue, light_and_image, camera, production_sound, non_diegetic_music, negatives, reference_use, boundary_frames, and the V2V-specific blocks (v2va_subject_definitions, v2va_source_video_authority, v2va_interval_edits, v2va_sound_policy). You don't write JSON by hand - the node ships a UI that edits these fields, and project_json on the output carries the portable version.

The mode switch that matters

  • task_mode - t2va, i2va, fl2va, ref2va, v2va_object_swap, audio_driven. This selects which sections actually get composed, so a v2va_object_swap prompt emphasizes the replacement/source-video contract and an audio_driven one leans on the audio_drive_contract and audio_timed_performance blocks.
  • injection_target - global, local_auto, or local_1..3. When a Shotboard is downstream, this decides whether your composed prompt replaces/appends the global prompt or lands in a specific timeline slot.
  • writing_mode - manual (you write), guided (the desk enforces the structure), assistant_fill (an optional assistant_draft text fills only the empty boxes).
  • merge_policy - replace or append.
  • character_budget - it watches your character count and refuses to emit a prompt over H3's absolute limit (the error tells you exactly how many characters to cut - genuinely helpful, not cryptic).

Optional cine_linx in is the interesting one: it lets an upstream IAMCCS Cine H3 Vision Info node route analyzed visual context (what the reference frame actually shows) into the declared global/local target without embedding image tensors into the prompt node itself.

Outputs

final_prompt (the assembled plain-text prompt - the thing you wire into a standalone H3 conditioning node), cine_linx (for the Shotboard path, which also gets a visible INJECT action in the UI), project_json, and report.

The honest take

For the Shotboard workflow this is the right tool and it removes a real class of error - "I wrote the prompt in the wrong mode and the references got treated as style instead of identity." Used standalone it's just a well-structured prompt assembler, and there are cheaper ones if all you need is a text box. The value is the contract: the same structured project can drive a Shotboard injection or a direct native conditioning node, and it keeps your scene data as a reusable file rather than a widget you'll misplace.

Install via ComfyUI Manager (search "IAMCCS") or cd ComfyUI/custom_nodes && git clone https://github.com/IAMCCS/IAMCCS-nodes.git. The pack's own user guide (docs/IAMCCS_PROMPTER_MINIMAX_H3_USER_GUIDE_EN.txt) walks the two connection methods - Shotboard injection vs. direct final_prompt - and it's worth a skim before your first serious run.

CategoryIAMCCS/MiniMax H3/Prompting

Inputs (13)

NameTypeDefaultDescription
project_dataSTRING{"schema": "iamccs.minimax_h3.prompter_project", "schema_version": 4, "project_name": "Untitled H3 Prompt", "task_mode": "t2va", "injection_target": "global", "writing_mode": "guided", "merge_policy": "replace", "ai_direction": "", "ai_scope": "active_field", "ai_visual_roles": {}, "audio_transcript": "", "audio_dialogue_tag": "", "sections": {"scene": "", "shot_list": "", "acting": "", "dialogue": "", "light_and_image": "", "camera": "", "production_sound": "", "non_diegetic_music": "", "negatives": "", "reference_use": "", "identity_continuity_locks": "", "boundary_frames": "", "action": "", "subject_definitions": "", "summary": "", "retention_analysis": "", "detailed_description": "", "overall_soundscape": "", "v2va_subject_definitions": "", "v2va_source_video_authority": "", "v2va_replacement_retention": "", "v2va_interval_edits": "", "v2va_sound_policy": "", "v2va_exclusions": "", "audio_drive_contract": "", "audio_subject_map": "", "audio_scene_intent": "", "audio_timed_performance": "", "audio_dialogue_map": "", "audio_visual_sync": "", "audio_camera_sync": "", "audio_environment": "", "audio_continuity_locks": ""}}—
task_modeCOMBOt2va6 options: t2va, i2va, fl2va, ref2va, v2va_object_swap, audio_driven
injection_targetCOMBOglobal5 options: global, local_auto, local_1, local_2, local_3
writing_modeCOMBOguided3 options: manual, guided, assistant_fill
merge_policyCOMBOreplace2 options: replace, append
character_budgetINT68001000–7000—
audio_transcription_modelCOMBOtinyWhisper model used by comfy-mtb when an AUDIO input is connected. Tiny is the installed low-VRAM default; larger models are optional.
audio_transcription_languageCOMBOauto12 options: auto, de, en, es, fr, it, +6
audio_dialogue_languageCOMBOEnglishLanguage label written inside the H3 <d> block. It does not translate the transcript.
audio_dialogue_subjectCOMBO1Stable H3 <Subject N> / (SN) identity used by the transcript insertion button.
cine_linxoptIAMCCS_SUPERNODE_LINXOptional upstream IAMCCS Cine H3 Vision Info. Its analyzed visual context is routed to the declared global/local targets without embedding image tensors in this node.
assistant_draftoptSTRINGOptional structured draft from any text source. In Assistant Fill mode it fills only empty structured boxes.
audiooptAUDIOLoaded only for the explicit TRANSCRIBE button. Ordinary global Queue leaves this connected AUDIO branch inert.

Outputs (6)

NameTypeDescription
cine_linxIAMCCS_SUPERNODE_LINX—
final_promptSTRING—
project_jsonSTRING—
reportSTRING—
audio_transcriptSTRING—
h3_dialogue_tagSTRING—