Skip to content

Commit

Permalink
added FAL nodes
Browse files Browse the repository at this point in the history
  • Loading branch information
georgi committed Jan 12, 2025
1 parent 3fb4b36 commit 208aa49
Show file tree
Hide file tree
Showing 12 changed files with 339 additions and 40 deletions.
37 changes: 36 additions & 1 deletion poetry.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ datasets = "3.1.0"
python-docx = "1.1.2"
diffusers = { extras = ["torch"], version = "0.31.0" }
einops = "0.8.0"
fal-client = "0.5.6"
fastapi = "0.115.5"
feedparser = "6.0.11"
filelock = "3.16.1"
Expand Down Expand Up @@ -140,3 +141,6 @@ pytest-xdist = "*"

[tool.poetry.scripts]
nodetool = "nodetool.cli:cli"

[tool.poetry.requires-plugins]
poetry-plugin-export = ">=1.8"
4 changes: 4 additions & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -58,9 +58,11 @@ einops==0.8.0 ; python_version >= "3.10" and python_version < "4.0"
email-validator==2.2.0 ; python_version >= "3.10" and python_version < "4.0"
et-xmlfile==2.0.0 ; python_version >= "3.10" and python_version < "4.0"
exceptiongroup==1.2.2 ; python_version >= "3.10" and python_version < "3.11"
fal-client==0.5.6 ; python_version >= "3.10" and python_version < "4.0"
fastapi-cli[standard]==0.0.7 ; python_version >= "3.10" and python_version < "4.0"
fastapi==0.115.5 ; python_version >= "3.10" and python_version < "4.0"
fastapi[all]==0.115.5 ; python_version >= "3.10" and python_version < "4.0"
feedparser==6.0.11 ; python_version >= "3.10" and python_version < "4.0"
ffmpeg-python==0.2.0 ; python_version >= "3.10" and python_version < "4.0"
filelock==3.16.1 ; python_version >= "3.10" and python_version < "4.0"
flatbuffers==24.12.23 ; python_version >= "3.10" and python_version < "4.0"
Expand All @@ -86,6 +88,7 @@ h11==0.14.0 ; python_version >= "3.10" and python_version < "4.0"
httpcore==1.0.7 ; python_version >= "3.10" and python_version < "4.0"
httplib2==0.22.0 ; python_version >= "3.10" and python_version < "4.0"
httptools==0.6.4 ; python_version >= "3.10" and python_version < "4.0"
httpx-sse==0.4.0 ; python_version >= "3.10" and python_version < "4.0"
httpx==0.27.2 ; python_version >= "3.10" and python_version < "4.0"
huggingface-hub==0.26.2 ; python_version >= "3.10" and python_version < "4.0"
humanfriendly==10.0 ; python_version >= "3.10" and python_version < "4.0"
Expand Down Expand Up @@ -257,6 +260,7 @@ selenium==4.26.1 ; python_version >= "3.10" and python_version < "4.0"
sentence-transformers==3.3.0 ; python_version >= "3.10" and python_version < "4.0"
sentencepiece==0.2.0 ; python_version >= "3.10" and python_version < "4.0"
setuptools==75.1.0 ; python_version >= "3.10" and python_version < "4.0"
sgmllib3k==1.0.0 ; python_version >= "3.10" and python_version < "4.0"
shellingham==1.5.4 ; python_version >= "3.10" and python_version < "4.0"
six==1.17.0 ; python_version >= "3.10" and python_version < "4.0"
sniffio==1.3.1 ; python_version >= "3.10" and python_version < "4.0"
Expand Down
1 change: 1 addition & 0 deletions scripts/gen_docs.py
Original file line number Diff line number Diff line change
Expand Up @@ -320,6 +320,7 @@ def document_function(
import nodetool.nodes.anthropic
import nodetool.nodes.apple
import nodetool.nodes.chroma
import nodetool.nodes.fal
import nodetool.nodes.google
import nodetool.nodes.huggingface
import nodetool.nodes.nodetool
Expand Down
1 change: 1 addition & 0 deletions scripts/node_metadata.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import nodetool.nodes.anthropic
import nodetool.nodes.chroma
import nodetool.nodes.comfy
import nodetool.nodes.fal
import nodetool.nodes.huggingface
import nodetool.nodes.nodetool
import nodetool.nodes.openai
Expand Down
1 change: 1 addition & 0 deletions src/nodetool/common/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ class SecretsModel(BaseModel):
ELEVENLABS_API_KEY: str | None = Field(
default=None, description="ElevenLabs API key"
)
FAL_API_KEY: str | None = Field(default=None, description="FAL API key")


def get_system_file_path(filename: str) -> Path:
Expand Down
198 changes: 162 additions & 36 deletions src/nodetool/metadata/nodes.json
Original file line number Diff line number Diff line change
Expand Up @@ -22380,10 +22380,10 @@
"year": 2025,
"month": 1,
"day": 12,
"hour": 10,
"minute": 46,
"second": 11,
"microsecond": 856598,
"hour": 12,
"minute": 18,
"second": 29,
"microsecond": 498397,
"tzinfo": "UTC",
"utc_offset": 0.0
},
Expand Down Expand Up @@ -23422,10 +23422,10 @@
"year": 2025,
"month": 1,
"day": 12,
"hour": 10,
"minute": 46,
"second": 11,
"microsecond": 860728,
"hour": 12,
"minute": 18,
"second": 29,
"microsecond": 502411,
"tzinfo": "UTC",
"utc_offset": 0.0
},
Expand Down Expand Up @@ -23475,10 +23475,10 @@
"year": 2025,
"month": 1,
"day": 12,
"hour": 10,
"minute": 46,
"second": 11,
"microsecond": 860972,
"hour": 12,
"minute": 18,
"second": 29,
"microsecond": 502649,
"tzinfo": "UTC",
"utc_offset": 0.0
},
Expand Down Expand Up @@ -23528,10 +23528,10 @@
"year": 2025,
"month": 1,
"day": 12,
"hour": 10,
"minute": 46,
"second": 11,
"microsecond": 861182,
"hour": 12,
"minute": 18,
"second": 29,
"microsecond": 502856,
"tzinfo": "UTC",
"utc_offset": 0.0
},
Expand Down Expand Up @@ -23581,10 +23581,10 @@
"year": 2025,
"month": 1,
"day": 12,
"hour": 10,
"minute": 46,
"second": 11,
"microsecond": 861388,
"hour": 12,
"minute": 18,
"second": 29,
"microsecond": 503076,
"tzinfo": "UTC",
"utc_offset": 0.0
},
Expand Down Expand Up @@ -23634,10 +23634,10 @@
"year": 2025,
"month": 1,
"day": 12,
"hour": 10,
"minute": 46,
"second": 11,
"microsecond": 861596,
"hour": 12,
"minute": 18,
"second": 29,
"microsecond": 503289,
"tzinfo": "UTC",
"utc_offset": 0.0
},
Expand Down Expand Up @@ -23687,10 +23687,10 @@
"year": 2025,
"month": 1,
"day": 12,
"hour": 10,
"minute": 46,
"second": 11,
"microsecond": 861859,
"hour": 12,
"minute": 18,
"second": 29,
"microsecond": 503541,
"tzinfo": "UTC",
"utc_offset": 0.0
},
Expand Down Expand Up @@ -23740,10 +23740,10 @@
"year": 2025,
"month": 1,
"day": 12,
"hour": 10,
"minute": 46,
"second": 11,
"microsecond": 862063,
"hour": 12,
"minute": 18,
"second": 29,
"microsecond": 503744,
"tzinfo": "UTC",
"utc_offset": 0.0
},
Expand Down Expand Up @@ -23809,10 +23809,10 @@
"year": 2025,
"month": 1,
"day": 12,
"hour": 10,
"minute": 46,
"second": 11,
"microsecond": 862309,
"hour": 12,
"minute": 18,
"second": 29,
"microsecond": 504008,
"tzinfo": "UTC",
"utc_offset": 0.0
},
Expand Down Expand Up @@ -74899,6 +74899,132 @@
"recommended_models": [],
"basic_fields": []
},
{
"title": "Flux V 1 Pro",
"description": "FLUX1.1 [pro] is an enhanced version of FLUX.1 [pro], improved image generation capabilities, delivering superior composition, detail, and artistic fidelity compared to its predecessor.\n fal, text, image",
"namespace": "fal.text_to_image",
"node_type": "fal.text_to_image.FluxV1Pro",
"layout": "default",
"properties": [
{
"name": "prompt",
"type": {
"type": "str",
"optional": false,
"values": null,
"type_args": [],
"type_name": null
},
"default": "",
"title": "Prompt",
"description": "The prompt to generate an image from",
"min": null,
"max": null
}
],
"outputs": [
{
"type": {
"type": "image",
"optional": false,
"values": null,
"type_args": [],
"type_name": null
},
"name": "output",
"stream": false
}
],
"the_model_info": {},
"recommended_models": [],
"basic_fields": [
"prompt"
]
},
{
"title": "Flux V 1 Pro Ultra",
"description": "FLUX1.1 [ultra] is the latest and most advanced version of FLUX.1 [pro], \n featuring cutting-edge improvements in image generation, delivering unparalleled \n composition, detail, and artistic fidelity.",
"namespace": "fal.text_to_image",
"node_type": "fal.text_to_image.FluxV1ProUltra",
"layout": "default",
"properties": [
{
"name": "prompt",
"type": {
"type": "str",
"optional": false,
"values": null,
"type_args": [],
"type_name": null
},
"default": "",
"title": "Prompt",
"description": "The prompt to generate an image from",
"min": null,
"max": null
}
],
"outputs": [
{
"type": {
"type": "image",
"optional": false,
"values": null,
"type_args": [],
"type_name": null
},
"name": "output",
"stream": false
}
],
"the_model_info": {},
"recommended_models": [],
"basic_fields": [
"prompt"
]
},
{
"title": "Redux V 3",
"description": "REDUX3 is a cutting-edge image generation model that combines advanced AI technology with \n advanced image processing techniques to deliver stunning visual results.",
"namespace": "fal.text_to_image",
"node_type": "fal.text_to_image.ReduxV3",
"layout": "default",
"properties": [
{
"name": "prompt",
"type": {
"type": "str",
"optional": false,
"values": null,
"type_args": [],
"type_name": null
},
"default": "",
"title": "Prompt",
"description": "The prompt to generate an image from",
"min": null,
"max": null
}
],
"outputs": [
{
"type": {
"type": "image",
"optional": false,
"values": null,
"type_args": [],
"type_name": null
},
"name": "output",
"stream": false
}
],
"the_model_info": {},
"recommended_models": [],
"basic_fields": [
"prompt"
]
},
{
"title": "Text To Speech",
"description": "Converts text to speech using OpenAI TTS models.\n audio, tts, text-to-speech, voice, synthesis\n\n Use cases:\n - Generate spoken content for videos or podcasts\n - Create voice-overs for presentations\n - Assist visually impaired users with text reading\n - Produce audio versions of written content",
Expand Down
1 change: 1 addition & 0 deletions src/nodetool/nodes/fal/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
import nodetool.nodes.fal.text_to_image
Loading

0 comments on commit 208aa49

Please sign in to comment.