CivArchive
    Model Card - v4 beta2
    NSFW
    Preview 23402103
    Preview 23398357
    Preview 23398360
    Preview 23398358
    Preview 23400434

    CLICK EXPAND AND READ ME PLZ!

    This ComfyUI workflow generates a Model Card for showcasing checkpoints or LoRAs.

    A rewrite of the Model Card workflow by @Stevie2k8

    V4 Beta 2

    V4 Beta 2 is another complete rewrite to reduce memory usage and complexity.

    This version uses Flow Control techniques together with Autoqueue in order to perform different actions separately in a controlled order.

    Intermediary steps produce images that are saved into a project folder.

    This version uses my custom IndustrialMagick node that requires you to install ImageMagick on your machine. This is an opensource command line application similar to photoshop or gimp, which is much more powerful and optimized than image manipulation within comfyUI.


    Looking for feedbacks before adding more features.

    Common issue resolution:

    1. project folder not created

    • I use ComfyUI save node to create the project folder inside your ComfyUI output directory by saving an empty image.

    • The output directory path can be changed by modifying your run_cpu.bat or run_nvidia_gpu.bat start file. (these files only exist on ComfyUI Portable for windows)
      By default, it is located in: `...\ComfyUI_windows_portable\ComfyUI\output`

    • If the creation fails, which it should not, you can create the directory manually.

    2. Error at the grid creation stage

    • You can check the actual image magick error in the logs in the comfyui cmd window before the same message as displayed in the error popup.

    • From my experience debugging the workflow, I believe the error will be because image magick cannot open one of the row_xx.png files listed in the rows.txt list file.

    • In that case, hit 0 or reset the view to go back to the control panel, below from the control flow group, you have a box to provide the absolute path to your comfyUI output directory. Please check that the path is valid.

    • You can also go to the project folder and open the rows.txt file to double check the paths of all row images.

    3. Error at the card creation stage

    • This should not happen, but did happen in debugging and was corrected.

    • If the flow controls is not set properly or if you disable the random number generators, ComfyUI may skip the header or grid generation because their parameters did not change.

    • If this issue presents itself to you, you can disable the autoqueue, set the header and grid controllers to active, set the loopCount to the number of selected rows plus one (27 if you selected all 26 prompt groups) and queue. It will generate the header and grid, then you can set all values as before but also enable the card controller, generation will happen without error this time.

    V4 Beta 2 Flow Control explanation:

    Flow control serves two purposes in V4 beta 2.

    Order of generation

    You will notice a chain from the loop count value all the way to the autoqueue. That's called the signal. This is a technique to enforce that several steps happen before others.

    Workflow routing


    This workflow is designed to queue itself twice before starting to generate row images and once after. Before each queue the loop counter value will update and the workflow will activate or deactivate multiple stages.

    Before I describe the order of operations, let's define some terms:

    • loopCount: is an integer value starting at -1. It keeps track of the current iteration. It acts as an index in a programmatic loop. It's maximum value will be one more than the number of prompt groups you select to generate, so if you select 3 it will be 4.

    • N: represents the number of prompt groups selected. loopCount maximum value will be N+1.

    • Controllers: ComfyUI has a specific order of operations. It will only execute nodes in a branch that ends with a saving or preview node.This allows us to activate or deactivate a route or diagram branch by disabling the saving or preview node at its end. I have put these nodes into separate groups called controllers.

    • In the following flow explanation, I will write [autoqueue] to represent the last action in a workflow. That action is different whether you have activated the autoqueue option in the workflow or not. In the former case, it corresponds to the last node in the workflow queueing itself, in the latter, it corresponds to you the user queueing the workflow at the end of its execution.


    Flow control works as follow:

    Before you queue for the first time, ensure that:

    • all controllers are set to NO (disabled).

    • the value of loopCount is set to -1

    You queue once.

    STEP -1

    The workflow enables two controllers:

    • folder creation

    • rows.txt text file reset

    The workflow updates the value of loopCount to 0.

    [autoqueue]

    STEP 0
    The workflow runs:

    • folder creation

    • rows.txt text file reset

    The workflow disables two controllers:

    • folder creation

    • rows.txt text file reset

    The workflow enables three controllers:

    • row

    • row2

    • save row image name to rows.txt

    The workflow updates the value of loopCount to 1.
    [autoqueue]

    STEP 1 to STEP N-1
    The workflow runs:

    • row

    • row2

    • save row image name to rows.txt

    The workflow updates the value of loopCount by 1.
    [autoqueue]

    STEP N
    The workflow runs:

    • row

    • row2

    • save row image name to rows.txt

    The workflow disables three controllers:

    • row

    • row2

    • save row image name to rows.txt

    The workflow enables three controllers:

    • header

    • grid

    • card

    The workflow updates the value of loopCount to N+1.
    [autoqueue]


    STEP N+1
    The workflow runs:

    • header

    • grid

    • card

    The workflow disables three controllers:

    • header

    • grid

    • card

    The workflow updates the value of loopCount to -1.

    No queue, the workflow executed completely.

    V4 Beta 1

    I am trying to reduce the memory load from V3.
    In V4 I saw significant reduction of the RAM in use after an initial peak.
    Looking for feedbacks before adding more features.

    V3 Status

    Issues:

    • Group Average gen times: check formula

    • Global generation times: not working, issue with lists

    • VRAM hungry

    Description

    This workflow generates a customizable Model Card.

    Header

    • Can be toggled on or off entirely.

    • Logo to the left, toggable.

    • Generation info.

    • Baner to the right, toggable.

    Grid body

    • Customizable number of columns (recommended values: 1 or 2).

    • Toggable prompt groups (26).

    • Customizable max number of images per group (recommended <8).

    • Supports groups of different sizes.

    • Each group prints one headline.

    • Each group may print one description.

    • Each image in group prints a label.

    V3 exclusive

    • Each image may print a generation time, toggable.

    • (broken) Each group may print a total or average generation time.

    • (planned) Total or global average generation time may print to the header.

    Use

    • You may clone this repository into the pysssss-workflows ComfyUI subdirectory.

    • Load the .json file.

    • Install missing nodes using the ComfyUI Manager.

    • (V3) Install my custom node "KSamplerTimer" for Version 3.

      • Install with the ComfyUI Manager: Insall via git URL: https://gitlab.com/lanterieur/comfyui_ksamplertimer

      • Get it from CivitAI: CivitAI

      • Get it from the repository: Gitlab

    • Set checkpoint settings.

    • Set default sd1.5 & sdxl image sizes.

    • Set LoRA settings if needed.

    • Set template (columns).

    • Toggle groups to generate.

    • (V2) Toggle "just the right amount" of "batch"es.

    • (Recommended) Disable generation and dry fire.

    • Queue workflow

    FAQ

    • I cannot find the custom node "workflow/xxx".
      This workflow uses "group nodes" which is a built in feature that groups nodes together. If a group node is red, it's most likely because you are missing a custom node inside the group node. Try installing missing custom nodes from the ComfyUI Manager.
      Alternatively, inspect the missing node errors in the ComfyUI console to find which custom nodes to install.

    Changes

    V 3.0.2

    • Updated Hair prompts

    • Updated Headlines

    • Updated Descriptions

    • Updated Labels

    • Fixed bugs:

      • Mismatched Headlines.

      • Mismatched negative prompts.

      • Mismatched labels.

    V 3.0.1

    • Fixed bugs

    V 3.0.0

    • Complete refactor.

    • Swapped native KSampler for custom KSamplerTimer.

    • Supports batch generation with checkpoints configuration from file.

    • Exposes negative prompts and seeds to user.

    • Generates all images in one sampler run (list not batch). => Always regenerates all images.

    • Adds ability to print generation times.

    • Improved GUI:

      • Toggles are black.

      • Anything Everywhere declarations are gold.

      • Number of column is red.

      • Save location controls moved to top.

      • Custom LoRA controls moved to top.

      • Reorganized variable columns.

    • Fixed bugs

    V 2.0.0

    • Refactor.

    • Swapped multiple custom nodes (maths, simple & multiline strings).

    • Improved GUI:

      • Reorganized nodes in columns by functions.

      • Color coded node groups.

      • Annotations for users.

    • Removed save to jpg.

    Description

    Much lighter on memory.
    Using Image Magick.

    FAQ

    Comments (17)

    EvivrusAug 9, 2024· 1 reaction
    CivitAI

    I really love that you have continued to update this workflow. There are many quality techniques used in it which can be learned and applied in other workflows. Keep it up :D

    IndustrialVectors
    Author
    Aug 9, 2024

    Thank you! I may not update often since I’m busy with other projects, but I still aim to get all V3 features into V4, without the memory issues.

    IndustrialVectors
    Author
    Aug 9, 2024
    CivitAI

    By the way, my two custom nodes (ksampler timer & Industrial Magick) are now available from the Manager.

    IndustrialVectors
    Author
    Aug 9, 2024
    CivitAI

    Feedback on V4 Beta 2 wanted!

    epsc8Aug 12, 2024

    I had trouble getting V3 working and eventually gave up on that version.

    I appreciate the V4 beta updates have written instructions. I've encountered trouble at Step 4 when trying to generate my first model card. It looks like the specific folder for the model.card.checkpoint_name isn't automatically created. Since that folder isn't created it isn't able to read or write the rows.txt file. I got around that issue by manually creating the folder.

    I am still a bit unclear on the flow control options. After the first queue prompt is run it looked like three options were selected for "Enable row controller", "Enable Generate Row Controller 2", and "Enable Save row image name to list file controller". I had enabled groups 14 and 15 for Foods and Animals. The first execution created row_14 output but subsequent runs did not appear to do anything. I manually disabled group 14 and row_15 was generated. Queuing the prompt again changed the flow control options to "Enable grid controller", "Enable header controller", and "Enable Generate card controller".

    Error occurred when executing IndustrialMagick:

    local variable 'image' referenced before assignment

    File "C:\Users\epsc8\ComfyUI\execution.py", line 152, in recursive_execute

    output_data, output_ui = get_output_data(obj, input_data_all)

    File "C:\Users\epsc8\ComfyUI\execution.py", line 82, in get_output_data

    return_values = map_node_over_list(obj, input_data_all, obj.FUNCTION, allow_interrupt=True)

    File "C:\Users\epsc8\ComfyUI\execution.py", line 75, in map_node_over_list

    results.append(getattr(obj, func)(**slice_dict(input_data_all, i)))

    File "C:\Users\epsc8\ComfyUI\custom_nodes\ComfyUI_IndustrialMagick\industrial_magick.py", line 77, in execute

    return (image,"","Error processing your command. Check ComfyUI logs.",)

    I feel that my understanding of comfyUI is too shallow to provide better feedback on your workflow. I am still trying to learn.

    IndustrialVectors
    Author
    Aug 12, 2024

    @epsc8 Hello and thank you for your comment.
    The folder should be created automatically. Perhaps you need to ensure that the absolute path you provide is the same as the output dir that you configured in your comfyUI install. (usually you can override the location in your run_xxxx.bat file (cpu or nvidia_gpu).

    The error message you got only says that imagemagick run into an error. The exact error should be logged in your comfyui cmd window before the same message.

    But from debugging the workflow, I am pretty sure this is because the grid generator or the card generator steps did not find previous steps outputs, namely, the rows for the former or the grid for the latter.

    Flow control works as follow:

    You start with all controllers disabled and loopcount at -1.
    You queue once.

    The workflow will do nothing but enable the controllers for the folder creation and for the rows.txt file reset.
    Loop count updates to 0.
    [autoqueue] (<- this means that you have autoqueue enabled in the workflow and it queues itself, or you have it disabled and you need to queue manually)

    The workflow will run the folder creation and the rows.txt reset tasks.
    The workflow will disable current controllers and enable 3 others: row, row2 and save row name.
    Loop count updates to 1.
    [autoqueue]

    Let's say you have selected 2 prompt rows, then N will be the number of selected rows, that is N=2.

    While loopcount is between 1 and N-1, the same steps will happen:

    The workflow runs the row generation, saves the row image and writes the name of the row inside the rows.txt file.
    No change to the states of controllers.
    Loop count increments by one.
    [autoqueue]

    At loopcount == N, there is a change of controllers state before autoqueue:
    Row, Row2 and save row name are disabled.
    Header, grid and card are enabled.

    At loopcount = N+1
    The workflow will generate the header.
    The workflow reads the list of rows from the rows.txt file and generates the grid. saving it as grid.png.
    The workflow gets the header from the temp folder and the grid.png from the project folder to create the card that it saves as card.png (no embedded workflow as this is in image magick) then it saves the model_card_xxxxx_.png using comfyui save node to embed the workflow.
    The workflow disables header, grid and card controllers.
    Loop count resets to -1.
    No queue.

    IndustrialVectors
    Author
    Aug 12, 2024
    CivitAI

    I added a detailed explanation of how V4B2 works in the description. Click "show more" to read.
    Also added some common issue resolutions.

    KotatsuAiDec 23, 2024
    CivitAI

    V3 workflow: The Manager does not offer the means to install these nodes: Get latent size, workflowmathWrappedInteger, workflowmathWrappedFloat, workflowPrompt Processor, Integer. It's simply impossible to test the workflow unless you specify which extensions are required.

    Update: After installing the first requirement of the V4 workflow, this V3 workflow shows this error on load:

    Loading aborted due to error reloading workflow data

    TypeError: self2.groupData.oldToNewWidgetMap[n] is undefinedGroupNodeHandler/this.node.onNodeCreated@http://127.0.0.1:8188/assets/index-Ba7IybyO.js:1708:32 createNode@http://127.0.0.1:8188/assets/index-CoOvI8ZH.js:39986:12 configure@http://127.0.0.1:8188/assets/index-CoOvI8ZH.js:39049:32 #addConfigureHandler/LGraph$1.prototype.configure@http://127.0.0.1:8188/assets/index-CoOvI8ZH.js:88029:26 init/LGraph.prototype.configure@http://127.0.0.1:8188/extensions/ComfyUI-Custom-Scripts/js/reroutePrimitive.js:14:29 loadGraphData@http://127.0.0.1:8188/assets/index-CoOvI8ZH.js:88529:18

    Believe me when I tell you I've really tried to test the workflow, and I'm a PHP programmer, but the amount of third party nodes in this workflow is way beyond what we would call reasonable. Kindly double check if there are (new) core nodes that can do the same tasks as at least half a dozen of your current extensions please. Also, tips to get the missing nodes will be appreacited, thanks.

    IndustrialVectors
    Author
    May 10, 2025

    This is an old workflow now. With how updates on ComfyUI often break community nodes, I am not surprised that you may find it hard to set it up. Community nodes can also change without notice.
    If I have time (which I doubt) I'll have a look one day to document all required dependencies for a clean install, including a specific ComfyUI commit (version).

    KotatsuAiDec 23, 2024
    CivitAI

    V4 workflow: I've stopped trying to test it the second I found out it requires some external ImageMagic setup. A Lite version, just to test loras of different subjecs like a standard model card, would be really appreciated. If possible, not requiring more than 25 custom nodes. I'm sure out of the box core nodes should be enough for basic model cards with different prompts.

    IndustrialVectors
    Author
    May 10, 2025

    Working in ComfyUI only is quite a challenge really. ImageMagick solved a lot of issues with image manipulation, loading and memory. It's free and opensource. If you find alternatives using PIL in python you could swap the nodes.
    I don't tihnk I could adapt this workflow to vanilla ComfyUI several custom nodes provides really useful features or hacks.

    pink0909Jan 25, 2025
    CivitAI

    Man you tutorial video was a funny surprise, its awesome. How did you make the singer explain your tutorial with jazz music? i am curious to know :)

    IndustrialVectors
    Author
    May 10, 2025· 1 reaction

    Hi.
    I recorded and cut the video first recording a standard voice over to ensure enough time in each section.
    I rewrote the tutorial text with a LLM to turn it into classic hip hop lyrics.
    I used a text to music model to generate the backing track and vocals.
    Once I had a satisfactory audio track, I had to rework the video cut.

    pink0909May 12, 2025· 1 reaction

    @IndustrialVectors thanks the song reminded me a bit of this style https://www.youtube.com/watch?v=CeNKuLjgVrI#t=20s :)

    pink0909Jul 8, 2025

    @IndustrialVectors can you tell me the name of the text to music model you used?

    DigitalAFMar 30, 2025
    CivitAI

    is there a version for Flux?

    IndustrialVectors
    Author
    May 10, 2025

    No, but one could adapt this workflow to use Flux but I am not sure how it would help given how much more resources Flux requires.

    For similar purposes at my day job, I have built a parametric SPA gallery and created CLI tools that will take a configuration file with up to 15 parameters, build prompts, build workflows, spin comfyui workers on rented servers and queue workflows on these servers. The results are later downloaded and opened in the grid using the configuration files used as input. The parametric grid allows to adapt the display similar to a pivot table. Our use case is benchmarking thought.
    I built all that on company time and cannot share it publicly.

    Workflows
    Other

    Details

    Downloads
    184
    Platform
    CivitAI
    Platform Status
    Available
    Created
    8/9/2024
    Updated
    5/13/2026
    Deleted
    -

    Files

    modelCard_v4Beta2.zip

    Mirrors

    CivitAI (1 mirrors)