Video / WORKFLOW

Generate MiniMax H3 videos with FreeVideo

Install FreeVideo’s managed ComfyUI workspace on Windows, Linux, an experimental Apple Silicon Mac, or a rented RunPod GPU. Generate and save a MiniMax H3 video with audio, then try image-to-video, previews, and optional automation.

Verified sourceSource checked 10/10/2026Version: FreeVideo v0.3.23
LOCALRENTED GPU
Freshness 75 out of 100. Release age: 73 days old, Aug 3, 2026. Measures age, not quality.
Popularity 90 out of 100. 3,827,783 downloads in 30 days; 6,149 lifetime likes. Checked Oct 15, 2026. Measures adoption, not quality.
What do these scores mean?

Two ways to compare models. Neither score measures answer quality, benchmark performance, or whether a model fits your machine.

Freshness · release age

A new release starts at 100. The score halves every 180 days: 100 × 2^(−age in days / 180). When the release date is unavailable, a repository date is a fallback—not proof of when the model was released. Missing dates stay unscored.

Check the date source
Popularity · adoption

Downloads over the past 30 days carry 80% of the score; lifetime likes carry 20%. Both use a logarithmic scale, capped at 10 million downloads and 100,000 likes. If likes are unavailable, downloads carry all the weight. Missing download statistics stay unscored.

round(80 × min(1, log10(1 + downloads) / 7) + 20 × min(1, log10(1 + likes) / 5))

Check the statistics source
Scores as of Oct 15, 2026. Statistics checked Oct 15, 2026. Statistics are marked for refresh after 72 hours.Full scoring method
FROM INSTALL TO YOUR FIRST CLIP

One short video. Motion and sound.

FreeVideo handles the runtime and model setup, then opens its workspace inside ComfyUI. Start with the visual controls; the optional automation examples come later.

01 · INSTALLUse the official launcher

Choose your platform and review the model download plan.

02 · CREATEOpen the ready-made template

Add a prompt. Keep the first clip short and use Light quality.

03 · KEEPPlay and save your MP4

Check the motion and audio, then save the settings with your clip.

Choose your setup
Published render times See what different machines actually rendered

NVIDIA · Windows examples

One 10-second clip at 1344 × 768, using two passes. These are published results, not YouRunAI or RunPod benchmarks.

GPUVRAM / system RAMRender time
RTX 509032 GB / 64 GB2 min 2 sec
RTX 5060 Ti16 GB / 32 GB8 min 6 sec
RTX 4060 Ti16 GB / 32 GB9 min 18 sec
RTX 4060 Ti Community report8 GB / 64 GB10 min 3 sec
Publisher’s NVIDIA measurements

Apple Silicon · experimental preview

The project reports these approximate timings on an M5 with 24 GB unified memory. Earlier chips can be substantially slower; unified memory is not equivalent to discrete GPU VRAM.

ClipResolutionRender time
1.6 seconds512 × 512About 3 min
10 seconds960 × 544About 22 min
10 seconds1344 × 768About 42 min
Publisher’s Mac measurements

Different quality, duration, drivers, available RAM and cache state can change the wait. Use these examples to set expectations, then measure your own first clip.

Before you begin

Hardware

VRAM and host RAM are separate requirements. These are planning tiers; only the clearly attributed publisher benchmark panel above contains measured timing examples. Low-memory runs may stream heavily from RAM or SSD.

MachineSystem RAM / unified memoryMiniMax H3 · VDN-H3 for FreeVideo
NVIDIA GPU · 8 GB VRAM16 GB minimum; 32 GB+ preferredDocumented minimum; short, low-resolution previews and long waits.
NVIDIA GPU · 12–16 GB VRAM32–64 GB RAMTesting tier; slower than high-end NVIDIA hardware.
NVIDIA GPU · 24 GB VRAM48–64 GB RAMGood local/rented starting point when the price is competitive.
NVIDIA GPU · 32 GB VRAM64 GB RAMHigher-performance tier; publisher RTX 5090 result is configuration-specific.
NVIDIA GPU · 48 GB+ VRAM64–128 GB RAMMore residency/headroom on 48, 80 GB, or larger GPUs; compare actual cost rather than assuming best value.
Apple Silicon · M5 · 24 GB unified memoryShared unified memoryPublisher-measured experimental preview; much slower than RTX 5090.
Apple Silicon · 16 GB / earlier chipsShared unified memoryNo equivalent result established here; use smaller tests or supported NVIDIA hardware.
AMD GPUNo documented FreeVideo backend.Not supported by this route; generic ComfyUI support does not establish FreeVideo support.
Intel GPUNo documented FreeVideo backend.Not supported by this route; use a supported NVIDIA GPU or the experimental Mac route.
CPU onlyNo documented FreeVideo backend.Not supported by this route; choose a supported GPU before installing.

Reserve 150–200 GB fast SSD as a conservative allocation, not a publisher-guaranteed minimum. The prepared transformer cache is about 21.3–21.4 GiB; encoders, decoders, dependencies, optional references, outputs, and temporary files need more. Run setup --plan for your actual host.

