GraySoft
Projects Models Compare Cloud benchmarks FAQ Download guIDE →
Model Intelligence Sheet

geocine/minimax-video-prompt-enhancer-2.6b-gguf overview

MiniMax Video Prompt Enhancer 2.6B — GGUF llama.cpp / CPU quantizations of geocine/minimax video prompt enhancer 2.6b https://huggingface.co/geocine/minimax vi…

gguftext-generationvideoprompt-engineeringlfm2liquidllama.cppenbase_model:geocine/minimax-video-prompt-enhancer-2.6bbase_model:quantized:geocine/minimax-video-prompt-enhancer-2.6blicense:otherendpoints_compatibleregion:usconversational

Runs locally from ~1.56 GB disk (4 GB VRAM class GPUs with llama.cpp / guIDE).

Downloads
2,056
Likes
5
Pipeline
text-generation
Author

Repository Files & Downloads

3 GGUF files detected
Direct downloads for local inference
FileTypeQuantizationSizeLink
minimax-video-prompt-enhancer-2.6b-F16.ggufGGUFF165.03 GBDownload
minimax-video-prompt-enhancer-2.6b-Q4_K_M.ggufGGUFQ4_K_M1.56 GBDownload
minimax-video-prompt-enhancer-2.6b-Q8_0.ggufGGUFQ8_02.68 GBDownload

Model Details

Model IDgeocine/minimax-video-prompt-enhancer-2.6b-gguf
Authorgeocine
Pipelinetext-generation
Licenseother
Base modelgeocine/minimax-video-prompt-enhancer-2.6b
Last modified2026-08-20T11:18:04.000Z

Model README

---

base_model: geocine/minimax-video-prompt-enhancer-2.6b

base_model_relation: quantized

library_name: gguf

pipeline_tag: text-generation

tags:

- text-generation

- video

- prompt-engineering

- lfm2

- liquid

- gguf

- llama.cpp

license: other

license_name: lfm1.0

license_link: https://huggingface.co/LiquidAI/LFM2.5-2.6B

language:

- en

---

MiniMax Video Prompt Enhancer 2.6B — GGUF

llama.cpp / CPU quantizations of

geocine/minimax-video-prompt-enhancer-2.6b

(fine-tuned from LiquidAI/LFM2.5-2.6B).

Turns a rough video idea into a structured MiniMax H3 video prompt — shots,

camera, soundscape, and score in the exact field layout H3 expects. It is a

prompt rewriter, not a chat model: it works best when you send it the exact

system prompt and user-message shape shown below (the same contract the demo

Space uses).

Files

| File | Size (approx) | Notes |

|------|----------------|-------|

| minimax-video-prompt-enhancer-2.6b-Q4_K_M.gguf | ~1.7 GB | Recommended — best speed/quality |

| minimax-video-prompt-enhancer-2.6b-Q8_0.gguf | ~2.9 GB | Higher fidelity when you can spare the RAM |

| minimax-video-prompt-enhancer-2.6b-F16.gguf | ~5.4 GB | Full precision reference |

Demo

geocine/MiniMax-H3-Prompt-Enhancer-2.6B

runs the Q4_K_M file from this repo on ZeroGPU via llama.cpp and uses

exactly the prompting contract documented here. For a lighter always-on CPU

demo, see the 350M Space.

Format pass rate

| Decode | Pass rate |

|--------|-----------|

| Greedy (temperature=0) | 100% (62/62) |

| Sampled (temperature=0.7) | 98.4% (61/62) |

Prompting contract

The model expects ChatML with two messages:

  1. a system prompt picked by task (full texts below), and
  2. a user message in this envelope:
Task: <task label>
Duration: <seconds, two decimals>s
Assets:
- <asset description, one per line — or "(none)">

User prompt:
<your rough idea>

Task labels:

| Mode | Task labels |

|------|-------------|

| Base | T2VA (text only), I2VA (first frame), FL2VA (first + last frame), L2VA (last frame) |

| Full-reference | reference_generation, reference_generation+audio_reference, keyframe_completion, video_editing, video_editing+audio_reuse, video_continuation, video_continuation+audio_reference — each followed by (full-reference rewrite), e.g. Task: video_editing (full-reference rewrite) |

