jagilley/controlnet-canny

Modify images using canny edge detection

Create variations of an image while preserving shape and depth

Upscale images with Stable Diffusion

Modify images using HED maps

Generate detailed images from scribbled drawings

Modify images using semantic segmentation

Modify images using M-LSD line detection

Modify images using depth maps

Modify images using normal maps

Modify images with humans using pose detection

Modify images with a prompt while preserving their structure

Change voice for spoken text
Prediction
jagilley/controlnet-canny:02a11802691b4733143bb9f343758671e4c98ae36f06de0a01a1ee79d68f8487Input
- scale
- 9
- prompt
- a metallic cyborg bird
- a_prompt
- best quality, extremely detailed
- n_prompt
- longbody, lowres, bad anatomy, bad hands, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality
- ddim_steps
- 20
- num_samples
- 1
- low_threshold
- 100
- high_threshold
- 200
- image_resolution
- 512
{ "image": "https://replicate.delivery/pbxt/IMPLYODUwdmHTsnLKi5YiFccIAK6g9l5KK1FNyCtpGS1g0UN/1200.jpeg", "scale": 9, "prompt": "a metallic cyborg bird", "a_prompt": "best quality, extremely detailed", "n_prompt": "longbody, lowres, bad anatomy, bad hands, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality", "ddim_steps": 20, "num_samples": "1", "low_threshold": 100, "high_threshold": 200, "image_resolution": "512" }
Install Replicate’s Node.js client library:npm install replicate
Import and set up the client:import Replicate from "replicate"; import fs from "node:fs"; const replicate = new Replicate({ auth: process.env.REPLICATE_API_TOKEN, });
Run jagilley/controlnet-canny using Replicate’s API. Check out the model's schema for an overview of inputs and outputs.
const output = await replicate.run( "jagilley/controlnet-canny:02a11802691b4733143bb9f343758671e4c98ae36f06de0a01a1ee79d68f8487", { input: { image: "https://replicate.delivery/pbxt/IMPLYODUwdmHTsnLKi5YiFccIAK6g9l5KK1FNyCtpGS1g0UN/1200.jpeg", scale: 9, prompt: "a metallic cyborg bird", a_prompt: "best quality, extremely detailed", n_prompt: "longbody, lowres, bad anatomy, bad hands, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality", ddim_steps: 20, num_samples: "1", low_threshold: 100, high_threshold: 200, image_resolution: "512" } } ); // To access the file URL: console.log(output[0].url()); //=> "http://example.com" // To write the file to disk: fs.writeFile("my-image.png", output[0]);
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 jagilley/controlnet-canny using Replicate’s API. Check out the model's schema for an overview of inputs and outputs.
output = replicate.run( "jagilley/controlnet-canny:02a11802691b4733143bb9f343758671e4c98ae36f06de0a01a1ee79d68f8487", input={ "image": "https://replicate.delivery/pbxt/IMPLYODUwdmHTsnLKi5YiFccIAK6g9l5KK1FNyCtpGS1g0UN/1200.jpeg", "scale": 9, "prompt": "a metallic cyborg bird", "a_prompt": "best quality, extremely detailed", "n_prompt": "longbody, lowres, bad anatomy, bad hands, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality", "ddim_steps": 20, "num_samples": "1", "low_threshold": 100, "high_threshold": 200, "image_resolution": "512" } ) # To access the file URL: print(output[0].url()) #=> "http://example.com" # To write the file to disk: with open("my-image.png", "wb") as file: file.write(output[0].read())
To learn more, take a look at the guide on getting started with Python.
Run jagilley/controlnet-canny 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": "jagilley/controlnet-canny:02a11802691b4733143bb9f343758671e4c98ae36f06de0a01a1ee79d68f8487", "input": { "image": "https://replicate.delivery/pbxt/IMPLYODUwdmHTsnLKi5YiFccIAK6g9l5KK1FNyCtpGS1g0UN/1200.jpeg", "scale": 9, "prompt": "a metallic cyborg bird", "a_prompt": "best quality, extremely detailed", "n_prompt": "longbody, lowres, bad anatomy, bad hands, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality", "ddim_steps": 20, "num_samples": "1", "low_threshold": 100, "high_threshold": 200, "image_resolution": "512" } }' \ https://api.replicate.com/v1/predictions
To learn more, take a look at Replicate’s HTTP API reference docs.
Output
{ "completed_at": "2023-02-22T21:13:09.461984Z", "created_at": "2023-02-22T21:12:37.147510Z", "data_removed": false, "error": null, "id": "uhhdpy73z5dbvdyavio2faeaye", "input": { "image": "https://replicate.delivery/pbxt/IMPLYODUwdmHTsnLKi5YiFccIAK6g9l5KK1FNyCtpGS1g0UN/1200.jpeg", "scale": 9, "prompt": "a metallic cyborg bird", "a_prompt": "best quality, extremely detailed", "n_prompt": "longbody, lowres, bad anatomy, bad hands, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality", "ddim_steps": 20, "num_samples": "1", "low_threshold": 100, "high_threshold": 200, "image_resolution": "512" }, "logs": "Global seed set to 382784\nData shape for DDIM sampling is (1, 4, 64, 104), eta 0.0\nRunning DDIM Sampling with 20 timesteps\nDDIM Sampler: 0%| | 0/20 [00:00<?, ?it/s]\nDDIM Sampler: 5%|▌ | 1/20 [00:01<00:28, 1.51s/it]\nDDIM Sampler: 10%|█ | 2/20 [00:02<00:26, 1.48s/it]\nDDIM Sampler: 15%|█▌ | 3/20 [00:04<00:25, 1.48s/it]\nDDIM Sampler: 20%|██ | 4/20 [00:05<00:23, 1.47s/it]\nDDIM Sampler: 25%|██▌ | 5/20 [00:07<00:22, 1.47s/it]\nDDIM Sampler: 30%|███ | 6/20 [00:08<00:20, 1.47s/it]\nDDIM Sampler: 35%|███▌ | 7/20 [00:10<00:19, 1.48s/it]\nDDIM Sampler: 40%|████ | 8/20 [00:11<00:17, 1.48s/it]\nDDIM Sampler: 45%|████▌ | 9/20 [00:13<00:16, 1.48s/it]\nDDIM Sampler: 50%|█████ | 10/20 [00:14<00:14, 1.48s/it]\nDDIM Sampler: 55%|█████▌ | 11/20 [00:16<00:13, 1.49s/it]\nDDIM Sampler: 60%|██████ | 12/20 [00:17<00:11, 1.49s/it]\nDDIM Sampler: 65%|██████▌ | 13/20 [00:19<00:10, 1.49s/it]\nDDIM Sampler: 70%|███████ | 14/20 [00:20<00:08, 1.49s/it]\nDDIM Sampler: 75%|███████▌ | 15/20 [00:22<00:07, 1.50s/it]\nDDIM Sampler: 80%|████████ | 16/20 [00:23<00:05, 1.50s/it]\nDDIM Sampler: 85%|████████▌ | 17/20 [00:25<00:04, 1.50s/it]\nDDIM Sampler: 90%|█████████ | 18/20 [00:26<00:03, 1.50s/it]\nDDIM Sampler: 95%|█████████▌| 19/20 [00:28<00:01, 1.50s/it]\nDDIM Sampler: 100%|██████████| 20/20 [00:29<00:00, 1.51s/it]\nDDIM Sampler: 100%|██████████| 20/20 [00:29<00:00, 1.49s/it]", "metrics": { "predict_time": 32.249509, "total_time": 32.314474 }, "output": [ "https://replicate.delivery/pbxt/lyWELufWUrTCe0PSTZye7IOe6lIYQpWdhIJH1Xfe8urLZ3QIE/output_0.png", "https://replicate.delivery/pbxt/Fp3G1dILv6YRNxTLm6VfVc9mzRHktHlvae9U6TGKGSAkdDhQA/output_1.png" ], "started_at": "2023-02-22T21:12:37.212475Z", "status": "succeeded", "urls": { "get": "https://api.replicate.com/v1/predictions/uhhdpy73z5dbvdyavio2faeaye", "cancel": "https://api.replicate.com/v1/predictions/uhhdpy73z5dbvdyavio2faeaye/cancel" }, "version": "02a11802691b4733143bb9f343758671e4c98ae36f06de0a01a1ee79d68f8487" }
Generated inGlobal seed set to 382784 Data shape for DDIM sampling is (1, 4, 64, 104), eta 0.0 Running DDIM Sampling with 20 timesteps DDIM Sampler: 0%| | 0/20 [00:00<?, ?it/s] DDIM Sampler: 5%|▌ | 1/20 [00:01<00:28, 1.51s/it] DDIM Sampler: 10%|█ | 2/20 [00:02<00:26, 1.48s/it] DDIM Sampler: 15%|█▌ | 3/20 [00:04<00:25, 1.48s/it] DDIM Sampler: 20%|██ | 4/20 [00:05<00:23, 1.47s/it] DDIM Sampler: 25%|██▌ | 5/20 [00:07<00:22, 1.47s/it] DDIM Sampler: 30%|███ | 6/20 [00:08<00:20, 1.47s/it] DDIM Sampler: 35%|███▌ | 7/20 [00:10<00:19, 1.48s/it] DDIM Sampler: 40%|████ | 8/20 [00:11<00:17, 1.48s/it] DDIM Sampler: 45%|████▌ | 9/20 [00:13<00:16, 1.48s/it] DDIM Sampler: 50%|█████ | 10/20 [00:14<00:14, 1.48s/it] DDIM Sampler: 55%|█████▌ | 11/20 [00:16<00:13, 1.49s/it] DDIM Sampler: 60%|██████ | 12/20 [00:17<00:11, 1.49s/it] DDIM Sampler: 65%|██████▌ | 13/20 [00:19<00:10, 1.49s/it] DDIM Sampler: 70%|███████ | 14/20 [00:20<00:08, 1.49s/it] DDIM Sampler: 75%|███████▌ | 15/20 [00:22<00:07, 1.50s/it] DDIM Sampler: 80%|████████ | 16/20 [00:23<00:05, 1.50s/it] DDIM Sampler: 85%|████████▌ | 17/20 [00:25<00:04, 1.50s/it] DDIM Sampler: 90%|█████████ | 18/20 [00:26<00:03, 1.50s/it] DDIM Sampler: 95%|█████████▌| 19/20 [00:28<00:01, 1.50s/it] DDIM Sampler: 100%|██████████| 20/20 [00:29<00:00, 1.51s/it] DDIM Sampler: 100%|██████████| 20/20 [00:29<00:00, 1.49s/it]
Prediction
jagilley/controlnet-canny:02a11802691b4733143bb9f343758671e4c98ae36f06de0a01a1ee79d68f8487IDjhvyxcao4jedhbc5irzecdd6wyStatusSucceededSourceWebHardware–Total durationCreatedInput
- scale
- 9
- prompt
- bird
- a_prompt
- best quality, extremely detailed
- n_prompt
- longbody, lowres, bad anatomy, bad hands, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality
- ddim_steps
- 20
- num_samples
- 1
- low_threshold
- 100
- high_threshold
- 200
- image_resolution
- 512
{ "image": "https://replicate.delivery/pbxt/IMjSG2JLxIRfTr5dPhKGPeGrMFnn9ilWQ4tD0dwxQOHtYlUd/bird.png", "scale": 9, "prompt": "bird", "a_prompt": "best quality, extremely detailed", "n_prompt": "longbody, lowres, bad anatomy, bad hands, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality", "ddim_steps": 20, "num_samples": "1", "low_threshold": 100, "high_threshold": 200, "image_resolution": "512" }
Install Replicate’s Node.js client library:npm install replicate
Import and set up the client:import Replicate from "replicate"; import fs from "node:fs"; const replicate = new Replicate({ auth: process.env.REPLICATE_API_TOKEN, });
Run jagilley/controlnet-canny using Replicate’s API. Check out the model's schema for an overview of inputs and outputs.
const output = await replicate.run( "jagilley/controlnet-canny:02a11802691b4733143bb9f343758671e4c98ae36f06de0a01a1ee79d68f8487", { input: { image: "https://replicate.delivery/pbxt/IMjSG2JLxIRfTr5dPhKGPeGrMFnn9ilWQ4tD0dwxQOHtYlUd/bird.png", scale: 9, prompt: "bird", a_prompt: "best quality, extremely detailed", n_prompt: "longbody, lowres, bad anatomy, bad hands, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality", ddim_steps: 20, num_samples: "1", low_threshold: 100, high_threshold: 200, image_resolution: "512" } } ); // To access the file URL: console.log(output[0].url()); //=> "http://example.com" // To write the file to disk: fs.writeFile("my-image.png", output[0]);
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 jagilley/controlnet-canny using Replicate’s API. Check out the model's schema for an overview of inputs and outputs.
output = replicate.run( "jagilley/controlnet-canny:02a11802691b4733143bb9f343758671e4c98ae36f06de0a01a1ee79d68f8487", input={ "image": "https://replicate.delivery/pbxt/IMjSG2JLxIRfTr5dPhKGPeGrMFnn9ilWQ4tD0dwxQOHtYlUd/bird.png", "scale": 9, "prompt": "bird", "a_prompt": "best quality, extremely detailed", "n_prompt": "longbody, lowres, bad anatomy, bad hands, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality", "ddim_steps": 20, "num_samples": "1", "low_threshold": 100, "high_threshold": 200, "image_resolution": "512" } ) # To access the file URL: print(output[0].url()) #=> "http://example.com" # To write the file to disk: with open("my-image.png", "wb") as file: file.write(output[0].read())
To learn more, take a look at the guide on getting started with Python.
Run jagilley/controlnet-canny 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": "jagilley/controlnet-canny:02a11802691b4733143bb9f343758671e4c98ae36f06de0a01a1ee79d68f8487", "input": { "image": "https://replicate.delivery/pbxt/IMjSG2JLxIRfTr5dPhKGPeGrMFnn9ilWQ4tD0dwxQOHtYlUd/bird.png", "scale": 9, "prompt": "bird", "a_prompt": "best quality, extremely detailed", "n_prompt": "longbody, lowres, bad anatomy, bad hands, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality", "ddim_steps": 20, "num_samples": "1", "low_threshold": 100, "high_threshold": 200, "image_resolution": "512" } }' \ https://api.replicate.com/v1/predictions
To learn more, take a look at Replicate’s HTTP API reference docs.
Output
{ "completed_at": "2023-02-23T19:08:53.887924Z", "created_at": "2023-02-23T19:08:21.252513Z", "data_removed": false, "error": null, "id": "jhvyxcao4jedhbc5irzecdd6wy", "input": { "image": "https://replicate.delivery/pbxt/IMjSG2JLxIRfTr5dPhKGPeGrMFnn9ilWQ4tD0dwxQOHtYlUd/bird.png", "scale": 9, "prompt": "bird", "a_prompt": "best quality, extremely detailed", "n_prompt": "longbody, lowres, bad anatomy, bad hands, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality", "ddim_steps": 20, "num_samples": "1", "low_threshold": 100, "high_threshold": 200, "image_resolution": "512" }, "logs": "Global seed set to 318892\nData shape for DDIM sampling is (1, 4, 96, 64), eta 0.0\nRunning DDIM Sampling with 20 timesteps\nDDIM Sampler: 0%| | 0/20 [00:00<?, ?it/s]\nDDIM Sampler: 5%|▌ | 1/20 [00:01<00:27, 1.46s/it]\nDDIM Sampler: 10%|█ | 2/20 [00:02<00:26, 1.45s/it]\nDDIM Sampler: 15%|█▌ | 3/20 [00:04<00:24, 1.45s/it]\nDDIM Sampler: 20%|██ | 4/20 [00:05<00:23, 1.45s/it]\nDDIM Sampler: 25%|██▌ | 5/20 [00:07<00:21, 1.45s/it]\nDDIM Sampler: 30%|███ | 6/20 [00:08<00:20, 1.45s/it]\nDDIM Sampler: 35%|███▌ | 7/20 [00:10<00:18, 1.46s/it]\nDDIM Sampler: 40%|████ | 8/20 [00:11<00:17, 1.47s/it]\nDDIM Sampler: 45%|████▌ | 9/20 [00:13<00:16, 1.47s/it]\nDDIM Sampler: 50%|█████ | 10/20 [00:14<00:14, 1.48s/it]\nDDIM Sampler: 55%|█████▌ | 11/20 [00:16<00:13, 1.49s/it]\nDDIM Sampler: 60%|██████ | 12/20 [00:17<00:11, 1.49s/it]\nDDIM Sampler: 65%|██████▌ | 13/20 [00:19<00:10, 1.50s/it]\nDDIM Sampler: 70%|███████ | 14/20 [00:20<00:09, 1.50s/it]\nDDIM Sampler: 75%|███████▌ | 15/20 [00:22<00:07, 1.51s/it]\nDDIM Sampler: 80%|████████ | 16/20 [00:23<00:06, 1.52s/it]\nDDIM Sampler: 85%|████████▌ | 17/20 [00:25<00:04, 1.53s/it]\nDDIM Sampler: 90%|█████████ | 18/20 [00:26<00:03, 1.53s/it]\nDDIM Sampler: 95%|█████████▌| 19/20 [00:28<00:01, 1.53s/it]\nDDIM Sampler: 100%|██████████| 20/20 [00:29<00:00, 1.54s/it]\nDDIM Sampler: 100%|██████████| 20/20 [00:29<00:00, 1.50s/it]", "metrics": { "predict_time": 32.556173, "total_time": 32.635411 }, "output": [ "https://replicate.delivery/pbxt/OeiJh1REUflXZEq8sGxXYdQ64wosoglQXTPf7rnQAwhJeaFCB/output_0.png", "https://replicate.delivery/pbxt/P7bf4e9I8InIlkBeawkZ96N3aeFeJpcXaIHf1bjNROtcxrVIE/output_1.png" ], "started_at": "2023-02-23T19:08:21.331751Z", "status": "succeeded", "urls": { "get": "https://api.replicate.com/v1/predictions/jhvyxcao4jedhbc5irzecdd6wy", "cancel": "https://api.replicate.com/v1/predictions/jhvyxcao4jedhbc5irzecdd6wy/cancel" }, "version": "02a11802691b4733143bb9f343758671e4c98ae36f06de0a01a1ee79d68f8487" }
Generated inGlobal seed set to 318892 Data shape for DDIM sampling is (1, 4, 96, 64), eta 0.0 Running DDIM Sampling with 20 timesteps DDIM Sampler: 0%| | 0/20 [00:00<?, ?it/s] DDIM Sampler: 5%|▌ | 1/20 [00:01<00:27, 1.46s/it] DDIM Sampler: 10%|█ | 2/20 [00:02<00:26, 1.45s/it] DDIM Sampler: 15%|█▌ | 3/20 [00:04<00:24, 1.45s/it] DDIM Sampler: 20%|██ | 4/20 [00:05<00:23, 1.45s/it] DDIM Sampler: 25%|██▌ | 5/20 [00:07<00:21, 1.45s/it] DDIM Sampler: 30%|███ | 6/20 [00:08<00:20, 1.45s/it] DDIM Sampler: 35%|███▌ | 7/20 [00:10<00:18, 1.46s/it] DDIM Sampler: 40%|████ | 8/20 [00:11<00:17, 1.47s/it] DDIM Sampler: 45%|████▌ | 9/20 [00:13<00:16, 1.47s/it] DDIM Sampler: 50%|█████ | 10/20 [00:14<00:14, 1.48s/it] DDIM Sampler: 55%|█████▌ | 11/20 [00:16<00:13, 1.49s/it] DDIM Sampler: 60%|██████ | 12/20 [00:17<00:11, 1.49s/it] DDIM Sampler: 65%|██████▌ | 13/20 [00:19<00:10, 1.50s/it] DDIM Sampler: 70%|███████ | 14/20 [00:20<00:09, 1.50s/it] DDIM Sampler: 75%|███████▌ | 15/20 [00:22<00:07, 1.51s/it] DDIM Sampler: 80%|████████ | 16/20 [00:23<00:06, 1.52s/it] DDIM Sampler: 85%|████████▌ | 17/20 [00:25<00:04, 1.53s/it] DDIM Sampler: 90%|█████████ | 18/20 [00:26<00:03, 1.53s/it] DDIM Sampler: 95%|█████████▌| 19/20 [00:28<00:01, 1.53s/it] DDIM Sampler: 100%|██████████| 20/20 [00:29<00:00, 1.54s/it] DDIM Sampler: 100%|██████████| 20/20 [00:29<00:00, 1.50s/it]
Want to make some of these yourself?
Run this model