FREEVIDEO / MINIMAX H3 / COMFYUISOURCE-LINKED SETUP

From install to a playable video with audio.

Use the graphical launcher on a PC or Mac, or the managed Linux installer on your own server or RunPod. Start with a small text-to-video clip, verify the MP4 and audio, then add a first frame. Advanced setup and automation are optional.

Choose a package Load the visual workflow Check the result
01
BEFORE YOU BEGIN

The documented package

This setup uses the package documented for this task. Review its source and supported platforms before starting.

Save your machine in My Hardware to get an automatic starting choice. You can always choose any package yourself.

CURRENT SETUP

MiniMax H3 · VDN-H3 for FreeVideo · community-modified weights

8 GB NVIDIA VRAM +16 GB RAM is the documented minimum, with heavy streaming. 24–32 GB VRAM +48–64 GB RAM is a practical planning tier. Mac support is experimental; the published preview uses M5 / 24 GB. No AMD, Intel, or CPU-only route. Allow 150–200 GB fast SSD and check the installer plan.

Freshness 75 out of 100. Release age: 73 days old, Aug 3, 2026. Measures age, not quality.
Popularity 90 out of 100. 3,827,783 downloads in 30 days; 6,149 lifetime likes. Checked Oct 15, 2026. Measures adoption, not quality.
What do these scores mean?

Two ways to compare models. Neither score measures answer quality, benchmark performance, or whether a model fits your machine.

Freshness · release age

A new release starts at 100. The score halves every 180 days: 100 × 2^(−age in days / 180). When the release date is unavailable, a repository date is a fallback—not proof of when the model was released. Missing dates stay unscored.

Check the date source
Popularity · adoption

Downloads over the past 30 days carry 80% of the score; lifetime likes carry 20%. Both use a logarithmic scale, capped at 10 million downloads and 100,000 likes. If likes are unavailable, downloads carry all the weight. Missing download statistics stay unscored.

round(80 × min(1, log10(1 + downloads) / 7) + 20 × min(1, log10(1 + likes) / 5))

Check the statistics source
Scores as of Oct 15, 2026. Statistics checked Oct 15, 2026. Statistics are marked for refresh after 72 hours.Full scoring method
View weight source
02
THE WORKFLOW

Set up MiniMax H3 · VDN-H3 for FreeVideo on your machine

Choose your computer first, then its GPU path. Follow the visual setup and import the linked workflow.

CHOOSE YOUR SETUPWindows

Windows 10/11 with a supported NVIDIA GPU. Use the graphical managed installer; manual Python, CUDA, or PyTorch setup is unnecessary for this route.

01

Check the model license and your machine

FreeVideo code is Apache-2.0. The separate MiniMax H3 weight license excludes the United States, European Union, United Kingdom, and Republic of Korea from its licensed territory without separate authorization. Review the actual agreement and planned use before downloading; renting elsewhere does not itself resolve those terms. Confirm GPU, system RAM, and fast SSD space against the table, then close other GPU-heavy apps.

Read the MiniMax H3 weight license FreeVideo code license
02

Download the official Windows launcher

Download FreeVideo.exe from the official release, then open it. Use the launcher’s hardware preflight and update the NVIDIA driver if it flags a problem. You can optionally inspect GPU/driver information with nvidia-smi in PowerShell; this is not an installation requirement.

Download FreeVideo.exe Official release and checksums
03

Choose your installation and reuse existing downloads

In the launcher, choose a new ComfyUI install for the simplest isolated setup, or deliberately select an existing ComfyUI folder. Add any existing compatible model folders for reuse. Review the installation plan, download size, and model terms. Click Install & launch only after confirming the plan and authorization.

Official desktop installation
04

Wait for the managed setup to finish

Let the launcher download models and install its managed dependencies. It opens ComfyUI with the FreeVideo workspace when ready. Additional optional assets may download when first requested. If setup reports a failure, resolve its first error instead of manually mixing unrelated PyTorch or CUDA packages into the environment.

05

Open FreeVideo or load its ready-made template

Confirm the managed model assets are installed and setup is ready in FreeVideo’s desktop app and browser workspace. The official installer downloads and places its model assets. Use its workspace directly, or choose Workflow → Browse Templates → FreeVideo → FreeVideo-All-in-One in ComfyUI. If the template is not visible, download the official JSON below and drag it onto the canvas. These are two ways to load the same graph. A missing-model warning means setup or FreeVideo Settings is unfinished.

Download FreeVideo-All-in-One.json Official managed installation and workspace
06

Set up a small, repeatable first clip

Paste the scene prompt below. Start at 960×544 and about 3 seconds, or the nearest supported landscape preset. Use a smaller frame on tight hardware. Select Light quality and a fixed seed; keep other controls at their defaults. Preview-first is for Light’s two-pass path: inspect its half-resolution pass before the final render. Medium, High, and Max are single-pass in this release. These are starting settings, not a promised render time.

