Nodes/ComfyUI_AIIA/Float Process (AIIA To-Disk for Long Audio)
ComfyUI Node

Float Process (AIIA To-Disk for Long Audio)

Stream Frames to Disk, Never OOM

By havvk·Created about a year ago·Updated 6 months ago· 13
Float Process (AIIA To-Disk for Long Audio)
  • float_pipe
  • ref_image
  • ref_audio
  • frames_output_directory
  • saved_frame_count
a_cfg_scale2.0
r_cfg_scale1.0
e_cfg_scale1.0
fps25.0
emotionnone
crop_input_imagefalse
seed0
nfe10
device_overridedefault
decode_gpu_chunk_size32
mask_top_edge_pixels0
output_subdir_namefloat_frames_AIIA

The In-Memory version of the FLOAT talking-head node is great until your audio gets long, and then it's a memory emergency. Float Process (AIIA To-Disk for Long Audio) is the fix: it runs the exact same FLOAT model but writes frames to disk in small batches as it decodes them, so RAM stays flat no matter how long the clip is. Output isn't an image tensor - it's a folder path and a frame count. This is the "whole point" node of the pack's OOM story.

How it works

Everything you'd recognize from the In-Memory node is here: float_pipe, ref_image, ref_audio, the three CFG scales, emotion, nfe, crop_input_image, seed. The difference is in the output path. Instead of accumulating a batch of frames in memory, the node decodes a chunk (decode_gpu_chunk_size, default 32), writes those frames to a directory as PNGs, frees the memory, and moves on. The result is two outputs:

  • frames_output_directory - the STRING path where the frames landed.
  • saved_frame_count - how many frames it wrote, so downstream nodes know the length.

That directory is the handoff point. It feeds directly into the pack's AIIA Video Combine node's frames_directory input, giving you a complete talking-head pipeline that never holds the whole video in RAM or VRAM. There's a output_subdir_name option if you want to control the folder name inside ComfyUI's output directory (default float_frames_AIIA).

One thing the README doesn't shout about but you'll notice: these to-disk frame dirs get a .aiia_temp marker file, and AIIA Video Combine's cleanup_frames switch (off by default) will auto-delete the frame folder after a successful combine - but only folders carrying that marker. Your own footage directories are never touched. Turn it on once and long-video runs stop eating your disk.

Choosing between the two Float nodes

  • Clip is short (under ~a minute), you're iterating, or the next node wants an IMAGE tensor → In-Memory.
  • Clip is long, you're worried about system RAM, or you're building the full generate-to-combine pipeline → To-Disk, then combine.

There's no quality difference between them - same model, same CFG, same steps. The only trade is the disk round-trip and a tiny bit of IO overhead, which is a great deal when the alternative is a dead queue at minute three.

The inputs that matter

Most of the parameter tuning is identical to the In-Memory node - a_cfg_scale for lip-sync tightness, emotion for a base expression, nfe for quality/speed. If you're also seeing a horizontal artifact along the top edge of frames, mask_top_edge_pixels crops those rows off the output (the height shrinks by that amount). And if you want to run on CPU, device_override has you covered - just expect it to be slow.

Install

Standard pack install: havvk/ComfyUI_AIIA via ComfyUI Manager or git clone https://github.com/havvk/ComfyUI_AIIA.git into custom_nodes/, restart, first run downloads the FLOAT weights. If frames_output_directory comes back empty or the folder doesn't validate, the usual suspects are a bad float_pipe connection or a missing/wrong reference image - check the console log, the node prints its errors there.

CategoryAIIA/FLOAT

Inputs (15)

NameTypeDefaultDescription
float_pipeFLOAT_PIPE
ref_imageIMAGE
ref_audioAUDIO
a_cfg_scaleFLOAT2.00–10
r_cfg_scaleFLOAT1.00–10
e_cfg_scaleFLOAT1.00–10
fpsFLOAT25.01–60
emotionCOMBOnone8 options: none, angry, disgust, fear, happy, neutral, +2
crop_input_imageBOOLEANfalse
seedINT00–18446744073709550000
nfeINT101–100
device_overrideoptCOMBOdefault3 options: default, cuda, cpu
decode_gpu_chunk_sizeoptINT321–128(To Disk) GPU解码后一次处理并保存多少帧。影响显存和IO。
mask_top_edge_pixelsoptINT00–64CROPS the top N rows of pixels to remove artifacts. Output height will be smaller.
output_subdir_nameoptSTRINGfloat_frames_AIIA在ComfyUI输出目录下创建的子目录名

Outputs (2)

NameTypeDescription
frames_output_directorySTRING
saved_frame_countINT