Failed to load versions. Head to the versions page to see all versions for this model.
You're looking at a specific version of this model. Jump to the model overview.
roblester /editorial-cartoon:873e1db5
Input
Run this model in Node.js with one line of code:
npm install replicate
REPLICATE_API_TOKEN
environment variable:export REPLICATE_API_TOKEN=<paste-your-token-here>
Find your API token in your account settings.
import Replicate from "replicate";
const replicate = new Replicate({
auth: process.env.REPLICATE_API_TOKEN,
});
Run roblester/editorial-cartoon using Replicate’s API. Check out the model's schema for an overview of inputs and outputs.
const output = await replicate.run(
"roblester/editorial-cartoon:873e1db54db20146e5bb885a9e6e1dc268a62845d7fbfd3863f6507c938d844b",
{
input: {
width: 1024,
height: 1024,
prompt: "illustration in the style of TOK of A nurse on the street in NYC",
refine: "expert_ensemble_refiner",
scheduler: "K_EULER_ANCESTRAL",
lora_scale: 0.8,
num_outputs: 1,
guidance_scale: 7.5,
apply_watermark: true,
high_noise_frac: 0.8,
negative_prompt: "",
prompt_strength: 0.8,
num_inference_steps: 100
}
}
);
// 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.
pip install replicate
REPLICATE_API_TOKEN
environment variable:export REPLICATE_API_TOKEN=<paste-your-token-here>
Find your API token in your account settings.
import replicate
Run roblester/editorial-cartoon using Replicate’s API. Check out the model's schema for an overview of inputs and outputs.
output = replicate.run(
"roblester/editorial-cartoon:873e1db54db20146e5bb885a9e6e1dc268a62845d7fbfd3863f6507c938d844b",
input={
"width": 1024,
"height": 1024,
"prompt": "illustration in the style of TOK of A nurse on the street in NYC",
"refine": "expert_ensemble_refiner",
"scheduler": "K_EULER_ANCESTRAL",
"lora_scale": 0.8,
"num_outputs": 1,
"guidance_scale": 7.5,
"apply_watermark": True,
"high_noise_frac": 0.8,
"negative_prompt": "",
"prompt_strength": 0.8,
"num_inference_steps": 100
}
)
print(output)
To learn more, take a look at the guide on getting started with Python.
REPLICATE_API_TOKEN
environment variable:export REPLICATE_API_TOKEN=<paste-your-token-here>
Find your API token in your account settings.
Run roblester/editorial-cartoon 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": "roblester/editorial-cartoon:873e1db54db20146e5bb885a9e6e1dc268a62845d7fbfd3863f6507c938d844b",
"input": {
"width": 1024,
"height": 1024,
"prompt": "illustration in the style of TOK of A nurse on the street in NYC",
"refine": "expert_ensemble_refiner",
"scheduler": "K_EULER_ANCESTRAL",
"lora_scale": 0.8,
"num_outputs": 1,
"guidance_scale": 7.5,
"apply_watermark": true,
"high_noise_frac": 0.8,
"negative_prompt": "",
"prompt_strength": 0.8,
"num_inference_steps": 100
}
}' \
https://api.replicate.com/v1/predictions
To learn more, take a look at Replicate’s HTTP API reference docs.
Add a payment method to run this model.
By signing in, you agree to our
terms of service and privacy policy
Output
{
"completed_at": "2024-07-24T20:14:59.780809Z",
"created_at": "2024-07-24T20:14:26.910000Z",
"data_removed": false,
"error": null,
"id": "k657gyvwbsrgj0cgwsgv7ytmaw",
"input": {
"width": 1024,
"height": 1024,
"prompt": "illustration in the style of TOK of A nurse on the street in NYC",
"refine": "expert_ensemble_refiner",
"scheduler": "K_EULER_ANCESTRAL",
"lora_scale": 0.8,
"num_outputs": 1,
"guidance_scale": 7.5,
"apply_watermark": true,
"high_noise_frac": 0.8,
"negative_prompt": "",
"prompt_strength": 0.8,
"num_inference_steps": 100
},
"logs": "Using seed: 6691\nEnsuring enough disk space...\nFree disk space: 1609035563008\nDownloading weights: https://replicate.delivery/pbxt/EsFWqRfmVkzlS6RuZMMAbUbGaB7DNYYYLCl0zmFX3LXCJ4lJA/trained_model.tar\n2024-07-24T20:14:29Z | INFO | [ Initiating ] chunk_size=150M dest=/src/weights-cache/b3834eb6ecebe924 url=https://replicate.delivery/pbxt/EsFWqRfmVkzlS6RuZMMAbUbGaB7DNYYYLCl0zmFX3LXCJ4lJA/trained_model.tar\n2024-07-24T20:14:32Z | INFO | [ Complete ] dest=/src/weights-cache/b3834eb6ecebe924 size=\"186 MB\" total_elapsed=2.598s url=https://replicate.delivery/pbxt/EsFWqRfmVkzlS6RuZMMAbUbGaB7DNYYYLCl0zmFX3LXCJ4lJA/trained_model.tar\nb''\nDownloaded weights in 2.7233593463897705 seconds\nLoading fine-tuned model\nDoes not have Unet. assume we are using LoRA\nLoading Unet LoRA\nPrompt: illustration in the style of <s0><s1> of A nurse on the street in NYC\ntxt2img mode\n 0%| | 0/80 [00:00<?, ?it/s]/usr/local/lib/python3.9/site-packages/torch/nn/modules/conv.py:459: UserWarning: Applied workaround for CuDNN issue, install nvrtc.so (Triggered internally at ../aten/src/ATen/native/cudnn/Conv_v8.cpp:80.)\nreturn F.conv2d(input, weight, bias, self.stride,\n/usr/local/lib/python3.9/site-packages/diffusers/models/attention_processor.py:1946: FutureWarning: `LoRAAttnProcessor2_0` is deprecated and will be removed in version 0.26.0. Make sure use AttnProcessor2_0 instead by settingLoRA layers to `self.{to_q,to_k,to_v,to_out[0]}.lora_layer` respectively. This will be done automatically when using `LoraLoaderMixin.load_lora_weights`\ndeprecate(\n 1%|▏ | 1/80 [00:00<00:33, 2.36it/s]\n 2%|▎ | 2/80 [00:00<00:20, 3.72it/s]\n 4%|▍ | 3/80 [00:00<00:19, 3.95it/s]\n 5%|▌ | 4/80 [00:01<00:18, 4.07it/s]\n 6%|▋ | 5/80 [00:01<00:18, 4.13it/s]\n 8%|▊ | 6/80 [00:01<00:17, 4.16it/s]\n 9%|▉ | 7/80 [00:01<00:17, 4.19it/s]\n 10%|█ | 8/80 [00:01<00:17, 4.21it/s]\n 11%|█▏ | 9/80 [00:02<00:16, 4.21it/s]\n 12%|█▎ | 10/80 [00:02<00:16, 4.21it/s]\n 14%|█▍ | 11/80 [00:02<00:16, 4.22it/s]\n 15%|█▌ | 12/80 [00:02<00:16, 4.22it/s]\n 16%|█▋ | 13/80 [00:03<00:15, 4.23it/s]\n 18%|█▊ | 14/80 [00:03<00:15, 4.23it/s]\n 19%|█▉ | 15/80 [00:03<00:15, 4.22it/s]\n 20%|██ | 16/80 [00:03<00:15, 4.22it/s]\n 21%|██▏ | 17/80 [00:04<00:14, 4.23it/s]\n 22%|██▎ | 18/80 [00:04<00:14, 4.22it/s]\n 24%|██▍ | 19/80 [00:04<00:14, 4.23it/s]\n 25%|██▌ | 20/80 [00:04<00:14, 4.24it/s]\n 26%|██▋ | 21/80 [00:05<00:13, 4.24it/s]\n 28%|██▊ | 22/80 [00:05<00:13, 4.25it/s]\n 29%|██▉ | 23/80 [00:05<00:13, 4.25it/s]\n 30%|███ | 24/80 [00:05<00:13, 4.25it/s]\n 31%|███▏ | 25/80 [00:06<00:12, 4.25it/s]\n 32%|███▎ | 26/80 [00:06<00:12, 4.25it/s]\n 34%|███▍ | 27/80 [00:06<00:12, 4.25it/s]\n 35%|███▌ | 28/80 [00:06<00:12, 4.26it/s]\n 36%|███▋ | 29/80 [00:06<00:11, 4.25it/s]\n 38%|███▊ | 30/80 [00:07<00:11, 4.25it/s]\n 39%|███▉ | 31/80 [00:07<00:11, 4.25it/s]\n 40%|████ | 32/80 [00:07<00:11, 4.25it/s]\n 41%|████▏ | 33/80 [00:07<00:11, 4.25it/s]\n 42%|████▎ | 34/80 [00:08<00:10, 4.25it/s]\n 44%|████▍ | 35/80 [00:08<00:10, 4.25it/s]\n 45%|████▌ | 36/80 [00:08<00:10, 4.25it/s]\n 46%|████▋ | 37/80 [00:08<00:10, 4.24it/s]\n 48%|████▊ | 38/80 [00:09<00:09, 4.24it/s]\n 49%|████▉ | 39/80 [00:09<00:09, 4.24it/s]\n 50%|█████ | 40/80 [00:09<00:09, 4.24it/s]\n 51%|█████▏ | 41/80 [00:09<00:09, 4.24it/s]\n 52%|█████▎ | 42/80 [00:10<00:08, 4.24it/s]\n 54%|█████▍ | 43/80 [00:10<00:08, 4.24it/s]\n 55%|█████▌ | 44/80 [00:10<00:08, 4.24it/s]\n 56%|█████▋ | 45/80 [00:10<00:08, 4.24it/s]\n 57%|█████▊ | 46/80 [00:10<00:08, 4.25it/s]\n 59%|█████▉ | 47/80 [00:11<00:07, 4.25it/s]\n 60%|██████ | 48/80 [00:11<00:07, 4.25it/s]\n 61%|██████▏ | 49/80 [00:11<00:07, 4.24it/s]\n 62%|██████▎ | 50/80 [00:11<00:07, 4.24it/s]\n 64%|██████▍ | 51/80 [00:12<00:06, 4.24it/s]\n 65%|██████▌ | 52/80 [00:12<00:06, 4.24it/s]\n 66%|██████▋ | 53/80 [00:12<00:06, 4.24it/s]\n 68%|██████▊ | 54/80 [00:12<00:06, 4.24it/s]\n 69%|██████▉ | 55/80 [00:13<00:05, 4.24it/s]\n 70%|███████ | 56/80 [00:13<00:05, 4.24it/s]\n 71%|███████▏ | 57/80 [00:13<00:05, 4.24it/s]\n 72%|███████▎ | 58/80 [00:13<00:05, 4.24it/s]\n 74%|███████▍ | 59/80 [00:14<00:04, 4.24it/s]\n 75%|███████▌ | 60/80 [00:14<00:04, 4.24it/s]\n 76%|███████▋ | 61/80 [00:14<00:04, 4.24it/s]\n 78%|███████▊ | 62/80 [00:14<00:04, 4.23it/s]\n 79%|███████▉ | 63/80 [00:14<00:04, 4.23it/s]\n 80%|████████ | 64/80 [00:15<00:03, 4.23it/s]\n 81%|████████▏ | 65/80 [00:15<00:03, 4.23it/s]\n 82%|████████▎ | 66/80 [00:15<00:03, 4.23it/s]\n 84%|████████▍ | 67/80 [00:15<00:03, 4.22it/s]\n 85%|████████▌ | 68/80 [00:16<00:02, 4.23it/s]\n 86%|████████▋ | 69/80 [00:16<00:02, 4.22it/s]\n 88%|████████▊ | 70/80 [00:16<00:02, 4.22it/s]\n 89%|████████▉ | 71/80 [00:16<00:02, 4.22it/s]\n 90%|█████████ | 72/80 [00:17<00:01, 4.22it/s]\n 91%|█████████▏| 73/80 [00:17<00:01, 4.22it/s]\n 92%|█████████▎| 74/80 [00:17<00:01, 4.22it/s]\n 94%|█████████▍| 75/80 [00:17<00:01, 4.22it/s]\n 95%|█████████▌| 76/80 [00:18<00:00, 4.22it/s]\n 96%|█████████▋| 77/80 [00:18<00:00, 4.22it/s]\n 98%|█████████▊| 78/80 [00:18<00:00, 4.22it/s]\n 99%|█████████▉| 79/80 [00:18<00:00, 4.22it/s]\n100%|██████████| 80/80 [00:18<00:00, 4.22it/s]\n100%|██████████| 80/80 [00:18<00:00, 4.21it/s]\n 0%| | 0/20 [00:00<?, ?it/s]\n 5%|▌ | 1/20 [00:00<00:05, 3.66it/s]\n 10%|█ | 2/20 [00:00<00:04, 3.96it/s]\n 15%|█▌ | 3/20 [00:00<00:04, 4.07it/s]\n 20%|██ | 4/20 [00:00<00:03, 4.12it/s]\n 25%|██▌ | 5/20 [00:01<00:03, 4.14it/s]\n 30%|███ | 6/20 [00:01<00:03, 4.16it/s]\n 35%|███▌ | 7/20 [00:01<00:03, 4.18it/s]\n 40%|████ | 8/20 [00:01<00:02, 4.19it/s]\n 45%|████▌ | 9/20 [00:02<00:02, 4.20it/s]\n 50%|█████ | 10/20 [00:02<00:02, 4.20it/s]\n 55%|█████▌ | 11/20 [00:02<00:02, 4.20it/s]\n 60%|██████ | 12/20 [00:02<00:01, 4.20it/s]\n 65%|██████▌ | 13/20 [00:03<00:01, 4.20it/s]\n 70%|███████ | 14/20 [00:03<00:01, 4.20it/s]\n 75%|███████▌ | 15/20 [00:03<00:01, 4.20it/s]\n 80%|████████ | 16/20 [00:03<00:00, 4.20it/s]\n 85%|████████▌ | 17/20 [00:04<00:00, 4.20it/s]\n 90%|█████████ | 18/20 [00:04<00:00, 4.20it/s]\n 95%|█████████▌| 19/20 [00:04<00:00, 4.20it/s]\n100%|██████████| 20/20 [00:04<00:00, 4.21it/s]\n100%|██████████| 20/20 [00:04<00:00, 4.17it/s]",
"metrics": {
"predict_time": 30.088841679,
"total_time": 32.870809
},
"output": [
"https://replicate.delivery/pbxt/uEcLP6VZlwpXCVKp4hAKaq9oJaFslBRluJ0fpXUvm0Shl4lJA/out-0.png"
],
"started_at": "2024-07-24T20:14:29.691967Z",
"status": "succeeded",
"urls": {
"get": "https://api.replicate.com/v1/predictions/k657gyvwbsrgj0cgwsgv7ytmaw",
"cancel": "https://api.replicate.com/v1/predictions/k657gyvwbsrgj0cgwsgv7ytmaw/cancel"
},
"version": "873e1db54db20146e5bb885a9e6e1dc268a62845d7fbfd3863f6507c938d844b"
}
Using seed: 6691
Ensuring enough disk space...
Free disk space: 1609035563008
Downloading weights: https://replicate.delivery/pbxt/EsFWqRfmVkzlS6RuZMMAbUbGaB7DNYYYLCl0zmFX3LXCJ4lJA/trained_model.tar
2024-07-24T20:14:29Z | INFO | [ Initiating ] chunk_size=150M dest=/src/weights-cache/b3834eb6ecebe924 url=https://replicate.delivery/pbxt/EsFWqRfmVkzlS6RuZMMAbUbGaB7DNYYYLCl0zmFX3LXCJ4lJA/trained_model.tar
2024-07-24T20:14:32Z | INFO | [ Complete ] dest=/src/weights-cache/b3834eb6ecebe924 size="186 MB" total_elapsed=2.598s url=https://replicate.delivery/pbxt/EsFWqRfmVkzlS6RuZMMAbUbGaB7DNYYYLCl0zmFX3LXCJ4lJA/trained_model.tar
b''
Downloaded weights in 2.7233593463897705 seconds
Loading fine-tuned model
Does not have Unet. assume we are using LoRA
Loading Unet LoRA
Prompt: illustration in the style of <s0><s1> of A nurse on the street in NYC
txt2img mode
0%| | 0/80 [00:00<?, ?it/s]/usr/local/lib/python3.9/site-packages/torch/nn/modules/conv.py:459: UserWarning: Applied workaround for CuDNN issue, install nvrtc.so (Triggered internally at ../aten/src/ATen/native/cudnn/Conv_v8.cpp:80.)
return F.conv2d(input, weight, bias, self.stride,
/usr/local/lib/python3.9/site-packages/diffusers/models/attention_processor.py:1946: FutureWarning: `LoRAAttnProcessor2_0` is deprecated and will be removed in version 0.26.0. Make sure use AttnProcessor2_0 instead by settingLoRA layers to `self.{to_q,to_k,to_v,to_out[0]}.lora_layer` respectively. This will be done automatically when using `LoraLoaderMixin.load_lora_weights`
deprecate(
1%|▏ | 1/80 [00:00<00:33, 2.36it/s]
2%|▎ | 2/80 [00:00<00:20, 3.72it/s]
4%|▍ | 3/80 [00:00<00:19, 3.95it/s]
5%|▌ | 4/80 [00:01<00:18, 4.07it/s]
6%|▋ | 5/80 [00:01<00:18, 4.13it/s]
8%|▊ | 6/80 [00:01<00:17, 4.16it/s]
9%|▉ | 7/80 [00:01<00:17, 4.19it/s]
10%|█ | 8/80 [00:01<00:17, 4.21it/s]
11%|█▏ | 9/80 [00:02<00:16, 4.21it/s]
12%|█▎ | 10/80 [00:02<00:16, 4.21it/s]
14%|█▍ | 11/80 [00:02<00:16, 4.22it/s]
15%|█▌ | 12/80 [00:02<00:16, 4.22it/s]
16%|█▋ | 13/80 [00:03<00:15, 4.23it/s]
18%|█▊ | 14/80 [00:03<00:15, 4.23it/s]
19%|█▉ | 15/80 [00:03<00:15, 4.22it/s]
20%|██ | 16/80 [00:03<00:15, 4.22it/s]
21%|██▏ | 17/80 [00:04<00:14, 4.23it/s]
22%|██▎ | 18/80 [00:04<00:14, 4.22it/s]
24%|██▍ | 19/80 [00:04<00:14, 4.23it/s]
25%|██▌ | 20/80 [00:04<00:14, 4.24it/s]
26%|██▋ | 21/80 [00:05<00:13, 4.24it/s]
28%|██▊ | 22/80 [00:05<00:13, 4.25it/s]
29%|██▉ | 23/80 [00:05<00:13, 4.25it/s]
30%|███ | 24/80 [00:05<00:13, 4.25it/s]
31%|███▏ | 25/80 [00:06<00:12, 4.25it/s]
32%|███▎ | 26/80 [00:06<00:12, 4.25it/s]
34%|███▍ | 27/80 [00:06<00:12, 4.25it/s]
35%|███▌ | 28/80 [00:06<00:12, 4.26it/s]
36%|███▋ | 29/80 [00:06<00:11, 4.25it/s]
38%|███▊ | 30/80 [00:07<00:11, 4.25it/s]
39%|███▉ | 31/80 [00:07<00:11, 4.25it/s]
40%|████ | 32/80 [00:07<00:11, 4.25it/s]
41%|████▏ | 33/80 [00:07<00:11, 4.25it/s]
42%|████▎ | 34/80 [00:08<00:10, 4.25it/s]
44%|████▍ | 35/80 [00:08<00:10, 4.25it/s]
45%|████▌ | 36/80 [00:08<00:10, 4.25it/s]
46%|████▋ | 37/80 [00:08<00:10, 4.24it/s]
48%|████▊ | 38/80 [00:09<00:09, 4.24it/s]
49%|████▉ | 39/80 [00:09<00:09, 4.24it/s]
50%|█████ | 40/80 [00:09<00:09, 4.24it/s]
51%|█████▏ | 41/80 [00:09<00:09, 4.24it/s]
52%|█████▎ | 42/80 [00:10<00:08, 4.24it/s]
54%|█████▍ | 43/80 [00:10<00:08, 4.24it/s]
55%|█████▌ | 44/80 [00:10<00:08, 4.24it/s]
56%|█████▋ | 45/80 [00:10<00:08, 4.24it/s]
57%|█████▊ | 46/80 [00:10<00:08, 4.25it/s]
59%|█████▉ | 47/80 [00:11<00:07, 4.25it/s]
60%|██████ | 48/80 [00:11<00:07, 4.25it/s]
61%|██████▏ | 49/80 [00:11<00:07, 4.24it/s]
62%|██████▎ | 50/80 [00:11<00:07, 4.24it/s]
64%|██████▍ | 51/80 [00:12<00:06, 4.24it/s]
65%|██████▌ | 52/80 [00:12<00:06, 4.24it/s]
66%|██████▋ | 53/80 [00:12<00:06, 4.24it/s]
68%|██████▊ | 54/80 [00:12<00:06, 4.24it/s]
69%|██████▉ | 55/80 [00:13<00:05, 4.24it/s]
70%|███████ | 56/80 [00:13<00:05, 4.24it/s]
71%|███████▏ | 57/80 [00:13<00:05, 4.24it/s]
72%|███████▎ | 58/80 [00:13<00:05, 4.24it/s]
74%|███████▍ | 59/80 [00:14<00:04, 4.24it/s]
75%|███████▌ | 60/80 [00:14<00:04, 4.24it/s]
76%|███████▋ | 61/80 [00:14<00:04, 4.24it/s]
78%|███████▊ | 62/80 [00:14<00:04, 4.23it/s]
79%|███████▉ | 63/80 [00:14<00:04, 4.23it/s]
80%|████████ | 64/80 [00:15<00:03, 4.23it/s]
81%|████████▏ | 65/80 [00:15<00:03, 4.23it/s]
82%|████████▎ | 66/80 [00:15<00:03, 4.23it/s]
84%|████████▍ | 67/80 [00:15<00:03, 4.22it/s]
85%|████████▌ | 68/80 [00:16<00:02, 4.23it/s]
86%|████████▋ | 69/80 [00:16<00:02, 4.22it/s]
88%|████████▊ | 70/80 [00:16<00:02, 4.22it/s]
89%|████████▉ | 71/80 [00:16<00:02, 4.22it/s]
90%|█████████ | 72/80 [00:17<00:01, 4.22it/s]
91%|█████████▏| 73/80 [00:17<00:01, 4.22it/s]
92%|█████████▎| 74/80 [00:17<00:01, 4.22it/s]
94%|█████████▍| 75/80 [00:17<00:01, 4.22it/s]
95%|█████████▌| 76/80 [00:18<00:00, 4.22it/s]
96%|█████████▋| 77/80 [00:18<00:00, 4.22it/s]
98%|█████████▊| 78/80 [00:18<00:00, 4.22it/s]
99%|█████████▉| 79/80 [00:18<00:00, 4.22it/s]
100%|██████████| 80/80 [00:18<00:00, 4.22it/s]
100%|██████████| 80/80 [00:18<00:00, 4.21it/s]
0%| | 0/20 [00:00<?, ?it/s]
5%|▌ | 1/20 [00:00<00:05, 3.66it/s]
10%|█ | 2/20 [00:00<00:04, 3.96it/s]
15%|█▌ | 3/20 [00:00<00:04, 4.07it/s]
20%|██ | 4/20 [00:00<00:03, 4.12it/s]
25%|██▌ | 5/20 [00:01<00:03, 4.14it/s]
30%|███ | 6/20 [00:01<00:03, 4.16it/s]
35%|███▌ | 7/20 [00:01<00:03, 4.18it/s]
40%|████ | 8/20 [00:01<00:02, 4.19it/s]
45%|████▌ | 9/20 [00:02<00:02, 4.20it/s]
50%|█████ | 10/20 [00:02<00:02, 4.20it/s]
55%|█████▌ | 11/20 [00:02<00:02, 4.20it/s]
60%|██████ | 12/20 [00:02<00:01, 4.20it/s]
65%|██████▌ | 13/20 [00:03<00:01, 4.20it/s]
70%|███████ | 14/20 [00:03<00:01, 4.20it/s]
75%|███████▌ | 15/20 [00:03<00:01, 4.20it/s]
80%|████████ | 16/20 [00:03<00:00, 4.20it/s]
85%|████████▌ | 17/20 [00:04<00:00, 4.20it/s]
90%|█████████ | 18/20 [00:04<00:00, 4.20it/s]
95%|█████████▌| 19/20 [00:04<00:00, 4.20it/s]
100%|██████████| 20/20 [00:04<00:00, 4.21it/s]
100%|██████████| 20/20 [00:04<00:00, 4.17it/s]