carefree-portable
📦️ aims to help you create portable (Python 🐍) projects of your codes / repo!
💡We are planning to:
use(Done!)venv
as a fallback solution for Linux / MacOS.- support other programming languages in the future, after Python is fully supported.
See Roadmap for more details.
AI PC is a 'new' concept that Intel proposed (see here). Since AI PC users often have zero knowledge about programming, it is important to provide them with a portable version of the AI project. This is where carefree-portable
📦️ comes in handy!
- Portable: The generated portable project can be used directly without any extra requirements.
- For example, you can run a portable Python project even without Python installed!
- Extensible: You can easily extend the functionality of
carefree-portable
📦️ by editing existing configurations, or adding brand newblock
/preset
without much effort.- See the Stable Diffusion Web UI example on how we hijack the famous SD webui repo with a custom
block
and make it portable out-of-the-box.
- See the Stable Diffusion Web UI example on how we hijack the famous SD webui repo with a custom
- Integrable: You can integrate
carefree-portable
📦️ with (GitHub) CI to automatically generate a portable version of your project.
carefree-portable
📦️ requires Python 3.8 or higher.
pip install carefree-portable
or
git clone https://github.com/carefree0910/carefree-portable.git
cd carefree-portable
pip install -e .
Detailed usages can be found in the CLI & Configurations documentation.
Go to the root directory of your project first:
cd <path/to/your/project>
To generate a default config, run:
cfport config
This command will genearte a cfport.json
file in the current directory. To make it work properly, you may need to edit the python_requirements
field, which is a list of Python packages that your project depends on.
- Don't forget to add your own project to this field as well!
After generating the config, you can package your project by running:
cfport package
Since nowadays many fancy projects are built on top of pytorch
, we provided a preset config for pytorch
projects, which can be generated by:
cfport config --preset torch-2.1.0-cu118
# or
cfport config --preset torch-2.1.0-cpu
This will generate a cfport.json
with a pre-defined requirement
in the python_requirements
field.
You may notice that the pre-defined
requirement
starts with$pip
instead ofpip
. This is important because it can tellcarefree-portable
📦️ to use the correctpip
executable when packaging your project.
- mixtral, which can generate a portable gradio demo for the famous
Mixtral-8x7B
LLM. - Stable Diffusion Web UI, which can generate a portable version of the famous A1111 webui.
- Stable Diffusion - Playground v2, which can generate a portable version of the brilliant Playground v2 HuggingFace Space.
Playground v2
itself is a fantastic SD model. It is said that images generated byPlayground v2
are favored 2.5 times more than those produced by SDXL. See their user study for more details.
You may also download the carefree-portable-*.zip
from the assets of the latest Releases. The zip files contain the portable versions of carefree-portable
📦️ that can be used directly:
- On Linux / MacOS, you still need to have Python installed (to activate the
venv
), but no extra packages are required. - On Windows, you can even run it without Python installed!
If you are using this portable version, just make sure to:
cd
into the unzippedcarefree-portable-*
folder.- Replace
cfport
with.\run.bat
(Windows) /bash run.sh
(Linux / MacOS) in the following commands. - Replace
python
with<path\to\portable\python>
in other python commands. The portablepython
locates at:- Windows:
.\carefree-portable-*\python_embeddables\python-3.10.11-embed-amd64\python
. - Linux / MacOS:
./carefree-portable-*/python_venv/bin/python3
.
- Windows:
Here's a step by step guide on how to use the portable carefree-portable
📦️ to run the Stable Diffusion Web UI example:
- Download the
carefree-portable-*.zip
from the assets of the latest Releases. - Unzip the
carefree-portable-*.zip
to a folder (let's say,./carefree-portable-*
), andcd
into it. - Download the
run.py
from here, and put it into the unzipped folder (./carefree-portable-*
). - Run the following command, and wait until the webui pops up:
.\python_embeddables\python-3.10.11-embed-amd64\python run.py
- After these steps, you'll obtain a portable version of the SD webui (locates at
./carefree-portable-*/sd_webui_cfport
), which can be used directly without any extra requirements!
Contributions are truly welcomed!
See CONTRIBUTING.md for more details.
carefree-portable
📦️ is MIT licensed, as found in the LICENSE
file.