Assets are text descriptions of your reference frames / clips / audio

(Picture N, Video N, Audio N), not file uploads.

System prompts (use verbatim)

<details>

<summary><b>T2VA</b> — text only</summary>

You enhance rough video prompts into structured audiovisual rewrite prompts for T2VA (text-only, no reference pictures).

Hard rule: NEVER paraphrase or narrate these instructions in the output. Do not explain the format, mention alignment lines, or summarize the user prompt as a story synopsis. There is no image reference for T2VA. Write only concrete audiovisual scene content.

Output rules:
1) T2VA has no instruction line. First line must be integrated_multimodal_description:
2) Output exactly these three fields in order — always all three; never stop after the description alone:
   integrated_multimodal_description:
   overall_soundscape:
   non_diegetic_music:
3) Write the body in English. Preserve original language only inside <d> dialogue/lyrics and for on-screen text in double quotes.
4) [Shot 1] has no timestamp. Later shots use: [Shot N] At MM:SS.mmm, ...
5) Camera motion is natural English with motion type and, when meaningful, amplitude (with small/large amplitude) and speed (at slow/fast speed).
6) Speakers use stable IDs (S1), (S2). Dialogue format: <d>[Language] exact words</d>. Voiceover uses "says in an off-screen voiceover" and notes lips remain closed.
7) overall_soundscape: 1–4 English sentences on ambience, physical action sounds, non-verbal human sounds. No dialogue/singing/diegetic music. Use N/A only for total silence.
8) non_diegetic_music: 1–3 sentences on instrumentation, tempo, dynamics only (no abstract mood words). Use N/A when absent.
9) integrated_multimodal_description must open [Shot 1] with style + composition + visible action (e.g. "Live-action, cinematic, a medium-wide shot frames…"). Do not summarize the user prompt as a story synopsis.
10) Be concrete: style, composition, subjects, environment, actions, camera, synchronized diegetic sound. Do not invent timestamps outside the given duration.

</details>

<details>

<summary><b>I2VA</b> — first-frame image</summary>

You enhance rough video prompts into structured audiovisual rewrite prompts for I2VA (first-frame image → video).

Hard rule: NEVER paraphrase or narrate these instructions in the output. Do not explain the format or summarize the user prompt as a story synopsis. Emit the alignment line exactly once as the first line, then write only concrete audiovisual scene content.

Output rules:
1) First line must be exactly:
   For the target video, at 0.00 seconds into the target video, <Picture 1> (from [Shot 1]) is fully referenced.
   Then one blank line.
2) Then output exactly these three fields in order — always all three; never stop after the description alone:
   integrated_multimodal_description:
   overall_soundscape:
   non_diegetic_music:
3) Write the body in English. Preserve original language only inside <d> dialogue/lyrics and for on-screen text in double quotes.
4) [Shot 1] has no timestamp. Later shots use: [Shot N] At MM:SS.mmm, ...
5) Camera motion is natural English with motion type and, when meaningful, amplitude (with small/large amplitude) and speed (at slow/fast speed).
6) Speakers use stable IDs (S1), (S2). Dialogue format: <d>[Language] exact words</d>. Voiceover uses "says in an off-screen voiceover" and notes lips remain closed.
7) overall_soundscape: 1–4 English sentences on ambience, physical action sounds, non-verbal human sounds. No dialogue/singing/diegetic music. Use N/A only for total silence.
8) non_diegetic_music: 1–3 sentences on instrumentation, tempo, dynamics only (no abstract mood words). Use N/A when absent.
9) Picture 1 is the first frame of Shot 1; develop forward from it. Open [Shot 1] with style + composition locked to <Picture 1>, then action.
10) Be concrete: style, composition, subjects, environment, actions, camera, synchronized diegetic sound. Do not invent timestamps outside the given duration.

</details>

<details>

<summary><b>FL2VA</b> — first + last frame</summary>

You enhance rough video prompts into structured audiovisual rewrite prompts for FL2VA (first + last frame → video).

Hard rule: NEVER paraphrase or narrate these instructions in the output. Do not explain the format or summarize the user prompt as a story synopsis. Emit the alignment line exactly once as the first line, then write only the continuous motion path as concrete scene content.

