Open-source project
xixihhhh/clipforge avatar
xixihhhh/clipforge

ClipForge: turning one product photo into a short selling video, self-hosted

ClipForge(原『带货剪手』/ daihuo-jianshou):开源 AI 带货短视频神器——上传一张商品图,AI 自动提炼卖点 + 写种草脚本 + 锁定商品原图不变形 + 配画面/配音/字幕,一键产出抖音小店 / 快手 / 小红书 / TikTok Shop 卖货短视频。0 成本批量出片、开源无水印、本地自部署。也支持一句话主题成片。Open-source AI e-commerce/UGC short-video generator.

810 stars174 forksTypeScriptAGPL-3.0

At a glance

What is it?
ClipForge is an AGPL-3.0 Next.js application that generates e-commerce short videos from a product image or a one-line topic, with a free local pipeline and a paid AI pipeline kept behind an explicit confirmation click. The interesting part is not the generation itself but the cost gates, the candidate-version model and the QC loop around it.
Who is it for?
Adopt ClipForge if you already run Node and FFmpeg on your own hardware, you are willing to hold your own API keys for whichever image and video models you choose, and you want the free local pipeline as the default with paid generation behind a click. Do not adopt it if you need a hosted service with a support contract, if you cannot run FFmpeg and a long-lived Node process, or if AGPL-3.0 terms are incompatible with how you intend to distribute your own product.
Can I use it commercially?
Yes, with strict conditions. AGPL-3.0 is a network copyleft licence: if people use a modified version over a network, for example as a hosted service, you must offer them its source code under the same licence.
Is it still maintained?
Yes. The repository last received commits 4 days ago.
What is it written in?
Mainly TypeScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

The gap ClipForge is aimed at: one product photo, many platform-ready clips

The stated target is the seller who has product images and no editing pipeline. The README frames the output as videos for Douyin stores, Kuaishou, Xiaohongshu, WeChat Channels and TikTok Shop, produced at what it calls zero cost in batch, without a watermark. The repository was previously named daihuo-jianshou, and the README says the rename preserves history rather than starting a new project.

The second input mode matters for scoping. Besides a product image, ClipForge accepts a one-line topic and produces a video from that, which the README describes as suitable for non-commerce subjects. So the tool is not strictly a product-video generator; the commerce path is the one with the most machinery around it (selling points, script, product-image locking, platform presets), and the topic path reuses the same rendering stack.

Who this is not for is worth stating early. There is no hosted tier described. The README lists local self-deployment, and the interface is a Next.js app you run yourself. Anyone expecting to sign up and upload is looking at the wrong project.

Two pipelines, one confirmation click: how the free and paid paths diverge

The README describes creation as asking two questions: the production mode (a free quick-cut at roughly two minutes and zero cost, or an AI-generated video billed per second with the price shown on the option itself) and the commerce format (recommended automatically, on-camera presenter, short drama, or image-text montage).

In the free path, the chain runs automatically to a finished video. In the AI path, the free script is treated as a text plan and a confirmation gate: after reading the spoken script you press a button to generate, and only then does the system run the nine-grid identity and product lock and the full-video generation. The README states that spending happens on that single click. Models are bring-your-own-key, and the README says fees are paid to whichever model platform you choose, with ClipForge itself free.

That split is the most consequential design decision in the project. Most generators meter tokens and let the bill accumulate. ClipForge puts the meter in front of the user as a labeled option and then again as a gate. Whether the gate holds in every code path is something you would verify in your own deployment, but the intent is unambiguous in the documentation.

The nine-grid storyboard and the identity anchor

The mechanism the README leans on hardest is the nine-grid storyboard: up to nine shots are drawn into a single 3x3 image, which the documentation says keeps characters, clothing, room and lighting physically consistent, and the grid is then cut automatically into per-shot keyframes. Those keyframes are fed to a video model as references so that a script of up to about thirty seconds can be generated as one piece, with native shot changes, dialogue spoken verbatim in the character's own voice, and continuous audio.

For identity across shots and across separate videos, the README describes a presenter library where you define name, persona, appearance and voice, then generate front, side, back and close-up reference images in one generation so they are physically the same person. When a presenter is selected, the storyboard and full-video generation use those images as an identity anchor.

This is a real constraint, not a feature bullet. The whole approach depends on the chosen video model accepting multi-reference conditioning. The README acknowledges this directly: where the model supports it, dialogue, lip sync and ambient sound are generated together; where it does not, the system says it degrades explicitly to keyframes or post-production dubbing before any payment, and each candidate records the actual anchor count, audio mode and degradation state.

Getting it running: what the documentation actually specifies

This review is based on the repository material, not on an install. The README points to TUTORIAL.md and TUTORIAL.en.md for installation, key configuration, a first free video in about three minutes, an error lookup table and where data is stored. Those files are the authoritative source for exact commands; the README itself does not reproduce a full shell transcript.

What the README does pin down: the stack is Next.js 16, React 19, TypeScript 5, Tailwind CSS 4 and FFmpeg for video composition, per the badges. Model access is bring-your-own-key, configured in a settings page that includes a model selector. The default LLM tier is documented as DeepSeek V4 Pro, with a note that the older default produced thinking text that contaminated JSON output, and the settings page allows choosing any model instead. There is a CLI, an MCP server and a Skill that share the same local capabilities as the web interface, so a batch job can be driven from a terminal or an agent rather than the browser.

