live
MODEL IDprunaai:p-video@replace

P-Video-Replace

Pruna AI
by

P-Video-Replace is a video transformation model that swaps the on-camera character in an existing video with the character from a reference image. It is built to preserve the original motion, timing, camera behavior, lighting, and background while changing who appears in the clip, making it useful for UGC ad variations, content localization, avatar or mascot insertion, and other scalable character-replacement workflows.

P-Video-Replace

video-edit

Cut-Paper Curator Exhibition Teaser$0.362~3m 2s
Try in Playground
import { createClient } from '@runware/sdk'

const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()

const [result] = await client.run({
  model: 'prunaai:p-video@replace',
  positivePrompt: 'Replace the sole human curator in the source video with the exact articulated cut-paper curator depicted in the reference image, creating a sophisticated handcrafted folk-art character restyle for a museum exhibition teaser. Preserve the reference character\'s layered paper construction, floral cutouts, scalloped contours, visible fibers, brass joints, vermilion, mustard, forest-green, cream and charcoal palette, braided hair and patterned clothing. Animate the paper figure with the source curator\'s precise body movement, hand gestures, facial performance, gaze and interaction with the woven sample. Maintain accurate lip movement and source-audio synchronization. Preserve the original gallery, historic loom, lighting, shadows, camera slide, framing, timing and depth of field without restyling or altering the environment. Keep one consistently proportioned character with stable paper details throughout; no additional people, text or graphics.',
  resolution: '1080p',
  fps: 24,
  settings: {
    preserveAudio: true,
    sourceAudioSync: true,
    turbo: false
  },
  inputs: {
    referenceImages: [
      'https://assets.runware.ai/assets/inputs/36b95a1f-e462-4f71-af9b-add9ba1cd00b.jpg'
    ],
    video: 'https://assets.runware.ai/assets/inputs/dc09e729-42c9-43d1-adc4-e6cb7e604f7c.mp4'
  }
})
import asyncio
import os

from runware import Runware


async def main():
    async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
        results = await client.run({
            "model": "prunaai:p-video@replace",
            "positivePrompt": "Replace the sole human curator in the source video with the exact articulated cut-paper curator depicted in the reference image, creating a sophisticated handcrafted folk-art character restyle for a museum exhibition teaser. Preserve the reference character's layered paper construction, floral cutouts, scalloped contours, visible fibers, brass joints, vermilion, mustard, forest-green, cream and charcoal palette, braided hair and patterned clothing. Animate the paper figure with the source curator's precise body movement, hand gestures, facial performance, gaze and interaction with the woven sample. Maintain accurate lip movement and source-audio synchronization. Preserve the original gallery, historic loom, lighting, shadows, camera slide, framing, timing and depth of field without restyling or altering the environment. Keep one consistently proportioned character with stable paper details throughout; no additional people, text or graphics.",
            "resolution": "1080p",
            "fps": 24,
            "settings": {
                "preserveAudio": True,
                "sourceAudioSync": True,
                "turbo": False
            },
            "inputs": {
                "referenceImages": [
                    "https://assets.runware.ai/assets/inputs/36b95a1f-e462-4f71-af9b-add9ba1cd00b.jpg"
                ],
                "video": "https://assets.runware.ai/assets/inputs/dc09e729-42c9-43d1-adc4-e6cb7e604f7c.mp4"
            }
        })


asyncio.run(main())
curl https://api.runware.ai/v1 \
  -H "Authorization: Bearer $RUNWARE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '[
    {
      "taskType": "videoInference",
      "taskUUID": "063c044d-f8bf-4fff-ae8b-69abf4ddb9dd",
      "model": "prunaai:p-video@replace",
      "positivePrompt": "Replace the sole human curator in the source video with the exact articulated cut-paper curator depicted in the reference image, creating a sophisticated handcrafted folk-art character restyle for a museum exhibition teaser. Preserve the reference character's layered paper construction, floral cutouts, scalloped contours, visible fibers, brass joints, vermilion, mustard, forest-green, cream and charcoal palette, braided hair and patterned clothing. Animate the paper figure with the source curator's precise body movement, hand gestures, facial performance, gaze and interaction with the woven sample. Maintain accurate lip movement and source-audio synchronization. Preserve the original gallery, historic loom, lighting, shadows, camera slide, framing, timing and depth of field without restyling or altering the environment. Keep one consistently proportioned character with stable paper details throughout; no additional people, text or graphics.",
      "resolution": "1080p",
      "fps": 24,
      "settings": {
        "preserveAudio": true,
        "sourceAudioSync": true,
        "turbo": false
      },
      "inputs": {
        "referenceImages": [
          "https://assets.runware.ai/assets/inputs/36b95a1f-e462-4f71-af9b-add9ba1cd00b.jpg"
        ],
        "video": "https://assets.runware.ai/assets/inputs/dc09e729-42c9-43d1-adc4-e6cb7e604f7c.mp4"
      }
    }
  ]'
runware run prunaai:p-video@replace \
  positivePrompt="Replace the sole human curator in the source video with the exact articulated cut-paper curator depicted in the reference image, creating a sophisticated handcrafted folk-art character restyle for a museum exhibition teaser. Preserve the reference character's layered paper construction, floral cutouts, scalloped contours, visible fibers, brass joints, vermilion, mustard, forest-green, cream and charcoal palette, braided hair and patterned clothing. Animate the paper figure with the source curator's precise body movement, hand gestures, facial performance, gaze and interaction with the woven sample. Maintain accurate lip movement and source-audio synchronization. Preserve the original gallery, historic loom, lighting, shadows, camera slide, framing, timing and depth of field without restyling or altering the environment. Keep one consistently proportioned character with stable paper details throughout; no additional people, text or graphics." \
  resolution=1080p \
  fps=24 \
  settings.preserveAudio=true \
  settings.sourceAudioSync=true \
  settings.turbo=false \
  inputs.referenceImages.0=https://assets.runware.ai/assets/inputs/36b95a1f-e462-4f71-af9b-add9ba1cd00b.jpg \
  inputs.video=https://assets.runware.ai/assets/inputs/dc09e729-42c9-43d1-adc4-e6cb7e604f7c.mp4
{
  "taskType": "videoInference",
  "taskUUID": "063c044d-f8bf-4fff-ae8b-69abf4ddb9dd",
  "model": "prunaai:p-video@replace",
  "positivePrompt": "Replace the sole human curator in the source video with the exact articulated cut-paper curator depicted in the reference image, creating a sophisticated handcrafted folk-art character restyle for a museum exhibition teaser. Preserve the reference character's layered paper construction, floral cutouts, scalloped contours, visible fibers, brass joints, vermilion, mustard, forest-green, cream and charcoal palette, braided hair and patterned clothing. Animate the paper figure with the source curator's precise body movement, hand gestures, facial performance, gaze and interaction with the woven sample. Maintain accurate lip movement and source-audio synchronization. Preserve the original gallery, historic loom, lighting, shadows, camera slide, framing, timing and depth of field without restyling or altering the environment. Keep one consistently proportioned character with stable paper details throughout; no additional people, text or graphics.",
  "resolution": "1080p",
  "fps": 24,
  "settings": {
    "preserveAudio": true,
    "sourceAudioSync": true,
    "turbo": false
  },
  "inputs": {
    "referenceImages": [
      "https://assets.runware.ai/assets/inputs/36b95a1f-e462-4f71-af9b-add9ba1cd00b.jpg"
    ],
    "video": "https://assets.runware.ai/assets/inputs/dc09e729-42c9-43d1-adc4-e6cb7e604f7c.mp4"
  }
}
Response
{
  "taskType": "videoInference",
  "taskUUID": "063c044d-f8bf-4fff-ae8b-69abf4ddb9dd",
  "videoUUID": "a565a0e9-4fbc-4790-b4d6-198b4427fb83",
  "videoURL": "https://vm.runware.ai/video/os/a05d22/ws/5/vi/a565a0e9-4fbc-4790-b4d6-198b4427fb83.mp4",
  "seed": 1807935879,
  "cost": 0.3625
}