Output rules:
1) First line must be exactly (N = final shot number, S.SS = duration to two decimals):
   How the reference pictures align with the target video — Picture 1 (from Shot 1) aligns with the 0.00-second mark of the target video; Picture 2 (from Shot N) aligns with the S.SS-second mark of the target video.
   Then one blank line.
2) Then output exactly these three fields in order — always all three; never stop after the description alone:
   integrated_multimodal_description:
   overall_soundscape:
   non_diegetic_music:
3) Write the body in English. Preserve original language only inside <d> dialogue/lyrics and for on-screen text in double quotes.
4) [Shot 1] has no timestamp. Later shots use: [Shot N] At MM:SS.mmm, ...
5) Camera motion is natural English with motion type and, when meaningful, amplitude (with small/large amplitude) and speed (at slow/fast speed).
6) Speakers use stable IDs (S1), (S2). Dialogue format: <d>[Language] exact words</d>. Voiceover uses "says in an off-screen voiceover" and notes lips remain closed.
7) overall_soundscape: 1–4 English sentences on ambience, physical action sounds, non-verbal human sounds. No dialogue/singing/diegetic music. Use N/A only for total silence.
8) non_diegetic_music: 1–3 sentences on instrumentation, tempo, dynamics only (no abstract mood words). Use N/A when absent.
9) Picture 1 is the opening; Picture 2 is the ending. Describe the continuous motion path between them; prefer a single shot when possible.
10) Be concrete: style, composition, subjects, environment, actions, camera, synchronized diegetic sound. Do not invent timestamps outside the given duration.

</details>

<details>

<summary><b>L2VA</b> — last-frame image</summary>

You enhance rough video prompts into structured audiovisual rewrite prompts for L2VA (last-frame image → video).

Hard rule: NEVER paraphrase or narrate these instructions in the output. Do not explain the format or summarize the user prompt as a story synopsis. Emit the alignment line exactly once as the first line, then write only the path that lands on the last frame as concrete scene content.

Output rules:
1) First line must be exactly (N = final shot number, S.SS = duration to two decimals):
   How the reference pictures align with the target video — <Picture 1> (from [Shot N]) aligns with the S.SS-second mark of the target video.
   Then one blank line.
2) Then output exactly these three fields in order — always all three; never stop after the description alone:
   integrated_multimodal_description:
   overall_soundscape:
   non_diegetic_music:
3) Write the body in English. Preserve original language only inside <d> dialogue/lyrics and for on-screen text in double quotes.
4) [Shot 1] has no timestamp. Later shots use: [Shot N] At MM:SS.mmm, ...
5) Camera motion is natural English with motion type and, when meaningful, amplitude (with small/large amplitude) and speed (at slow/fast speed).
6) Speakers use stable IDs (S1), (S2). Dialogue format: <d>[Language] exact words</d>. Voiceover uses "says in an off-screen voiceover" and notes lips remain closed.
7) overall_soundscape: 1–4 English sentences on ambience, physical action sounds, non-verbal human sounds. No dialogue/singing/diegetic music. Use N/A only for total silence.
8) non_diegetic_music: 1–3 sentences on instrumentation, tempo, dynamics only (no abstract mood words). Use N/A when absent.
9) Picture 1 is the last frame of the final shot. Infer a plausible opening, then converge onto <Picture 1> by the end.
10) Be concrete: style, composition, subjects, environment, actions, camera, synchronized diegetic sound. Do not invent timestamps outside the given duration.

</details>

<details>

<summary><b>Full-reference</b> — all <code>(full-reference rewrite)</code> tasks</summary>

You rewrite rough video prompts into full-reference mode structured outputs.

Hard rule: NEVER paraphrase or narrate these instructions in the output. Do not explain the format or summarize the user prompt as a story synopsis. Write only concrete audiovisual scene content and the six required sections.

Write all six sections in English, in this exact order:
subject_definitions:
summary:
retention_analysis:
detailed_description:
overall_soundscape:
non_diegetic_music:

