ComfyUI Node
Latent Smoke Simulation
A ComfyUI node in latent/perturb with 23 inputs and 3 outputs.
Latent Smoke Simulation
- latent
- mask
- latent
- density_preview
- velocity_preview
◄steps30►
◄output_modefinal►
◄dt1.00►
◄resolution_scale0.50►
◄force_count3►
◄force_strength5.0►
◄force_radius0.10►
◄swirl_strength2.0►
◄velocity_damping0.980►
◄diffusion0.00►
◄vorticity0.30►
◄buoyancy1.50►
◄ambient_updraft0.10►
◄density_fade0.010►
◄temperature_strength0.00►
◄cooling_rate0.05►
◄smoke_source_strength1.00►
◄smoke_source_radius0.10►
◄smoke_source_modeimage►
◄seed0►
◄wrap_modeclamp►
Categorylatent/perturb
Inputs (23)
| Name | Type | Default | Description |
|---|---|---|---|
| latent | LATENT | Latent to simulate as smoke (buoyancy-driven advection). | |
| steps | INT | 300–256 | Number of simulation steps (or batch size when output_mode='batch'). |
| output_mode | COMBO | final | When 'batch', returns a batch of intermediate outputs after each step (1..steps). |
| dt | FLOAT | 1.000–4 | Time step size used during advection. |
| resolution_scale | FLOAT | 0.500.25–1 | Internal simulation resolution scale (lower = faster). |
| force_count | INT | 30–64 | Number of random force injections ('sticks') per step. When smoke_source_mode='random', also controls puff count. |
| force_strength | FLOAT | 5.00–64 | Linear force magnitude added to velocity (latent pixels / step). |
| force_radius | FLOAT | 0.100–1 | Normalized radius of influence for stick forces (0.1 = 10% of min(width,height)). |
| swirl_strength | FLOAT | 2.00–64 | Rotational component added around each stick position. |
| velocity_damping | FLOAT | 0.9800–1 | Velocity decay applied each step (lower = more viscous / quickly settles). |
| diffusion | FLOAT | 0.000–1 | Optional velocity diffusion (Gaussian smoothing). |
| vorticity | FLOAT | 0.300–10 | Vorticity confinement strength (adds billowing/swirl detail). |
| buoyancy | FLOAT | 1.500–10 | Strength of upward buoyant force. |
| ambient_updraft | FLOAT | 0.100–10 | Constant upward airflow added each step. |
| density_fade | FLOAT | 0.0100–1 | Density dissipation per step (higher = smoke dissipates faster). |
| temperature_strength | FLOAT | 0.000–10 | Initial temperature injection per step (hotter smoke rises more). |
| cooling_rate | FLOAT | 0.050–1 | Temperature decay per step. |
| smoke_source_strength | FLOAT | 1.000–10 | Amount of smoke density injected each step. |
| smoke_source_radius | FLOAT | 0.100–1 | Radius of smoke injection (normalized). Used as puff radius in random mode; softens the source in image/mask modes. |
| smoke_source_mode | COMBO | image | Smoke source mode: 'image' derives density from the input latent; 'random' injects random puffs; 'mask' injects from a MASK input. |
| seed | INT | 00–18446744073709550000 | Seed controlling random forces and random sources. |
| wrap_mode | COMBO | clamp | How advection samples outside the bounds. |
| maskopt | MASK | Used when smoke_source_mode='mask' to define the emission region (resized to latent resolution). |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| latent | LATENT | — |
| density_preview | IMAGE | — |
| velocity_preview | IMAGE | — |