{
"cells": [
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"XIn chao\n"
]
}
],
"source": [
"import os\n",
"print(\"XIn chao\")"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Requirement already satisfied: torch in /usr/local/lib/python3.10/site-packages (2.4.0)\n",
"Requirement already satisfied: jinja2 in /usr/local/lib/python3.10/site-packages (from torch) (3.1.4)\n",
"Requirement already satisfied: nvidia-cublas-cu12==12.1.3.1 in /usr/local/lib/python3.10/site-packages (from torch) (12.1.3.1)\n",
"Requirement already satisfied: fsspec in /usr/local/lib/python3.10/site-packages (from torch) (2024.6.1)\n",
"Requirement already satisfied: nvidia-curand-cu12==10.3.2.106 in /usr/local/lib/python3.10/site-packages (from torch) (10.3.2.106)\n",
"Requirement already satisfied: nvidia-cusolver-cu12==11.4.5.107 in /usr/local/lib/python3.10/site-packages (from torch) (11.4.5.107)\n",
"Requirement already satisfied: sympy in /usr/local/lib/python3.10/site-packages (from torch) (1.13.3)\n",
"Requirement already satisfied: nvidia-cudnn-cu12==9.1.0.70 in /usr/local/lib/python3.10/site-packages (from torch) (9.1.0.70)\n",
"Requirement already satisfied: nvidia-cufft-cu12==11.0.2.54 in /usr/local/lib/python3.10/site-packages (from torch) (11.0.2.54)\n",
"Requirement already satisfied: filelock in /usr/local/lib/python3.10/site-packages (from torch) (3.16.1)\n",
"Requirement already satisfied: typing-extensions>=4.8.0 in /usr/local/lib/python3.10/site-packages (from torch) (4.12.2)\n",
"Requirement already satisfied: nvidia-nvtx-cu12==12.1.105 in /usr/local/lib/python3.10/site-packages (from torch) (12.1.105)\n",
"Requirement already satisfied: triton==3.0.0 in /usr/local/lib/python3.10/site-packages (from torch) (3.0.0)\n",
"Requirement already satisfied: nvidia-nccl-cu12==2.20.5 in /usr/local/lib/python3.10/site-packages (from torch) (2.20.5)\n",
"Requirement already satisfied: nvidia-cusparse-cu12==12.1.0.106 in /usr/local/lib/python3.10/site-packages (from torch) (12.1.0.106)\n",
"Requirement already satisfied: nvidia-cuda-cupti-cu12==12.1.105 in /usr/local/lib/python3.10/site-packages (from torch) (12.1.105)\n",
"Requirement already satisfied: networkx in /usr/local/lib/python3.10/site-packages (from torch) (3.3)\n",
"Requirement already satisfied: nvidia-cuda-nvrtc-cu12==12.1.105 in /usr/local/lib/python3.10/site-packages (from torch) (12.1.105)\n",
"Requirement already satisfied: nvidia-cuda-runtime-cu12==12.1.105 in /usr/local/lib/python3.10/site-packages (from torch) (12.1.105)\n",
"Requirement already satisfied: nvidia-nvjitlink-cu12 in /usr/local/lib/python3.10/site-packages (from nvidia-cusolver-cu12==11.4.5.107->torch) (12.6.68)\n",
"Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/site-packages (from jinja2->torch) (2.1.5)\n",
"Requirement already satisfied: mpmath<1.4,>=1.1.0 in /usr/local/lib/python3.10/site-packages (from sympy->torch) (1.3.0)\n",
"\n",
"\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip available: \u001b[0m\u001b[31;49m22.3.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.3.1\u001b[0m\n",
"\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n",
"Note: you may need to restart the kernel to use updated packages.\n"
]
}
],
"source": [
"pip install torch\n"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Không có GPU\n"
]
}
],
"source": [
"import torch\n",
"\n",
"# Kiểm tra xem có GPU hay không\n",
"if torch.cuda.is_available():\n",
" print(f\"GPU đang có sẵn: {torch.cuda.get_device_name(0)}\")\n",
"else:\n",
" print(\"Không có GPU\")\n"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"ename": "OSError",
"evalue": "Cannot find empty port in range: 8083-8083. You can specify a different port by setting the GRADIO_SERVER_PORT environment variable or passing the `server_port` parameter to `launch()`.",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mOSError\u001b[0m Traceback (most recent call last)",
"\u001b[1;32m/home/user/app/data.ipynb Cell 4\u001b[0m line \u001b[0;36m1\n\u001b[1;32m 16\u001b[0m \u001b[39m# Chạy Gradio trên cổng 8080\u001b[39;00m\n\u001b[1;32m 17\u001b[0m demo\u001b[39m.\u001b[39mshare \u001b[39m=\u001b[39m \u001b[39mTrue\u001b[39;00m\n\u001b[0;32m---> 18\u001b[0m demo\u001b[39m.\u001b[39;49mlaunch(server_port\u001b[39m=\u001b[39;49m\u001b[39m8083\u001b[39;49m,share\u001b[39m=\u001b[39;49m\u001b[39mTrue\u001b[39;49;00m)\n",
"File \u001b[0;32m/usr/local/lib/python3.10/site-packages/gradio/blocks.py:2515\u001b[0m, in \u001b[0;36mBlocks.launch\u001b[0;34m(self, inline, inbrowser, share, debug, max_threads, auth, auth_message, prevent_thread_lock, show_error, server_name, server_port, height, width, favicon_path, ssl_keyfile, ssl_certfile, ssl_keyfile_password, ssl_verify, quiet, show_api, allowed_paths, blocked_paths, root_path, app_kwargs, state_session_capacity, share_server_address, share_server_protocol, auth_dependency, max_file_size, enable_monitoring, strict_cors, node_server_name, node_port, ssr_mode, _frontend)\u001b[0m\n\u001b[1;32m 2507\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[1;32m 2508\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mgradio\u001b[39;00m \u001b[39mimport\u001b[39;00m http_server\n\u001b[1;32m 2510\u001b[0m (\n\u001b[1;32m 2511\u001b[0m server_name,\n\u001b[1;32m 2512\u001b[0m server_port,\n\u001b[1;32m 2513\u001b[0m local_url,\n\u001b[1;32m 2514\u001b[0m server,\n\u001b[0;32m-> 2515\u001b[0m ) \u001b[39m=\u001b[39m http_server\u001b[39m.\u001b[39;49mstart_server(\n\u001b[1;32m 2516\u001b[0m app\u001b[39m=\u001b[39;49m\u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mapp,\n\u001b[1;32m 2517\u001b[0m server_name\u001b[39m=\u001b[39;49mserver_name,\n\u001b[1;32m 2518\u001b[0m server_port\u001b[39m=\u001b[39;49mserver_port,\n\u001b[1;32m 2519\u001b[0m ssl_keyfile\u001b[39m=\u001b[39;49mssl_keyfile,\n\u001b[1;32m 2520\u001b[0m ssl_certfile\u001b[39m=\u001b[39;49mssl_certfile,\n\u001b[1;32m 2521\u001b[0m ssl_keyfile_password\u001b[39m=\u001b[39;49mssl_keyfile_password,\n\u001b[1;32m 2522\u001b[0m )\n\u001b[1;32m 2523\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mserver_name \u001b[39m=\u001b[39m server_name\n\u001b[1;32m 2524\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mlocal_url \u001b[39m=\u001b[39m local_url\n",
"File \u001b[0;32m/usr/local/lib/python3.10/site-packages/gradio/http_server.py:156\u001b[0m, in \u001b[0;36mstart_server\u001b[0;34m(app, server_name, server_port, ssl_keyfile, ssl_certfile, ssl_keyfile_password)\u001b[0m\n\u001b[1;32m 154\u001b[0m \u001b[39mpass\u001b[39;00m\n\u001b[1;32m 155\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[0;32m--> 156\u001b[0m \u001b[39mraise\u001b[39;00m \u001b[39mOSError\u001b[39;00m(\n\u001b[1;32m 157\u001b[0m \u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mCannot find empty port in range: \u001b[39m\u001b[39m{\u001b[39;00m\u001b[39mmin\u001b[39m(server_ports)\u001b[39m}\u001b[39;00m\u001b[39m-\u001b[39m\u001b[39m{\u001b[39;00m\u001b[39mmax\u001b[39m(server_ports)\u001b[39m}\u001b[39;00m\u001b[39m. You can specify a different port by setting the GRADIO_SERVER_PORT environment variable or passing the `server_port` parameter to `launch()`.\u001b[39m\u001b[39m\"\u001b[39m\n\u001b[1;32m 158\u001b[0m )\n\u001b[1;32m 160\u001b[0m \u001b[39mif\u001b[39;00m ssl_keyfile \u001b[39mis\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[1;32m 161\u001b[0m path_to_local_server \u001b[39m=\u001b[39m \u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mhttps://\u001b[39m\u001b[39m{\u001b[39;00murl_host_name\u001b[39m}\u001b[39;00m\u001b[39m:\u001b[39m\u001b[39m{\u001b[39;00mport\u001b[39m}\u001b[39;00m\u001b[39m/\u001b[39m\u001b[39m\"\u001b[39m\n",
"\u001b[0;31mOSError\u001b[0m: Cannot find empty port in range: 8083-8083. You can specify a different port by setting the GRADIO_SERVER_PORT environment variable or passing the `server_port` parameter to `launch()`."
]
}
],
"source": [
"import gradio as gr\n",
"import os\n",
"\n",
"# Thiết lập cổng cho Gradio\n",
"os.environ[\"GRADIO_SERVER_PORT\"] = \"8080\"\n",
"\n",
"def greet(name, intensity):\n",
" return \"Hello, \" + name + \"!\" * int(intensity)\n",
"\n",
"demo = gr.Interface(\n",
" fn=greet,\n",
" inputs=[\"text\", \"slider\"],\n",
" outputs=[\"text\"],\n",
")\n",
"\n",
"# Chạy Gradio trên cổng 8080\n",
"demo.share = True\n",
"demo.launch(server_port=8083,share=True)\n"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"ename": "ModuleNotFoundError",
"evalue": "No module named 'torchvision'",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)",
"\u001b[1;32m/home/user/app/data.ipynb Cell 5\u001b[0m line \u001b[0;36m3\n\u001b[1;32m 1\u001b[0m \u001b[39mimport\u001b[39;00m \u001b[39mgradio\u001b[39;00m \u001b[39mas\u001b[39;00m \u001b[39mgr\u001b[39;00m\n\u001b[1;32m 2\u001b[0m \u001b[39mimport\u001b[39;00m \u001b[39mtorch\u001b[39;00m\n\u001b[0;32m----> 3\u001b[0m \u001b[39mimport\u001b[39;00m \u001b[39mtorchvision\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mmodels\u001b[39;00m \u001b[39mas\u001b[39;00m \u001b[39mmodels\u001b[39;00m\n\u001b[1;32m 5\u001b[0m \u001b[39m# Kiểm tra xem GPU có sẵn không\u001b[39;00m\n\u001b[1;32m 6\u001b[0m device \u001b[39m=\u001b[39m torch\u001b[39m.\u001b[39mdevice(\u001b[39m\"\u001b[39m\u001b[39mcuda\u001b[39m\u001b[39m\"\u001b[39m \u001b[39mif\u001b[39;00m torch\u001b[39m.\u001b[39mcuda\u001b[39m.\u001b[39mis_available() \u001b[39melse\u001b[39;00m \u001b[39m\"\u001b[39m\u001b[39mcpu\u001b[39m\u001b[39m\"\u001b[39m)\n",
"\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'torchvision'"
]
}
],
"source": [
"import gradio as gr\n",
"import torch\n",
"import torchvision.models as models\n",
"\n",
"# Kiểm tra xem GPU có sẵn không\n",
"device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n",
"\n",
"# Tải mô hình và chuyển sang GPU nếu có\n",
"model = models.resnet18(pretrained=True).to(device)\n",
"\n",
"# Hàm sử dụng GPU\n",
"def classify_image(image):\n",
" # Chuyển ảnh vào tensor và sử dụng GPU nếu có\n",
" image = image.to(device)\n",
" \n",
" # Dự đoán với mô hình\n",
" model.eval()\n",
" with torch.no_grad():\n",
" output = model(image)\n",
" \n",
" # Chuyển kết quả về CPU để dễ dàng hiển thị\n",
" output = output.cpu().numpy()\n",
" return output\n",
"\n",
"# Tạo giao diện Gradio\n",
"demo = gr.Interface(fn=classify_image, inputs=gr.inputs.Image(), outputs=\"label\")\n",
"\n",
"# Chạy ứng dụng Gradio\n",
"demo.launch(server_port=8086)\n"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [],
"source": [
"device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"device(type='cpu')"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"device"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"False"
]
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"torch.cuda.is_available() "
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n",
"Collecting diffusers\n",
" Downloading diffusers-0.32.1-py3-none-any.whl (3.2 MB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m3.2/3.2 MB\u001b[0m \u001b[31m62.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0ma \u001b[36m0:00:01\u001b[0m\n",
"\u001b[?25hCollecting safetensors>=0.3.1\n",
" Downloading safetensors-0.4.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (435 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m435.0/435.0 kB\u001b[0m \u001b[31m45.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hRequirement already satisfied: requests in /usr/local/lib/python3.10/site-packages (from diffusers) (2.32.3)\n",
"Requirement already satisfied: numpy in /usr/local/lib/python3.10/site-packages (from diffusers) (2.1.1)\n",
"Collecting regex!=2019.12.17\n",
" Downloading regex-2024.11.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (781 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m781.7/781.7 kB\u001b[0m \u001b[31m196.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hRequirement already satisfied: filelock in /usr/local/lib/python3.10/site-packages (from diffusers) (3.16.1)\n",
"Collecting importlib-metadata\n",
" Downloading importlib_metadata-8.5.0-py3-none-any.whl (26 kB)\n",
"Requirement already satisfied: huggingface-hub>=0.23.2 in /usr/local/lib/python3.10/site-packages (from diffusers) (0.25.1)\n",
"Requirement already satisfied: Pillow in /usr/local/lib/python3.10/site-packages (from diffusers) (11.0.0)\n",
"Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.10/site-packages (from huggingface-hub>=0.23.2->diffusers) (6.0.2)\n",
"Requirement already satisfied: fsspec>=2023.5.0 in /usr/local/lib/python3.10/site-packages (from huggingface-hub>=0.23.2->diffusers) (2024.6.1)\n",
"Requirement already satisfied: packaging>=20.9 in /usr/local/lib/python3.10/site-packages (from huggingface-hub>=0.23.2->diffusers) (24.1)\n",
"Requirement already satisfied: tqdm>=4.42.1 in /usr/local/lib/python3.10/site-packages (from huggingface-hub>=0.23.2->diffusers) (4.66.5)\n",
"Requirement already satisfied: typing-extensions>=3.7.4.3 in /usr/local/lib/python3.10/site-packages (from huggingface-hub>=0.23.2->diffusers) (4.12.2)\n",
"Collecting zipp>=3.20\n",
" Downloading zipp-3.21.0-py3-none-any.whl (9.6 kB)\n",
"Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/site-packages (from requests->diffusers) (2.2.3)\n",
"Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/site-packages (from requests->diffusers) (2024.8.30)\n",
"Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/site-packages (from requests->diffusers) (3.3.2)\n",
"Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/site-packages (from requests->diffusers) (3.10)\n",
"Installing collected packages: zipp, safetensors, regex, importlib-metadata, diffusers\n",
"Successfully installed diffusers-0.32.1 importlib-metadata-8.5.0 regex-2024.11.6 safetensors-0.4.5 zipp-3.21.0\n",
"\n",
"\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip available: \u001b[0m\u001b[31;49m22.3.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.3.1\u001b[0m\n",
"\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n",
"Note: you may need to restart the kernel to use updated packages.\n"
]
}
],
"source": [
"pip install diffusers"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n",
"Requirement already satisfied: accelerate in /usr/local/lib/python3.10/site-packages (1.2.1)\n",
"Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/site-packages (from accelerate) (24.1)\n",
"Requirement already satisfied: pyyaml in /usr/local/lib/python3.10/site-packages (from accelerate) (6.0.2)\n",
"Requirement already satisfied: psutil in /usr/local/lib/python3.10/site-packages (from accelerate) (5.9.8)\n",
"Requirement already satisfied: huggingface-hub>=0.21.0 in /usr/local/lib/python3.10/site-packages (from accelerate) (0.25.1)\n",
"Requirement already satisfied: safetensors>=0.4.3 in /usr/local/lib/python3.10/site-packages (from accelerate) (0.4.5)\n",
"Requirement already satisfied: numpy<3.0.0,>=1.17 in /usr/local/lib/python3.10/site-packages (from accelerate) (2.1.1)\n",
"Requirement already satisfied: torch>=1.10.0 in /usr/local/lib/python3.10/site-packages (from accelerate) (2.4.0)\n",
"Requirement already satisfied: fsspec>=2023.5.0 in /usr/local/lib/python3.10/site-packages (from huggingface-hub>=0.21.0->accelerate) (2024.6.1)\n",
"Requirement already satisfied: tqdm>=4.42.1 in /usr/local/lib/python3.10/site-packages (from huggingface-hub>=0.21.0->accelerate) (4.66.5)\n",
"Requirement already satisfied: filelock in /usr/local/lib/python3.10/site-packages (from huggingface-hub>=0.21.0->accelerate) (3.16.1)\n",
"Requirement already satisfied: requests in /usr/local/lib/python3.10/site-packages (from huggingface-hub>=0.21.0->accelerate) (2.32.3)\n",
"Requirement already satisfied: typing-extensions>=3.7.4.3 in /usr/local/lib/python3.10/site-packages (from huggingface-hub>=0.21.0->accelerate) (4.12.2)\n",
"Requirement already satisfied: nvidia-cusolver-cu12==11.4.5.107 in /usr/local/lib/python3.10/site-packages (from torch>=1.10.0->accelerate) (11.4.5.107)\n",
"Requirement already satisfied: jinja2 in /usr/local/lib/python3.10/site-packages (from torch>=1.10.0->accelerate) (3.1.4)\n",
"Requirement already satisfied: nvidia-cublas-cu12==12.1.3.1 in /usr/local/lib/python3.10/site-packages (from torch>=1.10.0->accelerate) (12.1.3.1)\n",
"Requirement already satisfied: nvidia-cuda-cupti-cu12==12.1.105 in /usr/local/lib/python3.10/site-packages (from torch>=1.10.0->accelerate) (12.1.105)\n",
"Requirement already satisfied: nvidia-cudnn-cu12==9.1.0.70 in /usr/local/lib/python3.10/site-packages (from torch>=1.10.0->accelerate) (9.1.0.70)\n",
"Requirement already satisfied: nvidia-nccl-cu12==2.20.5 in /usr/local/lib/python3.10/site-packages (from torch>=1.10.0->accelerate) (2.20.5)\n",
"Requirement already satisfied: nvidia-nvtx-cu12==12.1.105 in /usr/local/lib/python3.10/site-packages (from torch>=1.10.0->accelerate) (12.1.105)\n",
"Requirement already satisfied: networkx in /usr/local/lib/python3.10/site-packages (from torch>=1.10.0->accelerate) (3.3)\n",
"Requirement already satisfied: nvidia-cusparse-cu12==12.1.0.106 in /usr/local/lib/python3.10/site-packages (from torch>=1.10.0->accelerate) (12.1.0.106)\n",
"Requirement already satisfied: nvidia-cufft-cu12==11.0.2.54 in /usr/local/lib/python3.10/site-packages (from torch>=1.10.0->accelerate) (11.0.2.54)\n",
"Requirement already satisfied: nvidia-cuda-runtime-cu12==12.1.105 in /usr/local/lib/python3.10/site-packages (from torch>=1.10.0->accelerate) (12.1.105)\n",
"Requirement already satisfied: sympy in /usr/local/lib/python3.10/site-packages (from torch>=1.10.0->accelerate) (1.13.3)\n",
"Requirement already satisfied: nvidia-cuda-nvrtc-cu12==12.1.105 in /usr/local/lib/python3.10/site-packages (from torch>=1.10.0->accelerate) (12.1.105)\n",
"Requirement already satisfied: nvidia-curand-cu12==10.3.2.106 in /usr/local/lib/python3.10/site-packages (from torch>=1.10.0->accelerate) (10.3.2.106)\n",
"Requirement already satisfied: triton==3.0.0 in /usr/local/lib/python3.10/site-packages (from torch>=1.10.0->accelerate) (3.0.0)\n",
"Requirement already satisfied: nvidia-nvjitlink-cu12 in /usr/local/lib/python3.10/site-packages (from nvidia-cusolver-cu12==11.4.5.107->torch>=1.10.0->accelerate) (12.6.68)\n",
"Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/site-packages (from jinja2->torch>=1.10.0->accelerate) (2.1.5)\n",
"Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/site-packages (from requests->huggingface-hub>=0.21.0->accelerate) (3.3.2)\n",
"Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/site-packages (from requests->huggingface-hub>=0.21.0->accelerate) (3.10)\n",
"Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/site-packages (from requests->huggingface-hub>=0.21.0->accelerate) (2024.8.30)\n",
"Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/site-packages (from requests->huggingface-hub>=0.21.0->accelerate) (2.2.3)\n",
"Requirement already satisfied: mpmath<1.4,>=1.1.0 in /usr/local/lib/python3.10/site-packages (from sympy->torch>=1.10.0->accelerate) (1.3.0)\n",
"\n",
"\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip available: \u001b[0m\u001b[31;49m22.3.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.3.1\u001b[0m\n",
"\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n",
"Note: you may need to restart the kernel to use updated packages.\n"
]
}
],
"source": [
"pip install accelerate"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n",
"Collecting accelerate\n",
" Downloading accelerate-1.2.1-py3-none-any.whl (336 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m336.4/336.4 kB\u001b[0m \u001b[31m22.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hRequirement already satisfied: torch>=1.10.0 in /usr/local/lib/python3.10/site-packages (from accelerate) (2.4.0)\n",
"Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/site-packages (from accelerate) (24.1)\n",
"Requirement already satisfied: pyyaml in /usr/local/lib/python3.10/site-packages (from accelerate) (6.0.2)\n",
"Requirement already satisfied: psutil in /usr/local/lib/python3.10/site-packages (from accelerate) (5.9.8)\n",
"Requirement already satisfied: numpy<3.0.0,>=1.17 in /usr/local/lib/python3.10/site-packages (from accelerate) (2.1.1)\n",
"Requirement already satisfied: safetensors>=0.4.3 in /usr/local/lib/python3.10/site-packages (from accelerate) (0.4.5)\n",
"Requirement already satisfied: huggingface-hub>=0.21.0 in /usr/local/lib/python3.10/site-packages (from accelerate) (0.25.1)\n",
"Requirement already satisfied: filelock in /usr/local/lib/python3.10/site-packages (from huggingface-hub>=0.21.0->accelerate) (3.16.1)\n",
"Requirement already satisfied: typing-extensions>=3.7.4.3 in /usr/local/lib/python3.10/site-packages (from huggingface-hub>=0.21.0->accelerate) (4.12.2)\n",
"Requirement already satisfied: tqdm>=4.42.1 in /usr/local/lib/python3.10/site-packages (from huggingface-hub>=0.21.0->accelerate) (4.66.5)\n",
"Requirement already satisfied: fsspec>=2023.5.0 in /usr/local/lib/python3.10/site-packages (from huggingface-hub>=0.21.0->accelerate) (2024.6.1)\n",
"Requirement already satisfied: requests in /usr/local/lib/python3.10/site-packages (from huggingface-hub>=0.21.0->accelerate) (2.32.3)\n",
"Requirement already satisfied: nvidia-cudnn-cu12==9.1.0.70 in /usr/local/lib/python3.10/site-packages (from torch>=1.10.0->accelerate) (9.1.0.70)\n",
"Requirement already satisfied: nvidia-cuda-nvrtc-cu12==12.1.105 in /usr/local/lib/python3.10/site-packages (from torch>=1.10.0->accelerate) (12.1.105)\n",
"Requirement already satisfied: nvidia-cufft-cu12==11.0.2.54 in /usr/local/lib/python3.10/site-packages (from torch>=1.10.0->accelerate) (11.0.2.54)\n",
"Requirement already satisfied: nvidia-cublas-cu12==12.1.3.1 in /usr/local/lib/python3.10/site-packages (from torch>=1.10.0->accelerate) (12.1.3.1)\n",
"Requirement already satisfied: triton==3.0.0 in /usr/local/lib/python3.10/site-packages (from torch>=1.10.0->accelerate) (3.0.0)\n",
"Requirement already satisfied: nvidia-nccl-cu12==2.20.5 in /usr/local/lib/python3.10/site-packages (from torch>=1.10.0->accelerate) (2.20.5)\n",
"Requirement already satisfied: networkx in /usr/local/lib/python3.10/site-packages (from torch>=1.10.0->accelerate) (3.3)\n",
"Requirement already satisfied: nvidia-curand-cu12==10.3.2.106 in /usr/local/lib/python3.10/site-packages (from torch>=1.10.0->accelerate) (10.3.2.106)\n",
"Requirement already satisfied: jinja2 in /usr/local/lib/python3.10/site-packages (from torch>=1.10.0->accelerate) (3.1.4)\n",
"Requirement already satisfied: nvidia-cuda-runtime-cu12==12.1.105 in /usr/local/lib/python3.10/site-packages (from torch>=1.10.0->accelerate) (12.1.105)\n",
"Requirement already satisfied: nvidia-nvtx-cu12==12.1.105 in /usr/local/lib/python3.10/site-packages (from torch>=1.10.0->accelerate) (12.1.105)\n",
"Requirement already satisfied: nvidia-cuda-cupti-cu12==12.1.105 in /usr/local/lib/python3.10/site-packages (from torch>=1.10.0->accelerate) (12.1.105)\n",
"Requirement already satisfied: nvidia-cusparse-cu12==12.1.0.106 in /usr/local/lib/python3.10/site-packages (from torch>=1.10.0->accelerate) (12.1.0.106)\n",
"Requirement already satisfied: nvidia-cusolver-cu12==11.4.5.107 in /usr/local/lib/python3.10/site-packages (from torch>=1.10.0->accelerate) (11.4.5.107)\n",
"Requirement already satisfied: sympy in /usr/local/lib/python3.10/site-packages (from torch>=1.10.0->accelerate) (1.13.3)\n",
"Requirement already satisfied: nvidia-nvjitlink-cu12 in /usr/local/lib/python3.10/site-packages (from nvidia-cusolver-cu12==11.4.5.107->torch>=1.10.0->accelerate) (12.6.68)\n",
"Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/site-packages (from jinja2->torch>=1.10.0->accelerate) (2.1.5)\n",
"Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/site-packages (from requests->huggingface-hub>=0.21.0->accelerate) (2.2.3)\n",
"Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/site-packages (from requests->huggingface-hub>=0.21.0->accelerate) (3.10)\n",
"Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/site-packages (from requests->huggingface-hub>=0.21.0->accelerate) (2024.8.30)\n",
"Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/site-packages (from requests->huggingface-hub>=0.21.0->accelerate) (3.3.2)\n",
"Requirement already satisfied: mpmath<1.4,>=1.1.0 in /usr/local/lib/python3.10/site-packages (from sympy->torch>=1.10.0->accelerate) (1.3.0)\n",
"Installing collected packages: accelerate\n",
"Successfully installed accelerate-1.2.1\n",
"\n",
"\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip available: \u001b[0m\u001b[31;49m22.3.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.3.1\u001b[0m\n",
"\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n",
"Note: you may need to restart the kernel to use updated packages.\n"
]
}
],
"source": [
"pip install accelerate"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"ename": "EntryNotFoundError",
"evalue": "404 Client Error. (Request ID: Root=1-676e30f5-6503b00035cc3c54406f318b;5089af88-596d-48a4-9917-100d2a940357)\n\nEntry Not Found for url: https://huggingface.co/CompVis/stable-diffusion-v-1-4-original/resolve/main/model_index.json.",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mHTTPError\u001b[0m Traceback (most recent call last)",
"File \u001b[0;32m/usr/local/lib/python3.10/site-packages/huggingface_hub/utils/_http.py:406\u001b[0m, in \u001b[0;36mhf_raise_for_status\u001b[0;34m(response, endpoint_name)\u001b[0m\n\u001b[1;32m 405\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[0;32m--> 406\u001b[0m response\u001b[39m.\u001b[39;49mraise_for_status()\n\u001b[1;32m 407\u001b[0m \u001b[39mexcept\u001b[39;00m HTTPError \u001b[39mas\u001b[39;00m e:\n",
"File \u001b[0;32m/usr/local/lib/python3.10/site-packages/requests/models.py:1024\u001b[0m, in \u001b[0;36mResponse.raise_for_status\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 1023\u001b[0m \u001b[39mif\u001b[39;00m http_error_msg:\n\u001b[0;32m-> 1024\u001b[0m \u001b[39mraise\u001b[39;00m HTTPError(http_error_msg, response\u001b[39m=\u001b[39m\u001b[39mself\u001b[39m)\n",
"\u001b[0;31mHTTPError\u001b[0m: 404 Client Error: Not Found for url: https://huggingface.co/CompVis/stable-diffusion-v-1-4-original/resolve/main/model_index.json",
"\nThe above exception was the direct cause of the following exception:\n",
"\u001b[0;31mEntryNotFoundError\u001b[0m Traceback (most recent call last)",
"\u001b[1;32m/home/user/app/data.ipynb Cell 12\u001b[0m line \u001b[0;36m6\n\u001b[1;32m 3\u001b[0m \u001b[39mfrom\u001b[39;00m \u001b[39mdiffusers\u001b[39;00m \u001b[39mimport\u001b[39;00m DiffusionPipeline\n\u001b[1;32m 5\u001b[0m \u001b[39m# Tải mô hình Diffusion, thay thế 'your_model_name_or_path' bằng tên hoặc đường dẫn mô hình của bạn\u001b[39;00m\n\u001b[0;32m----> 6\u001b[0m pipe \u001b[39m=\u001b[39m DiffusionPipeline\u001b[39m.\u001b[39;49mfrom_pretrained(\u001b[39m\"\u001b[39;49m\u001b[39mCompVis/stable-diffusion-v-1-4-original\u001b[39;49m\u001b[39m\"\u001b[39;49m)\n\u001b[1;32m 7\u001b[0m pipe\u001b[39m.\u001b[39mto(\u001b[39m'\u001b[39m\u001b[39mcuda\u001b[39m\u001b[39m'\u001b[39m) \u001b[39m# Chuyển mô hình sang GPU nếu có\u001b[39;00m\n\u001b[1;32m 9\u001b[0m \u001b[39m# Hàm để sinh ảnh từ prompt\u001b[39;00m\n",
"File \u001b[0;32m/usr/local/lib/python3.10/site-packages/huggingface_hub/utils/_validators.py:114\u001b[0m, in \u001b[0;36mvalidate_hf_hub_args.._inner_fn\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 111\u001b[0m \u001b[39mif\u001b[39;00m check_use_auth_token:\n\u001b[1;32m 112\u001b[0m kwargs \u001b[39m=\u001b[39m smoothly_deprecate_use_auth_token(fn_name\u001b[39m=\u001b[39mfn\u001b[39m.\u001b[39m\u001b[39m__name__\u001b[39m, has_token\u001b[39m=\u001b[39mhas_token, kwargs\u001b[39m=\u001b[39mkwargs)\n\u001b[0;32m--> 114\u001b[0m \u001b[39mreturn\u001b[39;00m fn(\u001b[39m*\u001b[39;49margs, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwargs)\n",
"File \u001b[0;32m/usr/local/lib/python3.10/site-packages/diffusers/pipelines/pipeline_utils.py:732\u001b[0m, in \u001b[0;36mDiffusionPipeline.from_pretrained\u001b[0;34m(cls, pretrained_model_name_or_path, **kwargs)\u001b[0m\n\u001b[1;32m 727\u001b[0m \u001b[39mif\u001b[39;00m pretrained_model_name_or_path\u001b[39m.\u001b[39mcount(\u001b[39m\"\u001b[39m\u001b[39m/\u001b[39m\u001b[39m\"\u001b[39m) \u001b[39m>\u001b[39m \u001b[39m1\u001b[39m:\n\u001b[1;32m 728\u001b[0m \u001b[39mraise\u001b[39;00m \u001b[39mValueError\u001b[39;00m(\n\u001b[1;32m 729\u001b[0m \u001b[39mf\u001b[39m\u001b[39m'\u001b[39m\u001b[39mThe provided pretrained_model_name_or_path \u001b[39m\u001b[39m\"\u001b[39m\u001b[39m{\u001b[39;00mpretrained_model_name_or_path\u001b[39m}\u001b[39;00m\u001b[39m\"\u001b[39m\u001b[39m'\u001b[39m\n\u001b[1;32m 730\u001b[0m \u001b[39m\"\u001b[39m\u001b[39m is neither a valid local path nor a valid repo id. Please check the parameter.\u001b[39m\u001b[39m\"\u001b[39m\n\u001b[1;32m 731\u001b[0m )\n\u001b[0;32m--> 732\u001b[0m cached_folder \u001b[39m=\u001b[39m \u001b[39mcls\u001b[39;49m\u001b[39m.\u001b[39;49mdownload(\n\u001b[1;32m 733\u001b[0m pretrained_model_name_or_path,\n\u001b[1;32m 734\u001b[0m cache_dir\u001b[39m=\u001b[39;49mcache_dir,\n\u001b[1;32m 735\u001b[0m force_download\u001b[39m=\u001b[39;49mforce_download,\n\u001b[1;32m 736\u001b[0m proxies\u001b[39m=\u001b[39;49mproxies,\n\u001b[1;32m 737\u001b[0m local_files_only\u001b[39m=\u001b[39;49mlocal_files_only,\n\u001b[1;32m 738\u001b[0m token\u001b[39m=\u001b[39;49mtoken,\n\u001b[1;32m 739\u001b[0m revision\u001b[39m=\u001b[39;49mrevision,\n\u001b[1;32m 740\u001b[0m from_flax\u001b[39m=\u001b[39;49mfrom_flax,\n\u001b[1;32m 741\u001b[0m use_safetensors\u001b[39m=\u001b[39;49muse_safetensors,\n\u001b[1;32m 742\u001b[0m use_onnx\u001b[39m=\u001b[39;49muse_onnx,\n\u001b[1;32m 743\u001b[0m custom_pipeline\u001b[39m=\u001b[39;49mcustom_pipeline,\n\u001b[1;32m 744\u001b[0m custom_revision\u001b[39m=\u001b[39;49mcustom_revision,\n\u001b[1;32m 745\u001b[0m variant\u001b[39m=\u001b[39;49mvariant,\n\u001b[1;32m 746\u001b[0m load_connected_pipeline\u001b[39m=\u001b[39;49mload_connected_pipeline,\n\u001b[1;32m 747\u001b[0m \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwargs,\n\u001b[1;32m 748\u001b[0m )\n\u001b[1;32m 749\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[1;32m 750\u001b[0m cached_folder \u001b[39m=\u001b[39m pretrained_model_name_or_path\n",
"File \u001b[0;32m/usr/local/lib/python3.10/site-packages/huggingface_hub/utils/_validators.py:114\u001b[0m, in \u001b[0;36mvalidate_hf_hub_args.._inner_fn\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 111\u001b[0m \u001b[39mif\u001b[39;00m check_use_auth_token:\n\u001b[1;32m 112\u001b[0m kwargs \u001b[39m=\u001b[39m smoothly_deprecate_use_auth_token(fn_name\u001b[39m=\u001b[39mfn\u001b[39m.\u001b[39m\u001b[39m__name__\u001b[39m, has_token\u001b[39m=\u001b[39mhas_token, kwargs\u001b[39m=\u001b[39mkwargs)\n\u001b[0;32m--> 114\u001b[0m \u001b[39mreturn\u001b[39;00m fn(\u001b[39m*\u001b[39;49margs, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwargs)\n",
"File \u001b[0;32m/usr/local/lib/python3.10/site-packages/diffusers/pipelines/pipeline_utils.py:1333\u001b[0m, in \u001b[0;36mDiffusionPipeline.download\u001b[0;34m(cls, pretrained_model_name, **kwargs)\u001b[0m\n\u001b[1;32m 1329\u001b[0m logger\u001b[39m.\u001b[39mwarning(warn_msg)\n\u001b[1;32m 1331\u001b[0m model_filenames, variant_filenames \u001b[39m=\u001b[39m variant_compatible_siblings(filenames, variant\u001b[39m=\u001b[39mvariant)\n\u001b[0;32m-> 1333\u001b[0m config_file \u001b[39m=\u001b[39m hf_hub_download(\n\u001b[1;32m 1334\u001b[0m pretrained_model_name,\n\u001b[1;32m 1335\u001b[0m \u001b[39mcls\u001b[39;49m\u001b[39m.\u001b[39;49mconfig_name,\n\u001b[1;32m 1336\u001b[0m cache_dir\u001b[39m=\u001b[39;49mcache_dir,\n\u001b[1;32m 1337\u001b[0m revision\u001b[39m=\u001b[39;49mrevision,\n\u001b[1;32m 1338\u001b[0m proxies\u001b[39m=\u001b[39;49mproxies,\n\u001b[1;32m 1339\u001b[0m force_download\u001b[39m=\u001b[39;49mforce_download,\n\u001b[1;32m 1340\u001b[0m token\u001b[39m=\u001b[39;49mtoken,\n\u001b[1;32m 1341\u001b[0m )\n\u001b[1;32m 1343\u001b[0m config_dict \u001b[39m=\u001b[39m \u001b[39mcls\u001b[39m\u001b[39m.\u001b[39m_dict_from_json_file(config_file)\n\u001b[1;32m 1344\u001b[0m ignore_filenames \u001b[39m=\u001b[39m config_dict\u001b[39m.\u001b[39mpop(\u001b[39m\"\u001b[39m\u001b[39m_ignore_files\u001b[39m\u001b[39m\"\u001b[39m, [])\n",
"File \u001b[0;32m/usr/local/lib/python3.10/site-packages/huggingface_hub/utils/_deprecation.py:101\u001b[0m, in \u001b[0;36m_deprecate_arguments.._inner_deprecate_positional_args..inner_f\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 99\u001b[0m message \u001b[39m+\u001b[39m\u001b[39m=\u001b[39m \u001b[39m\"\u001b[39m\u001b[39m\\n\u001b[39;00m\u001b[39m\\n\u001b[39;00m\u001b[39m\"\u001b[39m \u001b[39m+\u001b[39m custom_message\n\u001b[1;32m 100\u001b[0m warnings\u001b[39m.\u001b[39mwarn(message, \u001b[39mFutureWarning\u001b[39;00m)\n\u001b[0;32m--> 101\u001b[0m \u001b[39mreturn\u001b[39;00m f(\u001b[39m*\u001b[39;49margs, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwargs)\n",
"File \u001b[0;32m/usr/local/lib/python3.10/site-packages/huggingface_hub/utils/_validators.py:114\u001b[0m, in \u001b[0;36mvalidate_hf_hub_args.._inner_fn\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 111\u001b[0m \u001b[39mif\u001b[39;00m check_use_auth_token:\n\u001b[1;32m 112\u001b[0m kwargs \u001b[39m=\u001b[39m smoothly_deprecate_use_auth_token(fn_name\u001b[39m=\u001b[39mfn\u001b[39m.\u001b[39m\u001b[39m__name__\u001b[39m, has_token\u001b[39m=\u001b[39mhas_token, kwargs\u001b[39m=\u001b[39mkwargs)\n\u001b[0;32m--> 114\u001b[0m \u001b[39mreturn\u001b[39;00m fn(\u001b[39m*\u001b[39;49margs, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwargs)\n",
"File \u001b[0;32m/usr/local/lib/python3.10/site-packages/huggingface_hub/file_download.py:1232\u001b[0m, in \u001b[0;36mhf_hub_download\u001b[0;34m(repo_id, filename, subfolder, repo_type, revision, library_name, library_version, cache_dir, local_dir, user_agent, force_download, proxies, etag_timeout, token, local_files_only, headers, endpoint, legacy_cache_layout, resume_download, force_filename, local_dir_use_symlinks)\u001b[0m\n\u001b[1;32m 1212\u001b[0m \u001b[39mreturn\u001b[39;00m _hf_hub_download_to_local_dir(\n\u001b[1;32m 1213\u001b[0m \u001b[39m# Destination\u001b[39;00m\n\u001b[1;32m 1214\u001b[0m local_dir\u001b[39m=\u001b[39mlocal_dir,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 1229\u001b[0m local_files_only\u001b[39m=\u001b[39mlocal_files_only,\n\u001b[1;32m 1230\u001b[0m )\n\u001b[1;32m 1231\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[0;32m-> 1232\u001b[0m \u001b[39mreturn\u001b[39;00m _hf_hub_download_to_cache_dir(\n\u001b[1;32m 1233\u001b[0m \u001b[39m# Destination\u001b[39;49;00m\n\u001b[1;32m 1234\u001b[0m cache_dir\u001b[39m=\u001b[39;49mcache_dir,\n\u001b[1;32m 1235\u001b[0m \u001b[39m# File info\u001b[39;49;00m\n\u001b[1;32m 1236\u001b[0m repo_id\u001b[39m=\u001b[39;49mrepo_id,\n\u001b[1;32m 1237\u001b[0m filename\u001b[39m=\u001b[39;49mfilename,\n\u001b[1;32m 1238\u001b[0m repo_type\u001b[39m=\u001b[39;49mrepo_type,\n\u001b[1;32m 1239\u001b[0m revision\u001b[39m=\u001b[39;49mrevision,\n\u001b[1;32m 1240\u001b[0m \u001b[39m# HTTP info\u001b[39;49;00m\n\u001b[1;32m 1241\u001b[0m endpoint\u001b[39m=\u001b[39;49mendpoint,\n\u001b[1;32m 1242\u001b[0m etag_timeout\u001b[39m=\u001b[39;49metag_timeout,\n\u001b[1;32m 1243\u001b[0m headers\u001b[39m=\u001b[39;49mheaders,\n\u001b[1;32m 1244\u001b[0m proxies\u001b[39m=\u001b[39;49mproxies,\n\u001b[1;32m 1245\u001b[0m token\u001b[39m=\u001b[39;49mtoken,\n\u001b[1;32m 1246\u001b[0m \u001b[39m# Additional options\u001b[39;49;00m\n\u001b[1;32m 1247\u001b[0m local_files_only\u001b[39m=\u001b[39;49mlocal_files_only,\n\u001b[1;32m 1248\u001b[0m force_download\u001b[39m=\u001b[39;49mforce_download,\n\u001b[1;32m 1249\u001b[0m )\n",
"File \u001b[0;32m/usr/local/lib/python3.10/site-packages/huggingface_hub/file_download.py:1295\u001b[0m, in \u001b[0;36m_hf_hub_download_to_cache_dir\u001b[0;34m(cache_dir, repo_id, filename, repo_type, revision, endpoint, etag_timeout, headers, proxies, token, local_files_only, force_download)\u001b[0m\n\u001b[1;32m 1291\u001b[0m \u001b[39mreturn\u001b[39;00m pointer_path\n\u001b[1;32m 1293\u001b[0m \u001b[39m# Try to get metadata (etag, commit_hash, url, size) from the server.\u001b[39;00m\n\u001b[1;32m 1294\u001b[0m \u001b[39m# If we can't, a HEAD request error is returned.\u001b[39;00m\n\u001b[0;32m-> 1295\u001b[0m (url_to_download, etag, commit_hash, expected_size, head_call_error) \u001b[39m=\u001b[39m _get_metadata_or_catch_error(\n\u001b[1;32m 1296\u001b[0m repo_id\u001b[39m=\u001b[39;49mrepo_id,\n\u001b[1;32m 1297\u001b[0m filename\u001b[39m=\u001b[39;49mfilename,\n\u001b[1;32m 1298\u001b[0m repo_type\u001b[39m=\u001b[39;49mrepo_type,\n\u001b[1;32m 1299\u001b[0m revision\u001b[39m=\u001b[39;49mrevision,\n\u001b[1;32m 1300\u001b[0m endpoint\u001b[39m=\u001b[39;49mendpoint,\n\u001b[1;32m 1301\u001b[0m proxies\u001b[39m=\u001b[39;49mproxies,\n\u001b[1;32m 1302\u001b[0m etag_timeout\u001b[39m=\u001b[39;49metag_timeout,\n\u001b[1;32m 1303\u001b[0m headers\u001b[39m=\u001b[39;49mheaders,\n\u001b[1;32m 1304\u001b[0m token\u001b[39m=\u001b[39;49mtoken,\n\u001b[1;32m 1305\u001b[0m local_files_only\u001b[39m=\u001b[39;49mlocal_files_only,\n\u001b[1;32m 1306\u001b[0m storage_folder\u001b[39m=\u001b[39;49mstorage_folder,\n\u001b[1;32m 1307\u001b[0m relative_filename\u001b[39m=\u001b[39;49mrelative_filename,\n\u001b[1;32m 1308\u001b[0m )\n\u001b[1;32m 1310\u001b[0m \u001b[39m# etag can be None for several reasons:\u001b[39;00m\n\u001b[1;32m 1311\u001b[0m \u001b[39m# 1. we passed local_files_only.\u001b[39;00m\n\u001b[1;32m 1312\u001b[0m \u001b[39m# 2. we don't have a connection\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 1318\u001b[0m \u001b[39m# If the specified revision is a commit hash, look inside \"snapshots\".\u001b[39;00m\n\u001b[1;32m 1319\u001b[0m \u001b[39m# If the specified revision is a branch or tag, look inside \"refs\".\u001b[39;00m\n\u001b[1;32m 1320\u001b[0m \u001b[39mif\u001b[39;00m head_call_error \u001b[39mis\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[1;32m 1321\u001b[0m \u001b[39m# Couldn't make a HEAD call => let's try to find a local file\u001b[39;00m\n",
"File \u001b[0;32m/usr/local/lib/python3.10/site-packages/huggingface_hub/file_download.py:1746\u001b[0m, in \u001b[0;36m_get_metadata_or_catch_error\u001b[0;34m(repo_id, filename, repo_type, revision, endpoint, proxies, etag_timeout, headers, token, local_files_only, relative_filename, storage_folder)\u001b[0m\n\u001b[1;32m 1744\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[1;32m 1745\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[0;32m-> 1746\u001b[0m metadata \u001b[39m=\u001b[39m get_hf_file_metadata(\n\u001b[1;32m 1747\u001b[0m url\u001b[39m=\u001b[39;49murl, proxies\u001b[39m=\u001b[39;49mproxies, timeout\u001b[39m=\u001b[39;49metag_timeout, headers\u001b[39m=\u001b[39;49mheaders, token\u001b[39m=\u001b[39;49mtoken\n\u001b[1;32m 1748\u001b[0m )\n\u001b[1;32m 1749\u001b[0m \u001b[39mexcept\u001b[39;00m EntryNotFoundError \u001b[39mas\u001b[39;00m http_error:\n\u001b[1;32m 1750\u001b[0m \u001b[39mif\u001b[39;00m storage_folder \u001b[39mis\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mNone\u001b[39;00m \u001b[39mand\u001b[39;00m relative_filename \u001b[39mis\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[1;32m 1751\u001b[0m \u001b[39m# Cache the non-existence of the file\u001b[39;00m\n",
"File \u001b[0;32m/usr/local/lib/python3.10/site-packages/huggingface_hub/utils/_validators.py:114\u001b[0m, in \u001b[0;36mvalidate_hf_hub_args.._inner_fn\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 111\u001b[0m \u001b[39mif\u001b[39;00m check_use_auth_token:\n\u001b[1;32m 112\u001b[0m kwargs \u001b[39m=\u001b[39m smoothly_deprecate_use_auth_token(fn_name\u001b[39m=\u001b[39mfn\u001b[39m.\u001b[39m\u001b[39m__name__\u001b[39m, has_token\u001b[39m=\u001b[39mhas_token, kwargs\u001b[39m=\u001b[39mkwargs)\n\u001b[0;32m--> 114\u001b[0m \u001b[39mreturn\u001b[39;00m fn(\u001b[39m*\u001b[39;49margs, \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mkwargs)\n",
"File \u001b[0;32m/usr/local/lib/python3.10/site-packages/huggingface_hub/file_download.py:1666\u001b[0m, in \u001b[0;36mget_hf_file_metadata\u001b[0;34m(url, token, proxies, timeout, library_name, library_version, user_agent, headers)\u001b[0m\n\u001b[1;32m 1663\u001b[0m headers[\u001b[39m\"\u001b[39m\u001b[39mAccept-Encoding\u001b[39m\u001b[39m\"\u001b[39m] \u001b[39m=\u001b[39m \u001b[39m\"\u001b[39m\u001b[39midentity\u001b[39m\u001b[39m\"\u001b[39m \u001b[39m# prevent any compression => we want to know the real size of the file\u001b[39;00m\n\u001b[1;32m 1665\u001b[0m \u001b[39m# Retrieve metadata\u001b[39;00m\n\u001b[0;32m-> 1666\u001b[0m r \u001b[39m=\u001b[39m _request_wrapper(\n\u001b[1;32m 1667\u001b[0m method\u001b[39m=\u001b[39;49m\u001b[39m\"\u001b[39;49m\u001b[39mHEAD\u001b[39;49m\u001b[39m\"\u001b[39;49m,\n\u001b[1;32m 1668\u001b[0m url\u001b[39m=\u001b[39;49murl,\n\u001b[1;32m 1669\u001b[0m headers\u001b[39m=\u001b[39;49mheaders,\n\u001b[1;32m 1670\u001b[0m allow_redirects\u001b[39m=\u001b[39;49m\u001b[39mFalse\u001b[39;49;00m,\n\u001b[1;32m 1671\u001b[0m follow_relative_redirects\u001b[39m=\u001b[39;49m\u001b[39mTrue\u001b[39;49;00m,\n\u001b[1;32m 1672\u001b[0m proxies\u001b[39m=\u001b[39;49mproxies,\n\u001b[1;32m 1673\u001b[0m timeout\u001b[39m=\u001b[39;49mtimeout,\n\u001b[1;32m 1674\u001b[0m )\n\u001b[1;32m 1675\u001b[0m hf_raise_for_status(r)\n\u001b[1;32m 1677\u001b[0m \u001b[39m# Return\u001b[39;00m\n",
"File \u001b[0;32m/usr/local/lib/python3.10/site-packages/huggingface_hub/file_download.py:364\u001b[0m, in \u001b[0;36m_request_wrapper\u001b[0;34m(method, url, follow_relative_redirects, **params)\u001b[0m\n\u001b[1;32m 362\u001b[0m \u001b[39m# Recursively follow relative redirects\u001b[39;00m\n\u001b[1;32m 363\u001b[0m \u001b[39mif\u001b[39;00m follow_relative_redirects:\n\u001b[0;32m--> 364\u001b[0m response \u001b[39m=\u001b[39m _request_wrapper(\n\u001b[1;32m 365\u001b[0m method\u001b[39m=\u001b[39;49mmethod,\n\u001b[1;32m 366\u001b[0m url\u001b[39m=\u001b[39;49murl,\n\u001b[1;32m 367\u001b[0m follow_relative_redirects\u001b[39m=\u001b[39;49m\u001b[39mFalse\u001b[39;49;00m,\n\u001b[1;32m 368\u001b[0m \u001b[39m*\u001b[39;49m\u001b[39m*\u001b[39;49mparams,\n\u001b[1;32m 369\u001b[0m )\n\u001b[1;32m 371\u001b[0m \u001b[39m# If redirection, we redirect only relative paths.\u001b[39;00m\n\u001b[1;32m 372\u001b[0m \u001b[39m# This is useful in case of a renamed repository.\u001b[39;00m\n\u001b[1;32m 373\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39m300\u001b[39m \u001b[39m<\u001b[39m\u001b[39m=\u001b[39m response\u001b[39m.\u001b[39mstatus_code \u001b[39m<\u001b[39m\u001b[39m=\u001b[39m \u001b[39m399\u001b[39m:\n",
"File \u001b[0;32m/usr/local/lib/python3.10/site-packages/huggingface_hub/file_download.py:388\u001b[0m, in \u001b[0;36m_request_wrapper\u001b[0;34m(method, url, follow_relative_redirects, **params)\u001b[0m\n\u001b[1;32m 386\u001b[0m \u001b[39m# Perform request and return if status_code is not in the retry list.\u001b[39;00m\n\u001b[1;32m 387\u001b[0m response \u001b[39m=\u001b[39m get_session()\u001b[39m.\u001b[39mrequest(method\u001b[39m=\u001b[39mmethod, url\u001b[39m=\u001b[39murl, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mparams)\n\u001b[0;32m--> 388\u001b[0m hf_raise_for_status(response)\n\u001b[1;32m 389\u001b[0m \u001b[39mreturn\u001b[39;00m response\n",
"File \u001b[0;32m/usr/local/lib/python3.10/site-packages/huggingface_hub/utils/_http.py:417\u001b[0m, in \u001b[0;36mhf_raise_for_status\u001b[0;34m(response, endpoint_name)\u001b[0m\n\u001b[1;32m 415\u001b[0m \u001b[39melif\u001b[39;00m error_code \u001b[39m==\u001b[39m \u001b[39m\"\u001b[39m\u001b[39mEntryNotFound\u001b[39m\u001b[39m\"\u001b[39m:\n\u001b[1;32m 416\u001b[0m message \u001b[39m=\u001b[39m \u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39m{\u001b[39;00mresponse\u001b[39m.\u001b[39mstatus_code\u001b[39m}\u001b[39;00m\u001b[39m Client Error.\u001b[39m\u001b[39m\"\u001b[39m \u001b[39m+\u001b[39m \u001b[39m\"\u001b[39m\u001b[39m\\n\u001b[39;00m\u001b[39m\\n\u001b[39;00m\u001b[39m\"\u001b[39m \u001b[39m+\u001b[39m \u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mEntry Not Found for url: \u001b[39m\u001b[39m{\u001b[39;00mresponse\u001b[39m.\u001b[39murl\u001b[39m}\u001b[39;00m\u001b[39m.\u001b[39m\u001b[39m\"\u001b[39m\n\u001b[0;32m--> 417\u001b[0m \u001b[39mraise\u001b[39;00m _format(EntryNotFoundError, message, response) \u001b[39mfrom\u001b[39;00m \u001b[39me\u001b[39;00m\n\u001b[1;32m 419\u001b[0m \u001b[39melif\u001b[39;00m error_code \u001b[39m==\u001b[39m \u001b[39m\"\u001b[39m\u001b[39mGatedRepo\u001b[39m\u001b[39m\"\u001b[39m:\n\u001b[1;32m 420\u001b[0m message \u001b[39m=\u001b[39m (\n\u001b[1;32m 421\u001b[0m \u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39m{\u001b[39;00mresponse\u001b[39m.\u001b[39mstatus_code\u001b[39m}\u001b[39;00m\u001b[39m Client Error.\u001b[39m\u001b[39m\"\u001b[39m \u001b[39m+\u001b[39m \u001b[39m\"\u001b[39m\u001b[39m\\n\u001b[39;00m\u001b[39m\\n\u001b[39;00m\u001b[39m\"\u001b[39m \u001b[39m+\u001b[39m \u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mCannot access gated repo for url \u001b[39m\u001b[39m{\u001b[39;00mresponse\u001b[39m.\u001b[39murl\u001b[39m}\u001b[39;00m\u001b[39m.\u001b[39m\u001b[39m\"\u001b[39m\n\u001b[1;32m 422\u001b[0m )\n",
"\u001b[0;31mEntryNotFoundError\u001b[0m: 404 Client Error. (Request ID: Root=1-676e30f5-6503b00035cc3c54406f318b;5089af88-596d-48a4-9917-100d2a940357)\n\nEntry Not Found for url: https://huggingface.co/CompVis/stable-diffusion-v-1-4-original/resolve/main/model_index.json."
]
}
],
"source": [
"import tqdm as notebook_tqdm\n",
"import gradio as gr\n",
"from diffusers import DiffusionPipeline\n",
"\n",
"# Tải mô hình Diffusion, thay thế 'your_model_name_or_path' bằng tên hoặc đường dẫn mô hình của bạn\n",
"pipe = DiffusionPipeline.from_pretrained(\"CompVis/stable-diffusion-v-1-4-original\")\n",
"pipe.to('cuda') # Chuyển mô hình sang GPU nếu có\n",
"\n",
"# Hàm để sinh ảnh từ prompt\n",
"def generate(prompt):\n",
" return pipe(prompt).images\n",
"\n",
"# Tạo giao diện Gradio\n",
"gr.Interface(\n",
" fn=generate,\n",
" inputs=gr.Textbox(label=\"Enter your prompt\"), # Nhập mô tả văn bản\n",
" outputs=gr.Gallery(label=\"Generated Images\"), # Hiển thị ảnh được tạo ra\n",
" live=True # Cập nhật ảnh khi nhập vào mà không cần submit\n",
").launch(server_port=9091)\n"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n",
"Requirement already satisfied: tqdm in /usr/local/lib/python3.10/site-packages (4.66.5)\n",
"\n",
"\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip available: \u001b[0m\u001b[31;49m22.3.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.3.1\u001b[0m\n",
"\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n",
"Note: you may need to restart the kernel to use updated packages.\n"
]
}
],
"source": [
"pip install tqdm "
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Collecting nvidia-pyindex\n",
" Downloading nvidia-pyindex-1.0.9.tar.gz (10 kB)\n",
" Preparing metadata (setup.py) ... \u001b[?25ldone\n",
"\u001b[?25hBuilding wheels for collected packages: nvidia-pyindex\n",
" Building wheel for nvidia-pyindex (setup.py) ... \u001b[?25ldone\n",
"\u001b[?25h Created wheel for nvidia-pyindex: filename=nvidia_pyindex-1.0.9-py3-none-any.whl size=8419 sha256=763ce7ae8d0b44ebae950220f90c4b092eb67d11fac1a125cda310637d42360e\n",
" Stored in directory: /home/user/.cache/pip/wheels/05/0a/54/d6d81bbd6c435e7d71c1780ca454a8ae9c655d893225ff1773\n",
"Successfully built nvidia-pyindex\n",
"Installing collected packages: nvidia-pyindex\n",
"Successfully installed nvidia-pyindex-1.0.9\n",
"\n",
"\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip available: \u001b[0m\u001b[31;49m22.3.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.3.1\u001b[0m\n",
"\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n",
"Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com\n",
"Collecting nvidia-ml-py3\n",
" Downloading nvidia-ml-py3-7.352.0.tar.gz (19 kB)\n",
" Preparing metadata (setup.py) ... \u001b[?25ldone\n",
"\u001b[?25hBuilding wheels for collected packages: nvidia-ml-py3\n",
" Building wheel for nvidia-ml-py3 (setup.py) ... \u001b[?25ldone\n",
"\u001b[?25h Created wheel for nvidia-ml-py3: filename=nvidia_ml_py3-7.352.0-py3-none-any.whl size=19172 sha256=bc7a713099b1ac4e31218a99ea038d245973282ce10b64e73d02383be73a6274\n",
" Stored in directory: /tmp/pip-ephem-wheel-cache-zdocri3a/wheels/18/b3/f9/56c61f6b3eeaeb98d060b50f1f75f1857dd1408051090a0533\n",
"Successfully built nvidia-ml-py3\n",
"Installing collected packages: nvidia-ml-py3\n",
"Successfully installed nvidia-ml-py3-7.352.0\n",
"\n",
"\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip available: \u001b[0m\u001b[31;49m22.3.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.3.1\u001b[0m\n",
"\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n"
]
}
],
"source": [
"!pip install --upgrade nvidia-pyindex\n",
"!pip install --upgrade nvidia-ml-py3\n"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"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.13"
}
},
"nbformat": 4,
"nbformat_minor": 2
}