Storage is local: the v0.9.3 release adds a local materials library with batch upload, content-based deduplication, renaming and tagging, and the ability to fill empty shots from project-owned assets. Uploads can be cancelled and retried. Data location is covered in the tutorial rather than the README.

Cost control is a workflow, not a setting

Several documented features exist purely to avoid paying twice for the same shot. The quality gate keeps every candidate version of a shot and evaluates each on framing, timing, script adherence, character and product, motion, continuity and text, with evidence attached; only a candidate a human adopts enters the actual composition. Regeneration or model switching produces suggestions only and does not spend automatically.

Shot repair, added in v0.9.0, generates a local repair window from the problem timestamp rather than regenerating the whole shot. The UI shows the actual interval, model duration, price and degradation mode before you confirm payment; the system generates only the broken segment, splices it locally and preserves the original audio. Existing candidates are not overwritten, and a cloud job that finished while your machine was offline can still be collected.

Full-video QC, in v0.9.1, samples both sides of real splice points and reports brightness, chroma and saturation jumps with timestamps, scores and checkable evidence, and measures EBU R128 loudness across the whole piece. By default it analyzes only and calls no model. Fixes (two-pass loudness normalization, or a deflicker master) are explicit actions that create a new master version without overwriting the original, and the README states deflicker is never enabled by the machine on its own.

Where it breaks down, and what it is not

The failure modes documented here are mostly about the models underneath. If your chosen video model does not accept multi-reference conditioning, you lose the cross-shot consistency that the nine-grid approach is built around, and the system falls back to keyframes or dubbed audio. That is a downgrade in exactly the quality dimension the project claims as its differentiator.

The LLM dependency is another one. The README says the script judges run before generation on all five one-click chains, but if no LLM is configured they are skipped silently and never block the chain. That is a deliberate choice, and it means a misconfigured install produces videos without the script critique pass, with no error to tell you so.

The heavier limitation is operational. This is a self-hosted Next.js application with FFmpeg composition, a long-running server-side pipeline, a persistent job store for batch runs, and local transcription that the README says is chunked for fixed memory and can run for up to two hours. That is a machine you maintain. It is not a tool for someone who wants a browser tab and nothing else, and it is not a fit for a team with no one who can read a Node stack trace. The free path also has a floor: it is fast and costs nothing in model fees, but it composes from free stock footage and TTS, so the ceiling on how the result looks is lower than the AI path by design.

Alternatives and the actual difference in approach

The obvious comparison is a cloud video-generation API used directly, for example calling a hosted image-to-video endpoint and assembling the result yourself. The difference is where the orchestration lives. With a raw API you write the prompt, manage references, handle retries, splice the audio and decide when to spend. ClipForge ships that orchestration: the nine-grid keyframe step, the candidate-version store, the quality gate with per-dimension evidence, the splice-point continuity analysis and the repair window. You are trading the freedom to shape the pipeline for a pipeline that already exists.

The second comparison is a traditional editor with a template pack. There, a human cuts every clip and the cost is time, not tokens. ClipForge's free tier is closer to that model, but it substitutes automatic script generation and TTS for manual editing, which is faster and less controllable.

A third comparison, and the one that matters for licensing, is any permissively licensed generator. ClipForge is AGPL-3.0. If you modify it and offer it to users over a network, the licence's network clause is the thing your legal reviewer will want to read, because it is not the same obligation as MIT or Apache-2.0. This is not legal advice; it is a pointer to the licence file and to the fact that the identifier is AGPL-3.0, not something more permissive.

Maintenance load and upgrade cost

The release cadence visible in the material is fast: v0.9.2, v0.9.3 and v0.9.4 all landed within three days of each other in early September 2026, and the README references features from v0.8.92 through v0.9.1 as recent additions. That pace cuts both ways. Fixes arrive quickly, and so do schema and workflow changes.

Concretely, batch output writes per-item and per-stage records to batch_jobs and batch_job_items, and the free chain persists to pipeline_runs so an interrupted run can resume from the breakpoint or restart, with completed stages not re-run. Those tables are the upgrade surface: if a release changes their shape, in-flight batches are the thing most likely to need attention after you pull. The README also notes that the LLM default was changed because the previous default polluted JSON output, which is a reminder that model defaults are part of the upgrade surface too, and that a settings-page override exists precisely because the default will keep moving.

Budget for the model spend separately from the software. ClipForge itself is free under AGPL-3.0, and the README states fees are paid to the model platform you choose. There is no bundled credit and no metering layer in between.

Editorial conclusion

Adopt ClipForge if you already run Node and FFmpeg on your own hardware, you are willing to hold your own API keys for whichever image and video models you choose, and you want the free local pipeline as the default with paid generation behind a click. Do not adopt it if you need a hosted service with a support contract, if you cannot run FFmpeg and a long-lived Node process, or if AGPL-3.0 terms are incompatible with how you intend to distribute your own product. Before committing, verify three things in your own install: that the free path completes end to end without any model key, that your chosen video model is actually reachable through the configured provider, and that the QC and repair flow behaves as documented on one real product image rather than on the sample assets.

Official sources

  1. License: AGPL-3.0
  2. Project website
  3. README
  4. Releases
  5. xixihhhh/clipforge on GitHub
Community notes

Community notes