AI image and video generator, priced in rupees.
Type a prompt, get an image or a video. Images from ₹2, video from ₹42 for 3 seconds. No GPU to rent, nothing to install, no monthly plan, and you only pay for the ones you get.
Building something? The same images and clips come out of one API call — see the API docs.
Your image is generated on a GHive host GPU, usually in about 5 seconds once one picks it up. Busy times can take longer. You are only ever charged for an image you actually receive.
Write the script. Get the whole film.
Each API call makes one 5-second scene. Split your script into scenes, send each one from your code, and GHive renders them side by side on GHive GPUs. Join the clips, and a six-scene script becomes a 30-second ad.
1 · Your script, scene by scene6 scenes × 5s
“Pehli Chai”: a 30-second ad for a chai brand
Every scene repeats one style line so the shots match each other.
style = "warm cinematic, 35mm, golden hour, Bengaluru street, same chaiwala in a blue kurta"
- 0:00Ready
Scene 1 · Wide
Dawn over a quiet Bengaluru street; the chai stall's shutter rolls up
- 0:05Ready
Scene 2 · Close-up
Ginger crushed into a dented steel kettle, steam rising
- 0:10Animating
Scene 3 · Medium
The chaiwala pours chai from shoulder height into small glasses
- 0:15Animating
Scene 4 · Wide
Office-goers on scooters pull over at the stall
- 0:20Keyframe
Scene 5 · Close-up
Two hands around a hot glass as the first rain begins
- 0:25Queued
Scene 6 · Wide
The stall glowing in the rain, room for the brand logo
2 · Clips come back, then join2 of 6 scenes ready
0:30final video
import requests, time, subprocess
API = "https://ghive.co.in"
H = {"Authorization": f"Bearer {GHIVE_API_KEY}"}
style = "warm cinematic, 35mm, golden hour, Bengaluru street, same chaiwala in a blue kurta"
def run(body): # submit, then poll until it's done
job = requests.post(f"{API}/api/v1/generate", headers=H, json=body).json()
while (j := requests.get(f"{API}/api/v1/jobs/{job['id']}", headers=H).json())["status"] != "done":
if j["status"] == "failed": raise RuntimeError(j["error"]) # never charged
time.sleep(10)
return requests.get(API + j["output_url"], headers=H).content
for i, scene in enumerate(scenes):
# 1. a still keyframe fixes the look of the scene ₹5
still = run({"model": "best", "prompt": f"{scene}, {style}", "seed": 7})
up = requests.post(f"{API}/api/uploads", headers=H, files={"file": ("k.png", still)}).json()
# 2. animate that keyframe into 5 seconds of motion ₹76
clip = run({"model": "video5", "upload_id": up["uploadId"], "prompt": scene})
open(f"scene_{i:02}.mp4", "wb").write(clip)
# 3. join the scenes, in order, into one film
open("list.txt", "w").write("".join(f"file 'scene_{i:02}.mp4'\n" for i in range(len(scenes))))
subprocess.run(["ffmpeg", "-f", "concat", "-i", "list.txt", "-c", "copy", "pehli_chai.mp4"])Scenes render side by side
Every scene is its own job, so a long script is spread across many GPUs instead of rendering one after another.
The style line keeps scenes consistent
The same character, light and look in every scene. A keyframe image fixes each shot before it moves.
A failed scene costs nothing
It retries on another GPU and is never charged. You pay only for the scenes you get back.
Priced in rupees
From ₹2 an image. UPI, cards, netbanking — no forex, no subscription.
Nothing to set up
No GPU, no install, no Python. Type what you want and press Generate.
Only pay for results
A generation that fails costs you nothing. We retry it on another GPU.
Generated with openly licensed AI models. Powered by Stability AI.