video-edit

Coral Dive Computer Colorway Video$0.362~1m 2s
Try in Playground
import { createClient } from '@runware/sdk'

const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()

const [result] = await client.run({
  model: 'prunaai:p-video@replace',
  positivePrompt: 'Replace the cobalt-blue dive computer in the source video with the coral-orange version shown in the reference image. Match the reference product faithfully: coral-orange silicone strap and bezel, dark graphite case, black glass display, identical rugged construction, buttons, proportions, and material finish. Preserve the source video\'s exact product position, scale, orientation, turntable rotation, camera movement, timing, perspective, reflections, water droplets, cyan rim light, wet slate surface, charcoal background, depth of field, and overall premium diving-equipment art direction. The replacement must remain geometrically stable and consistently detailed through every angle, with realistic contact, shadows, highlights, and reflections. Do not introduce people, hands, extra products, logos, captions, or scene changes. Preserve the original audio and keep the water drips and turntable sounds synchronized precisely to the source timing.',
  resolution: '1080p',
  fps: 24,
  settings: {
    preserveAudio: true,
    sourceAudioSync: true,
    turbo: false
  },
  inputs: {
    referenceImages: [
      'https://assets.runware.ai/assets/inputs/e5296e16-68af-4b82-891a-35da0e5932c6.jpg'
    ],
    video: 'https://assets.runware.ai/assets/inputs/b4c6b33e-b58d-4fed-9e8d-28a6b6844bb3.mp4'
  }
})
import asyncio
import os

from runware import Runware


async def main():
    async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
        results = await client.run({
            "model": "prunaai:p-video@replace",
            "positivePrompt": "Replace the cobalt-blue dive computer in the source video with the coral-orange version shown in the reference image. Match the reference product faithfully: coral-orange silicone strap and bezel, dark graphite case, black glass display, identical rugged construction, buttons, proportions, and material finish. Preserve the source video's exact product position, scale, orientation, turntable rotation, camera movement, timing, perspective, reflections, water droplets, cyan rim light, wet slate surface, charcoal background, depth of field, and overall premium diving-equipment art direction. The replacement must remain geometrically stable and consistently detailed through every angle, with realistic contact, shadows, highlights, and reflections. Do not introduce people, hands, extra products, logos, captions, or scene changes. Preserve the original audio and keep the water drips and turntable sounds synchronized precisely to the source timing.",
            "resolution": "1080p",
            "fps": 24,
            "settings": {
                "preserveAudio": True,
                "sourceAudioSync": True,
                "turbo": False
            },
            "inputs": {
                "referenceImages": [
                    "https://assets.runware.ai/assets/inputs/e5296e16-68af-4b82-891a-35da0e5932c6.jpg"
                ],
                "video": "https://assets.runware.ai/assets/inputs/b4c6b33e-b58d-4fed-9e8d-28a6b6844bb3.mp4"
            }
        })


asyncio.run(main())
curl https://api.runware.ai/v1 \
  -H "Authorization: Bearer $RUNWARE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '[
    {
      "taskType": "videoInference",
      "taskUUID": "08090a86-f051-4a07-804d-59a6b0df34c6",
      "model": "prunaai:p-video@replace",
      "positivePrompt": "Replace the cobalt-blue dive computer in the source video with the coral-orange version shown in the reference image. Match the reference product faithfully: coral-orange silicone strap and bezel, dark graphite case, black glass display, identical rugged construction, buttons, proportions, and material finish. Preserve the source video's exact product position, scale, orientation, turntable rotation, camera movement, timing, perspective, reflections, water droplets, cyan rim light, wet slate surface, charcoal background, depth of field, and overall premium diving-equipment art direction. The replacement must remain geometrically stable and consistently detailed through every angle, with realistic contact, shadows, highlights, and reflections. Do not introduce people, hands, extra products, logos, captions, or scene changes. Preserve the original audio and keep the water drips and turntable sounds synchronized precisely to the source timing.",
      "resolution": "1080p",
      "fps": 24,
      "settings": {
        "preserveAudio": true,
        "sourceAudioSync": true,
        "turbo": false
      },
      "inputs": {
        "referenceImages": [
          "https://assets.runware.ai/assets/inputs/e5296e16-68af-4b82-891a-35da0e5932c6.jpg"
        ],
        "video": "https://assets.runware.ai/assets/inputs/b4c6b33e-b58d-4fed-9e8d-28a6b6844bb3.mp4"
      }
    }
  ]'