SettingValue
InputText prompt only
Duration3 seconds or nearest supported preset
Resolution960 × 544
QualityLight · two-pass
Seed12345
Preview-firstOn for Light, if offered
Plain text
Cinematic close-up of a ceramic coffee cup on a wooden table by a rainy window at dawn. Steam curls upward as a hand gently rotates the cup. Slow, steady camera push-in, shallow depth of field, natural reflections, subtle warm interior light. Audio: quiet rainfall against glass, a soft cup-on-wood sound, and distant birds. No subtitles or on-screen text.
07

Generate, play, and save an MP4

Click Generate / Queue. If you chose preview-first, inspect it and run the second pass to finish. Play the resulting MP4, confirm nonzero duration and visible motion, then listen for the requested sound. Check that the job completed without an out-of-memory or missing-model error. Download the output and record your GPU, resolution, duration, seed, quality, and actual elapsed time. An installer-ready screen or silent preview alone is not this completion check.

08

Try a first-frame image-to-video shot

Choose an image you have permission to use and add it as First frame. Crop or pad it to the output aspect ratio first. Keep the test short and use Light quality. Prompt a small camera move and natural motion; generate, inspect, and save a second MP4. Later you can add a Last frame for a start-to-end transition. The advanced section below explains reference video/audio and optional LoRAs.

Supported frame and reference inputs
Plain text
The camera drifts slowly to the right as the subject turns toward a soft light source. Natural secondary motion in the background. Preserve the input image’s identity, composition and colors. Audio: gentle outdoor ambience, no music.
03
MORE WAYS TO USE THIS SETUP

Optional: keep an existing ComfyUI installation

The official standalone launcher is the easiest isolated route. Use this only when you deliberately want to retain your current ComfyUI environment.

01

Back up before adding the custom node

Stop ComfyUI gracefully and back up its environment/custom_nodes directory plus saved workflows. Open a shell in its actual custom_nodes folder. The commands below are Linux Terminal examples; adjust the path for your installation.

Official existing-ComfyUI route
Bash
cd /path/to/ComfyUI/custom_nodes
git clone https://github.com/FlashML-org/FreeVideo.git
cd FreeVideo
git checkout 0af617eb54dec1d8c06f9e7de2147c5b6a3f4772
02

Restart the original ComfyUI and finish setup

Use the existing installation’s usual launcher. Open Workflow → Browse Templates → FreeVideo → FreeVideo-All-in-One, or import the JSON below. Complete FreeVideo Settings for runtime/model assets. Cloning a custom node alone does not install all specialized dependencies. Generate a small clip before trusting the shared environment.

Download the official template JSON Official model and runtime setup
03

Recover from dependency conflicts

If nodes remain missing or import errors persist after completing Settings and restarting, use the isolated official launcher instead of repeatedly changing unrelated package versions in your working ComfyUI environment.

04
MORE WAYS TO USE THIS SETUP

Preview first, then increase quality

Light, Medium, High, and Max are quality settings. Keep prompt, seed, size, and duration fixed when comparing them.

01

Use a preview to reject weak ideas early

In Light’s two-pass mode, generate the half-resolution first pass and inspect motion/composition. When it is useful, run the second pass/refinement from that preview. Medium, High, and Max do not use this two-pass preview route in the reviewed release. A preview is not the final result; preserve its compatible settings rather than substituting a new unrelated seed.

02

Choose the quality level deliberately

Light uses an 8+3-step two-pass path for quick idea tests. Medium, High, and Max use single-pass paths at 12, 16, and 20 steps. Increase quality only after a working baseline; higher quality does not guarantee perfect motion and cost also depends on duration, resolution, and memory.

SettingValue
Light8+3 steps · two-pass · preview option
Medium12 steps · single-pass
High16 steps · single-pass
Max20 steps · single-pass
03

Queue variants instead of competing GPU jobs

Use FreeVideo history/batches or ComfyUI’s normal queue. Change one variable per output, such as seed or prompt, and record it. The engine can serialize generation with its runtime lock; launching several independent GPU-heavy processes does not create free parallel throughput.

04

Keep the video and its workflow together

Newer FreeVideo media can embed settings: a compatible output can be dropped on the ComfyUI canvas to restore its prompt/seed/workflow. Also retain exported JSON and your software version because future formats can change.

Release notes and media features
05
MORE WAYS TO USE THIS SETUP

First/last frames, references, and optional LoRAs

Start with the first-frame test from the main steps. Add more conditioning only after that simple result works.

01

Control a start-to-end shot

Add a First frame and Last frame to guide a transition. The node schema also represents a last-frame-only input. Pre-crop or pad references to the output aspect ratio, then inspect the actual transition rather than assuming identity is locked.

Frame-conditioning node inputs
02

Treat video and audio references as experimental

The source describes reference video/audio conditioning as experimental and says VDN is not reference-trained. Do not expect arbitrary references to preserve a subject, voice, composition, or sound exactly. Use material you have the rights and consent to use.

