Skip to main content
Archived

This project has been archived by its maintainers, and is no longer receiving any updates.

GenFlow

Description

GenFlow is an innovative AI workflow engine, designed to integrate seamlessly with a node-based web interface. It enables users to orchestrate complex workflows involving various AI models for generating multimedia content, including images, text, audio, and video, all within a single, unified platform.

Features

  • Diverse AI Model Integration: Effortlessly combine a broad spectrum of AI models.
  • Multimedia Content Generation: Create images, text, audio, and video within the same workflow.
  • Flexible Execution Environments: Supports both local and remote execution options.
  • Comprehensive Platform Support: Utilize models from leading platforms like Huggingface, Replicate, and OpenAI.
  • Advanced Database Integration: Leverage support for vector databases to enhance your workflows.
  • ComfyUI Workflows: Incorporate ComfyUI workflows for enhanced user interaction.
  • Retrieval Augmented Generation: Implement RAG for sophisticated data retrieval and generation.
  • Serverless GPU Deployment: Easily deploy workflows on serverless GPU platforms, including modal.com, for scalable processing power.

Installation

GenFlow supports various Python environments, including CPython and PyPy. The installation instructions provided below cater to both environments for maximum compatibility.

For CPython (default Python implementation)

pip install genflow-lib

Usage

To get started with GenFlow:

genflow setup

Execution

  • GenFlow Node Editor: Install the GenFlow Node Editor for an intuitive, graphical interface to design and manage workflows.
  • Command Line Execution: Alternatively, execute workflows directly from the command line for automation and scripting purposes.

Implementing Nodes

New nodes can be added by subclassing GenflowNode.

Node properties are defined using class fields with type annotations.

The node operation is defined in the process method, which takes a context object, allowing I/O amongst other operations.

class MyNode(GenflowNode):
    a: str = ""
    b: str = ""

    async def process(self, context: ProcessingContext) -> str:
      return self.a + self.b

Environment Variables

Configuration can be passes as environment variables, or from configuration files. A dot env (.env) file will be read if present in the working dirctory.

General Configuration

Variable Description Default
ASSET_BUCKET S3 bucket for storing asset files "images"
TEMP_BUCKET S3 bucket for storing temporary files "temp"
COMFY_FOLDER Location of ComfyUI folder (optional) None
ENV Environment mode ("development" or "production") "development"
LOG_LEVEL Logging level "INFO"
AWS_REGION AWS region "us-east-1"
GENFLOW_API_URL URL of the Genflow API server "http://localhost:8000/api"

Database Configuration

Variable Description Default
DB_PATH Path to the SQLite database file "./data/genflow.db"

AWS Configuration

Variable Description Default
AWS_ACCESS_KEY_ID AWS access key ID None
AWS_SECRET_ACCESS_KEY AWS secret access key None
DYNAMO_ENDPOINT_URL DynamoDB endpoint URL (for local development) None
DYNAMO_REGION DynamoDB region AWS_REGION
DYNAMO_ACCESS_KEY_ID DynamoDB access key ID AWS_ACCESS_KEY_ID
DYNAMO_SECRET_ACCESS_KEY DynamoDB secret access key AWS_SECRET_ACCESS_KEY
S3_ENDPOINT_URL S3 endpoint URL (for local development) None
S3_ACCESS_KEY_ID S3 access key ID AWS_ACCESS_KEY_ID
S3_SECRET_ACCESS_KEY S3 secret access key AWS_SECRET_ACCESS_KEY
S3_REGION S3 region AWS_REGION

API Keys and Tokens

Variable Description
OPENAI_API_KEY OpenAI API key (optional)
HF_TOKEN Hugging Face token (optional)
REPLICATE_API_TOKEN Replicate API token (optional)
CHROMA_TOKEN Chroma token
NGROK_TOKEN ngrok token

OAuth Configuration

Variable Description
GOOGLE_CLIENT_ID Google OAuth client ID
GOOGLE_CLIENT_SECRET Google OAuth client secret

Other Configuration

Variable Description
WORKER_URL URL of the worker server
CHROMA_URL URL of the Chroma server

