---
title: phantom-wan
canonical_url: "https://www.modelscope.cn/models/vftfnn/phantom-wan"
md_url: "https://www.modelscope.cn/models/vftfnn/phantom-wan.md"
repository: vftfnn/phantom-wan
last_updated: 2026-07-06
pipeline_tag: image-text-to-text
tasks:
  - image-text-to-text
parameters: 126.9M
tensor_type:
  - BF16
library_name:
  - gguf
  - safetensors
  - pytorch
frameworks:
  - Pytorch
downloads: 125
stars: 0
---

# phantom-wan

> phantom-wan - vftfnn 在 ModelScope 开源的模型。{ "cells": [ { "celltype": "markdown", "metadata": {}, "source": "# Phantom 模型环境准备 - ModelScope Notebook (ModelScope 仓库版)\n\n本 Notebook 直接从 ModelScope 仓库 vftfnn/phantom-wan 下载全部模型文件（主模型 / VAE / 文本编码器），国内速度快、无需 HF…

- **Repository**: vftfnn/phantom-wan
- **Tasks**: image-text-to-text
- **Parameters**: 126.9M
- **Downloads**: 125
- **Stars**: 0
- **Last updated**: 2026-07-06

Source: https://www.modelscope.cn/models/vftfnn/phantom-wan

---

{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": "# Phantom 模型环境准备 - ModelScope Notebook (ModelScope 仓库版)\n\n本 Notebook 直接从 ModelScope 仓库 `vftfnn/phantom-wan` 下载全部模型文件（主模型 / VAE / 文本编码器），国内速度快、无需 HF 镜像。\n\n**推荐配置**: AMD MI GPU 环境（192GB 显存）或其他 GPU 环境（至少 16GB 显存）"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 第 1 步：检查环境"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "============================================================\n",
      "环境信息\n",
      "============================================================\n",
      "Python 版本: 3.11.11 (main, Mar 11 2025, 18:25:39) [GCC 11.4.0]\n",
      "PyTorch 版本: 2.3.1+cpu\n",
      "CUDA 可用: False\n",
      "⚠️  警告: 未检测到 GPU，建议切换到 GPU 环境\n",
      "\n",
      "当前工作目录: /mnt/workspace\n"
     ]
    }
   ],
   "source": [
    "import sys\n",
    "import os\n",
    "import torch\n",
    "\n",
    "print(\"=\" * 60)\n",
    "print(\"环境信息\")\n",
    "print(\"=\" * 60)\n",
    "print(f\"Python 版本: {sys.version}\")\n",
    "print(f\"PyTorch 版本: {torch.__version__}\")\n",
    "print(f\"CUDA 可用: {torch.cuda.is_available()}\")\n",
    "\n",
    "if torch.cuda.is_available():\n",
    "    print(f\"CUDA 版本: {torch.version.cuda}\")\n",
    "    print(f\"GPU 数量: {torch.cuda.device_count()}\")\n",
    "    for i in range(torch.cuda.device_count()):\n",
    "        print(f\"GPU {i}: {torch.cuda.get_device_name(i)}\")\n",
    "        total_memory = torch.cuda.get_device_properties(i).total_memory / 1024**3\n",
    "        print(f\"  显存: {total_memory:.2f} GB\")\n",
    "else:\n",
    "    print(\"⚠️  警告: 未检测到 GPU，建议切换到 GPU 环境\")\n",
    "\n",
    "print(\"\\n当前工作目录:\", os.getcwd())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": "## 第 2 步：安装 ModelScope SDK\n\n⚠️ **模型全部托管在 ModelScope 仓库 `vftfnn/phantom-wan`，无需配置 HF 镜像**"
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": "# 安装 ModelScope SDK（用于从 ModelScope 仓库下载模型）\nimport subprocess\n\nprint(\"📦 安装 modelscope ...\")\nsubprocess.run([\"pip\", \"install\", \"-q\", \"-U\", \"modelscope\"], check=True)\n\nimport modelscope\nprint(f\"✅ ModelScope 版本: {modelscope.__version__}\")\nprint(\"模型仓库: vftfnn/phantom-wan\")"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 第 3 步：安装依赖"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": "%%bash\n# 安装其他必要依赖（modelscope 已在上一步安装）\npip install -q accelerate transformers safetensors\n\necho \"✅ 依赖安装完成\""
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 第 4 步：克隆 ComfyUI"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "⚠️  ComfyUI 已存在，跳过克隆\n"
     ]
    }
   ],
   "source": [
    "%%bash\n",
    "# 创建工作目录\n",
    "mkdir -p ~/phantom-workspace\n",
    "cd ~/phantom-workspace\n",
    "\n",
    "# 克隆 ComfyUI（如果不存在）\n",
    "if [ ! -d \"ComfyUI\" ]; then\n",
    "    echo \"📦 克隆 ComfyUI...\"\n",
    "    git clone https://github.com/comfyanonymous/ComfyUI.git\n",
    "    cd ComfyUI\n",
    "    pip install -q -r requirements.txt\n",
    "    echo \"✅ ComfyUI 安装完成\"\n",
    "else\n",
    "    echo \"⚠️  ComfyUI 已存在，跳过克隆\"\n",
    "fi"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 第 5 步：安装 ComfyUI-GGUF 插件"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": "%%bash\n# 确保 custom_nodes 目录存在（防止 ComfyUI clone 不完整导致 cd 失败）\nmkdir -p ~/phantom-workspace/ComfyUI/custom_nodes\ncd ~/phantom-workspace/ComfyUI/custom_nodes\n\n# 克隆 GGUF 插件（如果不存在）\nif [ ! -d \"ComfyUI-GGUF\" ]; then\n    echo \"🔌 克隆 ComfyUI-GGUF 插件...\"\n    git clone https://github.com/city96/ComfyUI-GGUF.git\n    cd ComfyUI-GGUF\n    pip install -q -r requirements.txt\n    echo \"✅ ComfyUI-GGUF 插件安装完成\"\nelse\n    echo \"⚠️  ComfyUI-GGUF 已存在，跳过克隆\"\nfi"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 第 6 步：创建模型目录"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "✅ 模型目录创建完成:\n",
      "  - unet/           (主模型)\n",
      "  - text_encoders/  (文本编码器)\n",
      "  - vae/            (视频解码器)\n"
     ]
    }
   ],
   "source": [
    "%%bash\n",
    "cd ~/phantom-workspace/ComfyUI/models\n",
    "\n",
    "# 创建模型目录\n",
    "mkdir -p unet\n",
    "mkdir -p text_encoders\n",
    "mkdir -p vae\n",
    "\n",
    "echo \"✅ 模型目录创建完成:\"\n",
    "echo \"  - unet/           (主模型)\"\n",
    "echo \"  - text_encoders/  (文本编码器)\"\n",
    "echo \"  - vae/            (视频解码器)\""
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": "## 第 7 步：从 ModelScope 仓库下载模型文件\n\n⚠️ **注意**: \n- 全部从 ModelScope 仓库 `vftfnn/phantom-wan` 下载，国内速度快\n- 下载大约需要 10-20 分钟，总共约 15GB\n- 假设仓库内文件名为：`Phantom_Wan_14B-Q4_K_M.gguf` / `wan_2.1_vae.safetensors` / `umt5-xxl-encoder-bf16.safetensors`\n- 若你上传时用了其它文件名或子目录，请修改下方 `FILES` 里的 `filename`"
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": "from modelscope import snapshot_download\nfrom modelscope.hub.file_download import model_file_download\nimport os\nimport shutil\n\nbase_path = os.path.expanduser(\"~/phantom-workspace/ComfyUI/models\")\nREPO_ID = \"vftfnn/phantom-wan\"\n\n# 仓库内文件名 -> ComfyUI 目标子目录\n# 若你上传时改了文件名 / 放到了子目录，修改这里的 filename 即可（可带子路径，如 \"gguf/xxx.gguf\"）\nFILES = [\n    {\"desc\": \"主模型 (GGUF Q4_K_M, ~10GB)\", \"filename\": \"Phantom_Wan_14B-Q4_K_M.gguf\", \"subdir\": \"unet\"},\n    {\"desc\": \"VAE 解码器 (~250MB)\",         \"filename\": \"wan_2.1_vae.safetensors\",     \"subdir\": \"vae\"},\n    {\"desc\": \"文本编码器 (~11GB)\",           \"filename\": \"umt5-xxl-encoder-bf16.safetensors\", \"subdir\": \"text_encoders\"},\n]\n\nprint(\"=\" * 60)\nprint(f\"从 ModelScope 仓库下载: {REPO_ID}\")\nprint(\"=\" * 60)\nprint()\n\nok_count = 0\nfor i, item in enumerate(FILES, 1):\n    dst_dir = os.path.join(base_path, item[\"subdir\"])\n    os.makedirs(dst_dir, exist_ok=True)\n    print(f\"📥 {i}/{len(FILES)}: 下载{item['desc']} ...\")\n    print(f\"   文件: {item['filename']}  ->  models/{item['subdir']}/\")\n    try:\n        # 下载到 ModelScope 缓存\n        cached = model_file_download(model_id=REPO_ID, file_path=item[\"filename\"])\n        # 复制/移动到 ComfyUI 目标目录（用文件名的 basename，避免带上子路径）\n        dst = os.path.join(dst_dir, os.path.basename(item[\"filename\"]))\n        if os.path.abspath(cached) != os.path.abspath(dst):\n            shutil.copy2(cached, dst)\n        size_gb = os.path.getsize(dst) / 1024**3\n        print(f\"✅ 完成: {dst}  ({size_gb:.2f} GB)\")\n        ok_count += 1\n    except Exception as e:\n        print(f\"❌ 下载失败: {e}\")\n        print(\"   请确认该文件已上传到仓库、且 filename 与仓库内实际名称一致\")\n    print()\n\nprint(\"=\" * 60)\nprint(f\"✅ 下载结束：成功 {ok_count}/{len(FILES)}\")\nprint(\"=\" * 60)"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 第 8 步：下载示例工作流"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": "%%bash\ncd ~/phantom-workspace\n\necho \"📥 下载示例工作流...\"\n# 优先从 ModelScope 仓库下载（若你把 json 也传了上去）\npython - <<'PY'\nimport os, shutil\ntry:\n    from modelscope.hub.file_download import model_file_download\n    p = model_file_download(model_id=\"vftfnn/phantom-wan\", file_path=\"Phantom_example_workflow.json\")\n    shutil.copy2(p, os.path.expanduser(\"~/phantom-workspace/Phantom_example_workflow.json\"))\n    print(\"✅ 已从 ModelScope 下载工作流\")\nexcept Exception as e:\n    print(f\"⚠️  ModelScope 无此文件（{e}），改用 HF 镜像下载\")\n    os.environ[\"HF_ENDPOINT\"] = \"https://hf-mirror.com\"\n    os.system(\"wget -q https://hf-mirror.com/QuantStack/Phantom_Wan_14B-GGUF/resolve/main/Phantom_example_workflow.json -O ~/phantom-workspace/Phantom_example_workflow.json\")\nPY\n\nif [ -s \"Phantom_example_workflow.json\" ]; then\n    echo \"✅ 示例工作流就绪\"\nelse\n    echo \"⚠️  工作流下载失败，可手动从 HF 页面下载后拖入 ComfyUI\"\nfi"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 第 9 步：验证安装"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": "import os\n\nbase_path = os.path.expanduser(\"~/phantom-workspace/ComfyUI/models\")\n\nprint(\"=\" * 60)\nprint(\"验证模型文件\")\nprint(\"=\" * 60)\nprint()\n\n# 文件现在直接放在各目标目录下（无嵌套子目录）\nfiles_to_check = {\n    \"主模型 (GGUF)\": \"unet/Phantom_Wan_14B-Q4_K_M.gguf\",\n    \"VAE 解码器\": \"vae/wan_2.1_vae.safetensors\",\n    \"文本编码器\": \"text_encoders/umt5-xxl-encoder-bf16.safetensors\",\n}\n\nall_ok = True\n\nfor name, rel in files_to_check.items():\n    file_path = os.path.join(base_path, rel)\n    if os.path.exists(file_path):\n        size_gb = os.path.getsize(file_path) / 1024**3\n        print(f\"✅ {name}\")\n        print(f\"   路径: {file_path}\")\n        print(f\"   大小: {size_gb:.2f} GB\")\n    else:\n        print(f\"❌ {name}: 未找到 ({file_path})\")\n        all_ok = False\n    print()\n\n# 检查工作流文件\nworkflow_path = os.path.expanduser(\"~/phantom-workspace/Phantom_example_workflow.json\")\nif os.path.exists(workflow_path):\n    print(f\"✅ 示例工作流\")\n    print(f\"   路径: {workflow_path}\")\nelse:\n    print(f\"⚠️  示例工作流: 未找到（可以手动下载）\")\n\nprint()\n\nif all_ok:\n    print(\"=\" * 60)\n    print(\"✅ 所有文件验证通过！可以启动 ComfyUI 了\")\n    print(\"=\" * 60)\nelse:\n    print(\"=\" * 60)\n    print(\"❌ 部分文件缺失，请检查下载步骤\")\n    print(\"=\" * 60)"
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 第 10 步：启动 ComfyUI\n",
    "\n",
    "有两种启动方式："
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 方式 1：在 Terminal 中启动（推荐）\n",
    "\n",
    "在 ModelScope 的 **Terminal** 窗口中运行：\n",
    "\n",
    "```bash\n",
    "cd ~/phantom-workspace/ComfyUI\n",
    "python main.py --listen 0.0.0.0 --port 8188\n",
    "```\n",
    "\n",
    "启动后，ModelScope 会自动提供端口转发链接。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 方式 2：在 Notebook 后台启动\n",
    "\n",
    "⚠️ **注意**: 这会占用 Notebook 的执行，建议使用方式 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 显示启动信息\n",
    "print(\"=\" * 60)\n",
    "print(\"ComfyUI 启动说明\")\n",
    "print(\"=\" * 60)\n",
    "print()\n",
    "print(\"请在 ModelScope 的 Terminal 中运行以下命令:\")\n",
    "print()\n",
    "print(\"  cd ~/phantom-workspace/ComfyUI\")\n",
    "print(\"  python main.py --listen 0.0.0.0 --port 8188\")\n",
    "print()\n",
    "print(\"启动后，在浏览器中访问 ModelScope 提供的端口转发链接\")\n",
    "print()\n",
    "print(\"💡 提示: \")\n",
    "print(\"  - ModelScope Notebook 通常会自动识别 8188 端口\")\n",
    "print(\"  - 查看页面上方是否有 '端口转发' 或类似的按钮\")\n",
    "print()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": "## 使用说明\n\n### 多图参考功能\n\nPhantom 模型支持**最多 4 张参考图**进行视频生成:\n\n1. 在 ComfyUI 中加载 `Phantom_example_workflow.json`\n2. 使用 \"Load Image\" 节点加载 1-4 张参考图\n3. 在 Prompt 中详细描述参考图的内容\n   - 例如: \"a toy camera in yellow and red with blue buttons\"\n   - 描述越准确，生成效果越好\n4. 设置其他参数:\n   - **seed**: 随机种子，控制生成结果\n   - **分辨率**: 默认 832×480\n   - **步数**: 50-100 steps（步数越多，质量越好，但速度越慢）\n5. 点击 \"Queue Prompt\" 生成视频\n\n### 推荐配置\n\n- **显存**: 16GB+ (推荐 24GB+)\n- **量化版本**: Q4_K_M (平衡质量和速度)\n- **分辨率**: 832×480 (默认)\n- **步数**: 50-100 steps\n\n### 生成时间估算\n\n在 AMD MI 192GB 显存的环境中:\n- 单张参考图: 约 5-10 分钟\n- 多张参考图: 约 10-15 分钟\n\n### 故障排查\n\n如果遇到问题:\n\n1. **显存不足**:\n   - 使用更小的量化版本 (Q3_K_S)\n   - 降低输出分辨率\n   - 减少参考图数量\n\n2. **生成失败**:\n   - 检查 Prompt 是否过短或过长\n   - 尝试更改 seed 值\n   - 查看 ComfyUI 控制台的错误信息\n\n3. **模型下载失败**:\n   - 确认文件已上传到 ModelScope 仓库 `vftfnn/phantom-wan`\n   - 确认第 7 步 `FILES` 里的 `filename` 与仓库内实际文件名完全一致\n   - 命令行手动验证：`modelscope download --model vftfnn/phantom-wan <文件名> --local_dir ./dir`\n\n### 参考资源\n\n- [ModelScope 模型仓库 vftfnn/phantom-wan](https://modelscope.cn/models/vftfnn/phantom-wan/files)（本 Notebook 下载源）\n- [Phantom 原始模型](https://huggingface.co/bytedance-research/Phantom)\n- [Phantom GGUF 版本](https://huggingface.co/QuantStack/Phantom_Wan_14B-GGUF)\n- [ComfyUI 文档](https://github.com/comfyanonymous/ComfyUI)\n- [ComfyUI-GGUF 插件](https://github.com/city96/ComfyUI-GGUF)\n\n### 技术细节\n\n- **模型架构**: Wan 2.1 (图生视频 / 多图参考)\n- **参数量**: 14B（140亿参数）\n- **量化方法**: GGUF Q4_K_M\n- **支持功能**: 单图/多图参考、文生视频、图生视频\n- **许可证**: Apache 2.0\n- **注意**: 仅支持 CausVid LoRA 14B 版本，1.3B 版本不兼容"
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "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.11.11"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
