lucataco / dotted-video
Converts a video into a black and white dotted video effect
Prediction
lucataco/dotted-video:ea6107f7dc327e05d64eb42241250261af417d41d00c6399b06b0d62cd3c1a2aIDd42zsepkvxrme0cmy549nr243wStatusSucceededSourceWebHardwareCPUTotal durationCreatedInput
- video
- inverse
- dot_size
- 4
- threshold
- 128
- inverse_threshold
{ "video": "https://replicate.delivery/pbxt/MTamh4TnpSDNhaYQgXVHuemLCjboaeajxWtX4hjMyNMFy02h/jelly.mp4", "inverse": false, "dot_size": 4, "threshold": 128, "inverse_threshold": false }
Install Replicate’s Node.js client library:npm install replicate
Import and set up the client:import Replicate from "replicate"; const replicate = new Replicate({ auth: process.env.REPLICATE_API_TOKEN, });
Run lucataco/dotted-video using Replicate’s API. Check out the model's schema for an overview of inputs and outputs.
const output = await replicate.run( "lucataco/dotted-video:ea6107f7dc327e05d64eb42241250261af417d41d00c6399b06b0d62cd3c1a2a", { input: { video: "https://replicate.delivery/pbxt/MTamh4TnpSDNhaYQgXVHuemLCjboaeajxWtX4hjMyNMFy02h/jelly.mp4", inverse: false, dot_size: 4, threshold: 128, inverse_threshold: false } } ); // To access the file URL: console.log(output.url()); //=> "http://example.com" // To write the file to disk: fs.writeFile("my-image.png", output);
To learn more, take a look at the guide on getting started with Node.js.
Install Replicate’s Python client library:pip install replicate
Import the client:import replicate
Run lucataco/dotted-video using Replicate’s API. Check out the model's schema for an overview of inputs and outputs.
output = replicate.run( "lucataco/dotted-video:ea6107f7dc327e05d64eb42241250261af417d41d00c6399b06b0d62cd3c1a2a", input={ "video": "https://replicate.delivery/pbxt/MTamh4TnpSDNhaYQgXVHuemLCjboaeajxWtX4hjMyNMFy02h/jelly.mp4", "inverse": False, "dot_size": 4, "threshold": 128, "inverse_threshold": False } ) print(output)
To learn more, take a look at the guide on getting started with Python.
Run lucataco/dotted-video using Replicate’s API. Check out the model's schema for an overview of inputs and outputs.
curl -s -X POST \ -H "Authorization: Bearer $REPLICATE_API_TOKEN" \ -H "Content-Type: application/json" \ -H "Prefer: wait" \ -d $'{ "version": "lucataco/dotted-video:ea6107f7dc327e05d64eb42241250261af417d41d00c6399b06b0d62cd3c1a2a", "input": { "video": "https://replicate.delivery/pbxt/MTamh4TnpSDNhaYQgXVHuemLCjboaeajxWtX4hjMyNMFy02h/jelly.mp4", "inverse": false, "dot_size": 4, "threshold": 128, "inverse_threshold": false } }' \ https://api.replicate.com/v1/predictions
To learn more, take a look at Replicate’s HTTP API reference docs.
Output
{ "completed_at": "2025-02-10T19:14:42.657405Z", "created_at": "2025-02-10T19:14:29.471000Z", "data_removed": false, "error": null, "id": "d42zsepkvxrme0cmy549nr243w", "input": { "video": "https://replicate.delivery/pbxt/MTamh4TnpSDNhaYQgXVHuemLCjboaeajxWtX4hjMyNMFy02h/jelly.mp4", "inverse": false, "dot_size": 4, "threshold": 128, "inverse_threshold": false }, "logs": "ffmpeg version 5.1.6-0+deb12u1 Copyright (c) 2000-2024 the FFmpeg developers\nbuilt with gcc 12 (Debian 12.2.0-14)\nconfiguration: --prefix=/usr --extra-version=0+deb12u1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --disable-sndio --enable-libjxl --enable-pocketsphinx --enable-librsvg --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-librav1e --enable-shared\nlibavutil 57. 28.100 / 57. 28.100\nlibavcodec 59. 37.100 / 59. 37.100\nlibavformat 59. 27.100 / 59. 27.100\nlibavdevice 59. 7.100 / 59. 7.100\nlibavfilter 8. 44.100 / 8. 44.100\nlibswscale 6. 7.100 / 6. 7.100\nlibswresample 4. 7.100 / 4. 7.100\nlibpostproc 56. 6.100 / 56. 6.100\nInput #0, mov,mp4,m4a,3gp,3g2,mj2, from '/tmp/output/output.mp4':\nMetadata:\nmajor_brand : isom\nminor_version : 512\ncompatible_brands: isomiso2mp41\nencoder : Lavf59.27.100\nDuration: 00:00:07.87, start: 0.000000, bitrate: 1167 kb/s\nStream #0:0[0x1](und): Video: mpeg4 (Simple Profile) (mp4v / 0x7634706D), yuv420p, 854x480 [SAR 1:1 DAR 427:240], 1165 kb/s, 30 fps, 30 tbr, 15360 tbn (default)\nMetadata:\nhandler_name : VideoHandler\nvendor_id : [0][0][0][0]\nStream mapping:\nStream #0:0 -> #0:0 (mpeg4 (native) -> h264 (libx264))\nPress [q] to stop, [?] for help\n[libx264 @ 0x62bc50105d40] using SAR=1/1\n[libx264 @ 0x62bc50105d40] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2 AVX512\n[libx264 @ 0x62bc50105d40] profile High, level 3.1, 4:2:0, 8-bit\n[libx264 @ 0x62bc50105d40] 264 - core 164 r3095 baee400 - H.264/MPEG-4 AVC codec - Copyleft 2003-2022 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00\nOutput #0, mp4, to '/tmp/output/final_output.mp4':\nMetadata:\nmajor_brand : isom\nminor_version : 512\ncompatible_brands: isomiso2mp41\nencoder : Lavf59.27.100\nStream #0:0(und): Video: h264 (avc1 / 0x31637661), yuv420p(progressive), 854x480 [SAR 1:1 DAR 427:240], q=2-31, 30 fps, 15360 tbn (default)\nMetadata:\nhandler_name : VideoHandler\nvendor_id : [0][0][0][0]\nencoder : Lavc59.37.100 libx264\nSide data:\ncpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A\nframe= 1 fps=0.0 q=0.0 size= 0kB time=00:00:00.00 bitrate=N/A speed= 0x\nframe= 236 fps=0.0 q=-1.0 Lsize= 128kB time=00:00:07.76 bitrate= 135.5kbits/s speed=19.4x\nvideo:125kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 2.855446%\n[libx264 @ 0x62bc50105d40] frame I:1 Avg QP:16.18 size: 10722\n[libx264 @ 0x62bc50105d40] frame P:70 Avg QP:25.13 size: 1056\n[libx264 @ 0x62bc50105d40] frame B:165 Avg QP:25.85 size: 258\n[libx264 @ 0x62bc50105d40] consecutive B-frames: 3.0% 8.5% 8.9% 79.7%\n[libx264 @ 0x62bc50105d40] mb I I16..4: 26.3% 70.4% 3.3%\n[libx264 @ 0x62bc50105d40] mb P I16..4: 0.3% 2.0% 0.0% P16..4: 3.0% 1.3% 0.7% 0.0% 0.0% skip:92.7%\n[libx264 @ 0x62bc50105d40] mb B I16..4: 0.2% 0.4% 0.0% B16..8: 6.9% 1.2% 0.1% direct: 0.1% skip:91.0% L0:55.0% L1:44.1% BI: 1.0%\n[libx264 @ 0x62bc50105d40] 8x8 transform intra:75.6% inter:87.8%\n[libx264 @ 0x62bc50105d40] coded y,uvDC,uvAC intra: 6.6% 0.3% 0.0% inter: 0.1% 0.0% 0.0%\n[libx264 @ 0x62bc50105d40] i16 v,h,dc,p: 74% 19% 7% 0%\n[libx264 @ 0x62bc50105d40] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 27% 10% 62% 1% 0% 0% 0% 0% 0%\n[libx264 @ 0x62bc50105d40] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 20% 6% 17% 4% 1% 19% 17% 2% 15%\n[libx264 @ 0x62bc50105d40] i8c dc,h,v,p: 96% 2% 2% 0%\n[libx264 @ 0x62bc50105d40] Weighted P-Frames: Y:0.0% UV:0.0%\n[libx264 @ 0x62bc50105d40] ref P L0: 68.2% 1.8% 20.9% 9.2%\n[libx264 @ 0x62bc50105d40] ref B L0: 69.9% 24.8% 5.3%\n[libx264 @ 0x62bc50105d40] ref B L1: 94.6% 5.4%\n[libx264 @ 0x62bc50105d40] kb/s:129.40", "metrics": { "predict_time": 8.421495641, "total_time": 13.186405 }, "output": "https://replicate.delivery/xezq/miyz5FIlyeWERyLeNnf6ehiCv4xCPeE8esmFqnffyzkqiIAOUA/final_output.mp4", "started_at": "2025-02-10T19:14:34.235909Z", "status": "succeeded", "urls": { "stream": "https://stream.replicate.com/v1/files/bcwr-eyjhelgediwyajedfhdxmaomgimzla45zoudi5xlwc6yhfqfbgnq", "get": "https://api.replicate.com/v1/predictions/d42zsepkvxrme0cmy549nr243w", "cancel": "https://api.replicate.com/v1/predictions/d42zsepkvxrme0cmy549nr243w/cancel" }, "version": "ea6107f7dc327e05d64eb42241250261af417d41d00c6399b06b0d62cd3c1a2a" }
Generated inffmpeg version 5.1.6-0+deb12u1 Copyright (c) 2000-2024 the FFmpeg developers built with gcc 12 (Debian 12.2.0-14) configuration: --prefix=/usr --extra-version=0+deb12u1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --disable-sndio --enable-libjxl --enable-pocketsphinx --enable-librsvg --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-librav1e --enable-shared libavutil 57. 28.100 / 57. 28.100 libavcodec 59. 37.100 / 59. 37.100 libavformat 59. 27.100 / 59. 27.100 libavdevice 59. 7.100 / 59. 7.100 libavfilter 8. 44.100 / 8. 44.100 libswscale 6. 7.100 / 6. 7.100 libswresample 4. 7.100 / 4. 7.100 libpostproc 56. 6.100 / 56. 6.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/tmp/output/output.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2mp41 encoder : Lavf59.27.100 Duration: 00:00:07.87, start: 0.000000, bitrate: 1167 kb/s Stream #0:0[0x1](und): Video: mpeg4 (Simple Profile) (mp4v / 0x7634706D), yuv420p, 854x480 [SAR 1:1 DAR 427:240], 1165 kb/s, 30 fps, 30 tbr, 15360 tbn (default) Metadata: handler_name : VideoHandler vendor_id : [0][0][0][0] Stream mapping: Stream #0:0 -> #0:0 (mpeg4 (native) -> h264 (libx264)) Press [q] to stop, [?] for help [libx264 @ 0x62bc50105d40] using SAR=1/1 [libx264 @ 0x62bc50105d40] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2 AVX512 [libx264 @ 0x62bc50105d40] profile High, level 3.1, 4:2:0, 8-bit [libx264 @ 0x62bc50105d40] 264 - core 164 r3095 baee400 - H.264/MPEG-4 AVC codec - Copyleft 2003-2022 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00 Output #0, mp4, to '/tmp/output/final_output.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2mp41 encoder : Lavf59.27.100 Stream #0:0(und): Video: h264 (avc1 / 0x31637661), yuv420p(progressive), 854x480 [SAR 1:1 DAR 427:240], q=2-31, 30 fps, 15360 tbn (default) Metadata: handler_name : VideoHandler vendor_id : [0][0][0][0] encoder : Lavc59.37.100 libx264 Side data: cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A frame= 1 fps=0.0 q=0.0 size= 0kB time=00:00:00.00 bitrate=N/A speed= 0x frame= 236 fps=0.0 q=-1.0 Lsize= 128kB time=00:00:07.76 bitrate= 135.5kbits/s speed=19.4x video:125kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 2.855446% [libx264 @ 0x62bc50105d40] frame I:1 Avg QP:16.18 size: 10722 [libx264 @ 0x62bc50105d40] frame P:70 Avg QP:25.13 size: 1056 [libx264 @ 0x62bc50105d40] frame B:165 Avg QP:25.85 size: 258 [libx264 @ 0x62bc50105d40] consecutive B-frames: 3.0% 8.5% 8.9% 79.7% [libx264 @ 0x62bc50105d40] mb I I16..4: 26.3% 70.4% 3.3% [libx264 @ 0x62bc50105d40] mb P I16..4: 0.3% 2.0% 0.0% P16..4: 3.0% 1.3% 0.7% 0.0% 0.0% skip:92.7% [libx264 @ 0x62bc50105d40] mb B I16..4: 0.2% 0.4% 0.0% B16..8: 6.9% 1.2% 0.1% direct: 0.1% skip:91.0% L0:55.0% L1:44.1% BI: 1.0% [libx264 @ 0x62bc50105d40] 8x8 transform intra:75.6% inter:87.8% [libx264 @ 0x62bc50105d40] coded y,uvDC,uvAC intra: 6.6% 0.3% 0.0% inter: 0.1% 0.0% 0.0% [libx264 @ 0x62bc50105d40] i16 v,h,dc,p: 74% 19% 7% 0% [libx264 @ 0x62bc50105d40] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 27% 10% 62% 1% 0% 0% 0% 0% 0% [libx264 @ 0x62bc50105d40] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 20% 6% 17% 4% 1% 19% 17% 2% 15% [libx264 @ 0x62bc50105d40] i8c dc,h,v,p: 96% 2% 2% 0% [libx264 @ 0x62bc50105d40] Weighted P-Frames: Y:0.0% UV:0.0% [libx264 @ 0x62bc50105d40] ref P L0: 68.2% 1.8% 20.9% 9.2% [libx264 @ 0x62bc50105d40] ref B L0: 69.9% 24.8% 5.3% [libx264 @ 0x62bc50105d40] ref B L1: 94.6% 5.4% [libx264 @ 0x62bc50105d40] kb/s:129.40
Prediction
lucataco/dotted-video:ea6107f7dc327e05d64eb42241250261af417d41d00c6399b06b0d62cd3c1a2aIDzpw5n1k6znrme0cmy54ta8kdhrStatusSucceededSourceWebHardwareCPUTotal durationCreatedInput
- video
- inverse
- dot_size
- 4
- threshold
- 128
- inverse_threshold
{ "video": "https://replicate.delivery/pbxt/MTanIHRMqtGG6M6I99bhvcSpmyGLWufnSP6DK5SAuusmz8gl/boat.mp4", "inverse": false, "dot_size": 4, "threshold": 128, "inverse_threshold": true }
Install Replicate’s Node.js client library:npm install replicate
Import and set up the client:import Replicate from "replicate"; const replicate = new Replicate({ auth: process.env.REPLICATE_API_TOKEN, });
Run lucataco/dotted-video using Replicate’s API. Check out the model's schema for an overview of inputs and outputs.
const output = await replicate.run( "lucataco/dotted-video:ea6107f7dc327e05d64eb42241250261af417d41d00c6399b06b0d62cd3c1a2a", { input: { video: "https://replicate.delivery/pbxt/MTanIHRMqtGG6M6I99bhvcSpmyGLWufnSP6DK5SAuusmz8gl/boat.mp4", inverse: false, dot_size: 4, threshold: 128, inverse_threshold: true } } ); // To access the file URL: console.log(output.url()); //=> "http://example.com" // To write the file to disk: fs.writeFile("my-image.png", output);
To learn more, take a look at the guide on getting started with Node.js.
Install Replicate’s Python client library:pip install replicate
Import the client:import replicate
Run lucataco/dotted-video using Replicate’s API. Check out the model's schema for an overview of inputs and outputs.
output = replicate.run( "lucataco/dotted-video:ea6107f7dc327e05d64eb42241250261af417d41d00c6399b06b0d62cd3c1a2a", input={ "video": "https://replicate.delivery/pbxt/MTanIHRMqtGG6M6I99bhvcSpmyGLWufnSP6DK5SAuusmz8gl/boat.mp4", "inverse": False, "dot_size": 4, "threshold": 128, "inverse_threshold": True } ) print(output)
To learn more, take a look at the guide on getting started with Python.
Run lucataco/dotted-video using Replicate’s API. Check out the model's schema for an overview of inputs and outputs.
curl -s -X POST \ -H "Authorization: Bearer $REPLICATE_API_TOKEN" \ -H "Content-Type: application/json" \ -H "Prefer: wait" \ -d $'{ "version": "lucataco/dotted-video:ea6107f7dc327e05d64eb42241250261af417d41d00c6399b06b0d62cd3c1a2a", "input": { "video": "https://replicate.delivery/pbxt/MTanIHRMqtGG6M6I99bhvcSpmyGLWufnSP6DK5SAuusmz8gl/boat.mp4", "inverse": false, "dot_size": 4, "threshold": 128, "inverse_threshold": true } }' \ https://api.replicate.com/v1/predictions
To learn more, take a look at Replicate’s HTTP API reference docs.
Output
{ "completed_at": "2025-02-10T19:15:21.292960Z", "created_at": "2025-02-10T19:15:07.133000Z", "data_removed": false, "error": null, "id": "zpw5n1k6znrme0cmy54ta8kdhr", "input": { "video": "https://replicate.delivery/pbxt/MTanIHRMqtGG6M6I99bhvcSpmyGLWufnSP6DK5SAuusmz8gl/boat.mp4", "inverse": false, "dot_size": 4, "threshold": 128, "inverse_threshold": true }, "logs": "ffmpeg version 5.1.6-0+deb12u1 Copyright (c) 2000-2024 the FFmpeg developers\nbuilt with gcc 12 (Debian 12.2.0-14)\nconfiguration: --prefix=/usr --extra-version=0+deb12u1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --disable-sndio --enable-libjxl --enable-pocketsphinx --enable-librsvg --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-librav1e --enable-shared\nlibavutil 57. 28.100 / 57. 28.100\nlibavcodec 59. 37.100 / 59. 37.100\nlibavformat 59. 27.100 / 59. 27.100\nlibavdevice 59. 7.100 / 59. 7.100\nlibavfilter 8. 44.100 / 8. 44.100\nlibswscale 6. 7.100 / 6. 7.100\nlibswresample 4. 7.100 / 4. 7.100\nlibpostproc 56. 6.100 / 56. 6.100\nInput #0, mov,mp4,m4a,3gp,3g2,mj2, from '/tmp/output/output.mp4':\nMetadata:\nmajor_brand : isom\nminor_version : 512\ncompatible_brands: isomiso2mp41\nencoder : Lavf59.27.100\nDuration: 00:00:05.17, start: 0.000000, bitrate: 14894 kb/s\nStream #0:0[0x1](und): Video: mpeg4 (Simple Profile) (mp4v / 0x7634706D), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 14893 kb/s, 24 fps, 24 tbr, 12288 tbn (default)\nMetadata:\nhandler_name : VideoHandler\nvendor_id : [0][0][0][0]\nStream mapping:\nStream #0:0 -> #0:0 (mpeg4 (native) -> h264 (libx264))\nPress [q] to stop, [?] for help\n[libx264 @ 0x5f2034a63500] using SAR=1/1\n[libx264 @ 0x5f2034a63500] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2 AVX512\n[libx264 @ 0x5f2034a63500] profile High, level 3.1, 4:2:0, 8-bit\n[libx264 @ 0x5f2034a63500] 264 - core 164 r3095 baee400 - H.264/MPEG-4 AVC codec - Copyleft 2003-2022 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=24 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00\nOutput #0, mp4, to '/tmp/output/final_output.mp4':\nMetadata:\nmajor_brand : isom\nminor_version : 512\ncompatible_brands: isomiso2mp41\nencoder : Lavf59.27.100\nStream #0:0(und): Video: h264 (avc1 / 0x31637661), yuv420p(progressive), 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 24 fps, 12288 tbn (default)\nMetadata:\nhandler_name : VideoHandler\nvendor_id : [0][0][0][0]\nencoder : Lavc59.37.100 libx264\nSide data:\ncpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A\nframe= 1 fps=0.0 q=0.0 size= 0kB time=00:00:00.00 bitrate=N/A speed= 0x\nframe= 90 fps=0.0 q=28.0 size= 256kB time=00:00:01.54 bitrate=1360.5kbits/s speed=3.02x\nframe= 124 fps=117 q=-1.0 Lsize= 824kB time=00:00:05.04 bitrate=1338.9kbits/s speed=4.75x\nvideo:822kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.273442%\n[libx264 @ 0x5f2034a63500] frame I:1 Avg QP:25.87 size:227255\n[libx264 @ 0x5f2034a63500] frame P:36 Avg QP:26.29 size: 12688\n[libx264 @ 0x5f2034a63500] frame B:87 Avg QP:30.10 size: 1802\n[libx264 @ 0x5f2034a63500] consecutive B-frames: 1.6% 8.1% 19.4% 71.0%\n[libx264 @ 0x5f2034a63500] mb I I16..4: 1.3% 97.3% 1.4%\n[libx264 @ 0x5f2034a63500] mb P I16..4: 0.4% 6.5% 0.0% P16..4: 18.4% 4.0% 5.4% 0.0% 0.0% skip:65.2%\n[libx264 @ 0x5f2034a63500] mb B I16..4: 0.1% 1.1% 0.0% B16..8: 22.2% 4.1% 1.4% direct: 0.8% skip:70.2% L0:49.7% L1:48.6% BI: 1.7%\n[libx264 @ 0x5f2034a63500] 8x8 transform intra:93.2% inter:51.5%\n[libx264 @ 0x5f2034a63500] coded y,uvDC,uvAC intra: 22.6% 1.4% 0.0% inter: 1.4% 0.6% 0.0%\n[libx264 @ 0x5f2034a63500] i16 v,h,dc,p: 33% 47% 20% 0%\n[libx264 @ 0x5f2034a63500] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 23% 32% 44% 1% 0% 0% 0% 0% 0%\n[libx264 @ 0x5f2034a63500] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 36% 8% 21% 0% 0% 11% 11% 3% 9%\n[libx264 @ 0x5f2034a63500] i8c dc,h,v,p: 89% 7% 4% 0%\n[libx264 @ 0x5f2034a63500] Weighted P-Frames: Y:0.0% UV:0.0%\n[libx264 @ 0x5f2034a63500] ref P L0: 50.8% 6.9% 32.3% 10.0%\n[libx264 @ 0x5f2034a63500] ref B L0: 72.9% 23.2% 3.9%\n[libx264 @ 0x5f2034a63500] ref B L1: 94.1% 5.9%\n[libx264 @ 0x5f2034a63500] kb/s:1301.89", "metrics": { "predict_time": 14.15265914, "total_time": 14.15996 }, "output": "https://replicate.delivery/xezq/x91ApCGF2fyIRCKPXeuWGhq8apr948nBLkL8CnWA8gCJJAOUA/final_output.mp4", "started_at": "2025-02-10T19:15:07.140301Z", "status": "succeeded", "urls": { "stream": "https://stream.replicate.com/v1/files/bcwr-2sofe3qcvl2hu2nbeepsdmh5f7bpejqje5fx5asvtuwvbobkngyq", "get": "https://api.replicate.com/v1/predictions/zpw5n1k6znrme0cmy54ta8kdhr", "cancel": "https://api.replicate.com/v1/predictions/zpw5n1k6znrme0cmy54ta8kdhr/cancel" }, "version": "ea6107f7dc327e05d64eb42241250261af417d41d00c6399b06b0d62cd3c1a2a" }
Generated inffmpeg version 5.1.6-0+deb12u1 Copyright (c) 2000-2024 the FFmpeg developers built with gcc 12 (Debian 12.2.0-14) configuration: --prefix=/usr --extra-version=0+deb12u1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --disable-sndio --enable-libjxl --enable-pocketsphinx --enable-librsvg --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-librav1e --enable-shared libavutil 57. 28.100 / 57. 28.100 libavcodec 59. 37.100 / 59. 37.100 libavformat 59. 27.100 / 59. 27.100 libavdevice 59. 7.100 / 59. 7.100 libavfilter 8. 44.100 / 8. 44.100 libswscale 6. 7.100 / 6. 7.100 libswresample 4. 7.100 / 4. 7.100 libpostproc 56. 6.100 / 56. 6.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/tmp/output/output.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2mp41 encoder : Lavf59.27.100 Duration: 00:00:05.17, start: 0.000000, bitrate: 14894 kb/s Stream #0:0[0x1](und): Video: mpeg4 (Simple Profile) (mp4v / 0x7634706D), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 14893 kb/s, 24 fps, 24 tbr, 12288 tbn (default) Metadata: handler_name : VideoHandler vendor_id : [0][0][0][0] Stream mapping: Stream #0:0 -> #0:0 (mpeg4 (native) -> h264 (libx264)) Press [q] to stop, [?] for help [libx264 @ 0x5f2034a63500] using SAR=1/1 [libx264 @ 0x5f2034a63500] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2 AVX512 [libx264 @ 0x5f2034a63500] profile High, level 3.1, 4:2:0, 8-bit [libx264 @ 0x5f2034a63500] 264 - core 164 r3095 baee400 - H.264/MPEG-4 AVC codec - Copyleft 2003-2022 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=24 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00 Output #0, mp4, to '/tmp/output/final_output.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2mp41 encoder : Lavf59.27.100 Stream #0:0(und): Video: h264 (avc1 / 0x31637661), yuv420p(progressive), 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 24 fps, 12288 tbn (default) Metadata: handler_name : VideoHandler vendor_id : [0][0][0][0] encoder : Lavc59.37.100 libx264 Side data: cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A frame= 1 fps=0.0 q=0.0 size= 0kB time=00:00:00.00 bitrate=N/A speed= 0x frame= 90 fps=0.0 q=28.0 size= 256kB time=00:00:01.54 bitrate=1360.5kbits/s speed=3.02x frame= 124 fps=117 q=-1.0 Lsize= 824kB time=00:00:05.04 bitrate=1338.9kbits/s speed=4.75x video:822kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.273442% [libx264 @ 0x5f2034a63500] frame I:1 Avg QP:25.87 size:227255 [libx264 @ 0x5f2034a63500] frame P:36 Avg QP:26.29 size: 12688 [libx264 @ 0x5f2034a63500] frame B:87 Avg QP:30.10 size: 1802 [libx264 @ 0x5f2034a63500] consecutive B-frames: 1.6% 8.1% 19.4% 71.0% [libx264 @ 0x5f2034a63500] mb I I16..4: 1.3% 97.3% 1.4% [libx264 @ 0x5f2034a63500] mb P I16..4: 0.4% 6.5% 0.0% P16..4: 18.4% 4.0% 5.4% 0.0% 0.0% skip:65.2% [libx264 @ 0x5f2034a63500] mb B I16..4: 0.1% 1.1% 0.0% B16..8: 22.2% 4.1% 1.4% direct: 0.8% skip:70.2% L0:49.7% L1:48.6% BI: 1.7% [libx264 @ 0x5f2034a63500] 8x8 transform intra:93.2% inter:51.5% [libx264 @ 0x5f2034a63500] coded y,uvDC,uvAC intra: 22.6% 1.4% 0.0% inter: 1.4% 0.6% 0.0% [libx264 @ 0x5f2034a63500] i16 v,h,dc,p: 33% 47% 20% 0% [libx264 @ 0x5f2034a63500] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 23% 32% 44% 1% 0% 0% 0% 0% 0% [libx264 @ 0x5f2034a63500] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 36% 8% 21% 0% 0% 11% 11% 3% 9% [libx264 @ 0x5f2034a63500] i8c dc,h,v,p: 89% 7% 4% 0% [libx264 @ 0x5f2034a63500] Weighted P-Frames: Y:0.0% UV:0.0% [libx264 @ 0x5f2034a63500] ref P L0: 50.8% 6.9% 32.3% 10.0% [libx264 @ 0x5f2034a63500] ref B L0: 72.9% 23.2% 3.9% [libx264 @ 0x5f2034a63500] ref B L1: 94.1% 5.9% [libx264 @ 0x5f2034a63500] kb/s:1301.89
Prediction
lucataco/dotted-video:ea6107f7dc327e05d64eb42241250261af417d41d00c6399b06b0d62cd3c1a2aIDw53zme3sksrm80cmy5585fjw7gStatusSucceededSourceWebHardwareCPUTotal durationCreatedInput
- video
- inverse
- dot_size
- 4
- threshold
- 60
- inverse_threshold
{ "video": "https://replicate.delivery/pbxt/MTaoP1Zo3X05qRRdPlBz6hqgxLbKA2BIN9b4AnCXWnlZXQCG/replicate-prediction-v4gajckar1rme0cmy4crzkcz54.mp4", "inverse": false, "dot_size": 4, "threshold": 60, "inverse_threshold": false }
Install Replicate’s Node.js client library:npm install replicate
Import and set up the client:import Replicate from "replicate"; const replicate = new Replicate({ auth: process.env.REPLICATE_API_TOKEN, });
Run lucataco/dotted-video using Replicate’s API. Check out the model's schema for an overview of inputs and outputs.
const output = await replicate.run( "lucataco/dotted-video:ea6107f7dc327e05d64eb42241250261af417d41d00c6399b06b0d62cd3c1a2a", { input: { video: "https://replicate.delivery/pbxt/MTaoP1Zo3X05qRRdPlBz6hqgxLbKA2BIN9b4AnCXWnlZXQCG/replicate-prediction-v4gajckar1rme0cmy4crzkcz54.mp4", inverse: false, dot_size: 4, threshold: 60, inverse_threshold: false } } ); // To access the file URL: console.log(output.url()); //=> "http://example.com" // To write the file to disk: fs.writeFile("my-image.png", output);
To learn more, take a look at the guide on getting started with Node.js.
Install Replicate’s Python client library:pip install replicate
Import the client:import replicate
Run lucataco/dotted-video using Replicate’s API. Check out the model's schema for an overview of inputs and outputs.
output = replicate.run( "lucataco/dotted-video:ea6107f7dc327e05d64eb42241250261af417d41d00c6399b06b0d62cd3c1a2a", input={ "video": "https://replicate.delivery/pbxt/MTaoP1Zo3X05qRRdPlBz6hqgxLbKA2BIN9b4AnCXWnlZXQCG/replicate-prediction-v4gajckar1rme0cmy4crzkcz54.mp4", "inverse": False, "dot_size": 4, "threshold": 60, "inverse_threshold": False } ) print(output)
To learn more, take a look at the guide on getting started with Python.
Run lucataco/dotted-video using Replicate’s API. Check out the model's schema for an overview of inputs and outputs.
curl -s -X POST \ -H "Authorization: Bearer $REPLICATE_API_TOKEN" \ -H "Content-Type: application/json" \ -H "Prefer: wait" \ -d $'{ "version": "lucataco/dotted-video:ea6107f7dc327e05d64eb42241250261af417d41d00c6399b06b0d62cd3c1a2a", "input": { "video": "https://replicate.delivery/pbxt/MTaoP1Zo3X05qRRdPlBz6hqgxLbKA2BIN9b4AnCXWnlZXQCG/replicate-prediction-v4gajckar1rme0cmy4crzkcz54.mp4", "inverse": false, "dot_size": 4, "threshold": 60, "inverse_threshold": false } }' \ https://api.replicate.com/v1/predictions
To learn more, take a look at Replicate’s HTTP API reference docs.
Output
{ "completed_at": "2025-02-10T19:16:23.605392Z", "created_at": "2025-02-10T19:16:17.438000Z", "data_removed": false, "error": null, "id": "w53zme3sksrm80cmy5585fjw7g", "input": { "video": "https://replicate.delivery/pbxt/MTaoP1Zo3X05qRRdPlBz6hqgxLbKA2BIN9b4AnCXWnlZXQCG/replicate-prediction-v4gajckar1rme0cmy4crzkcz54.mp4", "inverse": false, "dot_size": 4, "threshold": 60, "inverse_threshold": false }, "logs": "ffmpeg version 5.1.6-0+deb12u1 Copyright (c) 2000-2024 the FFmpeg developers\nbuilt with gcc 12 (Debian 12.2.0-14)\nconfiguration: --prefix=/usr --extra-version=0+deb12u1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --disable-sndio --enable-libjxl --enable-pocketsphinx --enable-librsvg --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-librav1e --enable-shared\nlibavutil 57. 28.100 / 57. 28.100\nlibavcodec 59. 37.100 / 59. 37.100\nlibavformat 59. 27.100 / 59. 27.100\nlibavdevice 59. 7.100 / 59. 7.100\nlibavfilter 8. 44.100 / 8. 44.100\nlibswscale 6. 7.100 / 6. 7.100\nlibswresample 4. 7.100 / 4. 7.100\nlibpostproc 56. 6.100 / 56. 6.100\nInput #0, mov,mp4,m4a,3gp,3g2,mj2, from '/tmp/output/output.mp4':\nMetadata:\nmajor_brand : isom\nminor_version : 512\ncompatible_brands: isomiso2mp41\nencoder : Lavf59.27.100\nDuration: 00:00:05.38, start: 0.000000, bitrate: 4340 kb/s\nStream #0:0[0x1](und): Video: mpeg4 (Simple Profile) (mp4v / 0x7634706D), yuv420p, 864x480 [SAR 1:1 DAR 9:5], 4338 kb/s, 24 fps, 24 tbr, 12288 tbn (default)\nMetadata:\nhandler_name : VideoHandler\nvendor_id : [0][0][0][0]\nStream mapping:\nStream #0:0 -> #0:0 (mpeg4 (native) -> h264 (libx264))\nPress [q] to stop, [?] for help\n[libx264 @ 0x5f61f32f8140] using SAR=1/1\n[libx264 @ 0x5f61f32f8140] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2 AVX512\n[libx264 @ 0x5f61f32f8140] profile High, level 3.0, 4:2:0, 8-bit\n[libx264 @ 0x5f61f32f8140] 264 - core 164 r3095 baee400 - H.264/MPEG-4 AVC codec - Copyleft 2003-2022 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=24 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00\nOutput #0, mp4, to '/tmp/output/final_output.mp4':\nMetadata:\nmajor_brand : isom\nminor_version : 512\ncompatible_brands: isomiso2mp41\nencoder : Lavf59.27.100\nStream #0:0(und): Video: h264 (avc1 / 0x31637661), yuv420p(progressive), 864x480 [SAR 1:1 DAR 9:5], q=2-31, 24 fps, 12288 tbn (default)\nMetadata:\nhandler_name : VideoHandler\nvendor_id : [0][0][0][0]\nencoder : Lavc59.37.100 libx264\nSide data:\ncpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A\nframe= 1 fps=0.0 q=0.0 size= 0kB time=00:00:00.00 bitrate=N/A speed= 0x\nframe= 129 fps=0.0 q=-1.0 Lsize= 258kB time=00:00:05.25 bitrate= 402.5kbits/s speed=13.9x\nvideo:256kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.898334%\n[libx264 @ 0x5f61f32f8140] frame I:1 Avg QP:23.89 size:109128\n[libx264 @ 0x5f61f32f8140] frame P:45 Avg QP:24.18 size: 2557\n[libx264 @ 0x5f61f32f8140] frame B:83 Avg QP:25.65 size: 445\n[libx264 @ 0x5f61f32f8140] consecutive B-frames: 7.0% 18.6% 9.3% 65.1%\n[libx264 @ 0x5f61f32f8140] mb I I16..4: 15.6% 82.2% 2.2%\n[libx264 @ 0x5f61f32f8140] mb P I16..4: 0.6% 3.7% 0.0% P16..4: 9.7% 2.8% 3.3% 0.0% 0.0% skip:80.0%\n[libx264 @ 0x5f61f32f8140] mb B I16..4: 0.4% 0.8% 0.0% B16..8: 11.5% 2.5% 0.5% direct: 0.4% skip:83.8% L0:48.2% L1:50.2% BI: 1.7%\n[libx264 @ 0x5f61f32f8140] 8x8 transform intra:79.5% inter:51.2%\n[libx264 @ 0x5f61f32f8140] coded y,uvDC,uvAC intra: 17.5% 0.4% 0.0% inter: 1.0% 0.5% 0.0%\n[libx264 @ 0x5f61f32f8140] i16 v,h,dc,p: 68% 15% 17% 0%\n[libx264 @ 0x5f61f32f8140] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 15% 22% 62% 1% 0% 0% 0% 0% 0%\n[libx264 @ 0x5f61f32f8140] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 45% 7% 14% 0% 0% 11% 11% 2% 11%\n[libx264 @ 0x5f61f32f8140] i8c dc,h,v,p: 95% 3% 2% 0%\n[libx264 @ 0x5f61f32f8140] Weighted P-Frames: Y:2.2% UV:0.0%\n[libx264 @ 0x5f61f32f8140] ref P L0: 59.6% 2.1% 28.3% 9.9% 0.2%\n[libx264 @ 0x5f61f32f8140] ref B L0: 74.2% 22.0% 3.8%\n[libx264 @ 0x5f61f32f8140] ref B L1: 94.3% 5.7%\n[libx264 @ 0x5f61f32f8140] kb/s:388.66", "metrics": { "predict_time": 6.158763165, "total_time": 6.167392 }, "output": "https://replicate.delivery/xezq/akMqoW9mIzITM12u5hE41omqp5Nqs2qrvFcsV0cH2BzhCgDF/final_output.mp4", "started_at": "2025-02-10T19:16:17.446629Z", "status": "succeeded", "urls": { "stream": "https://stream.replicate.com/v1/files/bcwr-xhxqdbc7q4vrppwgqq4gn46ppronw3ycloegglafdltfaukqjaka", "get": "https://api.replicate.com/v1/predictions/w53zme3sksrm80cmy5585fjw7g", "cancel": "https://api.replicate.com/v1/predictions/w53zme3sksrm80cmy5585fjw7g/cancel" }, "version": "ea6107f7dc327e05d64eb42241250261af417d41d00c6399b06b0d62cd3c1a2a" }
Generated inffmpeg version 5.1.6-0+deb12u1 Copyright (c) 2000-2024 the FFmpeg developers built with gcc 12 (Debian 12.2.0-14) configuration: --prefix=/usr --extra-version=0+deb12u1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --disable-sndio --enable-libjxl --enable-pocketsphinx --enable-librsvg --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-librav1e --enable-shared libavutil 57. 28.100 / 57. 28.100 libavcodec 59. 37.100 / 59. 37.100 libavformat 59. 27.100 / 59. 27.100 libavdevice 59. 7.100 / 59. 7.100 libavfilter 8. 44.100 / 8. 44.100 libswscale 6. 7.100 / 6. 7.100 libswresample 4. 7.100 / 4. 7.100 libpostproc 56. 6.100 / 56. 6.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/tmp/output/output.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2mp41 encoder : Lavf59.27.100 Duration: 00:00:05.38, start: 0.000000, bitrate: 4340 kb/s Stream #0:0[0x1](und): Video: mpeg4 (Simple Profile) (mp4v / 0x7634706D), yuv420p, 864x480 [SAR 1:1 DAR 9:5], 4338 kb/s, 24 fps, 24 tbr, 12288 tbn (default) Metadata: handler_name : VideoHandler vendor_id : [0][0][0][0] Stream mapping: Stream #0:0 -> #0:0 (mpeg4 (native) -> h264 (libx264)) Press [q] to stop, [?] for help [libx264 @ 0x5f61f32f8140] using SAR=1/1 [libx264 @ 0x5f61f32f8140] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2 AVX512 [libx264 @ 0x5f61f32f8140] profile High, level 3.0, 4:2:0, 8-bit [libx264 @ 0x5f61f32f8140] 264 - core 164 r3095 baee400 - H.264/MPEG-4 AVC codec - Copyleft 2003-2022 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=24 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00 Output #0, mp4, to '/tmp/output/final_output.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2mp41 encoder : Lavf59.27.100 Stream #0:0(und): Video: h264 (avc1 / 0x31637661), yuv420p(progressive), 864x480 [SAR 1:1 DAR 9:5], q=2-31, 24 fps, 12288 tbn (default) Metadata: handler_name : VideoHandler vendor_id : [0][0][0][0] encoder : Lavc59.37.100 libx264 Side data: cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A frame= 1 fps=0.0 q=0.0 size= 0kB time=00:00:00.00 bitrate=N/A speed= 0x frame= 129 fps=0.0 q=-1.0 Lsize= 258kB time=00:00:05.25 bitrate= 402.5kbits/s speed=13.9x video:256kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.898334% [libx264 @ 0x5f61f32f8140] frame I:1 Avg QP:23.89 size:109128 [libx264 @ 0x5f61f32f8140] frame P:45 Avg QP:24.18 size: 2557 [libx264 @ 0x5f61f32f8140] frame B:83 Avg QP:25.65 size: 445 [libx264 @ 0x5f61f32f8140] consecutive B-frames: 7.0% 18.6% 9.3% 65.1% [libx264 @ 0x5f61f32f8140] mb I I16..4: 15.6% 82.2% 2.2% [libx264 @ 0x5f61f32f8140] mb P I16..4: 0.6% 3.7% 0.0% P16..4: 9.7% 2.8% 3.3% 0.0% 0.0% skip:80.0% [libx264 @ 0x5f61f32f8140] mb B I16..4: 0.4% 0.8% 0.0% B16..8: 11.5% 2.5% 0.5% direct: 0.4% skip:83.8% L0:48.2% L1:50.2% BI: 1.7% [libx264 @ 0x5f61f32f8140] 8x8 transform intra:79.5% inter:51.2% [libx264 @ 0x5f61f32f8140] coded y,uvDC,uvAC intra: 17.5% 0.4% 0.0% inter: 1.0% 0.5% 0.0% [libx264 @ 0x5f61f32f8140] i16 v,h,dc,p: 68% 15% 17% 0% [libx264 @ 0x5f61f32f8140] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 15% 22% 62% 1% 0% 0% 0% 0% 0% [libx264 @ 0x5f61f32f8140] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 45% 7% 14% 0% 0% 11% 11% 2% 11% [libx264 @ 0x5f61f32f8140] i8c dc,h,v,p: 95% 3% 2% 0% [libx264 @ 0x5f61f32f8140] Weighted P-Frames: Y:2.2% UV:0.0% [libx264 @ 0x5f61f32f8140] ref P L0: 59.6% 2.1% 28.3% 9.9% 0.2% [libx264 @ 0x5f61f32f8140] ref B L0: 74.2% 22.0% 3.8% [libx264 @ 0x5f61f32f8140] ref B L1: 94.3% 5.7% [libx264 @ 0x5f61f32f8140] kb/s:388.66
Prediction
lucataco/dotted-video:ea6107f7dc327e05d64eb42241250261af417d41d00c6399b06b0d62cd3c1a2aID9e8kg1cmmxrmc0cmy5srjdgrmmStatusSucceededSourceWebHardwareCPUTotal durationCreatedInput
- video
- inverse
- dot_size
- 4
- threshold
- 128
- inverse_threshold
{ "video": "https://replicate.delivery/pbxt/MTamh4TnpSDNhaYQgXVHuemLCjboaeajxWtX4hjMyNMFy02h/jelly.mp4", "inverse": true, "dot_size": 4, "threshold": 128, "inverse_threshold": false }
Install Replicate’s Node.js client library:npm install replicate
Import and set up the client:import Replicate from "replicate"; const replicate = new Replicate({ auth: process.env.REPLICATE_API_TOKEN, });
Run lucataco/dotted-video using Replicate’s API. Check out the model's schema for an overview of inputs and outputs.
const output = await replicate.run( "lucataco/dotted-video:ea6107f7dc327e05d64eb42241250261af417d41d00c6399b06b0d62cd3c1a2a", { input: { video: "https://replicate.delivery/pbxt/MTamh4TnpSDNhaYQgXVHuemLCjboaeajxWtX4hjMyNMFy02h/jelly.mp4", inverse: true, dot_size: 4, threshold: 128, inverse_threshold: false } } ); // To access the file URL: console.log(output.url()); //=> "http://example.com" // To write the file to disk: fs.writeFile("my-image.png", output);
To learn more, take a look at the guide on getting started with Node.js.
Install Replicate’s Python client library:pip install replicate
Import the client:import replicate
Run lucataco/dotted-video using Replicate’s API. Check out the model's schema for an overview of inputs and outputs.
output = replicate.run( "lucataco/dotted-video:ea6107f7dc327e05d64eb42241250261af417d41d00c6399b06b0d62cd3c1a2a", input={ "video": "https://replicate.delivery/pbxt/MTamh4TnpSDNhaYQgXVHuemLCjboaeajxWtX4hjMyNMFy02h/jelly.mp4", "inverse": True, "dot_size": 4, "threshold": 128, "inverse_threshold": False } ) print(output)
To learn more, take a look at the guide on getting started with Python.
Run lucataco/dotted-video using Replicate’s API. Check out the model's schema for an overview of inputs and outputs.
curl -s -X POST \ -H "Authorization: Bearer $REPLICATE_API_TOKEN" \ -H "Content-Type: application/json" \ -H "Prefer: wait" \ -d $'{ "version": "lucataco/dotted-video:ea6107f7dc327e05d64eb42241250261af417d41d00c6399b06b0d62cd3c1a2a", "input": { "video": "https://replicate.delivery/pbxt/MTamh4TnpSDNhaYQgXVHuemLCjboaeajxWtX4hjMyNMFy02h/jelly.mp4", "inverse": true, "dot_size": 4, "threshold": 128, "inverse_threshold": false } }' \ https://api.replicate.com/v1/predictions
To learn more, take a look at Replicate’s HTTP API reference docs.
Output
{ "completed_at": "2025-02-10T20:01:25.176898Z", "created_at": "2025-02-10T20:01:11.335000Z", "data_removed": false, "error": null, "id": "9e8kg1cmmxrmc0cmy5srjdgrmm", "input": { "video": "https://replicate.delivery/pbxt/MTamh4TnpSDNhaYQgXVHuemLCjboaeajxWtX4hjMyNMFy02h/jelly.mp4", "inverse": true, "dot_size": 4, "threshold": 128, "inverse_threshold": false }, "logs": "ffmpeg version 5.1.6-0+deb12u1 Copyright (c) 2000-2024 the FFmpeg developers\nbuilt with gcc 12 (Debian 12.2.0-14)\nconfiguration: --prefix=/usr --extra-version=0+deb12u1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --disable-sndio --enable-libjxl --enable-pocketsphinx --enable-librsvg --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-librav1e --enable-shared\nlibavutil 57. 28.100 / 57. 28.100\nlibavcodec 59. 37.100 / 59. 37.100\nlibavformat 59. 27.100 / 59. 27.100\nlibavdevice 59. 7.100 / 59. 7.100\nlibavfilter 8. 44.100 / 8. 44.100\nlibswscale 6. 7.100 / 6. 7.100\nlibswresample 4. 7.100 / 4. 7.100\nlibpostproc 56. 6.100 / 56. 6.100\nInput #0, mov,mp4,m4a,3gp,3g2,mj2, from '/tmp/output/output.mp4':\nMetadata:\nmajor_brand : isom\nminor_version : 512\ncompatible_brands: isomiso2mp41\nencoder : Lavf59.27.100\nDuration: 00:00:07.87, start: 0.000000, bitrate: 1174 kb/s\nStream #0:0[0x1](und): Video: mpeg4 (Simple Profile) (mp4v / 0x7634706D), yuv420p, 854x480 [SAR 1:1 DAR 427:240], 1173 kb/s, 30 fps, 30 tbr, 15360 tbn (default)\nMetadata:\nhandler_name : VideoHandler\nvendor_id : [0][0][0][0]\nStream mapping:\nStream #0:0 -> #0:0 (mpeg4 (native) -> h264 (libx264))\nPress [q] to stop, [?] for help\n[libx264 @ 0x58ce52dd9140] using SAR=1/1\n[libx264 @ 0x58ce52dd9140] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2 AVX512\n[libx264 @ 0x58ce52dd9140] profile High, level 3.1, 4:2:0, 8-bit\n[libx264 @ 0x58ce52dd9140] 264 - core 164 r3095 baee400 - H.264/MPEG-4 AVC codec - Copyleft 2003-2022 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00\nOutput #0, mp4, to '/tmp/output/final_output.mp4':\nMetadata:\nmajor_brand : isom\nminor_version : 512\ncompatible_brands: isomiso2mp41\nencoder : Lavf59.27.100\nStream #0:0(und): Video: h264 (avc1 / 0x31637661), yuv420p(progressive), 854x480 [SAR 1:1 DAR 427:240], q=2-31, 30 fps, 15360 tbn (default)\nMetadata:\nhandler_name : VideoHandler\nvendor_id : [0][0][0][0]\nencoder : Lavc59.37.100 libx264\nSide data:\ncpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A\nframe= 1 fps=0.0 q=0.0 size= 0kB time=00:00:00.00 bitrate=N/A speed= 0x\nframe= 236 fps=0.0 q=-1.0 Lsize= 134kB time=00:00:07.76 bitrate= 141.2kbits/s speed=19.9x\nvideo:130kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 2.706367%\n[libx264 @ 0x58ce52dd9140] frame I:1 Avg QP:16.70 size: 10576\n[libx264 @ 0x58ce52dd9140] frame P:74 Avg QP:25.55 size: 1082\n[libx264 @ 0x58ce52dd9140] frame B:161 Avg QP:25.31 size: 262\n[libx264 @ 0x58ce52dd9140] consecutive B-frames: 5.5% 6.8% 11.4% 76.3%\n[libx264 @ 0x58ce52dd9140] mb I I16..4: 21.8% 74.9% 3.3%\n[libx264 @ 0x58ce52dd9140] mb P I16..4: 0.2% 2.1% 0.0% P16..4: 2.8% 1.2% 0.7% 0.0% 0.0% skip:93.0%\n[libx264 @ 0x58ce52dd9140] mb B I16..4: 0.3% 0.5% 0.0% B16..8: 6.9% 1.3% 0.2% direct: 0.1% skip:90.7% L0:56.5% L1:42.6% BI: 0.9%\n[libx264 @ 0x58ce52dd9140] 8x8 transform intra:77.9% inter:89.3%\n[libx264 @ 0x58ce52dd9140] coded y,uvDC,uvAC intra: 6.7% 0.0% 0.0% inter: 0.1% 0.0% 0.0%\n[libx264 @ 0x58ce52dd9140] i16 v,h,dc,p: 74% 18% 8% 0%\n[libx264 @ 0x58ce52dd9140] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 27% 8% 63% 1% 0% 0% 0% 0% 0%\n[libx264 @ 0x58ce52dd9140] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 22% 6% 17% 0% 0% 21% 17% 1% 15%\n[libx264 @ 0x58ce52dd9140] i8c dc,h,v,p: 100% 0% 0% 0%\n[libx264 @ 0x58ce52dd9140] Weighted P-Frames: Y:0.0% UV:0.0%\n[libx264 @ 0x58ce52dd9140] ref P L0: 66.5% 3.0% 21.9% 8.6%\n[libx264 @ 0x58ce52dd9140] ref B L0: 68.2% 25.0% 6.8%\n[libx264 @ 0x58ce52dd9140] ref B L1: 94.8% 5.2%\n[libx264 @ 0x58ce52dd9140] kb/s:135.06", "metrics": { "predict_time": 8.557183209, "total_time": 13.841898 }, "output": "https://replicate.delivery/xezq/Pf8Mzq74fhrK4EgISIWqcTMByW8yAk54CmeUzpuqnABroBcoA/final_output.mp4", "started_at": "2025-02-10T20:01:16.619715Z", "status": "succeeded", "urls": { "stream": "https://stream.replicate.com/v1/files/bcwr-e3is5524ynomn72ngyp256jzraq7zbid5cmscdpzok7llhptztsa", "get": "https://api.replicate.com/v1/predictions/9e8kg1cmmxrmc0cmy5srjdgrmm", "cancel": "https://api.replicate.com/v1/predictions/9e8kg1cmmxrmc0cmy5srjdgrmm/cancel" }, "version": "ea6107f7dc327e05d64eb42241250261af417d41d00c6399b06b0d62cd3c1a2a" }
Generated inffmpeg version 5.1.6-0+deb12u1 Copyright (c) 2000-2024 the FFmpeg developers built with gcc 12 (Debian 12.2.0-14) configuration: --prefix=/usr --extra-version=0+deb12u1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --disable-sndio --enable-libjxl --enable-pocketsphinx --enable-librsvg --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-librav1e --enable-shared libavutil 57. 28.100 / 57. 28.100 libavcodec 59. 37.100 / 59. 37.100 libavformat 59. 27.100 / 59. 27.100 libavdevice 59. 7.100 / 59. 7.100 libavfilter 8. 44.100 / 8. 44.100 libswscale 6. 7.100 / 6. 7.100 libswresample 4. 7.100 / 4. 7.100 libpostproc 56. 6.100 / 56. 6.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/tmp/output/output.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2mp41 encoder : Lavf59.27.100 Duration: 00:00:07.87, start: 0.000000, bitrate: 1174 kb/s Stream #0:0[0x1](und): Video: mpeg4 (Simple Profile) (mp4v / 0x7634706D), yuv420p, 854x480 [SAR 1:1 DAR 427:240], 1173 kb/s, 30 fps, 30 tbr, 15360 tbn (default) Metadata: handler_name : VideoHandler vendor_id : [0][0][0][0] Stream mapping: Stream #0:0 -> #0:0 (mpeg4 (native) -> h264 (libx264)) Press [q] to stop, [?] for help [libx264 @ 0x58ce52dd9140] using SAR=1/1 [libx264 @ 0x58ce52dd9140] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2 AVX512 [libx264 @ 0x58ce52dd9140] profile High, level 3.1, 4:2:0, 8-bit [libx264 @ 0x58ce52dd9140] 264 - core 164 r3095 baee400 - H.264/MPEG-4 AVC codec - Copyleft 2003-2022 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00 Output #0, mp4, to '/tmp/output/final_output.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2mp41 encoder : Lavf59.27.100 Stream #0:0(und): Video: h264 (avc1 / 0x31637661), yuv420p(progressive), 854x480 [SAR 1:1 DAR 427:240], q=2-31, 30 fps, 15360 tbn (default) Metadata: handler_name : VideoHandler vendor_id : [0][0][0][0] encoder : Lavc59.37.100 libx264 Side data: cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A frame= 1 fps=0.0 q=0.0 size= 0kB time=00:00:00.00 bitrate=N/A speed= 0x frame= 236 fps=0.0 q=-1.0 Lsize= 134kB time=00:00:07.76 bitrate= 141.2kbits/s speed=19.9x video:130kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 2.706367% [libx264 @ 0x58ce52dd9140] frame I:1 Avg QP:16.70 size: 10576 [libx264 @ 0x58ce52dd9140] frame P:74 Avg QP:25.55 size: 1082 [libx264 @ 0x58ce52dd9140] frame B:161 Avg QP:25.31 size: 262 [libx264 @ 0x58ce52dd9140] consecutive B-frames: 5.5% 6.8% 11.4% 76.3% [libx264 @ 0x58ce52dd9140] mb I I16..4: 21.8% 74.9% 3.3% [libx264 @ 0x58ce52dd9140] mb P I16..4: 0.2% 2.1% 0.0% P16..4: 2.8% 1.2% 0.7% 0.0% 0.0% skip:93.0% [libx264 @ 0x58ce52dd9140] mb B I16..4: 0.3% 0.5% 0.0% B16..8: 6.9% 1.3% 0.2% direct: 0.1% skip:90.7% L0:56.5% L1:42.6% BI: 0.9% [libx264 @ 0x58ce52dd9140] 8x8 transform intra:77.9% inter:89.3% [libx264 @ 0x58ce52dd9140] coded y,uvDC,uvAC intra: 6.7% 0.0% 0.0% inter: 0.1% 0.0% 0.0% [libx264 @ 0x58ce52dd9140] i16 v,h,dc,p: 74% 18% 8% 0% [libx264 @ 0x58ce52dd9140] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 27% 8% 63% 1% 0% 0% 0% 0% 0% [libx264 @ 0x58ce52dd9140] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 22% 6% 17% 0% 0% 21% 17% 1% 15% [libx264 @ 0x58ce52dd9140] i8c dc,h,v,p: 100% 0% 0% 0% [libx264 @ 0x58ce52dd9140] Weighted P-Frames: Y:0.0% UV:0.0% [libx264 @ 0x58ce52dd9140] ref P L0: 66.5% 3.0% 21.9% 8.6% [libx264 @ 0x58ce52dd9140] ref B L0: 68.2% 25.0% 6.8% [libx264 @ 0x58ce52dd9140] ref B L1: 94.8% 5.2% [libx264 @ 0x58ce52dd9140] kb/s:135.06
Prediction
lucataco/dotted-video:ea6107f7dc327e05d64eb42241250261af417d41d00c6399b06b0d62cd3c1a2aIDj8q04g87phrmc0cmy5ta608ebgStatusSucceededSourceWebHardwareCPUTotal durationCreatedInput
- video
- inverse
- dot_size
- 4
- threshold
- 128
- inverse_threshold
{ "video": "https://replicate.delivery/pbxt/MTanIHRMqtGG6M6I99bhvcSpmyGLWufnSP6DK5SAuusmz8gl/boat.mp4", "inverse": false, "dot_size": 4, "threshold": 128, "inverse_threshold": false }
Install Replicate’s Node.js client library:npm install replicate
Import and set up the client:import Replicate from "replicate"; const replicate = new Replicate({ auth: process.env.REPLICATE_API_TOKEN, });
Run lucataco/dotted-video using Replicate’s API. Check out the model's schema for an overview of inputs and outputs.
const output = await replicate.run( "lucataco/dotted-video:ea6107f7dc327e05d64eb42241250261af417d41d00c6399b06b0d62cd3c1a2a", { input: { video: "https://replicate.delivery/pbxt/MTanIHRMqtGG6M6I99bhvcSpmyGLWufnSP6DK5SAuusmz8gl/boat.mp4", inverse: false, dot_size: 4, threshold: 128, inverse_threshold: false } } ); // To access the file URL: console.log(output.url()); //=> "http://example.com" // To write the file to disk: fs.writeFile("my-image.png", output);
To learn more, take a look at the guide on getting started with Node.js.
Install Replicate’s Python client library:pip install replicate
Import the client:import replicate
Run lucataco/dotted-video using Replicate’s API. Check out the model's schema for an overview of inputs and outputs.
output = replicate.run( "lucataco/dotted-video:ea6107f7dc327e05d64eb42241250261af417d41d00c6399b06b0d62cd3c1a2a", input={ "video": "https://replicate.delivery/pbxt/MTanIHRMqtGG6M6I99bhvcSpmyGLWufnSP6DK5SAuusmz8gl/boat.mp4", "inverse": False, "dot_size": 4, "threshold": 128, "inverse_threshold": False } ) print(output)
To learn more, take a look at the guide on getting started with Python.
Run lucataco/dotted-video using Replicate’s API. Check out the model's schema for an overview of inputs and outputs.
curl -s -X POST \ -H "Authorization: Bearer $REPLICATE_API_TOKEN" \ -H "Content-Type: application/json" \ -H "Prefer: wait" \ -d $'{ "version": "lucataco/dotted-video:ea6107f7dc327e05d64eb42241250261af417d41d00c6399b06b0d62cd3c1a2a", "input": { "video": "https://replicate.delivery/pbxt/MTanIHRMqtGG6M6I99bhvcSpmyGLWufnSP6DK5SAuusmz8gl/boat.mp4", "inverse": false, "dot_size": 4, "threshold": 128, "inverse_threshold": false } }' \ https://api.replicate.com/v1/predictions
To learn more, take a look at Replicate’s HTTP API reference docs.
Output
{ "completed_at": "2025-02-10T20:01:53.215314Z", "created_at": "2025-02-10T20:01:40.788000Z", "data_removed": false, "error": null, "id": "j8q04g87phrmc0cmy5ta608ebg", "input": { "video": "https://replicate.delivery/pbxt/MTanIHRMqtGG6M6I99bhvcSpmyGLWufnSP6DK5SAuusmz8gl/boat.mp4", "inverse": false, "dot_size": 4, "threshold": 128, "inverse_threshold": false }, "logs": "ffmpeg version 5.1.6-0+deb12u1 Copyright (c) 2000-2024 the FFmpeg developers\nbuilt with gcc 12 (Debian 12.2.0-14)\nconfiguration: --prefix=/usr --extra-version=0+deb12u1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --disable-sndio --enable-libjxl --enable-pocketsphinx --enable-librsvg --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-librav1e --enable-shared\nlibavutil 57. 28.100 / 57. 28.100\nlibavcodec 59. 37.100 / 59. 37.100\nlibavformat 59. 27.100 / 59. 27.100\nlibavdevice 59. 7.100 / 59. 7.100\nlibavfilter 8. 44.100 / 8. 44.100\nlibswscale 6. 7.100 / 6. 7.100\nlibswresample 4. 7.100 / 4. 7.100\nlibpostproc 56. 6.100 / 56. 6.100\nInput #0, mov,mp4,m4a,3gp,3g2,mj2, from '/tmp/output/output.mp4':\nMetadata:\nmajor_brand : isom\nminor_version : 512\ncompatible_brands: isomiso2mp41\nencoder : Lavf59.27.100\nDuration: 00:00:05.17, start: 0.000000, bitrate: 10091 kb/s\nStream #0:0[0x1](und): Video: mpeg4 (Simple Profile) (mp4v / 0x7634706D), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 10089 kb/s, 24 fps, 24 tbr, 12288 tbn (default)\nMetadata:\nhandler_name : VideoHandler\nvendor_id : [0][0][0][0]\nStream mapping:\nStream #0:0 -> #0:0 (mpeg4 (native) -> h264 (libx264))\nPress [q] to stop, [?] for help\n[libx264 @ 0x60e415275280] using SAR=1/1\n[libx264 @ 0x60e415275280] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2 AVX512\n[libx264 @ 0x60e415275280] profile High, level 3.1, 4:2:0, 8-bit\n[libx264 @ 0x60e415275280] 264 - core 164 r3095 baee400 - H.264/MPEG-4 AVC codec - Copyleft 2003-2022 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=24 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00\nOutput #0, mp4, to '/tmp/output/final_output.mp4':\nMetadata:\nmajor_brand : isom\nminor_version : 512\ncompatible_brands: isomiso2mp41\nencoder : Lavf59.27.100\nStream #0:0(und): Video: h264 (avc1 / 0x31637661), yuv420p(progressive), 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 24 fps, 12288 tbn (default)\nMetadata:\nhandler_name : VideoHandler\nvendor_id : [0][0][0][0]\nencoder : Lavc59.37.100 libx264\nSide data:\ncpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A\nframe= 1 fps=0.0 q=0.0 size= 0kB time=00:00:00.00 bitrate=N/A speed= 0x\nframe= 95 fps=0.0 q=28.0 size= 256kB time=00:00:01.75 bitrate=1198.5kbits/s speed=3.35x\nframe= 124 fps=0.0 q=-1.0 Lsize= 807kB time=00:00:05.04 bitrate=1310.9kbits/s speed=5.21x\nvideo:805kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.279294%\n[libx264 @ 0x60e415275280] frame I:1 Avg QP:26.18 size:178926\n[libx264 @ 0x60e415275280] frame P:41 Avg QP:27.27 size: 11755\n[libx264 @ 0x60e415275280] frame B:82 Avg QP:31.51 size: 1979\n[libx264 @ 0x60e415275280] consecutive B-frames: 7.3% 8.1% 16.9% 67.7%\n[libx264 @ 0x60e415275280] mb I I16..4: 2.5% 97.3% 0.2%\n[libx264 @ 0x60e415275280] mb P I16..4: 0.6% 9.6% 0.2% P16..4: 12.2% 3.1% 3.3% 0.0% 0.0% skip:71.1%\n[libx264 @ 0x60e415275280] mb B I16..4: 0.1% 1.4% 0.0% B16..8: 20.4% 4.1% 1.3% direct: 0.8% skip:72.0% L0:50.8% L1:46.7% BI: 2.5%\n[libx264 @ 0x60e415275280] 8x8 transform intra:93.8% inter:77.7%\n[libx264 @ 0x60e415275280] coded y,uvDC,uvAC intra: 17.3% 0.8% 0.0% inter: 1.0% 0.3% 0.0%\n[libx264 @ 0x60e415275280] i16 v,h,dc,p: 41% 48% 11% 0%\n[libx264 @ 0x60e415275280] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 23% 22% 54% 0% 0% 0% 0% 0% 0%\n[libx264 @ 0x60e415275280] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 22% 6% 18% 1% 0% 18% 17% 4% 15%\n[libx264 @ 0x60e415275280] i8c dc,h,v,p: 93% 5% 2% 0%\n[libx264 @ 0x60e415275280] Weighted P-Frames: Y:0.0% UV:0.0%\n[libx264 @ 0x60e415275280] ref P L0: 59.5% 4.6% 26.8% 9.1%\n[libx264 @ 0x60e415275280] ref B L0: 74.0% 20.9% 5.0%\n[libx264 @ 0x60e415275280] ref B L1: 94.8% 5.2%\n[libx264 @ 0x60e415275280] kb/s:1274.59", "metrics": { "predict_time": 12.420899216, "total_time": 12.427314 }, "output": "https://replicate.delivery/xezq/yEgFUzfonn0oG6xHdhPqvqVRuKtNGhRyppm7ykFmQVmYaAHKA/final_output.mp4", "started_at": "2025-02-10T20:01:40.794415Z", "status": "succeeded", "urls": { "stream": "https://stream.replicate.com/v1/files/bcwr-i5jkzrt2o2m5xly5unlpayfch2k6tnpy2om2r5etaxmfuwdvgtzq", "get": "https://api.replicate.com/v1/predictions/j8q04g87phrmc0cmy5ta608ebg", "cancel": "https://api.replicate.com/v1/predictions/j8q04g87phrmc0cmy5ta608ebg/cancel" }, "version": "ea6107f7dc327e05d64eb42241250261af417d41d00c6399b06b0d62cd3c1a2a" }
Generated inffmpeg version 5.1.6-0+deb12u1 Copyright (c) 2000-2024 the FFmpeg developers built with gcc 12 (Debian 12.2.0-14) configuration: --prefix=/usr --extra-version=0+deb12u1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --disable-sndio --enable-libjxl --enable-pocketsphinx --enable-librsvg --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-librav1e --enable-shared libavutil 57. 28.100 / 57. 28.100 libavcodec 59. 37.100 / 59. 37.100 libavformat 59. 27.100 / 59. 27.100 libavdevice 59. 7.100 / 59. 7.100 libavfilter 8. 44.100 / 8. 44.100 libswscale 6. 7.100 / 6. 7.100 libswresample 4. 7.100 / 4. 7.100 libpostproc 56. 6.100 / 56. 6.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/tmp/output/output.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2mp41 encoder : Lavf59.27.100 Duration: 00:00:05.17, start: 0.000000, bitrate: 10091 kb/s Stream #0:0[0x1](und): Video: mpeg4 (Simple Profile) (mp4v / 0x7634706D), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 10089 kb/s, 24 fps, 24 tbr, 12288 tbn (default) Metadata: handler_name : VideoHandler vendor_id : [0][0][0][0] Stream mapping: Stream #0:0 -> #0:0 (mpeg4 (native) -> h264 (libx264)) Press [q] to stop, [?] for help [libx264 @ 0x60e415275280] using SAR=1/1 [libx264 @ 0x60e415275280] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2 AVX512 [libx264 @ 0x60e415275280] profile High, level 3.1, 4:2:0, 8-bit [libx264 @ 0x60e415275280] 264 - core 164 r3095 baee400 - H.264/MPEG-4 AVC codec - Copyleft 2003-2022 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=24 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00 Output #0, mp4, to '/tmp/output/final_output.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2mp41 encoder : Lavf59.27.100 Stream #0:0(und): Video: h264 (avc1 / 0x31637661), yuv420p(progressive), 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 24 fps, 12288 tbn (default) Metadata: handler_name : VideoHandler vendor_id : [0][0][0][0] encoder : Lavc59.37.100 libx264 Side data: cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A frame= 1 fps=0.0 q=0.0 size= 0kB time=00:00:00.00 bitrate=N/A speed= 0x frame= 95 fps=0.0 q=28.0 size= 256kB time=00:00:01.75 bitrate=1198.5kbits/s speed=3.35x frame= 124 fps=0.0 q=-1.0 Lsize= 807kB time=00:00:05.04 bitrate=1310.9kbits/s speed=5.21x video:805kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.279294% [libx264 @ 0x60e415275280] frame I:1 Avg QP:26.18 size:178926 [libx264 @ 0x60e415275280] frame P:41 Avg QP:27.27 size: 11755 [libx264 @ 0x60e415275280] frame B:82 Avg QP:31.51 size: 1979 [libx264 @ 0x60e415275280] consecutive B-frames: 7.3% 8.1% 16.9% 67.7% [libx264 @ 0x60e415275280] mb I I16..4: 2.5% 97.3% 0.2% [libx264 @ 0x60e415275280] mb P I16..4: 0.6% 9.6% 0.2% P16..4: 12.2% 3.1% 3.3% 0.0% 0.0% skip:71.1% [libx264 @ 0x60e415275280] mb B I16..4: 0.1% 1.4% 0.0% B16..8: 20.4% 4.1% 1.3% direct: 0.8% skip:72.0% L0:50.8% L1:46.7% BI: 2.5% [libx264 @ 0x60e415275280] 8x8 transform intra:93.8% inter:77.7% [libx264 @ 0x60e415275280] coded y,uvDC,uvAC intra: 17.3% 0.8% 0.0% inter: 1.0% 0.3% 0.0% [libx264 @ 0x60e415275280] i16 v,h,dc,p: 41% 48% 11% 0% [libx264 @ 0x60e415275280] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 23% 22% 54% 0% 0% 0% 0% 0% 0% [libx264 @ 0x60e415275280] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 22% 6% 18% 1% 0% 18% 17% 4% 15% [libx264 @ 0x60e415275280] i8c dc,h,v,p: 93% 5% 2% 0% [libx264 @ 0x60e415275280] Weighted P-Frames: Y:0.0% UV:0.0% [libx264 @ 0x60e415275280] ref P L0: 59.5% 4.6% 26.8% 9.1% [libx264 @ 0x60e415275280] ref B L0: 74.0% 20.9% 5.0% [libx264 @ 0x60e415275280] ref B L1: 94.8% 5.2% [libx264 @ 0x60e415275280] kb/s:1274.59
Prediction
lucataco/dotted-video:ea6107f7dc327e05d64eb42241250261af417d41d00c6399b06b0d62cd3c1a2aIDa9b608e7a1rma0cmy60a1fjbbwStatusSucceededSourceWebHardwareCPUTotal durationCreatedInput
- video
- inverse
- dot_size
- 4
- threshold
- 60
- inverse_threshold
{ "video": "https://replicate.delivery/pbxt/MTaoP1Zo3X05qRRdPlBz6hqgxLbKA2BIN9b4AnCXWnlZXQCG/replicate-prediction-v4gajckar1rme0cmy4crzkcz54.mp4", "inverse": true, "dot_size": 4, "threshold": 60, "inverse_threshold": false }
Install Replicate’s Node.js client library:npm install replicate
Import and set up the client:import Replicate from "replicate"; const replicate = new Replicate({ auth: process.env.REPLICATE_API_TOKEN, });
Run lucataco/dotted-video using Replicate’s API. Check out the model's schema for an overview of inputs and outputs.
const output = await replicate.run( "lucataco/dotted-video:ea6107f7dc327e05d64eb42241250261af417d41d00c6399b06b0d62cd3c1a2a", { input: { video: "https://replicate.delivery/pbxt/MTaoP1Zo3X05qRRdPlBz6hqgxLbKA2BIN9b4AnCXWnlZXQCG/replicate-prediction-v4gajckar1rme0cmy4crzkcz54.mp4", inverse: true, dot_size: 4, threshold: 60, inverse_threshold: false } } ); // To access the file URL: console.log(output.url()); //=> "http://example.com" // To write the file to disk: fs.writeFile("my-image.png", output);
To learn more, take a look at the guide on getting started with Node.js.
Install Replicate’s Python client library:pip install replicate
Import the client:import replicate
Run lucataco/dotted-video using Replicate’s API. Check out the model's schema for an overview of inputs and outputs.
output = replicate.run( "lucataco/dotted-video:ea6107f7dc327e05d64eb42241250261af417d41d00c6399b06b0d62cd3c1a2a", input={ "video": "https://replicate.delivery/pbxt/MTaoP1Zo3X05qRRdPlBz6hqgxLbKA2BIN9b4AnCXWnlZXQCG/replicate-prediction-v4gajckar1rme0cmy4crzkcz54.mp4", "inverse": True, "dot_size": 4, "threshold": 60, "inverse_threshold": False } ) print(output)
To learn more, take a look at the guide on getting started with Python.
Run lucataco/dotted-video using Replicate’s API. Check out the model's schema for an overview of inputs and outputs.
curl -s -X POST \ -H "Authorization: Bearer $REPLICATE_API_TOKEN" \ -H "Content-Type: application/json" \ -H "Prefer: wait" \ -d $'{ "version": "lucataco/dotted-video:ea6107f7dc327e05d64eb42241250261af417d41d00c6399b06b0d62cd3c1a2a", "input": { "video": "https://replicate.delivery/pbxt/MTaoP1Zo3X05qRRdPlBz6hqgxLbKA2BIN9b4AnCXWnlZXQCG/replicate-prediction-v4gajckar1rme0cmy4crzkcz54.mp4", "inverse": true, "dot_size": 4, "threshold": 60, "inverse_threshold": false } }' \ https://api.replicate.com/v1/predictions
To learn more, take a look at Replicate’s HTTP API reference docs.
Output
{ "completed_at": "2025-02-10T20:15:42.501500Z", "created_at": "2025-02-10T20:15:36.272000Z", "data_removed": false, "error": null, "id": "a9b608e7a1rma0cmy60a1fjbbw", "input": { "video": "https://replicate.delivery/pbxt/MTaoP1Zo3X05qRRdPlBz6hqgxLbKA2BIN9b4AnCXWnlZXQCG/replicate-prediction-v4gajckar1rme0cmy4crzkcz54.mp4", "inverse": true, "dot_size": 4, "threshold": 60, "inverse_threshold": false }, "logs": "ffmpeg version 5.1.6-0+deb12u1 Copyright (c) 2000-2024 the FFmpeg developers\nbuilt with gcc 12 (Debian 12.2.0-14)\nconfiguration: --prefix=/usr --extra-version=0+deb12u1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --disable-sndio --enable-libjxl --enable-pocketsphinx --enable-librsvg --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-librav1e --enable-shared\nlibavutil 57. 28.100 / 57. 28.100\nlibavcodec 59. 37.100 / 59. 37.100\nlibavformat 59. 27.100 / 59. 27.100\nlibavdevice 59. 7.100 / 59. 7.100\nlibavfilter 8. 44.100 / 8. 44.100\nlibswscale 6. 7.100 / 6. 7.100\nlibswresample 4. 7.100 / 4. 7.100\nlibpostproc 56. 6.100 / 56. 6.100\nInput #0, mov,mp4,m4a,3gp,3g2,mj2, from '/tmp/output/output.mp4':\nMetadata:\nmajor_brand : isom\nminor_version : 512\ncompatible_brands: isomiso2mp41\nencoder : Lavf59.27.100\nDuration: 00:00:05.38, start: 0.000000, bitrate: 4304 kb/s\nStream #0:0[0x1](und): Video: mpeg4 (Simple Profile) (mp4v / 0x7634706D), yuv420p, 864x480 [SAR 1:1 DAR 9:5], 4302 kb/s, 24 fps, 24 tbr, 12288 tbn (default)\nMetadata:\nhandler_name : VideoHandler\nvendor_id : [0][0][0][0]\nStream mapping:\nStream #0:0 -> #0:0 (mpeg4 (native) -> h264 (libx264))\nPress [q] to stop, [?] for help\n[libx264 @ 0x64db1fc37500] using SAR=1/1\n[libx264 @ 0x64db1fc37500] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2 AVX512\n[libx264 @ 0x64db1fc37500] profile High, level 3.0, 4:2:0, 8-bit\n[libx264 @ 0x64db1fc37500] 264 - core 164 r3095 baee400 - H.264/MPEG-4 AVC codec - Copyleft 2003-2022 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=24 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00\nOutput #0, mp4, to '/tmp/output/final_output.mp4':\nMetadata:\nmajor_brand : isom\nminor_version : 512\ncompatible_brands: isomiso2mp41\nencoder : Lavf59.27.100\nStream #0:0(und): Video: h264 (avc1 / 0x31637661), yuv420p(progressive), 864x480 [SAR 1:1 DAR 9:5], q=2-31, 24 fps, 12288 tbn (default)\nMetadata:\nhandler_name : VideoHandler\nvendor_id : [0][0][0][0]\nencoder : Lavc59.37.100 libx264\nSide data:\ncpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A\nframe= 1 fps=0.0 q=0.0 size= 0kB time=00:00:00.00 bitrate=N/A speed= 0x\nframe= 129 fps=0.0 q=-1.0 Lsize= 247kB time=00:00:05.25 bitrate= 384.8kbits/s speed=14.2x\nvideo:244kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.933750%\n[libx264 @ 0x64db1fc37500] frame I:1 Avg QP:24.96 size:106205\n[libx264 @ 0x64db1fc37500] frame P:46 Avg QP:23.95 size: 2356\n[libx264 @ 0x64db1fc37500] frame B:82 Avg QP:24.92 size: 425\n[libx264 @ 0x64db1fc37500] consecutive B-frames: 7.0% 18.6% 18.6% 55.8%\n[libx264 @ 0x64db1fc37500] mb I I16..4: 12.1% 87.3% 0.6%\n[libx264 @ 0x64db1fc37500] mb P I16..4: 0.5% 2.9% 0.0% P16..4: 9.3% 2.9% 2.3% 0.0% 0.0% skip:82.0%\n[libx264 @ 0x64db1fc37500] mb B I16..4: 0.3% 0.7% 0.0% B16..8: 12.4% 2.5% 0.5% direct: 0.4% skip:83.2% L0:50.6% L1:48.2% BI: 1.2%\n[libx264 @ 0x64db1fc37500] 8x8 transform intra:80.8% inter:59.6%\n[libx264 @ 0x64db1fc37500] coded y,uvDC,uvAC intra: 19.5% 0.1% 0.0% inter: 0.9% 0.1% 0.0%\n[libx264 @ 0x64db1fc37500] i16 v,h,dc,p: 70% 16% 14% 0%\n[libx264 @ 0x64db1fc37500] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 15% 25% 59% 1% 0% 0% 0% 0% 0%\n[libx264 @ 0x64db1fc37500] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 51% 9% 23% 1% 0% 5% 6% 1% 4%\n[libx264 @ 0x64db1fc37500] i8c dc,h,v,p: 100% 0% 0% 0%\n[libx264 @ 0x64db1fc37500] Weighted P-Frames: Y:2.2% UV:2.2%\n[libx264 @ 0x64db1fc37500] ref P L0: 59.1% 3.0% 29.6% 8.2%\n[libx264 @ 0x64db1fc37500] ref B L0: 71.6% 25.1% 3.3%\n[libx264 @ 0x64db1fc37500] ref B L1: 96.2% 3.8%\n[libx264 @ 0x64db1fc37500] kb/s:371.33", "metrics": { "predict_time": 6.219026587, "total_time": 6.2295 }, "output": "https://replicate.delivery/xezq/DrohaddjhoaxEBrQpCjkVqmfy5433xRw9Pe31ZRLpiNuBBOUA/final_output.mp4", "started_at": "2025-02-10T20:15:36.282473Z", "status": "succeeded", "urls": { "stream": "https://stream.replicate.com/v1/files/bcwr-3rkihlrnbuzmnbs2m5ckweidaimsgkmne3im3iky7ueou225sh5q", "get": "https://api.replicate.com/v1/predictions/a9b608e7a1rma0cmy60a1fjbbw", "cancel": "https://api.replicate.com/v1/predictions/a9b608e7a1rma0cmy60a1fjbbw/cancel" }, "version": "ea6107f7dc327e05d64eb42241250261af417d41d00c6399b06b0d62cd3c1a2a" }
Generated inffmpeg version 5.1.6-0+deb12u1 Copyright (c) 2000-2024 the FFmpeg developers built with gcc 12 (Debian 12.2.0-14) configuration: --prefix=/usr --extra-version=0+deb12u1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --disable-sndio --enable-libjxl --enable-pocketsphinx --enable-librsvg --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-librav1e --enable-shared libavutil 57. 28.100 / 57. 28.100 libavcodec 59. 37.100 / 59. 37.100 libavformat 59. 27.100 / 59. 27.100 libavdevice 59. 7.100 / 59. 7.100 libavfilter 8. 44.100 / 8. 44.100 libswscale 6. 7.100 / 6. 7.100 libswresample 4. 7.100 / 4. 7.100 libpostproc 56. 6.100 / 56. 6.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/tmp/output/output.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2mp41 encoder : Lavf59.27.100 Duration: 00:00:05.38, start: 0.000000, bitrate: 4304 kb/s Stream #0:0[0x1](und): Video: mpeg4 (Simple Profile) (mp4v / 0x7634706D), yuv420p, 864x480 [SAR 1:1 DAR 9:5], 4302 kb/s, 24 fps, 24 tbr, 12288 tbn (default) Metadata: handler_name : VideoHandler vendor_id : [0][0][0][0] Stream mapping: Stream #0:0 -> #0:0 (mpeg4 (native) -> h264 (libx264)) Press [q] to stop, [?] for help [libx264 @ 0x64db1fc37500] using SAR=1/1 [libx264 @ 0x64db1fc37500] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2 AVX512 [libx264 @ 0x64db1fc37500] profile High, level 3.0, 4:2:0, 8-bit [libx264 @ 0x64db1fc37500] 264 - core 164 r3095 baee400 - H.264/MPEG-4 AVC codec - Copyleft 2003-2022 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=24 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00 Output #0, mp4, to '/tmp/output/final_output.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2mp41 encoder : Lavf59.27.100 Stream #0:0(und): Video: h264 (avc1 / 0x31637661), yuv420p(progressive), 864x480 [SAR 1:1 DAR 9:5], q=2-31, 24 fps, 12288 tbn (default) Metadata: handler_name : VideoHandler vendor_id : [0][0][0][0] encoder : Lavc59.37.100 libx264 Side data: cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A frame= 1 fps=0.0 q=0.0 size= 0kB time=00:00:00.00 bitrate=N/A speed= 0x frame= 129 fps=0.0 q=-1.0 Lsize= 247kB time=00:00:05.25 bitrate= 384.8kbits/s speed=14.2x video:244kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.933750% [libx264 @ 0x64db1fc37500] frame I:1 Avg QP:24.96 size:106205 [libx264 @ 0x64db1fc37500] frame P:46 Avg QP:23.95 size: 2356 [libx264 @ 0x64db1fc37500] frame B:82 Avg QP:24.92 size: 425 [libx264 @ 0x64db1fc37500] consecutive B-frames: 7.0% 18.6% 18.6% 55.8% [libx264 @ 0x64db1fc37500] mb I I16..4: 12.1% 87.3% 0.6% [libx264 @ 0x64db1fc37500] mb P I16..4: 0.5% 2.9% 0.0% P16..4: 9.3% 2.9% 2.3% 0.0% 0.0% skip:82.0% [libx264 @ 0x64db1fc37500] mb B I16..4: 0.3% 0.7% 0.0% B16..8: 12.4% 2.5% 0.5% direct: 0.4% skip:83.2% L0:50.6% L1:48.2% BI: 1.2% [libx264 @ 0x64db1fc37500] 8x8 transform intra:80.8% inter:59.6% [libx264 @ 0x64db1fc37500] coded y,uvDC,uvAC intra: 19.5% 0.1% 0.0% inter: 0.9% 0.1% 0.0% [libx264 @ 0x64db1fc37500] i16 v,h,dc,p: 70% 16% 14% 0% [libx264 @ 0x64db1fc37500] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 15% 25% 59% 1% 0% 0% 0% 0% 0% [libx264 @ 0x64db1fc37500] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 51% 9% 23% 1% 0% 5% 6% 1% 4% [libx264 @ 0x64db1fc37500] i8c dc,h,v,p: 100% 0% 0% 0% [libx264 @ 0x64db1fc37500] Weighted P-Frames: Y:2.2% UV:2.2% [libx264 @ 0x64db1fc37500] ref P L0: 59.1% 3.0% 29.6% 8.2% [libx264 @ 0x64db1fc37500] ref B L0: 71.6% 25.1% 3.3% [libx264 @ 0x64db1fc37500] ref B L1: 96.2% 3.8% [libx264 @ 0x64db1fc37500] kb/s:371.33
Want to make some of these yourself?
Run this model