IAMCCS Prompter — MiniMax H3 Screenplay
Write the scene in sections, not one giant prompt
- cine_linx
- audio
- cine_linx
- final_prompt
- project_json
- report
- audio_transcript
- h3_dialogue_tag
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 av2va_object_swapprompt emphasizes the replacement/source-video contract and anaudio_drivenone leans on theaudio_drive_contractandaudio_timed_performanceblocks.injection_target-global,local_auto, orlocal_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 optionalassistant_drafttext fills only the empty boxes).merge_policy-replaceorappend.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.
Inputs (13)
| Name | Type | Default | Description |
|---|---|---|---|
| project_data | STRING | {"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_mode | COMBO | t2va | 6 options: t2va, i2va, fl2va, ref2va, v2va_object_swap, audio_driven |
| injection_target | COMBO | global | 5 options: global, local_auto, local_1, local_2, local_3 |
| writing_mode | COMBO | guided | 3 options: manual, guided, assistant_fill |
| merge_policy | COMBO | replace | 2 options: replace, append |
| character_budget | INT | 68001000–7000 | — |
| audio_transcription_model | COMBO | tiny | Whisper model used by comfy-mtb when an AUDIO input is connected. Tiny is the installed low-VRAM default; larger models are optional. |
| audio_transcription_language | COMBO | auto | 12 options: auto, de, en, es, fr, it, +6 |
| audio_dialogue_language | COMBO | English | Language label written inside the H3 <d> block. It does not translate the transcript. |
| audio_dialogue_subject | COMBO | 1 | Stable H3 <Subject N> / (SN) identity used by the transcript insertion button. |
| cine_linxopt | IAMCCS_SUPERNODE_LINX | Optional 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_draftopt | STRING | Optional structured draft from any text source. In Assistant Fill mode it fills only empty structured boxes. | |
| audioopt | AUDIO | Loaded only for the explicit TRANSCRIBE button. Ordinary global Queue leaves this connected AUDIO branch inert. |
Outputs (6)
| Name | Type | Description |
|---|---|---|
| cine_linx | IAMCCS_SUPERNODE_LINX | — |
| final_prompt | STRING | — |
| project_json | STRING | — |
| report | STRING | — |
| audio_transcript | STRING | — |
| h3_dialogue_tag | STRING | — |