runware run prunaai:p-video@replace \
  positivePrompt="Replace the cobalt-blue dive computer in the source video with the coral-orange version shown in the reference image. Match the reference product faithfully: coral-orange silicone strap and bezel, dark graphite case, black glass display, identical rugged construction, buttons, proportions, and material finish. Preserve the source video's exact product position, scale, orientation, turntable rotation, camera movement, timing, perspective, reflections, water droplets, cyan rim light, wet slate surface, charcoal background, depth of field, and overall premium diving-equipment art direction. The replacement must remain geometrically stable and consistently detailed through every angle, with realistic contact, shadows, highlights, and reflections. Do not introduce people, hands, extra products, logos, captions, or scene changes. Preserve the original audio and keep the water drips and turntable sounds synchronized precisely to the source timing." \
  resolution=1080p \
  fps=24 \
  settings.preserveAudio=true \
  settings.sourceAudioSync=true \
  settings.turbo=false \
  inputs.referenceImages.0=https://assets.runware.ai/assets/inputs/e5296e16-68af-4b82-891a-35da0e5932c6.jpg \
  inputs.video=https://assets.runware.ai/assets/inputs/b4c6b33e-b58d-4fed-9e8d-28a6b6844bb3.mp4
{
  "taskType": "videoInference",
  "taskUUID": "08090a86-f051-4a07-804d-59a6b0df34c6",
  "model": "prunaai:p-video@replace",
  "positivePrompt": "Replace the cobalt-blue dive computer in the source video with the coral-orange version shown in the reference image. Match the reference product faithfully: coral-orange silicone strap and bezel, dark graphite case, black glass display, identical rugged construction, buttons, proportions, and material finish. Preserve the source video's exact product position, scale, orientation, turntable rotation, camera movement, timing, perspective, reflections, water droplets, cyan rim light, wet slate surface, charcoal background, depth of field, and overall premium diving-equipment art direction. The replacement must remain geometrically stable and consistently detailed through every angle, with realistic contact, shadows, highlights, and reflections. Do not introduce people, hands, extra products, logos, captions, or scene changes. Preserve the original audio and keep the water drips and turntable sounds synchronized precisely to the source timing.",
  "resolution": "1080p",
  "fps": 24,
  "settings": {
    "preserveAudio": true,
    "sourceAudioSync": true,
    "turbo": false
  },
  "inputs": {
    "referenceImages": [
      "https://assets.runware.ai/assets/inputs/e5296e16-68af-4b82-891a-35da0e5932c6.jpg"
    ],
    "video": "https://assets.runware.ai/assets/inputs/b4c6b33e-b58d-4fed-9e8d-28a6b6844bb3.mp4"
  }
}
Response
{
  "taskType": "videoInference",
  "taskUUID": "08090a86-f051-4a07-804d-59a6b0df34c6",
  "videoUUID": "d4356bcd-cb05-4e8d-9102-4f2288f371a3",
  "videoURL": "https://vm.runware.ai/video/os/a08dlim3/ws/5/vi/d4356bcd-cb05-4e8d-9102-4f2288f371a3.mp4",
  "seed": 975986870,
  "cost": 0.3625
}

video-edit

Night Rail Technician Recruitment Clip$0.362~1m 45s
Try in Playground
import { createClient } from '@runware/sdk'

const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()

const [result] = await client.run({
  model: 'prunaai:p-video@replace',
  positivePrompt: 'Replace the single male rail technician in the source video with the female rail technician depicted in the reference image. Preserve her recognizable face, hairstyle, body proportions, lime-yellow coveralls, hard hat, gloves, and boots while transferring the source performer’s exact walking pace, flashlight inspection gestures, head turn, posture, timing, and framing. Relight the replacement naturally for the nighttime depot: cyan overhead illumination, warm amber rim light, crisp reflections on safety strips, realistic flashlight spill, and deep directional shadows consistent with the original scene. Preserve the train, wheel assembly, damp concrete, background, camera tracking movement, lens perspective, composition, scene timing, and all environmental details without alteration. Preserve the source audio and synchronize the replacement technician’s mouth and facial motion precisely to the original spoken line. The result should look like footage captured with the replacement performer on location at night, with no compositing seams, flicker, identity drift, added people, logos, captions, or text.',
  resolution: '1080p',
  fps: 24,
  settings: {
    preserveAudio: true,
    sourceAudioSync: true,
    turbo: false
  },
  inputs: {
    referenceImages: [
      'https://assets.runware.ai/assets/inputs/9e01de68-4bd8-4109-82f7-b6311851f1c0.jpg'
    ],
    video: 'https://assets.runware.ai/assets/inputs/df82f8a5-083b-45e7-8bab-5ecc8499c24c.mp4'
  }
})
import asyncio
import os

from runware import Runware


async def main():
    async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
        results = await client.run({
            "model": "prunaai:p-video@replace",
            "positivePrompt": "Replace the single male rail technician in the source video with the female rail technician depicted in the reference image. Preserve her recognizable face, hairstyle, body proportions, lime-yellow coveralls, hard hat, gloves, and boots while transferring the source performer’s exact walking pace, flashlight inspection gestures, head turn, posture, timing, and framing. Relight the replacement naturally for the nighttime depot: cyan overhead illumination, warm amber rim light, crisp reflections on safety strips, realistic flashlight spill, and deep directional shadows consistent with the original scene. Preserve the train, wheel assembly, damp concrete, background, camera tracking movement, lens perspective, composition, scene timing, and all environmental details without alteration. Preserve the source audio and synchronize the replacement technician’s mouth and facial motion precisely to the original spoken line. The result should look like footage captured with the replacement performer on location at night, with no compositing seams, flicker, identity drift, added people, logos, captions, or text.",
            "resolution": "1080p",
            "fps": 24,
            "settings": {
                "preserveAudio": True,
                "sourceAudioSync": True,
                "turbo": False
            },
            "inputs": {
                "referenceImages": [
                    "https://assets.runware.ai/assets/inputs/9e01de68-4bd8-4109-82f7-b6311851f1c0.jpg"
                ],
                "video": "https://assets.runware.ai/assets/inputs/df82f8a5-083b-45e7-8bab-5ecc8499c24c.mp4"
            }
        })


asyncio.run(main())
curl https://api.runware.ai/v1 \
  -H "Authorization: Bearer $RUNWARE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '[
    {
      "taskType": "videoInference",
      "taskUUID": "befb5e2d-5872-441b-b8fe-ca17adcac7d5",
      "model": "prunaai:p-video@replace",
      "positivePrompt": "Replace the single male rail technician in the source video with the female rail technician depicted in the reference image. Preserve her recognizable face, hairstyle, body proportions, lime-yellow coveralls, hard hat, gloves, and boots while transferring the source performer’s exact walking pace, flashlight inspection gestures, head turn, posture, timing, and framing. Relight the replacement naturally for the nighttime depot: cyan overhead illumination, warm amber rim light, crisp reflections on safety strips, realistic flashlight spill, and deep directional shadows consistent with the original scene. Preserve the train, wheel assembly, damp concrete, background, camera tracking movement, lens perspective, composition, scene timing, and all environmental details without alteration. Preserve the source audio and synchronize the replacement technician’s mouth and facial motion precisely to the original spoken line. The result should look like footage captured with the replacement performer on location at night, with no compositing seams, flicker, identity drift, added people, logos, captions, or text.",
      "resolution": "1080p",
      "fps": 24,
      "settings": {
        "preserveAudio": true,
        "sourceAudioSync": true,
        "turbo": false
      },
      "inputs": {
        "referenceImages": [
          "https://assets.runware.ai/assets/inputs/9e01de68-4bd8-4109-82f7-b6311851f1c0.jpg"
        ],
        "video": "https://assets.runware.ai/assets/inputs/df82f8a5-083b-45e7-8bab-5ecc8499c24c.mp4"
      }
    }
  ]'