03

Add a compatible community LoRA only when needed

Use the official examples to find H3-compatible adapters. In node view connect the matching FreeVideo LoRA/reference node to FreeVideo · Video + Audio. Compare with/without using identical prompt, seed, size, and duration. Check the adapter’s separate provenance and license; it does not replace the base-model terms.

Compatible LoRA examples
06
MORE WAYS TO USE THIS SETUP

Optional: generate from Linux or RunPod Terminal

The managed ./freevideo wrapper is the simplest automation path. It uses the installed environment and machine.json state; a failed or incomplete installation cannot generate yet.

01

Check readiness in the installed folder

Use your actual Linux installation path instead of /workspace/FreeVideo if necessary. The probe tests the installed kernel path; do not run unrelated system Python for inference.

Managed command-line interface
Bash
cd /workspace/FreeVideo
./freevideo --help
./freevideo status
./freevideo doctor
./freevideo doctor --probe
02

Save a repeatable prompt

Run this in the installed FreeVideo folder. It creates a small prompt file and an output directory.

Bash
mkdir -p prompts outputs
cat > prompts/coffee.txt <<'PROMPT'
Cinematic coffee cup on a wooden table beside a rainy window at dawn.
Steam rises slowly while the camera pushes in. Realistic reflections,
soft interior light. Audio: gentle rain, distant birds, cup on wood.
No text or subtitles.
PROMPT
03

Generate a short MP4

Expect outputs/coffee.mp4 plus request/diagnostic data. Wait for completion, play the file, and listen to its audio. Do not call a successfully submitted but still-running job complete.

Bash
./freevideo generate \
  --prompt-file prompts/coffee.txt \
  --width 960 --height 544 \
  --seconds 3 \
  --seed 12345 \
  --out outputs/coffee.mp4
04

Generate a preview only

This stops after the preview stage. Finish it with the UI’s Run second pass, or inspect ./freevideo generate --help for the exact --refine-from interface on your version. Preserve the preview’s compatible metadata and settings.

Bash
./freevideo generate \
  --prompt-file prompts/coffee.txt \
  --width 960 --height 544 \
  --seconds 3 \
  --seed 12345 \
  --preview \
  --out outputs/coffee-preview.mp4
05

Inspect video and audio streams

If ffprobe is installed, confirm the MP4 has nonzero duration and the expected video/audio streams. This command is optional; normal playback and listening remain the primary check.

Bash
ffprobe -v error -show_entries format=duration -show_streams outputs/coffee.mp4
07
MORE WAYS TO USE THIS SETUP

Optional: queue a real ComfyUI API graph

Run these examples in /workspace/FreeVideo on the Pod with the token-protected server from the RunPod steps still running. They authenticate every request, submit once, and poll short status requests while rendering continues. A normal visual workflow JSON must first be exported in API format.

01

Export an actual working graph

Configure and successfully run a short FreeVideo-All-in-One job. Use ComfyUI Export/Save (API format), enabling Developer Mode if needed, and save workflow_api.json next to the Python script below. Confirm the graph contains real installed FreeVideo nodes and valid inputs; never invent numeric node IDs.

ComfyUI API routes Official visual template to start from
02

Check API access with the actual bearer token

Run this in the Pod Terminal, not your own computer. Port 8188 remains the authenticated proxy even when addressed through localhost. Read its existing launcher/access-token file without printing it and send an Authorization: Bearer header; do not put a token query parameter on POST requests. This short request should return system information. If the token file is missing, start the protected server first. If access fails, check the selected port and token after any rotation; do not disable authentication.

FreeVideo bearer authentication and request forwarding
Bash
cd /workspace/FreeVideo
(
  FREEVIDEO_TOKEN="$(cat launcher/access-token)" || exit 1
  test -n "$FREEVIDEO_TOKEN" || { printf "Missing FreeVideo token\n" >&2; exit 1; }
  curl --fail-with-body --silent --show-error --max-time 30 \
    -H "Authorization: Bearer $FREEVIDEO_TOKEN" \
    http://127.0.0.1:8188/system_stats
)
03

Create queue_freevideo.py

Save this script and workflow_api.json in /workspace/FreeVideo. It reads the same token file, submits the actual graph once, saves prompt_id to freevideo-job.json, and polls /history with separate 30-second requests. It stops on a failed job or missing history rather than generating duplicates. FreeVideo video descriptors appear under each output node’s images list; the script uses their real filename, subfolder, and type with authenticated /view requests. Saved copies go to api-downloads on the Pod. No token is printed or saved by this script.

FreeVideo output nodes ComfyUI video file descriptor format
Python
#!/usr/bin/env python3
import json
import sys
import time
import urllib.error
import urllib.parse
import urllib.request
from pathlib import Path

# Save and run this script in /workspace/FreeVideo on the Pod.
API = "http://127.0.0.1:8188"
TOKEN = Path("launcher/access-token").read_text(encoding="utf-8").strip()
if not TOKEN:
    raise SystemExit("Missing access token. Start the protected FreeVideo server first.")
