What is Flowra
Flowra is an AI workflow development tool open-sourced by ModelScope and the WULI team, and is the FlowBench core engine. The tool provides a graph execution engine and a node package development toolchain, supporting a rich type system, a DAG execution engine, intelligent caching, distributed scheduling, and other features. Flowra can quickly encapsulate machine learning models and algorithms, and is deeply integrated with FlowBench; developed node packages can be directly imported into FlowBench, enabling a seamless transition from development to deployment. The tool's concise API and high-performance design let developers build complex AI workflows like assembling building blocks, suitable for rapid prototyping, multimodal processing, and production-grade deployment.
Main features of Flowra
- Comprehensive type system: Supports multiple multimedia data types (such as images, videos, audio, 3D meshes) and front-end interactive components, with automatic validation at runtime, simplifying complex data processing logic.
- DAG execution engine: Organizes workflows based on a directed acyclic graph (DAG), with features such as intelligent caching, parallel scheduling, distributed support, and error recovery, improving execution efficiency and stability.
- Complete development toolchain: Provides support for the entire process from project creation (
flowra create), node management (flowra project), local debugging (flowra debug), to packaging and publishing (flowra build). - Seamless integration with ModelScope: Built-in support for ModelScope, enabling the download and management of AI models with one line of code, and supporting model caching and version control.
- Flexible storage backends: Supports multiple storage services such as Alibaba Cloud OSS, MinIO, and local file systems, adapting to different deployment scenarios and optimizing storage and data sharing.
- High-performance execution optimization: Avoids redundant computation through an intelligent caching mechanism; the distributed scheduler supports multi-worker parallel execution, dynamic task assignment, and automatic failure retry, ensuring efficient and stable operation.
How to use Flowra
- Install Flowra: Create a Python virtual environment via Conda and install Flowra to ensure the development environment is ready.
- Create a project: Use the
flowra createcommand to quickly create a new node package project, preparing for development. - Develop nodes: Define and develop custom nodes in the project, using the tools and type system provided by Flowra to simplify the development process.
- Build nodepackage: Run the
flowra buildcommand to package the developed nodes into.nodebinfiles, for convenient subsequent use. - Use in FlowBench: Import the generated
.nodebinfile into the FlowBench client to use these nodes to build workflows in the visual interface. - Debug and optimize: Use Flowra's debugging tools for local testing, and leverage intelligent caching and distributed scheduling features to optimize workflow performance.
Flowra project address
- GitHub repository:https://github.com/modelscope/flowra
Flowra application scenarios
-
Image processing and object detection: Used for real-time object detection and image classification in security monitoring, improving the intelligence level of monitoring systems.
-
Video analysis and editing: Supports real-time analysis and content editing of video streams, suitable for the fields of intelligent traffic monitoring and video creation.
-
Audio Processing and Speech Recognition: Implements audio enhancement and speech recognition functions, applied to intelligent customer service and voice assistant development.
-
Multimodal Data Fusion: Combines multiple types of data such as images, audio, and text to build multimodal perception systems in intelligent driving or intelligent security.
-
Enterprise-Level Data Processing: Quickly builds data processing workflows, supports cleaning, analysis, and visualization of large-scale data, and improves enterprise operational efficiency.