fofr / wan-14b-laezel
Wan2.1 14b fine-tuned on the Baldur's Gate 3 character Laezel
- Public
- 13 runs
-
H100
- Weights
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";
import fs from "node:fs";
const replicate = new Replicate({
auth: process.env.REPLICATE_API_TOKEN,
});
Run fofr/wan-14b-laezel using Replicate’s API. Check out the model's schema for an overview of inputs and outputs.
const output = await replicate.run(
"fofr/wan-14b-laezel:47f42ccb2ed4659754ba103fb0c915d0cce85532af6137fc68a2375eb4c60480",
{
input: {
frames: 81,
prompt: "a scene where LAEZEL is laughing in a cafe, warm, bokeh, fireplace",
fast_mode: "Balanced",
resolution: "480p",
aspect_ratio: "16:9",
sample_shift: 8,
sample_steps: 30,
negative_prompt: "",
lora_strength_clip: 1,
sample_guide_scale: 5,
lora_strength_model: 1
}
}
);
// 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 fofr/wan-14b-laezel using Replicate’s API. Check out the model's schema for an overview of inputs and outputs.
output = replicate.run(
"fofr/wan-14b-laezel:47f42ccb2ed4659754ba103fb0c915d0cce85532af6137fc68a2375eb4c60480",
input={
"frames": 81,
"prompt": "a scene where LAEZEL is laughing in a cafe, warm, bokeh, fireplace",
"fast_mode": "Balanced",
"resolution": "480p",
"aspect_ratio": "16:9",
"sample_shift": 8,
"sample_steps": 30,
"negative_prompt": "",
"lora_strength_clip": 1,
"sample_guide_scale": 5,
"lora_strength_model": 1
}
)
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 fofr/wan-14b-laezel 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": "fofr/wan-14b-laezel:47f42ccb2ed4659754ba103fb0c915d0cce85532af6137fc68a2375eb4c60480",
"input": {
"frames": 81,
"prompt": "a scene where LAEZEL is laughing in a cafe, warm, bokeh, fireplace",
"fast_mode": "Balanced",
"resolution": "480p",
"aspect_ratio": "16:9",
"sample_shift": 8,
"sample_steps": 30,
"negative_prompt": "",
"lora_strength_clip": 1,
"sample_guide_scale": 5,
"lora_strength_model": 1
}
}' \
https://api.replicate.com/v1/predictions
To learn more, take a look at Replicate’s HTTP API reference docs.
brew install cog
If you don’t have Homebrew, there are other installation options available.
Run this to download the model and run it in your local environment:
cog predict r8.im/fofr/wan-14b-laezel@sha256:47f42ccb2ed4659754ba103fb0c915d0cce85532af6137fc68a2375eb4c60480 \
-i 'frames=81' \
-i 'prompt="a scene where LAEZEL is laughing in a cafe, warm, bokeh, fireplace"' \
-i 'fast_mode="Balanced"' \
-i 'resolution="480p"' \
-i 'aspect_ratio="16:9"' \
-i 'sample_shift=8' \
-i 'sample_steps=30' \
-i 'negative_prompt=""' \
-i 'lora_strength_clip=1' \
-i 'sample_guide_scale=5' \
-i 'lora_strength_model=1'
To learn more, take a look at the Cog documentation.
Run this to download the model and run it in your local environment:
docker run -d -p 5000:5000 --gpus=all r8.im/fofr/wan-14b-laezel@sha256:47f42ccb2ed4659754ba103fb0c915d0cce85532af6137fc68a2375eb4c60480
curl -s -X POST \ -H "Content-Type: application/json" \ -d $'{ "input": { "frames": 81, "prompt": "a scene where LAEZEL is laughing in a cafe, warm, bokeh, fireplace", "fast_mode": "Balanced", "resolution": "480p", "aspect_ratio": "16:9", "sample_shift": 8, "sample_steps": 30, "negative_prompt": "", "lora_strength_clip": 1, "sample_guide_scale": 5, "lora_strength_model": 1 } }' \ http://localhost:5000/predictions
To learn more, take a look at the Cog documentation.
Output
{
"completed_at": "2025-03-12T12:36:44.307655Z",
"created_at": "2025-03-12T12:33:53.647000Z",
"data_removed": false,
"error": null,
"id": "92adzpesxxrma0cnh9c8ngah6c",
"input": {
"frames": 81,
"prompt": "a scene where LAEZEL is laughing in a cafe, warm, bokeh, fireplace",
"aspect_ratio": "16:9",
"sample_shift": 8,
"sample_steps": 30,
"negative_prompt": "",
"lora_strength_clip": 1,
"sample_guide_scale": 5,
"lora_strength_model": 1
},
"logs": "Random seed set to: 1997690228\n✅ 49be09c47a6472548969c7eb1d45d1b9.safetensors already cached\nChecking inputs\n====================================\nChecking weights\n✅ wan_2.1_vae.safetensors exists in ComfyUI/models/vae\n✅ umt5_xxl_fp16.safetensors exists in ComfyUI/models/text_encoders\n✅ 49be09c47a6472548969c7eb1d45d1b9.safetensors exists in loras directory\n✅ wan2.1_t2v_14B_bf16.safetensors exists in ComfyUI/models/diffusion_models\n====================================\nRunning workflow\n[ComfyUI] got prompt\nExecuting node 6, title: CLIP Text Encode (Positive Prompt), class type: CLIPTextEncode\nExecuting node 3, title: KSampler, class type: KSampler\n[ComfyUI]\n[ComfyUI] 0%| | 0/30 [00:00<?, ?it/s]\n[ComfyUI] Resetting TeaCache state\n[ComfyUI]\n[ComfyUI] 3%|▎ | 1/30 [00:07<03:28, 7.20s/it]\n[ComfyUI] 7%|▋ | 2/30 [00:16<04:00, 8.59s/it]\n[ComfyUI] 10%|█ | 3/30 [00:26<04:03, 9.02s/it]\n[ComfyUI] TeaCache: Initialized\n[ComfyUI]\n[ComfyUI] 13%|█▎ | 4/30 [00:38<04:26, 10.26s/it]\n[ComfyUI] 20%|██ | 6/30 [00:48<02:58, 7.45s/it]\n[ComfyUI] 27%|██▋ | 8/30 [00:58<02:20, 6.38s/it]\n[ComfyUI] 33%|███▎ | 10/30 [01:08<01:56, 5.84s/it]\n[ComfyUI] 40%|████ | 12/30 [01:18<01:39, 5.53s/it]\n[ComfyUI] 47%|████▋ | 14/30 [01:28<01:25, 5.34s/it]\n[ComfyUI] 53%|█████▎ | 16/30 [01:38<01:13, 5.22s/it]\n[ComfyUI] 60%|██████ | 18/30 [01:48<01:01, 5.15s/it]\n[ComfyUI] 67%|██████▋ | 20/30 [01:57<00:50, 5.10s/it]\n[ComfyUI] 73%|███████▎ | 22/30 [02:07<00:40, 5.06s/it]\n[ComfyUI] 80%|████████ | 24/30 [02:17<00:30, 5.04s/it]\n[ComfyUI] 87%|████████▋ | 26/30 [02:27<00:20, 5.02s/it]\n[ComfyUI] 93%|█████████▎| 28/30 [02:37<00:10, 5.01s/it]\n[ComfyUI] 100%|██████████| 30/30 [02:47<00:00, 5.00s/it]\nExecuting node 8, title: VAE Decode, class type: VAEDecode\nExecuting node 50, title: Video Combine 🎥🅥🅗🅢, class type: VHS_VideoCombine\n[ComfyUI] 100%|██████████| 30/30 [02:47<00:00, 5.59s/it]\n[ComfyUI] Prompt executed in 170.48 seconds\noutputs: {'50': {'gifs': [{'filename': 'R8_Wan_00001.mp4', 'subfolder': '', 'type': 'output', 'format': 'video/h264-mp4', 'frame_rate': 16.0, 'workflow': 'R8_Wan_00001.png', 'fullpath': '/tmp/outputs/R8_Wan_00001.mp4'}]}}\n====================================\nR8_Wan_00001.png\nR8_Wan_00001.mp4",
"metrics": {
"predict_time": 170.654119001,
"total_time": 170.660655
},
"output": [
"https://replicate.delivery/xezq/i9enM2xXXNT1Siglhh15IvZvpoMRlytk2sqegWUz6rpcHzXUA/R8_Wan_00001.mp4"
],
"started_at": "2025-03-12T12:33:53.653536Z",
"status": "succeeded",
"urls": {
"stream": "https://stream.replicate.com/v1/files/bcwr-iif4acjobgfu74d7pkvjaocmk5qnkdslud4d4td3i4pegaoczzfa",
"get": "https://api.replicate.com/v1/predictions/92adzpesxxrma0cnh9c8ngah6c",
"cancel": "https://api.replicate.com/v1/predictions/92adzpesxxrma0cnh9c8ngah6c/cancel"
},
"version": "47f42ccb2ed4659754ba103fb0c915d0cce85532af6137fc68a2375eb4c60480"
}
Random seed set to: 1997690228
✅ 49be09c47a6472548969c7eb1d45d1b9.safetensors already cached
Checking inputs
====================================
Checking weights
✅ wan_2.1_vae.safetensors exists in ComfyUI/models/vae
✅ umt5_xxl_fp16.safetensors exists in ComfyUI/models/text_encoders
✅ 49be09c47a6472548969c7eb1d45d1b9.safetensors exists in loras directory
✅ wan2.1_t2v_14B_bf16.safetensors exists in ComfyUI/models/diffusion_models
====================================
Running workflow
[ComfyUI] got prompt
Executing node 6, title: CLIP Text Encode (Positive Prompt), class type: CLIPTextEncode
Executing node 3, title: KSampler, class type: KSampler
[ComfyUI]
[ComfyUI] 0%| | 0/30 [00:00<?, ?it/s]
[ComfyUI] Resetting TeaCache state
[ComfyUI]
[ComfyUI] 3%|▎ | 1/30 [00:07<03:28, 7.20s/it]
[ComfyUI] 7%|▋ | 2/30 [00:16<04:00, 8.59s/it]
[ComfyUI] 10%|█ | 3/30 [00:26<04:03, 9.02s/it]
[ComfyUI] TeaCache: Initialized
[ComfyUI]
[ComfyUI] 13%|█▎ | 4/30 [00:38<04:26, 10.26s/it]
[ComfyUI] 20%|██ | 6/30 [00:48<02:58, 7.45s/it]
[ComfyUI] 27%|██▋ | 8/30 [00:58<02:20, 6.38s/it]
[ComfyUI] 33%|███▎ | 10/30 [01:08<01:56, 5.84s/it]
[ComfyUI] 40%|████ | 12/30 [01:18<01:39, 5.53s/it]
[ComfyUI] 47%|████▋ | 14/30 [01:28<01:25, 5.34s/it]
[ComfyUI] 53%|█████▎ | 16/30 [01:38<01:13, 5.22s/it]
[ComfyUI] 60%|██████ | 18/30 [01:48<01:01, 5.15s/it]
[ComfyUI] 67%|██████▋ | 20/30 [01:57<00:50, 5.10s/it]
[ComfyUI] 73%|███████▎ | 22/30 [02:07<00:40, 5.06s/it]
[ComfyUI] 80%|████████ | 24/30 [02:17<00:30, 5.04s/it]
[ComfyUI] 87%|████████▋ | 26/30 [02:27<00:20, 5.02s/it]
[ComfyUI] 93%|█████████▎| 28/30 [02:37<00:10, 5.01s/it]
[ComfyUI] 100%|██████████| 30/30 [02:47<00:00, 5.00s/it]
Executing node 8, title: VAE Decode, class type: VAEDecode
Executing node 50, title: Video Combine 🎥🅥🅗🅢, class type: VHS_VideoCombine
[ComfyUI] 100%|██████████| 30/30 [02:47<00:00, 5.59s/it]
[ComfyUI] Prompt executed in 170.48 seconds
outputs: {'50': {'gifs': [{'filename': 'R8_Wan_00001.mp4', 'subfolder': '', 'type': 'output', 'format': 'video/h264-mp4', 'frame_rate': 16.0, 'workflow': 'R8_Wan_00001.png', 'fullpath': '/tmp/outputs/R8_Wan_00001.mp4'}]}}
====================================
R8_Wan_00001.png
R8_Wan_00001.mp4
Examples
Run time and cost
This model runs on Nvidia H100 GPU hardware. We don't yet have enough runs of this model to provide performance information.