HEADERS = {"Authorization": f"Bearer {TOKEN}"}
STATE = Path("freevideo-job.json")

def request_json(route, payload=None):
    headers = dict(HEADERS)
    data = None
    if payload is not None:
        headers["Content-Type"] = "application/json"
        data = json.dumps(payload).encode("utf-8")
    req = urllib.request.Request(API + route, data=data, headers=headers)
    with urllib.request.urlopen(req, timeout=30) as response:
        return json.load(response)

def run():
    if sys.argv[1:] == ["--resume"]:
        prompt_id = json.loads(STATE.read_text(encoding="utf-8"))["prompt_id"]
    elif sys.argv[1:]:
        raise SystemExit("Usage: python3 queue_freevideo.py [--resume]")
    else:
        if STATE.exists():
            raise SystemExit("Saved job found: use --resume, or rename freevideo-job.json before a new job.")
        graph = json.loads(Path("workflow_api.json").read_text(encoding="utf-8"))
        payload = graph if "prompt" in graph else {"prompt": graph}
        result = request_json("/prompt", payload)
        prompt_id = result.get("prompt_id")
        if not prompt_id:
            raise SystemExit("Job was not accepted. Check graph validation in the UI; do not blindly retry.")
        STATE.write_text(json.dumps({"prompt_id": prompt_id}), encoding="utf-8")
    print("Queued job:", prompt_id, flush=True)
    route = "/history/" + urllib.parse.quote(prompt_id, safe="")
    deadline = time.monotonic() + 6 * 60 * 60
    while time.monotonic() < deadline:
        entry = request_json(route).get(prompt_id)
        if not entry:
            queue = request_json("/queue")
            jobs = queue.get("queue_running", []) + queue.get("queue_pending", [])
            if not any(len(job) > 1 and job[1] == prompt_id for job in jobs):
                entry = request_json(route).get(prompt_id)  # completion can race the queue check
                if not entry:
                    raise SystemExit("Job is absent from Queue/History. After a server restart, locate saved MP4s; do not resubmit automatically.")
        if entry:
            status = entry.get("status", {})
            if status.get("status_str") == "error":
                raise SystemExit("Generation failed. Inspect this job in ComfyUI History and its logs.")
            if status.get("completed"):
                Path("freevideo-history.json").write_text(json.dumps(entry, indent=2), encoding="utf-8")
                if status.get("status_str") != "success":
                    raise SystemExit("Job did not finish successfully; inspect its saved history.")
                break
        print("Waiting for this job; each status request is separate...", flush=True)
        time.sleep(10)
    else:
        raise SystemExit("Still waiting after 6 hours. Check the UI; --resume monitors the same job.")
    media = [item for node in entry.get("outputs", {}).values()
             for item in node.get("images", [])
             if item.get("type") == "output" and str(item.get("filename", "")).lower().endswith(".mp4")]
    if not media:
        raise SystemExit("No MP4 descriptor in saved history. Check the workspace and search the persistent output folder.")
    folder = Path("api-downloads") / prompt_id
    folder.mkdir(parents=True, exist_ok=True)
    for index, item in enumerate(media, 1):
        query = urllib.parse.urlencode({key: item[key] for key in ("filename", "subfolder", "type")})
        req = urllib.request.Request(API + "/view?" + query, headers=HEADERS)
        target = folder / (str(index) + "-" + Path(item["filename"]).name)
        partial = target.with_name(target.name + ".part")
        with urllib.request.urlopen(req, timeout=30) as response, partial.open("wb") as output:
            while chunk := response.read(1024 * 1024):
                output.write(chunk)
        partial.replace(target)
        print("Saved on the Pod:", target, flush=True)
    print("Copy the MP4s to your computer and check playback/audio before stopping the Pod.")

try:
    run()
except (urllib.error.URLError, TimeoutError) as error:
    print("Request failed:", type(error).__name__)
    raise SystemExit("No automatic resubmission. Check Queue/History; if freevideo-job.json exists, use --resume. Check the token after rotation.")
04

Submit once and follow the job

Run with Python 3 in the Pod Terminal. The returned prompt_id confirms acceptance, not completion. The script waits in its own process while each HTTP request stays short; no single request is held open for the video render. Keep it in tmux if you might disconnect. A completed job saves freevideo-history.json and MP4 copies in api-downloads. The originals remain in ComfyUI/output/FreeVideo. Copy a finished MP4 to your own computer and check playback and audio. Keep the ID and history with your workflow.

Bash
cd /workspace/FreeVideo
python3 queue_freevideo.py
05

Resume monitoring or recover a failed download