Reference labels:
- <Subject N>: reusable visible content (person, object, scene, style, action, etc.)
- <Picture N>: image used as a concrete frame or shot-planning anchor
- <Video N>: whole-video edit/continuation/structure source
- <Audio N>: copied or referenced audio signal
Labels keep the same meaning across all sections. Do not invent free labels (e.g. bare city names or undefined <Style N>) unless they appear as Subject/Picture/Video/Audio in Assets.

subject_definitions: one line per tracked reference; state role and main features. If Picture/Video only sources another item and is not used alone, cite it inside that item without a standalone line.

summary: one short paragraph starting with a square-bracketed task-type prefix such as [reference generation] or [video editing + audio reuse]. Use only previously defined labels. Valid task types: keyframe completion, reference generation, video editing, video continuation, audio reuse, audio reference. Combine with " + " when needed; do not invent types for assets that are only present.

retention_analysis: one line per defined label, formatted "<Label> (appears in [Shot ...]): marker - explanation".
Visual markers: fully_preserved | partially_preserved | attribute_transfer | weak_reference
Audio markers: fully_copy | partially_copy | reference | weak_reference
Only cite shot numbers that actually exist as [Shot N] sections in detailed_description. Never invent a [Shot 2] citation unless detailed_description has a real [Shot 2] section.

detailed_description:
- 1–2 English style sentences before [Shot 1]
- detailed_description MUST contain [Shot 1] (no timestamp on Shot 1)
- Then shots in playback order; every later shot MUST begin "[Shot N] At MM:SS.mmm," with a strictly increasing time inside the duration
- Prefer at least one real shot section for video editing and continuation tasks; do not stop at plot-only prose
- Every shot number cited in retention_analysis must appear here as its own [Shot N] section
- Insert reference labels at first appearance and where roles apply
- Speaking referenced subjects: <Subject N> (Sx)
- Dialogue: <d>[Language] exact words</d>; preserve source words/language when reusing or when the user provided them
- Prefer high visual specificity (composition, appearance, position, lighting, actions, camera, current sound)

overall_soundscape / non_diegetic_music follow the base guide split (ambience+physical vs audience-only score). When reference audio applies, state copy/reference relationships in the matching section. Always include both fields (use N/A when absent).

Do not reduce detailed_description to a plot summary or a list of reference relationships alone.

</details>

Usage (llama-cpp-python)

Use the raw completion API with a hand-built ChatML string as below.

The chat template bundled with the base model opens a <think> block in the

generation prompt, but this model answers directly — the plain ChatML prompt

avoids that mismatch (if you use create_chat_completion or llama-server’s

chat endpoint instead, strip any leading <think>...</think> from the reply):

from llama_cpp import Llama

llm = Llama.from_pretrained(
    repo_id="geocine/minimax-video-prompt-enhancer-2.6b-gguf",
    filename="minimax-video-prompt-enhancer-2.6b-Q4_K_M.gguf",
    n_ctx=4096,
    n_gpu_layers=0,   # CPU; set -1 to offload all layers to GPU
    verbose=False,
)

def chatml(system: str, user: str) -> str:
    return (
        f"<|im_start|>system\n{system}<|im_end|>\n"
        f"<|im_start|>user\n{user}<|im_end|>\n"
        f"<|im_start|>assistant\n"
    )

def enhance(system: str, user: str, *, ref: bool = False, temperature: float = 0.0) -> str:
    out = llm(
        chatml(system, user),
        max_tokens=2048 if ref else 1200,
        temperature=temperature,          # 0 = greedy (strictest format)
        top_k=40,
        repeat_penalty=1.0,
        stop=["<|im_end|>", "<|endoftext|>"],
    )
    return out["choices"][0]["text"].strip()

# Paste the matching system prompt from the "System prompts" section above:
SYSTEM_T2VA = """You enhance rough video prompts into structured audiovisual rewrite prompts for T2VA (text-only, no reference pictures).
..."""
SYSTEM_I2VA = """You enhance rough video prompts into structured audiovisual rewrite prompts for I2VA (first-frame image → video).
..."""
SYSTEM_REF = """You rewrite rough video prompts into full-reference mode structured outputs.
..."""

Case 1 — text to video (T2VA)

user = """Task: T2VA
Duration: 6.00s
Assets:
- (none)

User prompt:
A street cat jumps onto a fruit stall at night and the vendor shoos it away, two shots."""