runware run prunaai:p-video@replace \
  positivePrompt="Replace the single male rail technician in the source video with the female rail technician depicted in the reference image. Preserve her recognizable face, hairstyle, body proportions, lime-yellow coveralls, hard hat, gloves, and boots while transferring the source performer’s exact walking pace, flashlight inspection gestures, head turn, posture, timing, and framing. Relight the replacement naturally for the nighttime depot: cyan overhead illumination, warm amber rim light, crisp reflections on safety strips, realistic flashlight spill, and deep directional shadows consistent with the original scene. Preserve the train, wheel assembly, damp concrete, background, camera tracking movement, lens perspective, composition, scene timing, and all environmental details without alteration. Preserve the source audio and synchronize the replacement technician’s mouth and facial motion precisely to the original spoken line. The result should look like footage captured with the replacement performer on location at night, with no compositing seams, flicker, identity drift, added people, logos, captions, or text." \
  resolution=1080p \
  fps=24 \
  settings.preserveAudio=true \
  settings.sourceAudioSync=true \
  settings.turbo=false \
  inputs.referenceImages.0=https://assets.runware.ai/assets/inputs/9e01de68-4bd8-4109-82f7-b6311851f1c0.jpg \
  inputs.video=https://assets.runware.ai/assets/inputs/df82f8a5-083b-45e7-8bab-5ecc8499c24c.mp4
{
  "taskType": "videoInference",
  "taskUUID": "befb5e2d-5872-441b-b8fe-ca17adcac7d5",
  "model": "prunaai:p-video@replace",
  "positivePrompt": "Replace the single male rail technician in the source video with the female rail technician depicted in the reference image. Preserve her recognizable face, hairstyle, body proportions, lime-yellow coveralls, hard hat, gloves, and boots while transferring the source performer’s exact walking pace, flashlight inspection gestures, head turn, posture, timing, and framing. Relight the replacement naturally for the nighttime depot: cyan overhead illumination, warm amber rim light, crisp reflections on safety strips, realistic flashlight spill, and deep directional shadows consistent with the original scene. Preserve the train, wheel assembly, damp concrete, background, camera tracking movement, lens perspective, composition, scene timing, and all environmental details without alteration. Preserve the source audio and synchronize the replacement technician’s mouth and facial motion precisely to the original spoken line. The result should look like footage captured with the replacement performer on location at night, with no compositing seams, flicker, identity drift, added people, logos, captions, or text.",
  "resolution": "1080p",
  "fps": 24,
  "settings": {
    "preserveAudio": true,
    "sourceAudioSync": true,
    "turbo": false
  },
  "inputs": {
    "referenceImages": [
      "https://assets.runware.ai/assets/inputs/9e01de68-4bd8-4109-82f7-b6311851f1c0.jpg"
    ],
    "video": "https://assets.runware.ai/assets/inputs/df82f8a5-083b-45e7-8bab-5ecc8499c24c.mp4"
  }
}
Response
{
  "taskType": "videoInference",
  "taskUUID": "befb5e2d-5872-441b-b8fe-ca17adcac7d5",
  "videoUUID": "38b2701f-54ed-4be8-86e2-bce07f0f7dc3",
  "videoURL": "https://vm.runware.ai/video/os/a08dlim3/ws/5/vi/38b2701f-54ed-4be8-86e2-bce07f0f7dc3.mp4",
  "seed": 1753084367,
  "cost": 0.3625
}

video-edit

Indoor Mushroom Farm B-Roll$0.362~1m 48s
Try in Playground
import { createClient } from '@runware/sdk'

const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()

const [result] = await client.run({
  model: 'prunaai:p-video@replace',
  positivePrompt: 'Replace the sole male cultivation technician in the source video with the older female mycologist depicted in the reference image. Preserve her recognizable facial features, age, skin tone, sage head wrap, ivory coveralls, body proportions, and professional presence consistently across every frame. Transfer the source subject\'s exact hand placement and complete inspection action: lifting the oyster mushroom cluster, rotating it, examining the gills, and returning it gently. Preserve the original medium-wide composition, slow lateral dolly, camera path, lens perspective, timing, body motion, rack geometry, mushrooms, humidity haze, cool diffused lighting, shadows, depth of field, and cream-silver-pale-green color grade. Keep the commercial grow room unchanged and photorealistic, with no added people, objects, logos, or text. Maintain exact source-audio synchronization with the gestures and movement while retaining the natural ventilation, water-drip, and clothing sounds. Finished 16:9 documentary stock b-roll suitable for controlled-environment agriculture editorial use.',
  resolution: '1080p',
  fps: 24,
  settings: {
    preserveAudio: true,
    sourceAudioSync: true,
    turbo: false
  },
  inputs: {
    referenceImages: [
      'https://assets.runware.ai/assets/inputs/804836da-34dc-400c-a552-7d8d6e9727a1.jpg'
    ],
    video: 'https://assets.runware.ai/assets/inputs/4a5f692d-cdbe-4feb-89c8-864b8238d9d5.mp4'
  }
})
import asyncio
import os

from runware import Runware


async def main():
    async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
        results = await client.run({
            "model": "prunaai:p-video@replace",
            "positivePrompt": "Replace the sole male cultivation technician in the source video with the older female mycologist depicted in the reference image. Preserve her recognizable facial features, age, skin tone, sage head wrap, ivory coveralls, body proportions, and professional presence consistently across every frame. Transfer the source subject's exact hand placement and complete inspection action: lifting the oyster mushroom cluster, rotating it, examining the gills, and returning it gently. Preserve the original medium-wide composition, slow lateral dolly, camera path, lens perspective, timing, body motion, rack geometry, mushrooms, humidity haze, cool diffused lighting, shadows, depth of field, and cream-silver-pale-green color grade. Keep the commercial grow room unchanged and photorealistic, with no added people, objects, logos, or text. Maintain exact source-audio synchronization with the gestures and movement while retaining the natural ventilation, water-drip, and clothing sounds. Finished 16:9 documentary stock b-roll suitable for controlled-environment agriculture editorial use.",
            "resolution": "1080p",
            "fps": 24,
            "settings": {
                "preserveAudio": True,
                "sourceAudioSync": True,
                "turbo": False
            },
            "inputs": {
                "referenceImages": [
                    "https://assets.runware.ai/assets/inputs/804836da-34dc-400c-a552-7d8d6e9727a1.jpg"
                ],
                "video": "https://assets.runware.ai/assets/inputs/4a5f692d-cdbe-4feb-89c8-864b8238d9d5.mp4"
            }
        })


asyncio.run(main())
curl https://api.runware.ai/v1 \
  -H "Authorization: Bearer $RUNWARE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '[
    {
      "taskType": "videoInference",
      "taskUUID": "7db064fc-3c36-41db-884c-23e89ce10392",
      "model": "prunaai:p-video@replace",
      "positivePrompt": "Replace the sole male cultivation technician in the source video with the older female mycologist depicted in the reference image. Preserve her recognizable facial features, age, skin tone, sage head wrap, ivory coveralls, body proportions, and professional presence consistently across every frame. Transfer the source subject's exact hand placement and complete inspection action: lifting the oyster mushroom cluster, rotating it, examining the gills, and returning it gently. Preserve the original medium-wide composition, slow lateral dolly, camera path, lens perspective, timing, body motion, rack geometry, mushrooms, humidity haze, cool diffused lighting, shadows, depth of field, and cream-silver-pale-green color grade. Keep the commercial grow room unchanged and photorealistic, with no added people, objects, logos, or text. Maintain exact source-audio synchronization with the gestures and movement while retaining the natural ventilation, water-drip, and clothing sounds. Finished 16:9 documentary stock b-roll suitable for controlled-environment agriculture editorial use.",
      "resolution": "1080p",
      "fps": 24,
      "settings": {
        "preserveAudio": true,
        "sourceAudioSync": true,
        "turbo": false
      },
      "inputs": {
        "referenceImages": [
          "https://assets.runware.ai/assets/inputs/804836da-34dc-400c-a552-7d8d6e9727a1.jpg"
        ],
        "video": "https://assets.runware.ai/assets/inputs/4a5f692d-cdbe-4feb-89c8-864b8238d9d5.mp4"
      }
    }
  ]'
