File size: 7,818 Bytes
6c3c3b7
1fd4942
 
 
6c3c3b7
 
 
 
 
 
 
 
 
 
 
 
 
b1ec101
6c3c3b7
b1ec101
6c3c3b7
 
 
 
 
 
 
 
b1ec101
 
6c3c3b7
 
b1ec101
6c3c3b7
b1ec101
 
 
 
 
 
 
 
6c3c3b7
 
 
 
 
 
 
 
 
 
 
 
774b535
 
 
 
 
 
6c3c3b7
 
 
 
 
 
 
 
 
 
774b535
 
6c3c3b7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
b1ec101
01aaa9e
 
 
 
 
b1ec101
01aaa9e
b1ec101
01aaa9e
b1ec101
01aaa9e
6c3c3b7
01aaa9e
b1ec101
01aaa9e
b1ec101
6c3c3b7
01aaa9e
 
6c3c3b7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
---
license: other
license_name: minimax-h3-community-license
license_link: https://huggingface.co/MiniMaxAI/MiniMax-H3/blob/main/LICENSE
pipeline_tag: video-to-video
tags:
  - minimax-h3
  - comfyui
  - workflow
  - ref2v
  - prompt-enhancer
  - character-replacement
  - v2v
---

# Nugget H3 EasyR2V β€” Prompt Enhancer & Full Workflow

**Why spend 30 minutes doing something when you can spend 2.5 weeks making a tool to automate it.** That's basically the whole reason this exists.

I wanted an easy to use workflow for us simple folk who want to do **Ref2V** on MiniMax H3 but keep running into troubles with the model understanding me. A good prompt does 80–90% of the work with H3 R2V β€” so instead of writing them by hand every time, this workflow writes them for you.

Think of it as **"Ref2Video for dummies"**. But it's not just limited to that.

---

## What it does

