FL HF Character
Publish a character's LoRA and dataset to Hugging Face, organized
- dataset_zip
- caption_layout
- caption_PDF_layout
- csv_file
- STRING
If you're building out a library of trained characters - a LoRA per character, plus the dataset and captions that made it - dumping everything into one flat Hugging Face repo gets messy fast. FL_HF_Character exists specifically for that workflow: it uploads a character's assets to the Hub under a fixed, predictable folder structure - studio/project/character - so twenty characters across five projects stay organized instead of turning into a junk drawer of files with similar names.
How it works
You point it at a repo (creating one if needed), tell it which studio, project, and character the assets belong to, and it uploads whatever you've wired in - LoRA file, a zipped dataset, a caption-layout image, a caption PDF, a CSV - into that repo path. Hugging Face repos are git under the hood, so every upload is a real commit with revision history, not an overwrite that erases what was there before.
The inputs and outputs that matter
Required: api_key (your HF write token), owner, repo_name, studio_name, project_name, character_name - these five build the folder path assets land in - plus create_new_repo (True/False) and repo_type (model / dataset / space).
Optional, wire in whichever apply: lora_file (a path), dataset_zip (ZIP), caption_layout (IMAGE - pairs nicely with FL_ImageCaptionLayout's contact-sheet output), caption_PDF_layout (PDF), and csv_file (CSV).
Output: a single STRING - the upload result/status, worth printing or logging rather than ignoring.
How to install it
Ships in the ComfyUI_Fill-Nodes pack. Easiest route is 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. The Hugging Face integration needs the huggingface_hub Python package - it's a common transitive dependency so it's often already present, but if imports fail on first use, running the pack's requirements file is the fix.
Common issues & troubleshooting
You need a write-scoped token, not a read token. HF API keys are scoped, and a read-only token will fail on the upload step with a permissions error. Generate one with write access from your Hugging Face account settings.
Repo doesn't exist yet. Set create_new_repo to True the first time you upload to a given owner/repo_name combination. Leave it False on subsequent uploads to the same repo - it's a flag for repo creation, not a general "overwrite" toggle.
Public by default. Like most Hub upload flows, a newly created repo is public unless you make it private afterward on huggingface.co - don't assume a character's training data is private just because you uploaded it from a local ComfyUI workflow.
This is a durable publish, not a scratch backup. The KB's read on Hugging Face itself is worth knowing here: official repos can disappear (the SD 1.5 repo did), and gated or license-flagged content has been removed on report. That mostly matters for content you're redistributing under someone else's license - your own character LoRAs and datasets are yours to host, but it's still worth keeping a local copy of anything you can't afford to lose, rather than treating the Hub as your only archive.
Inputs (13)
| Name | Type | Default | Description |
|---|---|---|---|
| api_key | STRING | — | |
| owner | STRING | — | |
| repo_name | STRING | my-awesome-model | — |
| studio_name | STRING | — | |
| project_name | STRING | — | |
| character_name | STRING | — | |
| create_new_repo | COMBO | 2 options: True, False | |
| repo_type | COMBO | 3 options: model, dataset, space | |
| lora_fileopt | STRING | — | |
| dataset_zipopt | ZIP | — | |
| caption_layoutopt | IMAGE | — | |
| caption_PDF_layoutopt | — | ||
| csv_fileopt | CSV | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| STRING | STRING | — |