Setup Files

The following files are used for storing settings and secrets:

  • settings.yaml: Stores general settings
  • secrets.yaml: Stores secret values (API keys, tokens, etc.)

The location of these files depends on the operating system:

  • Linux/macOS: ~/.config/genflow/
  • Windows: %APPDATA%\genflow\

If the files don't exist, default values will be used.

API Endpoints

Endpoint Method Description Query Key Query Value Body Key Body Value
/api/assets/ GET Returns all assets for a given user or workflow. parent_id string, nullable - -
content_type string, nullable - -
cursor string, nullable - -
page_size number, nullable - -
/api/assets/ POST Create a new asset. - - workflow_id string, nullable
- - parent_id string, nullable
- - name string
- - content_type string
/api/assets/{id} GET Returns the asset for the given id. - - - -
/api/assets/{id} PUT Updates the asset for the given id. - - name string, nullable
- - parent_id string
- - status string, nullable
- - content_type string, nullable
/api/assets/{id} DELETE Deletes the asset for the given id. - - - -
/api/jobs/{id} GET Returns the status of a job. - - - -
/api/jobs/ GET Returns all assets for a given user or workflow. workflow_id string, nullable - -
cursor string, nullable - -
page_size number, nullable - -
/api/jobs/ POST Run - - job_type string, default: 'workflow'
- - params unknown
- - workflow_id string
- - user_id string
- - auth_token string
- - env Record<string, never>, nullable
- - graph Graph
/api/auth/validate-token POST Checks if the given token is valid. - - token string
/api/auth/login POST Logs a user in with one time passcode. Returns an auth token that can be used for future requests. - - email string
- - passcode string
/api/auth/signup POST Creates a new user for given email address. Returns an auth token that can be used for future requests. - - email string
/api/auth/oauth/login POST Oauth Login - - redirect_uri string
- - provider OAuthProvider
/api/auth/oauth/callback POST Oauth Callback - - provider OAuthProvider
- - state string
- - authorization_response string
- - redirect_uri string
/api/nodes/dummy GET Returns a dummy node. - - - -
/api/nodes/metadata GET Returns a list of all node metadata. - - - -
`/api

Contribution

We welcome contributions from the community! To contribute to GenFlow, please adhere to our contribution guidelines. Your efforts help us improve and evolve this project.

License

GenFlow is made available under the terms of the GPL3 License, promoting open-source collaboration and sharing.

Contact

For inquiries, suggestions, or contributions, please reach out to the core team:

  • Matthias Georgi
  • David Buerer
  • Severin Schwanck

GitHub: https://github.com/Gen-Flow/genflow

Metadata

Release files for genflow-lib 0.1.14

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for genflow-lib 0.1.14
File Size Uploaded Provenance
genflow_lib-0.1.14.tar.gz 10.8 MB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for genflow-lib 0.1.14
File Interpreter ABI Platform
genflow_lib-0.1.14-py3-none-any.whl Python 3 none any Details

Total release size: 22.5 MB

Release files / genflow_lib-0.1.14.tar.gz

Download URL genflow_lib-0.1.14.tar.gz
Size 10.8 MB
Tags Source
SHA-256 checksum
How to use checksums
d11622f97e6fc4082e218d3b90635d1856c9375648730ee7031a3407da9bcb1a
BLAKE2b-256 checksum
How to use checksums
34079e3f9d1c30a3baed563fb32a0751ac212cb33dcf5d5722c00d6f7385ef4c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.0.0 CPython/3.12.2

Release files / genflow_lib-0.1.14-py3-none-any.whl

Download URL genflow_lib-0.1.14-py3-none-any.whl
Size 11.7 MB
Tags Python 3
SHA-256 checksum
How to use checksums
e31b202f5d4b9fb28cbb42c9fec26eb3147bb9df302bc5b5ee53a22e0de30d12
BLAKE2b-256 checksum
How to use checksums
18ce8943c0738b3613865896c27f4c69c9632e85b331648dbe49620bdcf3e0eb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.0.0 CPython/3.12.2

Security for genflow-lib 0.1.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page