ComfyUI models API
Call 1 ComfyUI model through one PopNow API key: OpenJutsu Object Swap. Prices start at $0.105 per second.
- models
- 1
- endpoints
- 1
- starting price, per second
- $0.105
ComfyUI models
Integrating ComfyUI OpenJutsu video edits
Two video edit tools from one open-source app
ComfyUI is the provider attribution for OpenJutsu, an open-source video app built from open-weight video, segmentation and vision-language models. The catalog lists two video-edit tasks. OpenJutsu Object Swap changes one named element inside a continuous shot, such as a jacket, a hairstyle, a car or a product, or keeps that element and replaces everything around it. OpenJutsu Character Swap replaces whole people in a shot from one to four character images. Both keep the camera movement, the action and the original soundtrack of the source clip, so they suit edits where the timing of the shot must stay exactly as filmed. Start with a short, well-lit fictional scene and a single clear change before you try several targets at once.
Name the target, then describe the result
Object Swap requires video_url and edit_target. Write edit_target as one or two words that match what is visible in the frame, for example jacket or hair, and separate several targets with commas. Describe the new look in prompt, add a reference_image_url that shows it, or send both; at least one of the two is required. Set edit_mode to background when the named target should stay and the surroundings should change, for example people kept on a new street. The resolution field offers 480p, 540p, 768p and 1080p, and the tier sets the per-second rate. Character Swap takes reference_image_urls in the order of the people to replace, with an optional prompt line per person. For other kinds of change, compare the general video editors from MiniMax and Kuaishou, which follow a free-form instruction instead of a named target.
Prepare clips and store results
Both tools accept one continuous take of 3 to 15 seconds and bill per second of the source clip, rounded up, with a three-second minimum. Clips that stop partway through a second can fail with a generic error and are refunded, so trim the source to a whole number of seconds before you submit it. Results can come back slightly shorter than the source; measure them before placing them on a timeline. Send the model and input to /api/v1/jobs/createTask with an Authorization Bearer sk-popnow- key on your backend, keep the returned taskId, and read /api/v1/jobs/recordInfo or a completion webhook before you show the edited video. Use only footage and images you own or have permission to edit, and keep the source clip with each accepted version so later edits stay traceable.
ComfyUI API prices
See pricing| Model | Best for | List price | PopNow price | You save |
|---|---|---|---|---|
OpenJutsu Object Swapcomfyui/openjutsu-object-swap/video-edit | Object Swap | — | $0.105per second |
List prices are each maker's own published price for the same output, checked on Oct 14, 2026. Prices shown are starting prices; open a model for every tier.
Call a ComfyUI model
The same request works for every model: change the model name and its input.
curl -X POST https://api.popnow.ai/api/v1/jobs/createTask \
-H "Authorization: Bearer $POPNOW_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"model": "comfyui/openjutsu-object-swap/video-edit",
"input": {
"prompt": "A slow aerial shot drifting over a misty pine forest at sunrise",
"video_url": "https://media.popnow.ai/effects/flower-bloom-1abd6efb.mp4",
"edit_target": "example",
"edit_mode": "change",
"resolution": "768p"
}
}'import os, uuid, requests
res = requests.post(
"https://api.popnow.ai/api/v1/jobs/createTask",
headers={
"Authorization": f"Bearer {os.environ['POPNOW_API_KEY']}",
"Idempotency-Key": str(uuid.uuid4()),
},
json={
"model": "comfyui/openjutsu-object-swap/video-edit",
"input": {
"prompt": "A slow aerial shot drifting over a misty pine forest at sunrise",
"video_url": "https://media.popnow.ai/effects/flower-bloom-1abd6efb.mp4",
"edit_target": "example",
"edit_mode": "change",
"resolution": "768p"
}
},
timeout=30,
)
body = res.json()
if body["code"] != 200:
raise RuntimeError(f'{body["code"]} {body["msg"]}')
print(body["data"]["taskId"]) # poll this id, or wait for your callBackUrlconst res = await fetch("https://api.popnow.ai/api/v1/jobs/createTask", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.POPNOW_API_KEY}`,
"Content-Type": "application/json",
"Idempotency-Key": crypto.randomUUID(),
},
body: JSON.stringify({
"model": "comfyui/openjutsu-object-swap/video-edit",
"input": {
"prompt": "A slow aerial shot drifting over a misty pine forest at sunrise",
"video_url": "https://media.popnow.ai/effects/flower-bloom-1abd6efb.mp4",
"edit_target": "example",
"edit_mode": "change",
"resolution": "768p"
}
}),
});
const { code, msg, data } = await res.json();
if (code !== 200) throw new Error(`${code} ${msg}`);
console.log(data.taskId); // poll this id, or wait for your callBackUrlFrequently asked questions
What should I write in edit_target?
Use one or two words that describe the element as it appears in the shot, such as jacket, hair or car. Separate several elements with commas. Put the description of the new look in prompt, because edit_target only tells the tool where to make the change.
When should I use background mode?
Choose edit_mode background when the named target should stay exactly as filmed and everything around it should change. Name the people or object to keep in edit_target and describe the new location in prompt. Check the result, because details near the target can still shift.
Why did a valid clip fail with a generic error?
Some clip lengths that end partway through a second fail upstream, for example 124 frames at 24 frames per second. Failed jobs are refunded. Trim the clip to a whole number of seconds, such as five seconds, and submit it again.
How long are the results?
The result keeps the source audio and motion but can be a little shorter than the clip you send, for example about four and a half seconds from a five-second source. Measure the returned duration before you fit the edit into a longer sequence.
Other model makers
All model makers- Alibaba40 models−33%Wan 3.0 · Qwen Image 2.1 Pro · Qwen Image 2.1 Turbo · Qwen Image 2.1From $0.01 per image
- PopNow27 modelsCelebrity Look-Alike · Background Remover · Image Upscaler · Object EraserFrom $0.00028 per second
- Black Forest Labs21 models−33%FLUX.2 Max · FLUX 3 Klein Base LoRA · FLUX 3 Klein Base · FLUX 3From $0.006 per image
- ByteDance19 models−30%Seedance 2.5 · Seedream 5.0 Pro · Seed Audio 1.0 · OmniHuman 2.0From $0.024 per second
- MiniMax15 models−55%MiniMax H3 · MiniMax Speech 2.8 HD · MiniMax Music 3.0 · MiniMax H3 HighSpeedFrom $0.042 per image
- Kuaishou9 models−20%Kling 4.0 · Kling O3 · Kling 3.0 Turbo · Kling 3.0From $0.0512 per second
Start building in minutes
One key for every model, a USD balance you top up when you need to, and an exact price before every run.