jagilley
/
controlnet-canny
Modify images using canny edge detection
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"; 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" } ) print(output)
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": "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"; 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" } ) print(output)
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": "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