If monitoring or downloading is interrupted after freevideo-job.json was saved, use --resume to track the same job and download its completed files without posting again. After a service/Pod restart, ComfyUI’s in-memory Queue/History may be gone even though the MP4 survives: use the output search in the RunPod steps instead of automatically resubmitting. If the original submission timed out before an ID was saved, inspect the UI Queue/History first. After a reviewed completion, archive or rename freevideo-job.json before intentionally starting another job. If a browser download fails, use Jupyter’s file browser to retrieve the saved MP4.

Bash
cd /workspace/FreeVideo
python3 queue_freevideo.py --resume
06

Serverless requires a separate deployment

This GPU Pod is not a RunPod Serverless endpoint. A serverless service needs a worker/container, model caching, persistent outputs, and an actual job API. No official ready-to-deploy FreeVideo Serverless worker is claimed here; stabilize and benchmark the Pod workflow first.

RunPod platform documentation
08
MORE WAYS TO USE THIS SETUP

Measure and diagnose your actual machine

Resource planning is not a benchmark. Record the actual output and elapsed time; the publisher’s Windows and M5 results above are separate evidence.

01

Inspect the resource plan and reports

Replace 16 and 32 with your actual VRAM and host RAM. plan estimates resource policy; it does not promise a render time. Completed jobs also produce a .request.json timing/resource report. Run the project’s optional ./test.sh only after a normal smoke test works; it can take considerable time.

Execution planning and measurement methodology
Bash
./freevideo plan --vram-gib 16 --ram-gib 32 --width 960 --height 544 --seconds 3
./freevideo resource-history list
./freevideo predict --help
02

Collect useful diagnostics

Linux/RunPod example: adjust /workspace for your install. Inspect the first actionable error and stop before blindly running later commands. Redact tokens and private paths before sharing logs.

Report a reproducible upstream issue
Bash
cd /workspace/FreeVideo
./freevideo status
./freevideo doctor --probe
nvidia-smi
free -h
df -h /workspace
ls -lah launcher/
tail -n 100 launcher/service.log
03

Save a reproducible result

Record GPU/VRAM, host RAM, CPU, disk type, driver, FreeVideo revision, prompt, seed, quality, size, duration, first versus warmed run, and full elapsed generation time. Keep the final MP4, exported JSON, and .request.json. Report failed or retried runs separately rather than replacing them with publisher timings.

09
MORE WAYS TO USE THIS SETUP

Maintain the installation without interrupting a job

Finish and save the current generation first. The guide pins a reviewed revision; moving to newer source is a separate update with a fresh plan and smoke test.

01

Check status, stop, and review an update

Wait until the queue is idle and save completed MP4s, settings, and workflow/history files before stopping. ComfyUI Queue/History is held in memory and may disappear on restart while the output files remain. Use stop after jobs finish; the reviewed restart command internally forces stopping. This guide checked out a specific commit, so do not run git pull against a detached HEAD. Review a published release before selecting its tag and retain the known-good commit for rollback.

Review FreeVideo releases FreeVideo service and restart behavior
Bash
./freevideo status
./freevideo stop
git status --short
git fetch --tags origin
02

Re-plan before installing changed dependencies

After intentionally checking out the reviewed update, run the plan and inspect dependency/storage/license changes. Only then rerun setup. Keep your normal access route: use the local service for SSH or the protected server for RunPod HTTPS.

Bash
./setup.sh --plan
./setup.sh
03

Restart the same access route and smoke-test it

For RunPod HTTPS or the authenticated SSH-tunnel route, run these commands only after current jobs finish and outputs are saved. Stop must succeed before server starts; do not use a forced restart during generation. Keep --listen 0.0.0.0 to retain FreeVideo’s token proxy and make both API examples work. Check status, reopen the UI through the protected HTTPS link with the existing token, and generate one short clip. For graphical desktop installs, use their normal launcher/update path.

Bash
cd /workspace/FreeVideo
./freevideo stop && ./freevideo server --listen 0.0.0.0 --port 8188
./freevideo status
04

Recover after a Pod stop or settings edit

Start the Pod, reopen its Terminal, confirm the persistent /workspace mount and actual GPU, and reinstall container-level packages if the container was reset. The commands assume the root Ubuntu/PyTorch template used above; use sudo where required. The existing FreeVideo folder, managed environment, and model files should remain. If it is missing, stop and check the volume attachment—do not begin a fresh large download blindly. This is a recovery check, not a source update.

Pod stop, edit, and restart behavior Persistent storage types
Bash
nvidia-smi
df -h /workspace
apt-get update
apt-get install -y git curl ca-certificates tmux build-essential python3
cd /workspace/FreeVideo && ./setup.sh --plan
05

Resume the preserved installation

Resolve the plan errors first, then rerun setup in this same folder to validate/repair the installation and reuse downloaded assets. This is especially important if the physical GPU, driver, or container changed: machine.json can retain the old GPU UUID, and --plan alone does not refresh it. Do not delete models or clone again. Wait for setup to succeed before starting the protected server below. Verify Connect still exposes HTTP 8188, then generate the browser URL using RunPod Step 8. launcher/access-token normally survives on the volume; use the current token if rotated. Use the local ./freevideo wrapper rather than a lost home-directory shortcut. Old in-memory job history cannot be recovered by resubmitting; locate saved output files instead.

