You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
manifest/examples/manifest_diffusers.ipynb

199 lines
541 KiB
Plaintext

{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"%load_ext autoreload\n",
"%autoreload 2"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"### Using Locally Hosted Huggingface LM\n",
"\n",
"Run\n",
"```\n",
"python3 manifest/api/app.py --model_type huggingface --model_name_or_path EleutherAI/gpt-neo-125M --device 0\n",
"```\n",
"in a separate `screen` or `tmux`."
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{'model_name': 'EleutherAI/gpt-neo-125M', 'model_path': 'EleutherAI/gpt-neo-125M'}\n"
]
}
],
"source": [
"from manifest import Manifest\n",
"\n",
"# Local hosted GPT Neo 125M\n",
"manifest = Manifest(\n",
" client_name=\"huggingface\",\n",
" client_connection=\"http://127.0.0.1:6001\",\n",
" cache_name=\"sqlite\",\n",
" cache_connection=\"my_sqlite_manifest.sqlite\"\n",
")\n",
"print(manifest.client_pool.get_current_client().get_model_params())"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"### Using Locally Hosted Huggingface Diffusers\n",
"\n",
"Run\n",
"```\n",
"python3 manifest/api/app.py --model_type diffuser --model_name_or_path runwayml/stable-diffusion-v1-5 --device 0\n",
"```\n",
"in a separate `screen` or `tmux`."
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{'model_name': 'runwayml/stable-diffusion-v1-5', 'model_path': 'runwayml/stable-diffusion-v1-5'}\n"
]
}
],
"source": [
"from manifest import Manifest\n",
"\n",
"manifest_diff = Manifest(\n",
" client_name=\"diffuser\",\n",
" client_connection=\"http://127.0.0.1:6000\",\n",
" cache_name=\"sqlite\",\n",
" cache_connection=\"my_sqlite_manifest.sqlite\"\n",
")\n",
"print(manifest_diff.client_pool.get_current_client().get_model_params())"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"carrots, onions, radishes, and spinach.\n"
]
}
],
"source": [
"ingredients = manifest.run(\"What are best vegetables for a sandwhich? The ingrediates are lettuce,\", stop_token=\"\\n\")\n",
"print(ingredients)"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<PIL.Image.Image image mode=RGB size=512x512>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from PIL import Image\n",
"\n",
"res = manifest_diff.run(f\"Sandwich with {ingredients}\", client_timeout=300)\n",
"im = Image.fromarray(res)\n",
"display(im)"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"Comparing with and without a cache"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import time\n",
"import numpy as np\n",
"\n",
"manifest = Manifest(\n",
" client_name=\"tomadiffuser\",\n",
" cache_name=\"sqlite\",\n",
" cache_connection=\"my_sqlite_manifest.sqlite\"\n",
")\n",
"\n",
"st = time.time()\n",
"res = manifest.run(\"Coloring book image of a horse\", overwrite_cache=True)\n",
"im = Image.fromarray(res)\n",
"display(im)\n",
"print(f\"Took {time.time() - st:.2f} seconds\")\n",
"\n",
"st = time.time()\n",
"res = manifest.run(\"Coloring book image of a horse\")\n",
"im = Image.fromarray(np.array(res))\n",
"display(im)\n",
"print(f\"Now took {time.time() - st:.2f} seconds\")"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "manifest",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.4"
},
"orig_nbformat": 4,
"vscode": {
"interpreter": {
"hash": "fddffe4ac3b9f00470127629076101c1b5f38ecb1e7358b567d19305425e9491"
}
}
},
"nbformat": 4,
"nbformat_minor": 2
}