runware run prunaai:p-video@replace \
  positivePrompt="Replace the sole male cultivation technician in the source video with the older female mycologist depicted in the reference image. Preserve her recognizable facial features, age, skin tone, sage head wrap, ivory coveralls, body proportions, and professional presence consistently across every frame. Transfer the source subject's exact hand placement and complete inspection action: lifting the oyster mushroom cluster, rotating it, examining the gills, and returning it gently. Preserve the original medium-wide composition, slow lateral dolly, camera path, lens perspective, timing, body motion, rack geometry, mushrooms, humidity haze, cool diffused lighting, shadows, depth of field, and cream-silver-pale-green color grade. Keep the commercial grow room unchanged and photorealistic, with no added people, objects, logos, or text. Maintain exact source-audio synchronization with the gestures and movement while retaining the natural ventilation, water-drip, and clothing sounds. Finished 16:9 documentary stock b-roll suitable for controlled-environment agriculture editorial use." \
  resolution=1080p \
  fps=24 \
  settings.preserveAudio=true \
  settings.sourceAudioSync=true \
  settings.turbo=false \
  inputs.referenceImages.0=https://assets.runware.ai/assets/inputs/804836da-34dc-400c-a552-7d8d6e9727a1.jpg \
  inputs.video=https://assets.runware.ai/assets/inputs/4a5f692d-cdbe-4feb-89c8-864b8238d9d5.mp4
{
  "taskType": "videoInference",
  "taskUUID": "7db064fc-3c36-41db-884c-23e89ce10392",
  "model": "prunaai:p-video@replace",
  "positivePrompt": "Replace the sole male cultivation technician in the source video with the older female mycologist depicted in the reference image. Preserve her recognizable facial features, age, skin tone, sage head wrap, ivory coveralls, body proportions, and professional presence consistently across every frame. Transfer the source subject's exact hand placement and complete inspection action: lifting the oyster mushroom cluster, rotating it, examining the gills, and returning it gently. Preserve the original medium-wide composition, slow lateral dolly, camera path, lens perspective, timing, body motion, rack geometry, mushrooms, humidity haze, cool diffused lighting, shadows, depth of field, and cream-silver-pale-green color grade. Keep the commercial grow room unchanged and photorealistic, with no added people, objects, logos, or text. Maintain exact source-audio synchronization with the gestures and movement while retaining the natural ventilation, water-drip, and clothing sounds. Finished 16:9 documentary stock b-roll suitable for controlled-environment agriculture editorial use.",
  "resolution": "1080p",
  "fps": 24,
  "settings": {
    "preserveAudio": true,
    "sourceAudioSync": true,
    "turbo": false
  },
  "inputs": {
    "referenceImages": [
      "https://assets.runware.ai/assets/inputs/804836da-34dc-400c-a552-7d8d6e9727a1.jpg"
    ],
    "video": "https://assets.runware.ai/assets/inputs/4a5f692d-cdbe-4feb-89c8-864b8238d9d5.mp4"
  }
}
Response
{
  "taskType": "videoInference",
  "taskUUID": "7db064fc-3c36-41db-884c-23e89ce10392",
  "videoUUID": "03d9f40b-a292-41f5-8bdc-409de8a11e27",
  "videoURL": "https://vm.runware.ai/video/os/a04d20/ws/5/vi/03d9f40b-a292-41f5-8bdc-409de8a11e27.mp4",
  "seed": 1814268116,
  "cost": 0.3625
}
Tailored Blazer Talking Clip
Try in Playground
import { createClient } from '@runware/sdk'

const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()

const [result] = await client.run({
  model: 'prunaai:p-video@replace',
  positivePrompt: 'Replace only the speaker\'s clothing with the cobalt blue blazer and white shirt from the reference image. Preserve the original person talking, lip movement, gestures, camera angle, background, lighting direction, skin tone, facial identity, and timing. Keep the source audio synchronized with the speech and make the new outfit move naturally with the shoulders and torso.',
  resolution: '720p',
  fps: 24,
  seed: 46077,
  settings: {
    preserveAudio: true,
    sourceAudioSync: true,
    turbo: false
  },
  inputs: {
    referenceImages: [
      'https://assets.runware.ai/assets/inputs/e8ac94a9-53e5-4780-a18f-0a12d1b36d64.jpg'
    ],
    video: 'https://assets.runware.ai/assets/inputs/3540377f-4a02-44e2-bd2f-adf6d43637a6.mp4'
  }
})
import asyncio
import os

from runware import Runware


async def main():
    async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
        results = await client.run({
            "model": "prunaai:p-video@replace",
            "positivePrompt": "Replace only the speaker's clothing with the cobalt blue blazer and white shirt from the reference image. Preserve the original person talking, lip movement, gestures, camera angle, background, lighting direction, skin tone, facial identity, and timing. Keep the source audio synchronized with the speech and make the new outfit move naturally with the shoulders and torso.",
            "resolution": "720p",
            "fps": 24,
            "seed": 46077,
            "settings": {
                "preserveAudio": True,
                "sourceAudioSync": True,
                "turbo": False
            },
            "inputs": {
                "referenceImages": [
                    "https://assets.runware.ai/assets/inputs/e8ac94a9-53e5-4780-a18f-0a12d1b36d64.jpg"
                ],
                "video": "https://assets.runware.ai/assets/inputs/3540377f-4a02-44e2-bd2f-adf6d43637a6.mp4"
            }
        })


asyncio.run(main())
curl https://api.runware.ai/v1 \
  -H "Authorization: Bearer $RUNWARE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '[
    {
      "taskType": "videoInference",
      "taskUUID": "ea378cf1-64f3-42f4-a50d-255b36ba274e",
      "model": "prunaai:p-video@replace",
      "positivePrompt": "Replace only the speaker's clothing with the cobalt blue blazer and white shirt from the reference image. Preserve the original person talking, lip movement, gestures, camera angle, background, lighting direction, skin tone, facial identity, and timing. Keep the source audio synchronized with the speech and make the new outfit move naturally with the shoulders and torso.",
      "resolution": "720p",
      "fps": 24,
      "seed": 46077,
      "settings": {
        "preserveAudio": true,
        "sourceAudioSync": true,
        "turbo": false
      },
      "inputs": {
        "referenceImages": [
          "https://assets.runware.ai/assets/inputs/e8ac94a9-53e5-4780-a18f-0a12d1b36d64.jpg"
        ],
        "video": "https://assets.runware.ai/assets/inputs/3540377f-4a02-44e2-bd2f-adf6d43637a6.mp4"
      }
    }
  ]'