- **Scans your video** (if you're using one) to caption it and transcribe the audio
- **Captions all your images** - so it also works as a pure image-to-video workflow
- **Loads a small LLM of your choice** and writes your H3 R2V prompt in the correct format with your stated intent (user prompt)
- **If you're on the Full workflow**, it generates the video too

## What it does NOT do

- **Be creative for you** - The current WF is only setup to do the prompt formatting, it is not able to generate new ideas for you
- **It cannot perform magic** - You are still limited to what the H3 model can and cannot do. Complex scenes are still very difficult


### Saving Time

- If your video doesn't change, a second run doesn't trigger a new video transcription (If you have "FIXED SEED")
- If your images and user prompt don't change, it doesn't write a new prompt β€” so you can re-run on a new seed to test without paying the LLM cost every time (If you have "FIXED SEED")

---

## Two workflows

| File | What it does |
|---|---|
| `Nugget_H3_EasyR2V_Full_WF_v03.json` | The full thing β€” transcribe + prompt + generate video |
| `Nugget_H3_EasyR2V_Prompter_Only_v03.json` | Just writes the H3 prompt. Copy it out, or wire it into your own H3 graph |

Prompter-only is handy if you've already got your own H3 setup dialled in and just want a better prompt without ripping your workflow apart.

**Full workflow:**

![full workflow view](https://huggingface.co/datasets/PoopMan333/Examples/resolve/main/Prompt_Enhancer/full%20wf%20view%20image.PNG)

**Prompter only:**

![prompter only view](https://huggingface.co/datasets/PoopMan333/Examples/resolve/main/Prompt_Enhancer/prompt%20enhancer%20only%20view.PNG)

---

## Examples

**Character replacement** β€” swap the person in a clip for one from your reference images:

<video controls src="https://huggingface.co/datasets/PoopMan333/Examples/resolve/main/Prompt_Enhancer/Character_replacement_example.mp4"></video>

![example char replacement setup](https://huggingface.co/datasets/PoopMan333/Examples/resolve/main/Prompt_Enhancer/example%20char%20replacement.PNG)

Side by side, original vs replaced:

<video controls src="https://huggingface.co/datasets/PoopMan333/Examples/resolve/main/Prompt_Enhancer/example%20side%20by%20side.mp4"></video>
<video controls src="https://huggingface.co/datasets/PoopMan333/Examples/resolve/main/Prompt_Enhancer/example%20side%20by%20side%202.mp4"></video>

**Background + character replacement** β€” swap both in one go:

<video controls src="https://huggingface.co/datasets/PoopMan333/Examples/resolve/main/Prompt_Enhancer/BG_and_Char_Replacement_Example.mp4"></video>

**Voice line + character replacement** β€” new person, new dialogue:

<video controls src="https://huggingface.co/datasets/PoopMan333/Examples/resolve/main/Prompt_Enhancer/Voice_Line_and_Char_Replacement_Example.mp4"></video>

---

## Setup

Both workflow files have a big **START HERE β€” Downloads & Setup** markdown note pinned inside them, with every model link, folder path and install step. Rather than duplicate it all here, just open the workflow and read the note β€” it's more accurate than a copy of it would be.

The short version:

- **Custom nodes**: ComfyUI-Nugget, ComfyUI-KJNodes, and (Full workflow only) ComfyUI-PlagueKind-Nodes
- **Run the Nugget install script** if you want dialogue transcribed β€” it installs `faster-whisper` into ComfyUI's own Python. A normal `pip install` goes into the wrong interpreter and it will still say the package is missing
- **H3 models** from [πŸ€— Comfy-Org/MiniMax-H3](https://huggingface.co/Comfy-Org/MiniMax-H3)
- **Prompt enhancer model** β€” start with Qwen3-VL 8B fp8_scaled. Drop to nvfp4 on 12 GB cards

If the file won't open in ComfyUI, a node pack is missing. Install it, restart, reopen. Bypassing won't help.

---

## Tips for good character replacement

- **Don't expect miracles.** - It is still H3 model and sometimes tempermental. Check your enhanced prompt and consider rolling again if it is not right.

- **H3 is a tool, you're the one using it.** If you don't specify emotions, expect expressionless results. This current setup will only do what you intend for it to do. **Slop prompt in, slop video out**

- **Limit the resolution and length.** There seems to be an arbitrary context window that may be linked to your specs, so the higher higher res/longer time your input/outputs. Keep it smaller and your success rate goes up

- **If the video is easy, replacement should be easy too.** H3 has a quirk though β€” if the original person and the new person look too similar, it sometimes converges back to the original. A prompt won't always fix that. If you hit it, consider changing the person to a intermediate step (faceless green person). The new body/face will transfer over better. Alternatively you can look into Sam3 character replacement method.

- **More than one person in the scene?** Describe the scene properly. `replace the man wearing white shorts with the man in <picture 1>` beats `replace the man with <picture 1>` every time.

- **Complex scenes?** It will be very difficult (I've tried), scenes with too many people, too many cuts, characters obstructed are very difficult for the model to properly identify and swap. 

- **Give the LLM some context.** A one-liner in the user prompt like `<video 1> is a video of two girls eating a cup of chocolate ice cream` really helps the LLM understand what it's looking at. Especially useful with multiple scenes

- **Use 24 FPS videos** you can trim, crop and edit the FPS before you send it to the WF. [I have a (unfortunately a bit buggy at times) tool for that](https://huggingface.co/PoopMan333/Video_Tools/tree/main). Alternatively you can use the VHS Load Video nodes

- **Use Character Sheets** through my testing, I have found that replacing a character is much easier when a character sheet is supplied. [Consider checking out my character generator to make a 360 orbit and generate a full sheet or individual shots](https://huggingface.co/PoopMan333/H3_Character_Sheet_Generator)

- **Test! Test! Test!.** Sometimes less is more, sometimes more is more when it comes to the user prompt. You'll get a feel for it, tweak it until you get your desired results.


---

## Re-running cheaply

Keep both `seed` widgets on **fixed**. If nothing upstream has changed, ComfyUI skips the transcriber and the prompt enhancer entirely β€” only the sampler re-runs. Change the sampler seed for a new take, don't touch the others.

Set the transcriber or enhancer seed to `randomize` and you'll re-transcribe the whole video every queue for nothing.

To skip the video entirely, bypass **Load source video** (Ctrl+B). Prompt is written from the images and your text alone.

---

**[If this has helped you, consider chucking a few dollars my way. Any tips help with the power bills. Thank you.](https://ko-fi.com/c_nugget)**

By C_Nugget