Bash
cd /workspace/FreeVideo && ./setup.sh && ./freevideo server --listen 0.0.0.0 --port 8188
./freevideo status
10
MORE WAYS TO USE THIS SETUP

Keep results private and control rental costs

FreeVideo describes the tooling, not free GPU rental or unrestricted model rights. Local and rented execution have different privacy and billing implications.

01

Know what survives a stop or container reset

A mounted volume disk at /workspace survives Pod stops/restarts, but is deleted when its Pod is terminated. A network volume has its own lifetime and survives Pod termination until you delete that volume. Container-disk changes outside persistent mounts may be lost on a stop or settings edit. This includes apt-installed system packages, home-directory launch shortcuts, and running processes; tmux sessions also end when the container stops. The recovery steps above reinstall missing system packages and restart the preserved installation.

RunPod storage behavior Container reset when editing a Pod
02

Preserve the entire FreeVideo installation and its results

Keep /workspace/FreeVideo on the mounted volume, including models/, envs/, python/, vendor/, downloads/, kernel-cache/, launcher/, machine.json, and ComfyUI/. GUI results are normally under ComfyUI/output/FreeVideo/<date>/<job-folder>/video.mp4; CLI results follow your --out path. API helper copies live in api-downloads/. Reused external model folders or explicitly overridden caches also need persistent locations. Back up valuable MP4s, workflow JSON, prompt/settings, and saved job/history files outside the Pod before stopping. Protect launcher/access-token as a credential when making backups.

FreeVideo managed installation locations
03

Stop compute after verifying your backups

Play the copied MP4 and confirm its audio on your own computer, then stop the Pod. GPU compute is billed while running; retained storage may remain billed after stopping. Stopping releases GPU capacity, so the original device may be unavailable on restart. Recheck its actual GPU and driver before continuing. Confirm storage lifetime before terminating a Pod or deleting any volume.

Manage a RunPod rental · affiliate Storage persistence and charges
04

Protect UI access and source material

A FreeVideo proxy token controls the creative workspace; it is separate from SSH credentials. Do not share its token-bearing URL, screenshots, or logs. Assets/prompts on a rented Pod are processed on remote infrastructure. Treat community LoRAs, photos, videos, voices, and music according to their own rights and consent rules.

05

Review the separate licenses before commercial use

The engine code is Apache-2.0. The MiniMax H3 weights have a separate community agreement covering territories and commercial/service use. A GPU rented elsewhere does not itself resolve authorization. Review the actual model agreement and any adapter/content terms before deployment or monetization.

MiniMax H3 model license FreeVideo code license
11
SUCCESS CHECK · MiniMax H3 · VDN-H3 for FreeVideo

A playable video, with settings you can repeat

You have downloaded a text-to-video MP4 with visible motion and audible sound, without missing-model or out-of-memory errors. Keep the prompt, seed, quality, size, duration, and actual timing. If you try the first-frame image-to-video exercise, save and check that second clip too. For RunPod, use the protected HTTPS browser URL, back up outputs, and stop compute when finished. The optional API exercise is complete only after its exported graph produces a finished video; it is not required for the browser workflow.

Source-reviewed against FreeVideo v0.3.23. This content does not claim YouRunAI completed the local or RunPod generation tests. The publisher’s NVIDIA/Mac timing examples are labeled separately. Experimental Mac support and restricted model-weight terms still apply. RunPod rental links are affiliate links.

Back to setup steps

When it doesn’t go to plan

The installer reports an old driver or unsupported CUDA kernel.

On Linux/RunPod, nvidia-smi must show NVIDIA Driver Version 580+. The CUDA label alone is not the installed runtime. Update the local host driver or choose a compatible Pod; installing a wheel does not update its host driver.

The install plan reports insufficient disk space.

Check free SSD space or df -h /workspace, then compare setup --plan for the exact host. Provision sufficient persistent storage or use the installer’s supported storage choices. Do not delete arbitrary caches during installation.

The setup terminal disconnected.

Use tmux ls, then tmux attach -t freevideo-install. If setup actually stopped, rerun ./setup.sh from the same installation to reuse verified downloads. A stopped Pod cannot be kept alive by tmux.

FreeVideo is installed but the browser is empty or unreachable.

Inspect ./freevideo status and launcher/service.log. Start ./freevideo open --port 8188 --no-browser for local/SSH access, or select the protected server route and confirm the actual HTTP service is exposed.

RunPod returns 404/502 on the 8188 link.

Confirm HTTP 8188 appears in Connect and the token-protected server is running on 0.0.0.0:8188. Add a missing port via Pods → three-dot menu → Edit Pod → Expose HTTP Ports → 8188 → Save only after backing up nonpersistent data; saving resets the container. Follow RunPod Step 11 to restart FreeVideo and generate a fresh browser URL.

The proxy returns 524 or a long generation appears to time out.

