nc://gmi-video

v0.1.0Pinned
ThomSharktools/nodecode-gmi-video: Makes short videos from a text prompt or a public image URL with GMI Cloud's Hailuo and Kling models. - a rewrite of zkasuran/hermes-gmi-media (Apache-2.0), credited to zkasuranc26ee3d· 10 Nov1 commit
test1 filecell.lisp43.3 KBLICENSE11.1 KB

nodecode-gmi-video

GMI Video: make a short video from a text prompt or a public image URL with GMI Cloud. A Nodecode rewrite of zkasuran/hermes-gmi-media by zkasuran.

GMI Cloud serves Hailuo, Kling and other video models behind one request queue. The original plugin plugs them into Hermes's video picker; a Nodecode has no video lane, so this cell gives the model the same thing as two tools — gmi_video and gmi_video_models — and the same two calls through eval, (gmi-video:generate …) and (gmi-video:models). Each generation reads the chosen model's live schema first, so duration, resolution, aspect ratio and audio use only values that model accepts; anything it does not take is dropped and named in the answer.

Get it

Tell the agent "add the gmi-video cell", or run nodecode add nc://gmi-video.

Set it up

A key comes from console.gmicloud.ai. Put it in the gmi-video section of config.jsonc (or /settings):

{
  "gmi-video": {
    "api_key": "…",                  // or leave it out and export GMI_API_KEY
    "model": "Minimax-Hailuo-02",       // text-to-video default
    "image_model": "Minimax-Hailuo-2.3-Fast", // image-to-video default
    "timeout_seconds": 900               // how long one job may take
  }
}

api_key_env names an environment variable instead, and GMI_API_KEY is read either way, so a key exported in a shell needs no section at all. output_dir says where a finished video is saved; it is the organism's cache/gmi-video unless answered.

Every generation spends GMI credits, with no approval prompt, and most video models bill per second of output: the answer states the price GMI supplies for the model that ran, but no total is computed.

Use it

The model calls the tools by name; you can call them too, through (help :gmi-video) and eval:

  • gmi_video — prompt (required), image_url, model, duration, aspect_ratio, resolution, negative_prompt, seed. It submits the job, polls it, saves the video and answers its path, the model, the duration, the request id and the price.
  • gmi_video_models — GMI's live video catalog: model id, price, and a short description each. The catalog is read once an hour.
  • (gmi-video:generate "a blue boat at dusk" :duration 5) — the same call from eval.
  • (gmi-video:models) — the same list from eval.
  • /gmi-video — the list, from the slash line.

Image-to-video takes a public http(s) URL, never a local path: upload the image first and pass its address. Text jobs and image jobs default to different models. A job that fails or times out comes back as an ERROR: line the model can act on, with the request id to check in GMI's console.

What it does not do

The original registers itself as a Hermes video backend, so /video and its picker drove it; here the model asks for the tool. Its Hermes-only setup schema, its model picker and its thread-pool catalog refresh are gone with that harness; the rewrite maps parameters against the same live schema, one model at a time. See NOTICE.

Add nc://gmi-video

  1. 1

    Install Nodecode

    Once per machine.

    $ curl -fsSL https://nodecode.ai/install.sh | sh
  2. 2

    Add the cell

    Pinned at c26ee3d.

    $ nodecode add nc://gmi-video

    Or tell the agent add the gmi video cell.