Nodes/ComfyUI_Fill-Nodes/FL HFHub Model Uploader
ComfyUI Node

FL HFHub Model Uploader

Ship a trained model to Hugging Face with a README already written

By filliptm·Created 3 years ago·Updated about 17 hours ago· 628
FL HFHub Model Uploader
  • image
  • model_card_header
  • zip_file
  • STRING
api_key
owner
repo_namemy-awesome-model
readme_content# My Awesome Model This is a great model!
create_new_repo
image_folder_pathimages
repo_type
zip_filenamearchive
zip_folder_pathzipped_content
model_file_path
model_repo_path

Of the three Hugging Face uploader nodes in this pack, this is the "full package" one. FL_HF_UploaderAbsolute just drops files at a path; FL_HF_Character organizes character assets under a studio/project/character folder scheme. FL_HFHubModelUploader is the general-purpose model publisher - it handles the model file itself, sample images, and it writes the README/model-card for you rather than leaving you to hand-craft one on huggingface.co afterward.

How it works

Point it at (or let it create) a repo, and it assembles a proper model repo: your model file, an image folder of samples, an optional model-card header image, and a generated README built from the readme_content you provide. Zip files are supported too, for bundling extra assets. Uploads run threaded with retry logic, so a flaky connection on a large safetensors file doesn't necessarily mean starting over.

The inputs and outputs that matter

Required: api_key, owner, repo_name, readme_content (multiline - this becomes the repo's actual README.md, so this is where you write the model description, usage notes, trigger words, whatever matters), create_new_repo, image_folder_path (default images), and repo_type (model / dataset / space).

Optional: image (a sample output to include), model_card_header (a banner/header image for the card), zip_file + zip_filename + zip_folder_path (for bundling extras like training configs or captions into an archive), and model_file_path + model_repo_path (the actual model weights and where they land in the repo).

Output: a STRING result/status.

How to install it

Ships in ComfyUI_Fill-Nodes. ComfyUI Manager: search ComfyUI_Fill-Nodes, install, restart. Manual:

cd ComfyUI/custom_nodes
git clone https://github.com/filliptm/ComfyUI_Fill-Nodes
pip install -r ComfyUI_Fill-Nodes/requirements.txt

then restart. Needs huggingface_hub for the upload calls - the requirements install pulls it if it's not already present from another package.

Common issues & troubleshooting

Large model files need a write token with enough scope, and time. Safetensors checkpoints run into the gigabytes; the upload is threaded with retries specifically because that combination - big file, ordinary home connection - is where uploads tend to die otherwise. Don't be surprised if a full checkpoint takes a while; that's normal, not a stall.

readme_content is your actual model card - don't leave it as the placeholder. It defaults to a stub ("# My Awesome Model / This is a great model!") - that's a reminder to fill it in, not a real description. A model with no real README is a model nobody downstream can figure out how to use months later, including you.

create_new_repo only matters the first time. Set it True to create the repo on your first upload to a given owner/repo_name; leave it False for subsequent uploads to the same repo, or you risk the create step erroring against an already-existing repo.

New repos are public by default. If the model isn't meant for public release yet, flip it to private in the Hugging Face repo settings after creation - this node doesn't expose a visibility toggle itself.

Know which uploader you actually want. If you just need to drop a LoRA or a zip at an arbitrary path without a generated README, FL_HF_UploaderAbsolute is the lighter tool. If you're organizing character-specific training assets, FL_HF_Character enforces a folder structure this node doesn't.

Category🏵️Fill Nodes/Hugging Face

Inputs (14)

NameTypeDefaultDescription
api_keySTRING
ownerSTRING
repo_nameSTRINGmy-awesome-model
readme_contentSTRING# My Awesome Model This is a great model!
create_new_repoCOMBO2 options: True, False
image_folder_pathSTRINGimages
repo_typeCOMBO3 options: model, dataset, space
imageoptIMAGE
model_card_headeroptIMAGE
zip_fileoptZIP
zip_filenameoptSTRINGarchive
zip_folder_pathoptSTRINGzipped_content
model_file_pathoptSTRING
model_repo_pathoptSTRING

Outputs (1)

NameTypeDescription
STRINGSTRING