runware run prunaai:p-video@replace \
  positivePrompt="Replace only the speaker's clothing with the cobalt blue blazer and white shirt from the reference image. Preserve the original person talking, lip movement, gestures, camera angle, background, lighting direction, skin tone, facial identity, and timing. Keep the source audio synchronized with the speech and make the new outfit move naturally with the shoulders and torso." \
  resolution=720p \
  fps=24 \
  seed=46077 \
  settings.preserveAudio=true \
  settings.sourceAudioSync=true \
  settings.turbo=false \
  inputs.referenceImages.0=https://assets.runware.ai/assets/inputs/e8ac94a9-53e5-4780-a18f-0a12d1b36d64.jpg \
  inputs.video=https://assets.runware.ai/assets/inputs/3540377f-4a02-44e2-bd2f-adf6d43637a6.mp4
{
  "taskType": "videoInference",
  "taskUUID": "ea378cf1-64f3-42f4-a50d-255b36ba274e",
  "model": "prunaai:p-video@replace",
  "positivePrompt": "Replace only the speaker's clothing with the cobalt blue blazer and white shirt from the reference image. Preserve the original person talking, lip movement, gestures, camera angle, background, lighting direction, skin tone, facial identity, and timing. Keep the source audio synchronized with the speech and make the new outfit move naturally with the shoulders and torso.",
  "resolution": "720p",
  "fps": 24,
  "seed": 46077,
  "settings": {
    "preserveAudio": true,
    "sourceAudioSync": true,
    "turbo": false
  },
  "inputs": {
    "referenceImages": [
      "https://assets.runware.ai/assets/inputs/e8ac94a9-53e5-4780-a18f-0a12d1b36d64.jpg"
    ],
    "video": "https://assets.runware.ai/assets/inputs/3540377f-4a02-44e2-bd2f-adf6d43637a6.mp4"
  }
}
Response
{
  "taskType": "videoInference",
  "taskUUID": "ea378cf1-64f3-42f4-a50d-255b36ba274e",
  "videoUUID": "ce85025d-e332-47c5-9950-dc6ed2f4758f",
  "videoURL": "https://vm.runware.ai/video/os/a04d20/ws/5/vi/ce85025d-e332-47c5-9950-dc6ed2f4758f.mp4",
  "seed": 46077,
  "cost": 0.1813
}
Blue-Haired Talking Presenter Swap
Try in Playground
import { createClient } from '@runware/sdk'

const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()

const [result] = await client.run({
  model: 'prunaai:p-video@replace',
  positivePrompt: 'Replace the on-camera speaker with the reference person, emphasizing vivid cobalt blue hair and a natural presenter look. Preserve the source video\'s exact speaking rhythm, mouth movement, head turns, hand gestures, camera position, background, lighting direction, and overall timing. Keep the result realistic and seamless, with stable facial identity and clean hair edges throughout the talking clip.',
  resolution: '720p',
  fps: 24,
  seed: 91032,
  settings: {
    preserveAudio: true,
    sourceAudioSync: true,
    turbo: false
  },
  inputs: {
    video: 'https://assets.runware.ai/assets/inputs/45324c81-e9b7-451a-87dd-4ca3d0795ee1.mp4',
    referenceImages: [
      'https://assets.runware.ai/assets/inputs/b75d2da6-8b27-4077-b7d6-1b19f0737257.jpg'
    ]
  }
})
import asyncio
import os

from runware import Runware


async def main():
    async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
        results = await client.run({
            "model": "prunaai:p-video@replace",
            "positivePrompt": "Replace the on-camera speaker with the reference person, emphasizing vivid cobalt blue hair and a natural presenter look. Preserve the source video's exact speaking rhythm, mouth movement, head turns, hand gestures, camera position, background, lighting direction, and overall timing. Keep the result realistic and seamless, with stable facial identity and clean hair edges throughout the talking clip.",
            "resolution": "720p",
            "fps": 24,
            "seed": 91032,
            "settings": {
                "preserveAudio": True,
                "sourceAudioSync": True,
                "turbo": False
            },
            "inputs": {
                "video": "https://assets.runware.ai/assets/inputs/45324c81-e9b7-451a-87dd-4ca3d0795ee1.mp4",
                "referenceImages": [
                    "https://assets.runware.ai/assets/inputs/b75d2da6-8b27-4077-b7d6-1b19f0737257.jpg"
                ]
            }
        })


asyncio.run(main())
curl https://api.runware.ai/v1 \
  -H "Authorization: Bearer $RUNWARE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '[
    {
      "taskType": "videoInference",
      "taskUUID": "942daf0a-25bd-4574-aeae-efdc34bd22cd",
      "model": "prunaai:p-video@replace",
      "positivePrompt": "Replace the on-camera speaker with the reference person, emphasizing vivid cobalt blue hair and a natural presenter look. Preserve the source video's exact speaking rhythm, mouth movement, head turns, hand gestures, camera position, background, lighting direction, and overall timing. Keep the result realistic and seamless, with stable facial identity and clean hair edges throughout the talking clip.",
      "resolution": "720p",
      "fps": 24,
      "seed": 91032,
      "settings": {
        "preserveAudio": true,
        "sourceAudioSync": true,
        "turbo": false
      },
      "inputs": {
        "video": "https://assets.runware.ai/assets/inputs/45324c81-e9b7-451a-87dd-4ca3d0795ee1.mp4",
        "referenceImages": [
          "https://assets.runware.ai/assets/inputs/b75d2da6-8b27-4077-b7d6-1b19f0737257.jpg"
        ]
      }
    }
  ]'
