CivArchive
    FLUX Trainer Workflow - v2.0
    Preview 58722114
    Preview 58722116

    Training FLUX in ComfyUI. A brief workflow, didn't add regularization image.

    v2.0 release note:
    Fix Flux-Trainer VisualizeLoss can't record global loss bug. v1.0 workflow just show current loop loss and can't auto flash loss data, so it always show first loop loss.

    v2.0 workflow fix this problem. But you should modify Flux-Trainer code.

    class VisualizeLoss:
        @classmethod
    
        ...
        
        # change output types
        RETURN_TYPES = ("NETWORKTRAINER", "IMAGE", "FLOAT",)
        RETURN_NAMES = ("network_trainer", "plot", "loss_list",)
        FUNCTION = "draw"
        CATEGORY = "FluxTrainer"
    
        def draw(self, network_trainer, window_size, plot_style, normalize_y, width, height, log_scale):
            ...
            
            # add code
            training_loop = network_trainer["training_loop"]
            network_trainer = network_trainer["network_trainer"]
    
            ...
            
            # It will make loss list become a list of all the same constants, I don't know how to modify it, temporarily shut down it.
            # 
            # if window_size > 0:
            #     loss_values = moving_average(loss_values, window_size)
    
            ...
            
           
            trainer = {
                "network_trainer": network_trainer,
                "training_loop": training_loop,
            }
            
            # change output 
            return (trainer, image_tensor, loss_values,)

    Description

    Fix Flux-Trainer VisualizeLoss can't record global loss bug. v1.0 workflow just show current loop loss and can't auto flash loss data, so it always show first loop loss.

    v2.0 workflow fix this problem. But you should modify Flux-Trainer code.

    class VisualizeLoss:
        @classmethod
    
        ...
        
        # change output types
        RETURN_TYPES = ("NETWORKTRAINER", "IMAGE", "FLOAT",)
        RETURN_NAMES = ("network_trainer", "plot", "loss_list",)
        FUNCTION = "draw"
        CATEGORY = "FluxTrainer"
    
        def draw(self, network_trainer, window_size, plot_style, normalize_y, width, height, log_scale):
            ...
            
            # add code
            training_loop = network_trainer["training_loop"]
            network_trainer = network_trainer["network_trainer"]
    
            ...
            
            # It will make loss list become a list of all the same constants, I don't know how to modify it, temporarily shut down it.
            # 
            # if window_size > 0:
            #     loss_values = moving_average(loss_values, window_size)
    
            ...
            
           
            trainer = {
                "network_trainer": network_trainer,
                "training_loop": training_loop,
            }
            
            # change output 
            return (trainer, image_tensor, loss_values,)

    FAQ

    Workflows
    Flux.1 S

    Details

    Downloads
    694
    Platform
    CivitAI
    Platform Status
    Available
    Created
    2/19/2025
    Updated
    8/24/2026
    Deleted
    -

    Files

    fluxTrainerWorkflow_v20.zip

    Mirrors

    HuggingFace (1 mirrors)
    CivitAI (1 mirrors)