Files
Gökay Aydoğan b75f731abf feat: v2.0.0 — full fal catalog coverage, dynamic nodes, core rewrite (#75)
Auto-generated nodes for the entire live fal catalog (1,391 models →
1,482 total nodes) built at startup from a committed registry, plus a
full rewrite of the core layer. All 87 v1 node keys, inputs and outputs
are preserved — existing workflows load and run unchanged.

New:
- data/fal_registry.json + scripts/build_registry.py: distills fal's
  catalog and per-endpoint OpenAPI schemas into a deterministic registry
- nodes/dynamic/: schema→node factory (typed widgets, tooltips, pricing
  in node help, IMAGE/VIDEO/AUDIO auto-upload, native VIDEO/AUDIO
  outputs, seed -1=random, force_rerun), plus a generic Fal Any Endpoint
  node for arbitrary endpoints
- nodes/utils/: rewritten core — FalApiError surfacing fal's real error
  payloads, queue progress logs, ComfyUI cancel support, retries and
  timeouts everywhere, parallel uploads/downloads, structured logging
- tests/ (45 tests incl. a legacy-key snapshot lock), CI lint+test
  workflow, weekly registry-refresh workflow that opens a PR on changes
- README regenerated from the registry (scripts/build_readme.py)

Fixed:
- GPTImage2 / GPTImage2Edit were defined but never registered
- Topaz video upscale sent a nonexistent API field (desired_increase)
- SeedVR video upscaler had its error handling commented out + wrong
  model label; ProRes enum value mismatch translated at argument level
- 10x `is ""` comparisons, bare excepts, missing HTTP timeouts,
  temp-file leaks, fps=0 crash in LoadVideoURL, duplicate enum entry
- opencv-python & friends missing from pyproject (Registry installs)
- API failures now raise visible errors instead of silently returning
  blank images or "Error:" strings that downstream nodes tried to load

BREAKING (behavioral only): failed API calls raise instead of returning
blank/black images or error strings. Node signatures are unchanged.
2026-07-02 12:46:22 +03:00

92 lines
2.4 KiB
JSON

{
"description": "Node keys registered at v1.0.12 (commit 1b14ab3). These must NEVER be removed or renamed - existing user workflows reference them.",
"keys": [
"Bria_Video_Increase_Resolution_fal",
"CombinedVideoGeneration_fal",
"DYWanFun22_fal",
"DYWanUpscaler_fal",
"Dreamina31TextToImage_fal",
"FluxDev_fal",
"FluxGeneral_fal",
"FluxLoraTrainer_fal",
"FluxLora_fal",
"FluxPro11_fal",
"FluxPro1Fill_fal",
"FluxProKontextMulti_fal",
"FluxProKontextTextToImage_fal",
"FluxProKontext_fal",
"FluxPro_fal",
"FluxSchnell_fal",
"FluxUltra_fal",
"GPTImage15Edit_fal",
"GPTImage15_fal",
"Hidreamfull_fal",
"HunyuanVideoLoraTrainer_fal",
"Ideogramv3_fal",
"Imagen4Preview_fal",
"InfinityStarTextToVideo_fal",
"Kling21Pro_fal",
"Kling25TurboPro_fal",
"Kling26Pro_fal",
"KlingMaster_fal",
"KlingO3Pro_fal",
"KlingO3Standard_fal",
"KlingOmniImageToVideo_fal",
"KlingOmniReferenceToVideo_fal",
"KlingOmniVideoToVideoEdit_fal",
"KlingOmniVideoToVideoReference_fal",
"KlingPro10_fal",
"KlingPro16_fal",
"KlingV3ProMotionControl_fal",
"KlingV3Pro_fal",
"KlingV3StandardMotionControl_fal",
"KlingV3Standard_fal",
"Kling_fal",
"Krea_Wan14b_VideoToVideo_fal",
"LLM_fal",
"LoadVideoURL",
"LtxVideoTrainer_fal",
"LumaDreamMachine_fal",
"MiniMaxSubjectReference_fal",
"MiniMaxTextToVideo_fal",
"MiniMax_fal",
"NanoBanana2_fal",
"NanoBananaEdit_fal",
"NanoBananaPro_fal",
"NanoBananaTextToImage_fal",
"PixverseSwapNode_fal",
"QwenImageEditPlusLoRA_fal",
"QwenImageEdit_fal",
"Recraft_fal",
"ReveTextToImage_fal",
"RunwayGen3_fal",
"Sana_fal",
"SeedEditV3_fal",
"SeedanceImageToVideo_fal",
"SeedanceProImageToVideo_fal",
"SeedanceTextToVideo_fal",
"SeedreamV4Edit_fal",
"Seedvr_Upscale_Video_fal",
"Seedvr_Upscaler_fal",
"Sora2Pro_fal",
"Topaz_Upscale_Video_fal",
"UploadFile_fal",
"UploadVideo_fal",
"Upscaler_fal",
"VLM_fal",
"Veo2ImageToVideo_fal",
"Veo31Fast_fal",
"Veo31_fal",
"Veo3_fal",
"VideoUpscaler_fal",
"Wan2214b_animate_move_character_fal",
"Wan2214b_animate_replace_character_fal",
"Wan22VACEFun14b_fal",
"Wan25_preview_fal",
"Wan26ReferenceToVideo_fal",
"Wan26_fal",
"WanLoraTrainer_fal",
"WanPro_fal",
"WanVACEVideoEdit_fal"
]
}