NewSeedance 2.5just landed. A full 30 seconds, with sound, in one take.30 seconds, with sound, one take.Try it immediatelyTry it

From Claude, Claude Code, Codex, Hermes, OpenClaw, or your own code

Or just ask for the shot.

Connect justpictur.ing to the agent you already use, then say what you want in plain words: an image, a clip, a voice-over, a score, or the whole cut, finished. No prompt to engineer, no model to research — the connection brings both, and it all runs on your account. Put the same ask on a schedule and it runs without you.

Choose a client

Claude

Bring up the second one again, full size.

justpictur.ing · list_generations

get_generation

The running shoe from a low three-quarter angle, sun flaring past the heel

Nothing to run · already in your libraryGo back to it

Take this listing photo and light it like a studio.1 phone photo

justpictur.ing · create_upload

generate_with_recipe

The same clutch on a seamless grey studio sweep, lit from the front left with one soft contact shadow under it

Same bag, new light · saved to your libraryFix the photo you have

Cut me an ad from these two: serve, close-ups, endcard.2 catalogue photos

justpictur.ing · create_upload

generate_clip

Five seconds, four shots · saved to your libraryMake the whole ad

Three ads for a shoe on a salt flat, vertical.

justpictur.ing · quote_generation

generate_image

A charcoal running shoe on a cracked salt flat at dawn, lit from behindThe same running shoe from a low three-quarter angle, sun flaring past the heelThe same running shoe from directly above, salt polygons radiating around it

Three ads back · saved to your libraryAsk for it

One hero shot for each of these five products, same look.5 uploads

justpictur.ing · quote_generation

generate_image

A running shoe as a centred product hero on the salt flat

All five, one look · saved to your libraryLeave it running

import { call } from "./mcp.mjs"; const args = { prompt: "A charcoal running shoe on a cracked salt flat at dawn", aspect_ratio: "3:4",}; // Nothing on the server forces this, so ask first.const quote = await call("quote_generation", { target: "image", ...args }); const { generation } = await call("generate_image", args); let row;do { await new Promise((r) => setTimeout(r, 2000)); row = await call("get_generation", { generation_id: generation.generation_id });} while (row.generation.status !== "ready");
import time from mcp import call args = { "prompt": "A charcoal running shoe on a cracked salt flat at dawn", "aspect_ratio": "3:4",} # Nothing on the server forces this, so ask first.quote = call("quote_generation", {"target": "image", **args}) generation = call("generate_image", args)["generation"] while True: row = call("get_generation", {"generation_id": generation["generation_id"]}) if row["generation"]["status"] == "ready": break time.sleep(2)
# Nothing on the server forces this, so ask first.curl -s https://api.justpictur.ing/mcp \ -H "authorization: Bearer $JUSTPICTURING_TOKEN" \ -H "content-type: application/json" \ -H "accept: application/json, text/event-stream" \ -d '{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "quote_generation", "arguments": { "target": "image", "prompt": "…" } } }' # Then the same call again with generate_image, and get_generation# until status is ready. Three calls, no SDK.

justpictur.ing · quote_generation

generate_image

A charcoal running shoe on a cracked salt flat at dawn, lit from behindThe same running shoe from a low three-quarter angle, sun flaring past the heelThe same running shoe from directly above, salt polygons radiating around it

Run from your own code · saved to your libraryCall it yourself

What people ask for

  • Three vertical ads for this shoe on a salt flat, at dawn.quote_generationgenerate_image
  • Take this phone photo and light it like a studio.create_uploadgenerate_with_recipe
  • The second one from yesterday — animate it, slow push in.list_mediaanimate_image
  • Same face as @ana, new outfit, same lighting.list_subjectsgenerate_image
  • Read the script in French, warm, unhurried.cast_voicegenerate_voiceover
  • Score it and put the four clips together.generate_musicjoin_clips
  • Carry on from where that one ended, ten more seconds.run_toolgenerate_clip
  • Put this week's five in Campaign.list_generationsset_folder_membership

Leave it running

Then stop asking.

Claude can hold an ask on a schedule and call the same tools without you there. Same account, same balance, same library to wake up to.

  • Mondays, 7am

    Three hero shots for whatever landed in New Arrivals, same look as always, filed under This Week.

    list_mediagenerate_imageset_folder_membership
  • Every morning

    One vertical clip from yesterday's best still, with a bed under it.

    animate_imagegenerate_musicjoin_clips
  • First of the month

    Price the whole run before you commit me to any of it.

    quote_generationget_credits

Nothing on the server forces a price check, so put one in the ask — a run nobody is watching is exactly where it earns its place.

Built for agents

Any MCP client, one endpoint.

justpictur.ing speaks the Model Context Protocol, so a client reaches the same images, clips, voice, music, recipes and folders the studio does: same account, same limits, same prices. One line wires it up, and the endpoint does the teaching.

  • Connect with OAuth, or with a token you can revoke.
  • Your client is briefed the moment it connects: how a generation runs, what to reuse before it spends, what to read before it picks.
  • Every model's ratios, durations, reference limits and credit cost ride along with the tools it can call.
  • Whole jobs arrive as ordered sequences: animate a still, record a voice-over, stage a product shot, run a curated recipe.
  • It can price a job before it spends, and everything it makes lands in your library.