Files
manzakin 7bc4298cb1 simpleshot: the pack — one node, MiniMax-H3 first/last frame to video with sound
One node per capability and no mode dropdown, because a mode widget spanning two
sampling paths is a mistake this line has already paid for. Shared plumbing sits
at module scope so a second node cannot drift from this one.

Built on ComfyUI core alone — no second pack to install, which is the whole
premise. Core's own fl2va node supplies the conditioning and keyframes; the
sampling and the two decodes mirror core's SamplerCustomAdvanced, VAEDecode and
vae_decode_audio, and say so where they do, so they can be diffed against the
source rather than trusted.

What it refuses to offer: sampler, scheduler, cfg, sigma shift, negative prompt.
What it guards: the checkpoint family (fl2va vs ref2va, read out of the workflow
because nothing in the MODEL object carries the filename), the canvas — core does
NOT round the output canvas on this path, so the menu is the only guard — and
both frames' fitting, which core does asymmetrically and silently.

66 offline checks in tests/test_offline.py, no pytest and no GPU needed. They
caught the canvas claim above, which an earlier draft had backwards.
2026-08-27 12:05:35 +02:00

88 lines
3.5 KiB
Markdown

# SimpleShot
ComfyUI nodes for workflows that run the first time.
One pack to install. No second custom pack, no dependency chain, no missing
node named in an error you have to go and look up. Each node here wraps a whole
generation path into a single block with only the settings that change your
result — so the workflow around it is a handful of loaders and a save node, and
there is almost nothing to wire wrongly.
## What's in it
| Node | What it does |
|---|---|
| **SimpleShot H3 - First/Last Frame to Video + Audio** | MiniMax-H3 video **with generated sound**, from a prompt and optionally a first frame, a last frame, or both. |
More nodes will follow, one per capability. They are added, never changed: a
workflow you downloaded today keeps working after an update.
## Install
**The easy way — ComfyUI Manager**
1. Open ComfyUI, click **Manager**, then **Custom Nodes Manager**.
2. Search for **SimpleShot**.
3. Click **Install**, then **Restart ComfyUI**.
That's it. The workflow's model files are downloaded by ComfyUI itself the first
time you open the workflow — it asks, and it puts each file in the right folder.
**Or by hand, from a ZIP**
1. On this page, click the green **Code** button, then **Download ZIP**.
2. Unzip it.
3. Move the unzipped folder into `ComfyUI/custom_nodes/`, and rename it to
`ComfyUI-SimpleShot` (a ZIP download adds `-main` to the name).
4. Restart ComfyUI.
The finished path should look like
`ComfyUI/custom_nodes/ComfyUI-SimpleShot/__init__.py`. If you unzipped one
folder too deep, ComfyUI will not see the nodes.
**Or with git**, if that is your habit:
```
cd ComfyUI/custom_nodes
git clone https://github.com/manzakin/ComfyUI-SimpleShot
```
Nothing to `pip install` — the pack has no dependencies of its own.
## Requirements
- A recent ComfyUI. MiniMax-H3 support has to be built in; if it is not, the
node says so in a sentence and tells you to update.
- The H3 model files, about 42 GB in total, which ComfyUI can fetch for you.
- Enough GPU for a 21 GB checkpoint. This is the honest limit: the software side
is frictionless, the hardware side cannot be. The node takes its model as a
link, so you can point it at a smaller community version instead.
## What the nodes deliberately do not offer
No sampler, no scheduler, no cfg, no sigma shift, no negative prompt. Those are
settings whose realistic effect here is to break a working render, so they are
fixed at values that are known to work. What is exposed is what changes the
picture: the prompt, your images, how long, how big, and how many steps.
Durations and canvas sizes are menus rather than numbers for the same reason.
Both have hard constraints in this model — a frame count off its grid and a
canvas off a multiple of 32 fail deep inside the sampler with a message that
names nothing you can act on. The menu only offers values that work.
## When something goes wrong
Every node returns an **info** output. Wire it into a **Preview Any** node and
it tells you what actually ran: frame count, canvas, which checkpoint was
loaded, and how each of your images was fitted. Most surprises are answered
there — for example, a first frame is *stretched* to the canvas while a last
frame is *centre-cropped*, which is invisible until you know it.
If a node refuses to run, the message is meant to be a complete instruction. If
you get one that is not, please open an issue with it — a message that leaves
you stuck is a bug in this pack.
## Licence
MIT. Runs inside ComfyUI, which is GPL-3.0.