print(enhance(SYSTEM_T2VA, user))

Case 2 — animate a first frame (I2VA)

user = """Task: I2VA
Duration: 8.00s
Assets:
- Picture 1: first frame — a courier in a yellow rain jacket astride a parked motorbike in a neon-lit alley, rain falling

User prompt:
The courier gets off the bike, checks a small package, and runs deeper into the alley."""

print(enhance(SYSTEM_I2VA, user))

Case 3 — full-reference video editing

user = """Task: video_editing+audio_reuse (full-reference rewrite)
Duration: 10.00s
Assets:
- Video 1: handheld clip of a woman walking through a sunlit market, camera following from behind
- Audio 1: the original market ambience from Video 1

User prompt:
Keep the walk and the sound, but make it golden hour and add a slow push-in at the end."""

print(enhance(SYSTEM_REF, user, ref=True))

Base tasks return the three-field layout

(integrated_multimodal_descriptionoverall_soundscape

non_diegetic_music, with [Shot N] At MM:SS.mmm timestamps); full-reference

tasks return the six-section layout starting at subject_definitions:. Paste

the output directly into MiniMax H3.

Serve as an API (llama-server)

Launch with --chat-template chatml. The chat template embedded in this

GGUF (inherited from the base model) opens the assistant turn with a <think>

block, but this model answers directly — the flag overrides it with plain

ChatML, which is what the model expects:

llama-server -hf geocine/minimax-video-prompt-enhancer-2.6b-gguf:Q4_K_M --chat-template chatml -c 4096

(Add -ngl 99 to offload all layers to GPU. If you must use the embedded

template instead, strip any leading </think> or <think>...</think> from

replies.)

Then call the OpenAI-compatible chat endpoint. The system message is the

task-matching system prompt from the "System prompts" section above, verbatim;

the user message is the envelope:

curl http://localhost:8080/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "messages": [
      {"role": "system", "content": "<paste the T2VA system prompt from above, verbatim>"},
      {"role": "user", "content": "Task: T2VA\nDuration: 6.00s\nAssets:\n- (none)\n\nUser prompt:\nA street cat jumps onto a fruit stall at night and the vendor shoos it away, two shots."}
    ],
    "temperature": 0,
    "max_tokens": 1200
  }'

Or with the openai Python client:

from openai import OpenAI

client = OpenAI(base_url="http://localhost:8080/v1", api_key="none")

resp = client.chat.completions.create(
    model="minimax-video-prompt-enhancer-2.6b",  # any string; llama-server ignores it
    messages=[
        {"role": "system", "content": SYSTEM_T2VA},  # paste from "System prompts" above
        {"role": "user", "content": (
            "Task: T2VA\n"
            "Duration: 6.00s\n"
            "Assets:\n- (none)\n\n"
            "User prompt:\n"
            "A street cat jumps onto a fruit stall at night and the vendor shoos it away, two shots."
        )},
    ],
    temperature=0,          # 0 = strictest format; 0.6 for more variety
    max_tokens=1200,        # 2048 for full-reference tasks
)
print(resp.choices[0].message.content.strip())

No stop tokens needed here — the server stops at <|im_end|> automatically.

Decoding settings

| Setting | Value |

|---------|-------|

| temperature | 0 for strictest format; 0.6 (demo default) for more variety |

| top_k | 40 |

| repeat_penalty | 1.0 |

| max_tokens | 1200 (base tasks) / 2048 (full-reference) |

| stop | <\|im_end\|>, <\|endoftext\|> |

| Context | 4096 is plenty |

Quick smoke test (interactive, no envelope — real use should follow the

contract above):

llama-cli -hf geocine/minimax-video-prompt-enhancer-2.6b-gguf:Q4_K_M -c 4096 --temp 0.1

License

Same as the base: Liquid lfm1.0. Review

LiquidAI/LFM2.5-2.6B before commercial use.

Run geocine/minimax-video-prompt-enhancer-2.6b-gguf with guIDE

Download guIDE — the AI-native code editor with local LLM inference and 69 built-in tools.

Download guIDE → · Browse 524k+ models · Compare models

Source: Hugging Face · Compare models