RunPod’s HTTP proxy allows approximately 100 seconds for a request. Use ComfyUI’s asynchronous queue and separate status/history requests; do not hold one HTTP response open throughout generation. Check the existing job before retrying. A disconnected browser does not itself cancel a queued render. If an output download fails, locate the MP4 using RunPod Step 10 and retrieve it through Jupyter’s file browser.

The video finished but the download failed.

Use the find command in RunPod Step 10 to locate *.mp4 under /workspace/FreeVideo. Check ComfyUI/output/FreeVideo for UI jobs, your --out path for CLI jobs, or api-downloads for helper copies. Download via Jupyter’s file browser and verify playback. If ComfyUI restarted, files can survive even though its Queue/History no longer lists the job.

The browser returns 403 or says the token is missing.

For RunPod, generate the current browser URL again using Step 8; do not use the localhost URL printed by the original installation. If compromised, rotate using ./freevideo server --listen 0.0.0.0 --port 8188 --new-token, then generate the HTTPS link with the new token. Keep it private and do not expose bare ComfyUI without authentication.

The URL opens Jupyter or a different ComfyUI.

Jupyter often uses 8888; FreeVideo defaults to 8188. Check ports and running services. Avoid competing installations on the same port; choose one managed FreeVideo service.

Generation runs out of memory or is very slow.

Close competing GPU jobs, lower resolution and duration, and start with Light/preview. Inspect nvidia-smi, RAM/SSD use, resource planning, and .request.json. Streaming on 8–16 GB GPUs can be slow; more host RAM and a fast SSD may matter alongside the GPU.

ComfyUI nodes are missing or imports fail.

Restart the selected ComfyUI and complete FreeVideo Settings for its runtime/models. If shared-environment packages conflict, prefer the official isolated launcher instead of repeatedly replacing random dependencies.

The first job downloads additional files.

Check installation status, storage, and logs. Optional assets can be downloaded when first needed. Wait for actual completion or a specific failure; an incomplete asset download is not a successful generation.

The input frame crops badly or the reference does not preserve identity.

Pre-crop/pad to the selected aspect ratio and start with one first frame and a simple motion prompt. Reference video/audio conditioning is experimental; no exact subject or voice lock is promised.

The Mac preview is much slower than an NVIDIA benchmark.

Compare only against the experimental Mac evidence for the same settings. Before M5, the int8 weights are decoded to BF16 as each layer loads, which slows generation. Start with a very short 512×512 clip; a 24 GB unified-memory Mac is not equivalent to 24 GB discrete NVIDIA performance.

A stopped Pod cannot restart on the same GPU.

Stopping releases GPU availability. Preserve data on the appropriate persistent/network storage and keep backups so you can move to another compatible host. Check driver, RAM, and the new install plan again.

Downloads

Official FreeVideo-All-in-One.json
REFERENCE LIBRARY

Sources and files

Original instructions, model files, and compatibility notes behind this setup.

12 SOURCES

The model behind this workflow

MiniMax H3

Keep exploring

Text
SETUP GUIDE

Qwen3.5 · 9B private chat setup

Source-backed package and platform-route plan for private local chat with Qwen3.5 · 9B. Preserves the official Ollama 9B package, a smaller 4B family fallback, and a clearly labeled community uncensored GGUF option.

Freshness 41 out of 100. Release age: 230 days old, Feb 27, 2026. Measures age, not quality.
Popularity 93 out of 100. 8,591,266 downloads in 30 days; 2,171 lifetime likes. Checked Oct 15, 2026. Measures adoption, not quality.
SOFTWAREOllama
Coding
SETUP GUIDE

Build a private coding assistant with Qwen3.8 27B

Run Qwen3.8 27B with Ollama, connect it to Cline in VS Code, and make one reviewable code change in a tiny local project.

Freshness 76 out of 100. Repository age: 71 days old, Aug 5, 2026. Measures age, not quality.
Popularity 95 out of 100. 7,363,968 downloads in 30 days; 17,749 lifetime likes. Checked Oct 15, 2026. Measures adoption, not quality.
Arena Open Source Web coding: rank 10 of 55. Ranked model: qwen3.8-27b. Original model ranking, not a benchmark of this package. Export dated Oct 13, 2026. Source checked Oct 15, 2026. Human preference ranking, not hardware suitability.+3
SOFTWAREOllama + Visual Studio Code + Cline + Python
Images
SETUP GUIDE

Create images locally with FLUX.2 Klein

Generate images from text prompts in ComfyUI with the fast distilled or more adjustable base 4B model. Save your results and reuse the visual workflow.

Freshness 35 out of 100. Release age: 273 days old, Jan 15, 2026. Measures age, not quality.
Popularity 76 out of 100. 423,736 downloads in 30 days; 1,043 lifetime likes. Checked Oct 15, 2026. Measures adoption, not quality.
SOFTWAREComfyUI
Generate MiniMax H3 videos with FreeVideo | YouRunAI