runware run prunaai:p-video@replace \
  positivePrompt="Replace the on-camera speaker with the reference person, emphasizing vivid cobalt blue hair and a natural presenter look. Preserve the source video's exact speaking rhythm, mouth movement, head turns, hand gestures, camera position, background, lighting direction, and overall timing. Keep the result realistic and seamless, with stable facial identity and clean hair edges throughout the talking clip." \
  resolution=720p \
  fps=24 \
  seed=91032 \
  settings.preserveAudio=true \
  settings.sourceAudioSync=true \
  settings.turbo=false \
  inputs.video=https://assets.runware.ai/assets/inputs/45324c81-e9b7-451a-87dd-4ca3d0795ee1.mp4 \
  inputs.referenceImages.0=https://assets.runware.ai/assets/inputs/b75d2da6-8b27-4077-b7d6-1b19f0737257.jpg
{
  "taskType": "videoInference",
  "taskUUID": "942daf0a-25bd-4574-aeae-efdc34bd22cd",
  "model": "prunaai:p-video@replace",
  "positivePrompt": "Replace the on-camera speaker with the reference person, emphasizing vivid cobalt blue hair and a natural presenter look. Preserve the source video's exact speaking rhythm, mouth movement, head turns, hand gestures, camera position, background, lighting direction, and overall timing. Keep the result realistic and seamless, with stable facial identity and clean hair edges throughout the talking clip.",
  "resolution": "720p",
  "fps": 24,
  "seed": 91032,
  "settings": {
    "preserveAudio": true,
    "sourceAudioSync": true,
    "turbo": false
  },
  "inputs": {
    "video": "https://assets.runware.ai/assets/inputs/45324c81-e9b7-451a-87dd-4ca3d0795ee1.mp4",
    "referenceImages": [
      "https://assets.runware.ai/assets/inputs/b75d2da6-8b27-4077-b7d6-1b19f0737257.jpg"
    ]
  }
}
Response
{
  "taskType": "videoInference",
  "taskUUID": "942daf0a-25bd-4574-aeae-efdc34bd22cd",
  "videoUUID": "b655f85a-73e7-48de-9a2b-e9d1bff7db3d",
  "videoURL": "https://vm.runware.ai/video/os/a07dlim3/ws/5/vi/b655f85a-73e7-48de-9a2b-e9d1bff7db3d.mp4",
  "seed": 91032,
  "cost": 0.1813
}
Three Avatar Conversation Panel
Try in Playground
import { createClient } from '@runware/sdk'

const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()

const [result] = await client.run({
  model: 'prunaai:p-video@replace',
  positivePrompt: 'Replace the three on-camera speakers in the source clip with the three 3D avatar characters from the reference images, matched left to right: axolotl avatar, silver robot avatar, plush owl avatar. Preserve the original conversation rhythm, head turns, lip movement, hand gestures, seated positions, desk contact, camera push-in, studio lighting, background, and audio timing. Keep each avatar stable, expressive, and clearly assigned to only one speaker.',
  resolution: '1080p',
  fps: 24,
  seed: 68633,
  settings: {
    preserveAudio: true,
    sourceAudioSync: true,
    turbo: false
  },
  inputs: {
    video: 'https://assets.runware.ai/assets/inputs/5d4d4e49-f430-4f38-81de-355491059864.mp4',
    referenceImages: [
      'https://assets.runware.ai/assets/inputs/c83a12c6-981a-47e0-84fa-e470c3ca77c5.jpg',
      'https://assets.runware.ai/assets/inputs/1294df4a-5c53-4060-9606-e968397305b6.jpg',
      'https://assets.runware.ai/assets/inputs/98f2f36f-f4b9-415e-a97d-dd0151d78fbf.jpg'
    ]
  }
})
import asyncio
import os

from runware import Runware


async def main():
    async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
        results = await client.run({
            "model": "prunaai:p-video@replace",
            "positivePrompt": "Replace the three on-camera speakers in the source clip with the three 3D avatar characters from the reference images, matched left to right: axolotl avatar, silver robot avatar, plush owl avatar. Preserve the original conversation rhythm, head turns, lip movement, hand gestures, seated positions, desk contact, camera push-in, studio lighting, background, and audio timing. Keep each avatar stable, expressive, and clearly assigned to only one speaker.",
            "resolution": "1080p",
            "fps": 24,
            "seed": 68633,
            "settings": {
                "preserveAudio": True,
                "sourceAudioSync": True,
                "turbo": False
            },
            "inputs": {
                "video": "https://assets.runware.ai/assets/inputs/5d4d4e49-f430-4f38-81de-355491059864.mp4",
                "referenceImages": [
                    "https://assets.runware.ai/assets/inputs/c83a12c6-981a-47e0-84fa-e470c3ca77c5.jpg",
                    "https://assets.runware.ai/assets/inputs/1294df4a-5c53-4060-9606-e968397305b6.jpg",
                    "https://assets.runware.ai/assets/inputs/98f2f36f-f4b9-415e-a97d-dd0151d78fbf.jpg"
                ]
            }
        })


asyncio.run(main())
curl https://api.runware.ai/v1 \
  -H "Authorization: Bearer $RUNWARE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '[
    {
      "taskType": "videoInference",
      "taskUUID": "86ec7c38-6354-4716-bdb1-1595e865d3a1",
      "model": "prunaai:p-video@replace",
      "positivePrompt": "Replace the three on-camera speakers in the source clip with the three 3D avatar characters from the reference images, matched left to right: axolotl avatar, silver robot avatar, plush owl avatar. Preserve the original conversation rhythm, head turns, lip movement, hand gestures, seated positions, desk contact, camera push-in, studio lighting, background, and audio timing. Keep each avatar stable, expressive, and clearly assigned to only one speaker.",
      "resolution": "1080p",
      "fps": 24,
      "seed": 68633,
      "settings": {
        "preserveAudio": true,
        "sourceAudioSync": true,
        "turbo": false
      },
      "inputs": {
        "video": "https://assets.runware.ai/assets/inputs/5d4d4e49-f430-4f38-81de-355491059864.mp4",
        "referenceImages": [
          "https://assets.runware.ai/assets/inputs/c83a12c6-981a-47e0-84fa-e470c3ca77c5.jpg",
          "https://assets.runware.ai/assets/inputs/1294df4a-5c53-4060-9606-e968397305b6.jpg",
          "https://assets.runware.ai/assets/inputs/98f2f36f-f4b9-415e-a97d-dd0151d78fbf.jpg"
        ]
      }
    }
  ]'
runware run prunaai:p-video@replace \
  positivePrompt="Replace the three on-camera speakers in the source clip with the three 3D avatar characters from the reference images, matched left to right: axolotl avatar, silver robot avatar, plush owl avatar. Preserve the original conversation rhythm, head turns, lip movement, hand gestures, seated positions, desk contact, camera push-in, studio lighting, background, and audio timing. Keep each avatar stable, expressive, and clearly assigned to only one speaker." \
  resolution=1080p \
  fps=24 \
  seed=68633 \
  settings.preserveAudio=true \
  settings.sourceAudioSync=true \
  settings.turbo=false \
  inputs.video=https://assets.runware.ai/assets/inputs/5d4d4e49-f430-4f38-81de-355491059864.mp4 \
  inputs.referenceImages.0=https://assets.runware.ai/assets/inputs/c83a12c6-981a-47e0-84fa-e470c3ca77c5.jpg \
  inputs.referenceImages.1=https://assets.runware.ai/assets/inputs/1294df4a-5c53-4060-9606-e968397305b6.jpg \
  inputs.referenceImages.2=https://assets.runware.ai/assets/inputs/98f2f36f-f4b9-415e-a97d-dd0151d78fbf.jpg
{
  "taskType": "videoInference",
  "taskUUID": "86ec7c38-6354-4716-bdb1-1595e865d3a1",
  "model": "prunaai:p-video@replace",
  "positivePrompt": "Replace the three on-camera speakers in the source clip with the three 3D avatar characters from the reference images, matched left to right: axolotl avatar, silver robot avatar, plush owl avatar. Preserve the original conversation rhythm, head turns, lip movement, hand gestures, seated positions, desk contact, camera push-in, studio lighting, background, and audio timing. Keep each avatar stable, expressive, and clearly assigned to only one speaker.",
  "resolution": "1080p",
  "fps": 24,
  "seed": 68633,
  "settings": {
    "preserveAudio": true,
    "sourceAudioSync": true,
    "turbo": false
  },
  "inputs": {
    "video": "https://assets.runware.ai/assets/inputs/5d4d4e49-f430-4f38-81de-355491059864.mp4",
    "referenceImages": [
      "https://assets.runware.ai/assets/inputs/c83a12c6-981a-47e0-84fa-e470c3ca77c5.jpg",
      "https://assets.runware.ai/assets/inputs/1294df4a-5c53-4060-9606-e968397305b6.jpg",
      "https://assets.runware.ai/assets/inputs/98f2f36f-f4b9-415e-a97d-dd0151d78fbf.jpg"
    ]
  }
}
Response
{
  "taskType": "videoInference",
  "taskUUID": "86ec7c38-6354-4716-bdb1-1595e865d3a1",
  "videoUUID": "1a9616b9-fc82-43f6-aae8-e17ef4f5f6c6",
  "videoURL": "https://vm.runware.ai/video/os/a10dlim3/ws/5/vi/1a9616b9-fc82-43f6-aae8-e17ef4f5f6c6.mp4",
  "seed": 68633,
  "cost": 0.3625
}
Commuter Sedan Supercar Swap
Try in Playground
import { createClient } from '@runware/sdk'

