Loometo
Enables AI coding agents to visually build and run AI generation pipelines on a canvas by adding, wiring, and executing nodes via MCP tools.
README
<div align="center">
<img src="public/brand/loometo-icon.png" alt="" width="84">
<picture> <source media="(prefers-color-scheme: dark)" srcset="docs/brand/loometo-wordmark-cream.png"> <img src="docs/brand/loometo-wordmark-dark.png" alt="Loometo" width="300"> </picture>
An open-source, node-based AI creative studio. Bring your own keys.
Wire image, video, 3D, and audio models into visual pipelines on a canvas — then let your AI coding agent build those pipelines for you.
Made by Dinimiciuil Labs.
<img src="docs/screenshots/ss-pipeline.jpg" alt="A full Loometo pipeline running: character, location and product boards feeding an image-to-video node, a Director Formula prompt, and finished outputs." width="920">
A real pipeline: reference boards + Director Formula feeding image → video, with finished outputs at every stage.
</div>
Loometo is a visual canvas for AI generation. Drag nodes, connect them, hit Run. It's model-agnostic — one MuAPI key routes to hundreds of models (Kling, Veo, Sora, Wan, Flux, Nano Banana, Tripo, and more), and you pay providers directly at cost instead of a per-credit platform markup.
Think ComfyUI, but friendlier — with audio, 3D, ready-made templates, prompting help built in, and one thing no other node canvas has: your coding agent can drive it.
Table of contents
- What makes it different
- Quick start
- API keys — where each one comes from
- The tour, in five screens
- Drive it from Claude Code / Codex / Cursor
- 22 one-click pipeline templates
- All 57 nodes, in plain English
- The model catalog — all 276
- Architecture & security
- License & branding
What makes it different
- Batteries included. Not just image + video. Text-to-speech and voice cloning, image → 3D (rotate in-node + export GLB/STL), 22 pre-wired pipeline templates, a director-formula prompt builder, and model-recommendation hints — out of the box.
- Your agent builds the canvas. Point Claude Code, Codex, or Cursor at the
built-in MCP server and say "build me a UGC pipeline." Nodes appear and
wire themselves live in your browser. (See
mcp/.) - Model-agnostic, no lock-in. Swap any model the day it launches. Loometo is the layer over the whole market, not a bet on one lab.
- Your keys, your machine. No accounts, no database, no telemetry. Keys
stay in your browser or your
.env.local. It runs entirely locally.
Quick start
git clone https://github.com/dinimiciuillabs-cloud/loometo.git
cd loometo
npm install
npm run dev # http://localhost:3005
Then open the app, hit Setup Keys (top right), paste your MuAPI key, and Save. That's it — no config files needed. That single key unlocks ~80% of Loometo.
Prefer config files? cp .env.example .env.local, add MUAPI_API_KEY,
restart the dev server. .env.local always wins over pasted keys.
API keys — where each one comes from
Every key can be pasted in-app under Settings → API Keys (stored in your
browser, sent only to your own localhost server). Three can also go in
.env.local:
| Provider | Powers | Get your key | In-app paste | .env.local |
|---|---|---|---|---|
| MuAPI (required) | Video, 3D, upscale, image edit, face swap, lip sync — the ~250-model catalog | muapi.ai | ✅ | ✅ MUAPI_API_KEY |
| Google AI | Imagen 4, Veo 3, Gemini — direct, no reseller markup | aistudio.google.com/apikey | ✅ | ✅ GOOGLE_API_KEY |
| ElevenLabs | TTS + voice cloning (free tier available) | elevenlabs.io → API keys | ✅ | ✅ ELEVENLABS_API_KEY |
| OpenAI | GPT-Image / DALL·E, LLM nodes | platform.openai.com/api-keys | ✅ | — |
| Meshy | Direct image → 3D (cheapest 3D path) | meshy.ai/api/keys | ✅ | — |
| Figma | Pull frames onto the canvas | figma.com → access tokens | ✅ | — |
<img src="docs/screenshots/ss-api-keys.jpg" alt="The API Keys panel: each provider with a masked field, FROM .ENV badges, and Get key links." width="920">
Optional: set Cloudflare
R2_*keys in.env.localand every generated asset is auto-copied to your own bucket — provider URLs expire in 24–72h, this makes them permanent.
The tour, in five screens
You're never staring at an empty grid
First launch: a three-step explainer, all 22 templates one click away, and a search over all 57 nodes.
<img src="docs/screenshots/ss-blank-dark.jpg" alt="Loometo on first launch: node sidebar, three-step how-to card, and 22 one-click templates on a blank dark canvas." width="920">
Model intelligence, inside the node
Searchable picker with ★ PICK recommendations and $ / $$ / $$$ cost tiers on every model — before you spend a cent. Parameters below it are schema-driven, so you can never set a value the model rejects.
<img src="docs/screenshots/ss-model-picker.jpg" alt="A Text to Image node with its model dropdown open: Flux 2 Pro with PICK badge and premium tier, Nano Banana Pro, Seedream — each with cost tiers and descriptions." width="920">
Every node explains itself
Tap the (i) on any of the 57 nodes: plain English, what goes in, what comes
out. Typed handles mean wires only connect where the types match.
<img src="docs/screenshots/ss-remove-bg.jpg" alt="The Remove Background node with its info tooltip open: subject stays, background disappears. Takes in Image, outputs Cutout." width="920">
Prompt like a film director
The Director Formula node encodes real cinematography discipline — shot codes (ECU → EWS), annotated lens bands, lighting split into source / direction / quality like a DoP would, plus textures, composition, style reference and emotional vision. Eleven fields in, one director-grade prompt out, wired into any generator. Save the whole configuration as a preset.
<img src="docs/screenshots/ss-director.jpg" alt="The Director Formula node with eleven fields: subject, action, shot type, lens, three lighting facets, textures, composition, style reference and emotional vision." width="920">
Drive it from Claude Code / Codex / Cursor
Loometo ships a zero-dependency MCP server (mcp/loometo-mcp.mjs,
Node 18+) wrapping its HTTP canvas bridge. Your agent reads the graph, adds
nodes, wires them, and fires runs — live in your browser tab.
you › build me a UGC pipeline for a street-food ad
→ snapshot() reads empty canvas
→ add_node(character-board) ✓ char-board-1
→ add_node(image-to-video, kling) ✓ i2v-1
→ connect(char-board-1 → i2v-1) ✓
→ set_param(i2v-1, aspect 9:16) ✓
→ run_all() ✓ generating…
Setup (3 steps):
-
npm run devand leave the browser tab open — set your keys first (Setup Keys → paste → Save) or every run the agent fires will fail. -
Register the server in your agent — use the absolute path:
// Claude Code (.mcp.json or ~/.claude.json) — or: // claude mcp add loometo -- node /abs/path/mcp/loometo-mcp.mjs "mcpServers": { "loometo": { "command": "node", "args": ["/abs/path/to/loometo/mcp/loometo-mcp.mjs"], "env": { "LOOMETO_URL": "http://localhost:3005" } } }Codex uses the same shape in
~/.codex/config.toml; Cursor / Cline in their MCP settings. Full walkthrough:mcp/README.md. -
Reload your agent and just ask. Nodes are addressable by the name on the card — you can literally say "run char-board-1".
The 11 tools: snapshot · add_node · connect · set_param ·
run_node · run_all · delete_node · clear · select · pulse ·
list_models
22 one-click pipeline templates
Every template is a pre-wired canvas — models pre-picked, prompts pre-filled with director-formula briefs you edit in place.
| Template | What it wires | Template | What it wires |
|---|---|---|---|
| UGC Clip | Person + place → video | Voiceover Reel | Script + face → talking clip |
| Product Shots | One photo → angle board + cutout | Animated Logo | Logo → motion sting |
| Link → Carousel | Paste a link, post a carousel | Sticker Pack | Photo → 4 die-cut stickers |
| Launch Kit | One hero → every channel | Background Swap | Cut out → drop in a scene |
| 3D Product Spin | Photo → spinnable 3D | Relight Product | Phone photo → studio light |
| Style Remix | Photo + idea → upscaled art | Virtual Try-On | Person + outfit idea → look |
| Face Swap | Two photos → swapped | Headshot Studio | Selfie → pro headshots |
| Video Restyle | Clip + idea → new look | Photo Restore | Old / blurry → sharp |
| Talking Avatar | Photo + script → talking video | Object Remover | Delete anything from a photo |
| Full UGC Campaign | Character + place + product → 3 clips | Ad Variant Factory | One hero → 6 ad angles |
| Carousel from Idea | Topic → carousel | Blog Hero | Article link → hero image |
All 57 nodes, in plain English
The same explanations behind each node's (i) button. Click a group to expand.
<details>
<summary><b>Text & Prompts</b> — 8 nodes</summary>
| Node | What it does |
|---|---|
| Prompt | Type what you want to create here. Like telling the AI 'make me a sunset on a beach' — it's the starting point of everything. |
| Prompt Enhancer | Your prompt goes in, a better prompt comes out. The AI rewrites it with more detail so your image or video looks amazing. |
| Audio Transcriber | Listens to your uploaded audio and writes out the spoken script. Feed the transcript into a Prompt Combiner so the video model knows what is being said — not just lip shapes. |
| Prompt Combiner | Connect two prompts and this merges them into one. Useful when you have different ideas you want to blend together. |
| Director Formula | Fill the 7 fields like a creative director writing a brief — subject + action, shot type, lens, lighting (3 facets), composition, style ref, vision. The node assembles a director-grade prompt that wires into any image generator. Vocabulary taken verbatim from cinematography sources. |
| Run Any LLM | Talk to any AI brain (ChatGPT, Gemini, Claude) directly inside your workflow. Ask questions, get descriptions, or have it write prompts. |
| Image Describer | Give it a photo and it tells you exactly what's in it as a detailed prompt. Perfect for recreating a style. |
| Image → JSON | Vision LLM produces a strict JSON description of one or several images of the same subject. Wire optional Extra Instructions (positive direction: 'include hex codes', 'list every logo separately') and Negative (avoid: 'don't speculate about brands not visible'). Output JSON wires into any text input for downstream identity lock. |
</details>
<details> <summary><b>Audio & Voice</b> — 5 nodes</summary>
| Node | What it does |
|---|---|
| Text → Speech | Turns a script into a spoken audio clip. Wire a Prompt with your script in, get audio out. For ElevenLabs free tier, wire a Voice Cloner in (library voices are paid-only). Pipe that into Lip Sync to make a video character say it. |
| Voice Cloner | Wire in a 30+ second audio sample (your voice, a podcast clip, anything clean). Give it a name. Click Clone. ElevenLabs returns a voice_id you can wire into Text → Speech for unlimited future TTS in that voice. Free tier compatible. |
| Lip Sync | Upload a video of a person and an audio clip — it animates their lips to match the audio. |
| Speech → Video | Take a portrait photo, add a voice recording, and get a video of that person speaking. Perfect for AI avatars. |
| Upload Audio | Pick an audio file (mp3, wav). Feed it into Lip Sync or Speech → Video. |
</details>
<details> <summary><b>Video</b> — 7 nodes</summary>
| Node | What it does |
|---|---|
| Video Describer | Same as Image Describer but for videos. Watches your video and writes out what's happening so you can recreate or remix it. |
| Text → Video | Type what you want to see and it creates a video. The dropdown shows only what each model truly supports. |
| Image → Video | Animate a single photo (First Frame), wire First + Last for transition (Veo 3.1), or wire multiple references for reference-conditioned models. Ref handle count is set by the chosen model: Sora 2 / Veo 3 base = 1, Pixverse = 2, Veo 3.1 Reference = 3, Wan 2.1 Reference = 5, Vidu Q1/Q2 + Kling O1 Reference = 7, Seedance Omni = 9. Address each in the prompt as @image1..@imageN. |
| Video → Video | Transform a video's look completely. 'Make this look like anime' or 'make it look like 1970s film.' Same motion, new style. |
| Video Upscale | Makes blurry or low-quality videos look sharp and crisp. |
| Video Matte | Removes the background from every frame of a video automatically. Tracks your subject — like a green screen without the green screen. |
| Upload Video | Pick a video file (mp4, mov, webm). Feed it into Video → Video, Lip Sync, or other video tools. |
</details>
<details> <summary><b>3D</b> — 1 nodes</summary>
| Node | What it does |
|---|---|
| Image → 3D | Generate a 3D mesh from one image, multiple angle photos, or a text prompt. Tripo3D H31 ($0.20-$0.30) is the cheapest; Meshy 6 ($0.50) is most detailed. Drag the mesh to rotate. After the GLB loads, a 2D snapshot is auto-captured so downstream image nodes have a usable image to consume; download serves the .glb. |
</details>
<details> <summary><b>Import, Output & Utility</b> — 8 nodes</summary>
| Node | What it does |
|---|---|
| Extract Frame | Grab any single frame from a video and save it as a still image. Pick the exact moment you want — frame by frame. |
| Painter | Brush directly on the canvas. Paint MASKS for Inpaint / Object Remove, or sketch overlays that flow downstream as images. |
| Import from Figma | Paste a Figma frame URL. Right-click any frame in Figma → Copy link to selection. Hit Run to pull it in as an image. |
| Upload Image | Pick an image from your computer. It becomes the starting point for any image workflow. |
| Import from URL | Paste any website link. Free mode extracts the readable text directly ($0). Google mode uses Gemini to clean the text AND recover the page's images and logo. Tap the recovered assets to pick which ones flow into your carousel as references — a tick marks the chosen ones. |
| Compare | Put two images side by side with a draggable slider. Perfect for before/after. |
| Iterator | Run the same process on multiple images at once. Instead of generating 10 images one by one, the Iterator does them in a batch. |
| Output | The finish line. Connect image, video, and/or audio here to preview and download each. Pair Veo video + TTS audio here, then combine in your editor (CapCut / DaVinci). |
</details>
<details> <summary><b>Image & Boards</b> — 28 nodes</summary>
| Node | What it does |
|---|---|
| Text → Image | Type a description and it draws a picture. Models that accept a STYLE REFERENCE image (Nano Banana, Flux Kontext, GPT-Image) expose a second Style Ref handle. Pure T2I models hide it. |
| Image → Image | Give it a photo + a description and it transforms the photo. Like 'make this look like an oil painting.' |
| Upscale | Makes small or blurry images bigger and sharper. It actually invents new detail — turn a tiny image into a crisp 4K masterpiece. |
| Remove Background | Cuts out the background of any photo automatically. Subject stays, background disappears. Perfect for cutout images. |
| Relight | Changes where the light is coming from in a photo. Make daytime look like sunset, or add dramatic studio lighting — without a studio. |
| Inpaint | Paint over something you don't want and the AI fills it in naturally. Remove people, erase logos — it blends in seamlessly. |
| Outpaint | Makes your image wider or taller by generating what would be outside the frame. Like zooming out — the AI imagines what's beyond the edges. |
| Face Swap | Put your face (or anyone's face) onto a different body or scene. Handles skin tone, lighting and angle automatically. |
| Object Remove | Point at anything and poof — it's gone. The AI fills in what the background looks like. Remove tourists, wires, anything. |
| Compositor | Visual layer editor. Wire a SCENE + up to 4 SUBJECTS, then drag / resize / reorder them in the polaroid. Two output modes: FLAT (exact pixel composite, no AI) or AI BLEND (sends the arrangement to Nano Banana Pro Edit which re-renders with matched lighting and perspective). |
| Reference Sheet | Feed up to 6 photos of the SAME thing (a person, a place, a product) and one prompt. The model uses them all as identity / location anchors. Better than asking one model to 'imagine four angles' from a single photo. |
| Character Board | Wire 1-5 photos of a person AND optionally a JSON spec from Image→JSON. Generates a studio model board (8 head expressions, 4 full-body angles, hand/eye/shoulder close-ups, fabric and skin-tone swatches) with anti-fake realism + director-formula lighting baked in. Feed the output into Image→JSON downstream to lock identity for compositors. |
| Location Board | Wire 1-5 photos of a place AND optionally a JSON spec. Generates a location reference board — exterior angles, time-of-day variants (golden/midday/blue/night), signage close-ups, brand swatches. Director-formula lens + 4-facet lighting baked per panel. Feed the output into Image→JSON downstream. |
| Product Board | Wire 1-5 photos of a product AND optionally a JSON spec. Generates a spec-board — hero angles, in-hand shots, brand-mark and material close-ups, colourway swatches. Director-formula lens + 4-facet softbox lighting baked per panel. Feed the output into Image→JSON downstream. |
| B-roll Board | Wire 1-5 photos of your scene / subject / product. Generates 6-9 cutaway-style frames sharing one colour grade and lighting era — hands, atmosphere details, environment beats, lifestyle moments. Use for video edit asset library or campaign supporting shots. |
| Storyboard | Wire 1-5 photos of your character / scene / setting + an extra-direction line describing the story beat-by-beat. Generates 6-9 numbered panels, each labelled with shot type (ECU / CU / MS / FS / LS) and a one-line action. Photoreal hero frames at pre-vis quality. |
| Mascot Board | Wire 1-5 photos / concept art of a brand mascot. Generates a mascot bible — 4 orthographic views (front / 3-4 / side / back), 6 expressions, 4-5 poses, brand palette swatches, face + hand detail callouts, scale reference next to a human. Locks the mascot for consistent reuse across campaigns. |
| Creature Board | Wire 1-5 photos / concept art of a creature, monster, or designed animal. Generates a creature concept-art bible — 5 orthographic views (front / 3-4 / side / back / top-down), face / limb / signature-feature / texture / joint detail callouts, material swatches (skin / fur / scales / feathers), threat-display + resting + hunting pose silhouettes, scale reference next to a human. |
| Outfit Change | Virtually try on different outfits. Describe the clothing and the AI puts it on the person. Great for fashion and e-commerce. |
| Crop | Cut your image or video to a specific size. Choose 16:9 for YouTube, 9:16 for TikTok, or 1:1 for Instagram. Instant, no AI needed. |
| Blur | Makes things fuzzy. Blur backgrounds, censor things, or create a dreamy soft-focus effect. Slide to control how blurry. |
| Levels | Make your image brighter, darker, or more contrasty. Like the basic sliders in your phone's photo editor but in your workflow. |
| Invert | Flips all colors to their opposite — like a photo negative. Black becomes white. Very useful for flipping masks. |
| Mask Extractor | Click on objects in your image and it automatically traces around them. Magic scissors that cut out exactly what you want. |
| Mask by Text | Describe what to select — 'the person's hair' or 'the car' — and it draws the selection automatically. No clicking needed. |
| Matte Grow/Shrink | Makes your selection slightly bigger or smaller. Use this to clean up rough edges. |
| Merge Alpha | Takes your image and your mask and combines them — the masked area becomes transparent. How you get cutout images with no background. |
| Carousel Board | Turns any text (wire in an Import from URL, or paste directly) into a ready-to-post social carousel: hook slide, point slides, CTA slide. Wire a Logo in to brand every slide and a Reference Image for the hook background. Finish 'Flat' renders locally for free; 'AI Enhance' passes each slide through Nano Banana Pro Edit (~$0.12/slide). One output handle per slide. |
</details>
The model catalog — all 276
The catalog lives in public/muapi-schema.json —
selectors read allowed values from it, so the UI never offers a parameter a
model rejects. New model out today? Add one schema entry and it appears.
Routing: models run either direct (Google, OpenAI, Meshy, ElevenLabs —
your key, raw cost) or via the MuAPI reseller (one key, ~250 models).
lib/api/router.ts picks the route per model.
Cost tiers — $ cheap · $$ medium · $$$ premium — show on every model in
the picker.
<details>
<summary><b>Image to Video</b> — 62 models</summary>
| Model slug | Variant | Extra parameters |
|---|---|---|
ai-video-effects |
AI Video Effects | name, aspect_ratio, resolution, quality |
motion-controls |
Motion Controls | name, aspect_ratio, resolution, quality |
vfx |
VFX | name, aspect_ratio, resolution, quality |
veo3-image-to-video |
Image to Video | images_list, aspect_ratio |
veo3-fast-image-to-video |
Image to Video [Fast] | images_list, aspect_ratio |
runway-image-to-video |
Image to Video | aspect_ratio, resolution, duration |
wan2.1-image-to-video |
Image to Video | aspect_ratio, resolution, quality, duration |
midjourney-v7-image-to-video |
Image to Video | aspect_ratio, resolution, num_videos, variety |
hunyuan-image-to-video |
Image to Video | aspect_ratio |
seedance-2.0-omni-reference |
Seedance 2.0 Omni Reference | images_list, aspect_ratio, quality, duration |
seedance-2-vip-omni-reference-fast |
Seedance 2 VIP Omni Reference Fast | images_list, aspect_ratio, duration |
seedance-lite-i2v |
Lite Image to Video | last_image, resolution, duration, camera_fixed |
seedance-pro-i2v |
Pro Image to Video | resolution, duration, camera_fixed |
kling-v2.1-master-i2v |
Master Image to Video | aspect_ratio, duration |
kling-v2.1-standard-i2v |
Standard Image to Video | aspect_ratio, duration |
kling-v2.1-pro-i2v |
Pro Image to Video | last_image, aspect_ratio, duration |
wan2.2-image-to-video |
Image to Video | last_image, aspect_ratio, resolution, quality |
runway-act-two-i2v |
Act 2 Image to Video | reference_video_url, aspect_ratio |
pixverse-v4.5-i2v |
Image to Video | images_list, aspect_ratio, resolution, duration |
vidu-v2.0-i2v |
Image to Video | images_list, aspect_ratio, resolution, duration |
vidu-q1-reference |
Reference I2V | images_list, aspect_ratio |
minimax-hailuo-02-standard-i2v |
Standard I2V | end_image_url, duration, resolution |
minimax-hailuo-02-pro-i2v |
Pro I2V | end_image_url, duration, resolution |
video-effects |
Video Effects | name |
pixverse-v5-i2v |
Image to Video | images_list, aspect_ratio, resolution, duration |
seedance-lite-reference-video |
Lite Reference to Video | images_list, resolution, duration |
wan2.1-reference-video |
Reference to Video | images_list, resolution, aspect_ratio, duration |
kling-v2.5-turbo-pro-i2v |
Pro Image to Video | duration |
wan2.5-image-to-video |
Image to Video | resolution, duration |
wan2.5-image-to-video-fast |
Image to Video (Fast) | resolution, duration |
openai-sora-2-image-to-video |
Sora 2 Image to Video | images_list, aspect_ratio, duration, remove_watermark |
ovi-image-to-video |
Image to Video | prompt only |
openai-sora-2-pro-image-to-video |
Sora 2 Pro Image to Video | images_list, aspect_ratio, duration, resolution |
leonardoai-motion-2.0 |
Motion 2.0 I2V | aspect_ratio |
higgsfield-dop-image-to-video |
Image to Video | last_image, motion, strength, options |
veo3.1-image-to-video |
Image to Video | last_image, aspect_ratio, duration, resolution |
veo3.1-fast-image-to-video |
Image to Video [Fast] | last_image, aspect_ratio, duration, resolution |
veo3.1-reference-to-video |
Reference to Video | images_list, resolution, duration, generate_audio |
seedance-pro-i2v-fast |
Pro Image to Video Fast | resolution, duration, camera_fixed |
ltx-2-pro-image-to-video |
Pro Image to Video | duration, generate_audio |
ltx-2-fast-image-to-video |
Fast Image to Video | duration, generate_audio |
vidu-q2-reference |
Reference I2V | images_list, resolution, aspect_ratio, duration |
vidu-q2-turbo-start-end-video |
Turbo I2V | last_image, resolution, duration, bgm |
vidu-q2-pro-start-end-video |
Pro I2V | last_image, resolution, duration, bgm |
minimax-hailuo-2.3-pro-i2v |
Pro I2V | resolution |
minimax-hailuo-2.3-standard-i2v |
Standard I2V | duration |
minimax-hailuo-2.3-fast |
Fast I2V | duration, go_fast |
kling-v2.5-turbo-std-i2v |
Standard Image to Video | duration |
grok-imagine-image-to-video |
Image to Video | images_list, mode, duration |
kling-o1-image-to-video |
Image to Video [Pro] | last_image, aspect_ratio, duration |
kling-o1-reference-to-video |
Reference to Video [Pro] | images_list, aspect_ratio, duration, keep_original_sound |
kling-v2.6-pro-i2v |
Image to Video | duration, sound |
pixverse-v5.5-i2v |
Image to Video | images_list, style, thinking, aspect_ratio |
wan2.2-spicy-image-to-video |
Spicy Image to Video | resolution, duration |
wan2.6-image-to-video |
Image to Video | resolution, duration, shot_type |
kling-o1-standard-image-to-video |
Image to Video [Standard] | last_image, duration |
kling-o1-standard-reference-to-video |
Reference to Video [Standard] | images_list, aspect_ratio, duration |
seedance-v1.5-pro-i2v |
Image to Video | last_image, aspect_ratio, resolution, duration |
seedance-v1.5-pro-i2v-fast |
Image to Video [Fast] | last_image, aspect_ratio, resolution, duration |
ltx-2-19b-image-to-video |
Std Image to Video | resolution, duration |
kling-v3.0-pro-image-to-video |
Image to Video [Pro] | last_image, duration, generate_audio |
kling-v3.0-standard-image-to-video |
Image to Video [standard] | last_image, duration, generate_audio |
</details>
<details> <summary><b>Text to Video</b> — 44 models</summary>
| Model slug | Variant | Extra parameters |
|---|---|---|
veo3-text-to-video |
Text to Video | aspect_ratio |
veo3-fast-text-to-video |
Text to Video [Fast] | aspect_ratio |
runway-text-to-video |
Text to Video | aspect_ratio, resolution, duration |
wan2.1-text-to-video |
Text to Video | aspect_ratio, resolution, quality, duration |
hunyuan-text-to-video |
Text to Video | aspect_ratio |
hunyuan-fast-text-to-video |
Fast Text to Video | aspect_ratio |
seedance-lite-t2v |
Lite Text to Video | aspect_ratio, resolution, duration, camera_fixed |
seedance-pro-t2v |
Pro Text to Video | aspect_ratio, resolution, duration, camera_fixed |
kling-v2.1-master-t2v |
Master Text to Video | aspect_ratio, duration |
wan2.2-text-to-video |
Text to Video | aspect_ratio, resolution, quality, duration |
pixverse-v4.5-t2v |
Text to Video | aspect_ratio, resolution, duration |
vidu-v2.0-t2v |
Text to Video | aspect_ratio, resolution, duration |
wan2.2-5b-fast-t2v |
Fast Text to Video | aspect_ratio, resolution |
minimax-hailuo-02-standard-t2v |
Standard T2V | duration, resolution |
minimax-hailuo-02-pro-t2v |
Pro T2V | duration, resolution |
pixverse-v5-t2v |
Text to Video | aspect_ratio, resolution, duration |
kling-v2.5-turbo-pro-t2v |
Pro Text to Video | aspect_ratio, duration |
wan2.5-text-to-video |
Text to Video | aspect_ratio, resolution, duration |
wan2.5-text-to-video-fast |
Text to Video (Fast) | aspect_ratio, resolution, duration |
openai-sora |
Sora Text to Video | aspect_ratio, resolution |
openai-sora-2-text-to-video |
Sora 2 Text to Video | aspect_ratio, duration, remove_watermark |
ovi-text-to-video |
Text to Video | aspect_ratio |
openai-sora-2-pro-text-to-video |
Sora 2 Pro Text to Video | aspect_ratio, duration, resolution, remove_watermark |
veo3.1-text-to-video |
Text to Video | aspect_ratio, duration, resolution |
veo3.1-fast-text-to-video |
Text to Video [Fast] | aspect_ratio, duration, resolution |
openai-sora-2-pro-storyboard |
Sora 2 Pro Storyboard | shots, duration, images_list, aspect_ratio |
veo3.1-extend-video |
Extend Video | request_id |
seedance-pro-t2v-fast |
Pro Text to Video Fast | resolution, duration, aspect_ratio, camera_fixed |
ltx-2-pro-text-to-video |
Pro Text to Video | duration, generate_audio |
ltx-2-fast-text-to-video |
Fast Text to Video | duration, generate_audio |
minimax-hailuo-2.3-pro-t2v |
Pro T2V | resolution |
minimax-hailuo-2.3-standard-t2v |
Standard T2V | duration |
grok-imagine-text-to-video |
Text to Video | aspect_ratio, mode, duration |
kling-o1-text-to-video |
Text to Video [Pro] | aspect_ratio, duration |
kling-v2.6-pro-t2v |
Text to Video | aspect_ratio, duration, sound |
pixverse-v5.5-t2v |
Text to Video | style, thinking, aspect_ratio, resolution |
wan2.6-text-to-video |
Text to Video | aspect_ratio, resolution, duration, shot_type |
seedance-v1.5-pro-t2v |
Text to Video | aspect_ratio, resolution, duration, generate_audio |
seedance-v1.5-pro-t2v-fast |
Text to Video [Fast] | aspect_ratio, resolution, duration, generate_audio |
ltx-2-19b-text-to-video |
Std Text to Video | aspect_ratio, resolution, duration |
veo3.1-4k-video |
4k Video | request_id |
kling-v3.0-pro-text-to-video |
Text to Video [Pro] | aspect_ratio, duration, generate_audio |
kling-v3.0-standard-text-to-video |
Text to Video [standard] | aspect_ratio, duration, generate_audio |
seedance-v2.0-t2v |
Seedance 2.0 | aspect_ratio, duration, quality |
</details>
<details> <summary><b>Image to Image</b> — 56 models</summary>
| Model slug | Variant | Extra parameters |
|---|---|---|
ai-image-upscaler |
Image Upscaler | prompt only |
ai-image-face-swap |
Image Faceswap | swap_url, target_index |
ai-dress-change |
Dress Change | model_image_url, garment_image_url |
ai-background-remover |
Background Remover | prompt only |
ai-product-shot |
Product Shot | scene_description |
ai-skin-enhancer |
Skin Enhancer | prompt only |
ai-color-photo |
Color Photo | prompt only |
flux-kontext-dev-i2i |
Kontext Dev I2I | images_list, aspect_ratio, num_images |
ai-product-photography |
Product Photography | person_image_url, product_image_url |
ai-ghibli-style |
Ghibli Style | prompt only |
ai-image-extension |
Image Extension | prompt only |
ai-object-eraser |
Object Eraser | mask_image_url |
flux-kontext-pro-i2i |
Kontext Pro I2I | images_list, aspect_ratio |
flux-kontext-max-i2i |
Kontext Max I2I | images_list, aspect_ratio |
gpt4o-image-to-image |
Image to Image | images_list, aspect_ratio, num_images |
gpt4o-edit |
Edit Image | mask_image_url, aspect_ratio, num_images |
midjourney-v7-image-to-image |
Image to Image | speed, aspect_ratio, variety, stylization |
gpt-image-2-image-to-image |
GPT Image 2 (Image to Image) | images_list, aspect_ratio, resolution, quality |
bytedance-seededit-v3 |
Edit Image v3 | prompt only |
midjourney-v7-style-reference |
Style Reference | speed, aspect_ratio, variety, stylization |
midjourney-v7-omni-reference |
Omni Reference | speed, aspect_ratio, weight, variety |
minimax-image-01-subject-reference |
Subject Reference | aspect_ratio, num_images |
ideogram-character |
Character | render_speed, style, aspect_ratio, num_images |
flux-pulid |
Pulid Image to Image | aspect_ratio |
qwen-image-edit |
Edit Image | aspect_ratio |
image-effects |
Image Effects | name |
nano-banana-edit |
Edit Image | images_list, aspect_ratio |
ideogram-v3-reframe |
v3 Reframe | aspect_ratio, render_speed, style, num_images |
bytedance-seedream-edit-v4 |
Edit Image v4 | images_list, aspect_ratio, resolution, num_images |
nano-banana-effects |
Image Effects | name, aspect_ratio |
flux-kontext-effects |
Image Effects | name |
flux-redux |
Redux Image to Image | aspect_ratio, num_images |
qwen-image-edit-plus |
Edit Image Plus | images_list, width, height |
wan2.5-image-edit |
Edit Image | images_list, width, height |
higgsfield-soul-image-to-image |
Image to Image | style, aspect_ratio, strength, quality |
reve-image-edit |
Edit Image | prompt only |
topaz-image-upscale |
Image Upscale | upscale_factor |
seedvr2-image-upscale |
Image Upscale | resolution |
qwen-image-edit-plus-lora |
Edit Image Plus Lora | images_list, rotate_right_left, move_forward, vertical_angle |
nano-banana-pro-edit |
Pro Edit Image | images_list, aspect_ratio, resolution |
image-passthrough |
Image to Image | make_input |
kling-o1-edit-image |
Edit Image [Pro] | images_list, aspect_ratio, resolution |
flux-2-dev-edit |
Edit Image [Dev] | images_list, width, height |
flux-2-flex-edit |
Edit Image [Flex] | images_list, aspect_ratio, resolution |
flux-2-pro-edit |
Edit Image [Pro] | images_list, aspect_ratio, resolution |
vidu-q2-reference-to-image |
Reference to Image | images_list, aspect_ratio, resolution |
bytedance-seedream-v4.5-edit |
Edit Image | images_list, aspect_ratio, quality |
qwen-image-edit-2511 |
Edit Image 2511 | images_list, width, height |
wan2.6-image-edit |
Edit Image | images_list |
qwen-text-to-image-2512 |
Text to Image 2512 | width, height |
gpt-image-1.5-edit |
Image to Image | images_list, aspect_ratio, quality |
grok-imagine-image-to-image |
Image to Image | prompt only |
Api Node |
Image to Image | model_url, api_key, params |
flux-2-klein-4b-edit |
Edit Image [Klein 4B] | images_list, aspect_ratio |
flux-2-klein-9b-edit |
Edit Image [Klein 9B] | images_list, aspect_ratio |
add-image-watermark |
Add Image Watermark | watermark_image_url, position, opacity, scale |
</details>
<details> <summary><b>Video to Video</b> — 27 models</summary>
| Model slug | Variant | Extra parameters |
|---|---|---|
ai-video-face-swap |
Video Faceswap | target_gender, target_index |
mmaudio-v2-video-to-video |
v2 Video to Video | duration |
runway-act-two-v2v |
Act 2 Video to Video | reference_video_url, aspect_ratio |
runway-aleph-v2v |
Aleph Video to Video | aspect_ratio |
luma-modify-video |
Modify V2V | prompt only |
luma-flash-reframe |
Flash Reframe V2V | aspect_ratio, duration |
ai-dance-effects |
AI Dance Effects | resolution |
infinitetalk-video-to-video |
Audio to Video | resolution |
ai-video-upscaler |
Video Upscaler | resolution, copy_audio |
wan2.2-edit-video |
Edit Video | resolution |
heygen-video-translate |
Video Translate | language |
wan2.2-animate |
Anime Video | mode, resolution |
topaz-video-upscale |
Video Upscale | upscale_factor |
ai-video-upscaler-pro |
Video Upscaler Pro | resolution |
video-watermark-remover |
Watermark Remover | prompt only |
remix-video |
Remix Video | aspect_ratio |
video-passthrough |
Video to Video | make_input |
kling-o1-video-edit |
Edit Video [Pro] | images_list, aspect_ratio, keep_original_sound |
kling-o1-video-edit-fast |
Edit Video Fast [Pro] | images_list, aspect_ratio, keep_original_sound |
wan2.2-spicy-video-extend |
Spicy Video Extend | resolution, duration |
kling-o1-standard-video-edit |
Edit Video [Standard] | images_list, keep_original_sound |
kling-v2.6-pro-motion-control |
Pro Motion Control | prompt only |
seedance-v1.5-pro-video-extend |
Video Extend | resolution, duration, generate_audio, camera_fixed |
seedance-v1.5-pro-video-extend-fast |
Video Extend [Fast] | resolution, duration, generate_audio, camera_fixed |
kling-v2.6-std-motion-control |
Std Motion Control | prompt only |
add-video-watermark |
Add Video Watermark | watermark_image_url, position, opacity, scale |
ai-clipping |
AI Clipping | num_highlights, aspect_ratio, return_coordinates_only |
</details>
<details> <summary><b>Text to Audio</b> — 8 models</summary>
| Model slug | Variant | Extra parameters |
|---|---|---|
mmaudio-v2-text-to-audio |
v2 Text to Audio | duration |
suno-create-music |
Create Music | style, model, instrumental, negative_tags |
suno-remix-music |
Remix Music | style, model, instrumental, negative_tags |
suno-extend-music |
Extend Music | style, model, continue_at, instrumental |
minimax-voice-clone |
Voice Clone | custom_voice_id, model, need_noise_reduction, need_volume_normalization |
minimax-speech-2.6-hd |
Speech HD | voice_id, speed, volume, pitch |
minimax-speech-2.6-turbo |
Speech Turbo | voice_id, speed, volume, pitch |
audio-passthrough |
Text to Audio | make_input |
</details>
<details> <summary><b>Text to Image</b> — 47 models</summary>
| Model slug | Variant | Extra parameters |
|---|---|---|
flux-dev |
Dev | width, height, num_images |
flux-kontext-dev-t2i |
Kontext Dev T2I | aspect_ratio, num_images |
hidream-i1-fast |
Fast | width, height, num_images |
hidream-i1-dev |
Dev | width, height, num_images |
hidream-i1-full |
Full | width, height, num_images |
ai-anime-generator |
Anime Generator | width, height |
wan2.1-text-to-image |
Text to Image | width, height |
flux-kontext-pro-t2i |
Kontext Pro T2I | aspect_ratio |
flux-kontext-max-t2i |
Kontext Max T2I | aspect_ratio |
gpt4o-text-to-image |
Text to Image | aspect_ratio, num_images |
midjourney-v7-text-to-image |
Text to Image | speed, aspect_ratio, variety, stylization |
flux-schnell |
Schnell | width, height, num_images |
gpt-image-2-text-to-image |
GPT Image 2 (Text to Image) | aspect_ratio, resolution, quality |
bytedance-seedream-v3 |
Text to Image v3 | aspect_ratio |
qwen-image |
Text to Image | aspect_ratio, num_images |
ideogram-v3-t2i |
v3 Text to Image | render_speed, style, aspect_ratio, num_images |
nano-banana |
Text to Image | aspect_ratio |
google-imagen4 |
Imagen 4 | aspect_ratio, num_images |
google-imagen4-fast |
Imagen 4 Fast | aspect_ratio, num_images |
google-imagen4-ultra |
Imagen 4 Ultra | aspect_ratio |
sdxl-image |
Text to Image | width, height |
bytedance-seedream-v4 |
Text to Image v4 | aspect_ratio, resolution, num_images |
hunyuan-image-2.1 |
Text to Image v2.1 | width, height |
chroma-image |
Text to Image | width, height |
flux-krea-dev |
Krea Dev | aspect_ratio, num_images |
perfect-pony-xl |
Text to Image | width, height |
neta-lumina |
Text to Image | width, height |
wan2.5-text-to-image |
Text to Image | width, height |
hunyuan-image-3.0 |
Text to Image v3.0 | width, height |
leonardoai-phoenix-1.0 |
Phoenix 1.0 T2I | aspect_ratio |
leonardoai-lucid-origin |
Lucid Origin T2I | aspect_ratio |
reve-text-to-image |
Text to Image | aspect_ratio |
grok-imagine-text-to-image |
Text to Image | aspect_ratio |
nano-banana-pro |
Text to Image Pro | aspect_ratio, resolution |
kling-o1-text-to-image |
Text to Image [Pro] | aspect_ratio, resolution, num_images |
z-image-turbo |
Text to Image Turbo | width, height |
flux-2-dev |
Text to Image [Dev] | width, height |
flux-2-flex |
Text to Image [Flex] | aspect_ratio, resolution |
flux-2-pro |
Text to Image [Pro] | aspect_ratio, resolution |
vidu-q2-text-to-image |
Text to Image | aspect_ratio, resolution |
bytedance-seedream-v4.5 |
Text to Image | aspect_ratio, quality |
gpt-image-1.5 |
Text to Image | aspect_ratio, quality |
wan2.6-text-to-image |
Text to Image | width, height |
flux-2-klein-4b |
Text to Image [Klein 4B] | aspect_ratio |
flux-2-klein-9b |
Text to Image [Klein 9B] | aspect_ratio |
z-image-base |
Text to Image Base | aspect_ratio, strength |
seedream-5.0 |
Seedream 5.0 | prompt only |
</details>
<details> <summary><b>Training</b> — 4 models</summary>
| Model slug | Variant | Extra parameters |
|---|---|---|
flux-dev-lora |
Dev LoRA | model_id, width, height, num_images |
wan2.1-lora-i2v |
Image to Video (LoRA) | lora_list, aspect_ratio, resolution, quality |
wan2.1-lora-t2v |
Text to Video (LoRA) | lora_list, aspect_ratio, resolution, quality |
sdxl-lora |
LoRA | lora_list, width, height |
</details>
<details> <summary><b>Audio to Video</b> — 11 models</summary>
| Model slug | Variant | Extra parameters |
|---|---|---|
sync-lipsync |
sync | prompt only |
latent-sync |
latent | prompt only |
creatify-lipsync |
Creatify | prompt only |
veed-lipsync |
Veed | prompt only |
wan2.2-speech-to-video |
Audio to Video | resolution |
infinitetalk-image-to-video |
Image to Video | resolution |
kling-v1-avatar-standard |
Standard A2V | prompt only |
kling-v1-avatar-pro |
Pro A2V | prompt only |
kling-v2-avatar-standard |
Standard A2V | prompt only |
kling-v2-avatar-pro |
Pro A2V | prompt only |
ltx-2-19b-lipsync |
Audio to Video | resolution |
</details>
<details> <summary><b>Text to Text</b> — 8 models</summary>
| Model slug | Variant | Extra parameters |
|---|---|---|
gpt-5-nano |
GPT5 Nano Text | prompt only |
sora2-storyboard |
Storyboard | duration |
gpt-5-mini |
GPT5 Mini Text | prompt only |
text-passthrough |
Text to Text | make_input |
any-llm |
Text to Text | system_prompt, model, reasoning, priority |
openrouter-vision |
Image to Text | images_list, system_prompt, model, reasoning |
agentic-architect |
Architect | prompt only |
agent-chat |
Agent Chat | message, conversation_id |
</details>
<details> <summary><b>Image to 3D</b> — 9 models</summary>
| Model slug | Variant | Extra parameters |
|---|---|---|
meshy-6-image-to-3d |
Image to 3D | should_texture, topology, target_polycount, should_remesh |
meshy-6-multi-image-to-3d |
Image to 3D | images_list, should_texture, topology, target_polycount |
meshy-6-text-to-3d |
Image to 3D | mode, topology, target_polycount, should_remesh |
tripo3d-h31-image-to-3d |
Image to 3D | texture, texture_quality, geometry_quality, pbr |
tripo3d-h31-multiview-to-3d |
Image to 3D | images_list, texture, texture_quality, geometry_quality |
tripo3d-h31-text-to-3d |
Image to 3D | texture, texture_quality, geometry_quality, pbr |
tripo3d-p1-image-to-3d |
Image to 3D | texture, face_limit |
tripo3d-p1-text-to-3d |
Image to 3D | texture, face_limit |
meshy-image-to-3d |
Image to 3D (Meshy direct) | prompt only |
</details>
Architecture & security
app/api/proxy/* server-side key-holding proxies (muapi, google, elevenlabs, r2, fetch)
app/api/canvas/* the agent bridge — HTTP ops + SSE live-sync
components/nodes/ all 57 node implementations
lib/api/ dispatch, per-model routing, model catalog
lib/flow/ templates, propagation, GLB→STL converter
mcp/ the zero-dependency MCP server
- Localhost-only API routes — every proxy and bridge route rejects non-local requests with a 403.
- CSRF-hardened — mutating endpoints require
application/json, forcing a failing preflight on any cross-origin attempt. - Keys stay yours —
.env.localkeys never reach the browser; browser-pasted keys travel only to your own localhost server. - Zero telemetry — no analytics, no accounts, no database, no phone-home.
The dev server has no auth by design — it's built for your own machine. Don't expose it to the public internet without adding your own auth layer.
License & branding
Code: Apache-2.0. Use it, change it, ship it commercially, whatever you like.
Brand: "Loometo" and the Loometo logo are trademarks of Dinimiciuil Labs and are not covered by the code license — see TRADEMARK.md. Fork the code freely, but rebrand your fork: don't ship it as "Loometo" or use the logo. Credit travels with the code via NOTICE.
Made by Dinimiciuil Labs.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。