const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()

const [result] = await client.run({
  model: 'prunaai:p-video@replace',
  positivePrompt: 'Replace the ordinary sedan in the source driving footage with the red supercar from the reference image. Keep the original camera movement, road layout, background vehicles, sunlight direction, reflections, shadows, timing, and vehicle motion intact. The result should look like the supercar was actually filmed in the same scene, with consistent scale, wheel rotation, perspective, and natural contact shadows.',
  resolution: '720p',
  fps: 24,
  seed: 60016,
  settings: {
    preserveAudio: true,
    sourceAudioSync: false,
    turbo: false
  },
  inputs: {
    referenceImages: [
      'https://assets.runware.ai/assets/inputs/08ea67b9-715d-4f55-98ed-2a9f1d5df85d.jpg'
    ],
    video: 'https://assets.runware.ai/assets/inputs/9f402c3f-66bd-4208-8948-f08d9f6160ae.mp4'
  }
})
import asyncio
import os

from runware import Runware


async def main():
    async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
        results = await client.run({
            "model": "prunaai:p-video@replace",
            "positivePrompt": "Replace the ordinary sedan in the source driving footage with the red supercar from the reference image. Keep the original camera movement, road layout, background vehicles, sunlight direction, reflections, shadows, timing, and vehicle motion intact. The result should look like the supercar was actually filmed in the same scene, with consistent scale, wheel rotation, perspective, and natural contact shadows.",
            "resolution": "720p",
            "fps": 24,
            "seed": 60016,
            "settings": {
                "preserveAudio": True,
                "sourceAudioSync": False,
                "turbo": False
            },
            "inputs": {
                "referenceImages": [
                    "https://assets.runware.ai/assets/inputs/08ea67b9-715d-4f55-98ed-2a9f1d5df85d.jpg"
                ],
                "video": "https://assets.runware.ai/assets/inputs/9f402c3f-66bd-4208-8948-f08d9f6160ae.mp4"
            }
        })


asyncio.run(main())
curl https://api.runware.ai/v1 \
  -H "Authorization: Bearer $RUNWARE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '[
    {
      "taskType": "videoInference",
      "taskUUID": "654aba74-cc4e-432a-9aa1-eb1905e82c28",
      "model": "prunaai:p-video@replace",
      "positivePrompt": "Replace the ordinary sedan in the source driving footage with the red supercar from the reference image. Keep the original camera movement, road layout, background vehicles, sunlight direction, reflections, shadows, timing, and vehicle motion intact. The result should look like the supercar was actually filmed in the same scene, with consistent scale, wheel rotation, perspective, and natural contact shadows.",
      "resolution": "720p",
      "fps": 24,
      "seed": 60016,
      "settings": {
        "preserveAudio": true,
        "sourceAudioSync": false,
        "turbo": false
      },
      "inputs": {
        "referenceImages": [
          "https://assets.runware.ai/assets/inputs/08ea67b9-715d-4f55-98ed-2a9f1d5df85d.jpg"
        ],
        "video": "https://assets.runware.ai/assets/inputs/9f402c3f-66bd-4208-8948-f08d9f6160ae.mp4"
      }
    }
  ]'
runware run prunaai:p-video@replace \
  positivePrompt="Replace the ordinary sedan in the source driving footage with the red supercar from the reference image. Keep the original camera movement, road layout, background vehicles, sunlight direction, reflections, shadows, timing, and vehicle motion intact. The result should look like the supercar was actually filmed in the same scene, with consistent scale, wheel rotation, perspective, and natural contact shadows." \
  resolution=720p \
  fps=24 \
  seed=60016 \
  settings.preserveAudio=true \
  settings.sourceAudioSync=false \
  settings.turbo=false \
  inputs.referenceImages.0=https://assets.runware.ai/assets/inputs/08ea67b9-715d-4f55-98ed-2a9f1d5df85d.jpg \
  inputs.video=https://assets.runware.ai/assets/inputs/9f402c3f-66bd-4208-8948-f08d9f6160ae.mp4
{
  "taskType": "videoInference",
  "taskUUID": "654aba74-cc4e-432a-9aa1-eb1905e82c28",
  "model": "prunaai:p-video@replace",
  "positivePrompt": "Replace the ordinary sedan in the source driving footage with the red supercar from the reference image. Keep the original camera movement, road layout, background vehicles, sunlight direction, reflections, shadows, timing, and vehicle motion intact. The result should look like the supercar was actually filmed in the same scene, with consistent scale, wheel rotation, perspective, and natural contact shadows.",
  "resolution": "720p",
  "fps": 24,
  "seed": 60016,
  "settings": {
    "preserveAudio": true,
    "sourceAudioSync": false,
    "turbo": false
  },
  "inputs": {
    "referenceImages": [
      "https://assets.runware.ai/assets/inputs/08ea67b9-715d-4f55-98ed-2a9f1d5df85d.jpg"
    ],
    "video": "https://assets.runware.ai/assets/inputs/9f402c3f-66bd-4208-8948-f08d9f6160ae.mp4"
  }
}
Response
{
  "taskType": "videoInference",
  "taskUUID": "654aba74-cc4e-432a-9aa1-eb1905e82c28",
  "videoUUID": "c4dadb70-16f5-4bb5-930e-411b9c478566",
  "videoURL": "https://vm.runware.ai/video/os/a05d22/ws/5/vi/c4dadb70-16f5-4bb5-930e-411b9c478566.mp4",
  "seed": 60016,
  "cost": 0.1813
}