跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • 浅色
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • 深色
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(不使用皮肤)
  • 不使用皮肤
折叠
品牌标识

抡锤者

  1. 主页
  2. LLM讨论区
  3. Llama.cpp如何上传图片

Llama.cpp如何上传图片

已定时 已固定 已锁定 已移动 LLM讨论区
13 帖子 7 发布者 292 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • terryT 在线
    terryT 在线
    terry
    编写于 最后由 terry 编辑
    #1

    暂时没有测试,我用的是LMStudio,它自带上传图片功能,这是效果图:
    Qwen3.5 27b分析图片.jpeg

    ChatBox也支持的,就不上图了。

    问了下Gemini,标准的 llama.cpp 本身确实已经内置了对多模态的支持,不需要安装额外的插件,只需通过 llama-server 开启 API 服务即可。

    不过,在实际操作中,为了让它“转起来”,有几个关键的技术点需要你留意:

    1. 核心架构:模型 + 投影器 (CLIP)
      虽然你只需发送 API,但 llama-server 在启动时必须加载两个部分:

    语言模型 (LLM):负责理解和对话(如 gemma4.gguf)。

    视觉投影器 (mmproj):负责把图片“翻译”给模型看(如 gemma4.gguf)。

    启动命令示例:
    export LD_LIBRARY_PATH=/mnt/nvidia/llama.cpp/build/bin:$LD_LIBRARY_PATH
    MODEL_PATH="/mnt/data/ai/lmstudio/.lmstudio/models/lmstudio-community/gemma-4-31B-it-GGUF/gemma-4-31B-it-Q4_K_M.gguf"
    /mnt/nvidia/llama.cpp/build/bin/llama-server
    -m "$MODEL_PATH"
    --host 0.0.0.0 --port 8080
    --n-gpu-layers 99
    --ctx-size 81920
    --parallel 1
    --cache-type-k q8_0
    --cache-type-v q8_0
    --flash-attn on
    --no-mmap
    --mlock
    --reasoning-budget 0

    1. API 的“标准”格式
      llama.cpp 的 API 极力兼容 OpenAI 格式。当你通过代码发送图片时,图片必须转换成 Base64 编码。

    一个典型的 Python 调用结构(使用 openai 库):
    import base64
    from openai import OpenAI

    client = OpenAI(base_url="http://localhost:8080/v1", api_key="sk-no-key-required")

    图片转为 Base64
    with open("image.jpg", "rb") as f:
    base64_image = base64.b64encode(f.read()).decode('utf-8')

    response = client.chat.completions.create(
    model="gpt-4-vision-preview", # 这里名字随便写,llama.cpp 会自动对应
    messages=[
    {
    "role": "user",
    "content": [
    {"type": "text", "text": "描述这张图"},
    {"type": "image_url", "image_url": {"url": f"data:image/jpeg;base64,{base64_image}"}}
    ],
    }
    ]
    )
    print(response.choices[0].message.content)

    1 条回复 最后回复
    1
    • L 离线
      L 离线
      linax777
      编写于 最后由 编辑
      #2

      重點是要加載 mmproj 文件,以下是我使用的容器 docker-compose 文件,可以參考 command:
      services:
      llama-cpp:
      image: ghcr.io/ggml-org/llama.cpp:server-cuda
      container_name: llama-cpp-cuda
      ports:
      - "8080:8080"
      volumes:
      - ~/models:/models
      command:
      - -m
      - /models/Qwen3.6-27B-Uncensored-HauhauCS-Aggressive-Q4_K_P.gguf
      - --alias
      - Qwen3.6-27B-Q4_K_P
      - --host
      - 0.0.0.0
      - --port
      - "8080"
      - --mmproj
      - /models/mmproj-Qwen3.6-27B-Uncensored-HauhauCS-Aggressive-f16.gguf
      - --n-gpu-layers
      - "999"
      - --jinja
      - --ctx-size
      - "131072"
      - --chat-template-kwargs
      - '{"enable_thinking": false}'
      - --metrics
      deploy:
      resources:
      reservations:
      devices:
      - driver: nvidia
      count: 1
      capabilities: [gpu]

      terryT 墙内人墙 2 条回复 最后回复
      0
      • L linax777

        重點是要加載 mmproj 文件,以下是我使用的容器 docker-compose 文件,可以參考 command:
        services:
        llama-cpp:
        image: ghcr.io/ggml-org/llama.cpp:server-cuda
        container_name: llama-cpp-cuda
        ports:
        - "8080:8080"
        volumes:
        - ~/models:/models
        command:
        - -m
        - /models/Qwen3.6-27B-Uncensored-HauhauCS-Aggressive-Q4_K_P.gguf
        - --alias
        - Qwen3.6-27B-Q4_K_P
        - --host
        - 0.0.0.0
        - --port
        - "8080"
        - --mmproj
        - /models/mmproj-Qwen3.6-27B-Uncensored-HauhauCS-Aggressive-f16.gguf
        - --n-gpu-layers
        - "999"
        - --jinja
        - --ctx-size
        - "131072"
        - --chat-template-kwargs
        - '{"enable_thinking": false}'
        - --metrics
        deploy:
        resources:
        reservations:
        devices:
        - driver: nvidia
        count: 1
        capabilities: [gpu]

        terryT 在线
        terryT 在线
        terry
        编写于 最后由 编辑
        #3

        @linax777 非常好,刚准备来更新回答,这个就是标准答案了。

        1 条回复 最后回复
        0
        • ike yuI 离线
          ike yuI 离线
          ike yu
          编写于 最后由 编辑
          #4

          老哥,llama.cpp跟lm-studio會差很多嗎?還是選個自己用的上手的就好了

          terryT 1 条回复 最后回复
          0
          • ike yuI ike yu

            老哥,llama.cpp跟lm-studio會差很多嗎?還是選個自己用的上手的就好了

            terryT 在线
            terryT 在线
            terry
            编写于 最后由 编辑
            #5

            @ike-yu 你只要跑起来差距不大,你怎么方便怎么来,先跑起来再对比。

            1 条回复 最后回复
            0
            • L linax777

              重點是要加載 mmproj 文件,以下是我使用的容器 docker-compose 文件,可以參考 command:
              services:
              llama-cpp:
              image: ghcr.io/ggml-org/llama.cpp:server-cuda
              container_name: llama-cpp-cuda
              ports:
              - "8080:8080"
              volumes:
              - ~/models:/models
              command:
              - -m
              - /models/Qwen3.6-27B-Uncensored-HauhauCS-Aggressive-Q4_K_P.gguf
              - --alias
              - Qwen3.6-27B-Q4_K_P
              - --host
              - 0.0.0.0
              - --port
              - "8080"
              - --mmproj
              - /models/mmproj-Qwen3.6-27B-Uncensored-HauhauCS-Aggressive-f16.gguf
              - --n-gpu-layers
              - "999"
              - --jinja
              - --ctx-size
              - "131072"
              - --chat-template-kwargs
              - '{"enable_thinking": false}'
              - --metrics
              deploy:
              resources:
              reservations:
              devices:
              - driver: nvidia
              count: 1
              capabilities: [gpu]

              墙内人墙 离线
              墙内人墙 离线
              墙内人
              编写于 最后由 编辑
              #6

              @linax777 民间大神多

              一个懒人

              1 条回复 最后回复
              0
              • TideT 离线
                TideT 离线
                Tide
                编写于 最后由 编辑
                #7

                你们用过win的lmstudio很吃内存吗?Ubuntu里安装lmstudio这个问题好些吗?

                S 1 条回复 最后回复
                0
                • terryT 在线
                  terryT 在线
                  terry
                  编写于 最后由 编辑
                  #8

                  linux下没看出来会吃内存,资源消耗正常。

                  1 条回复 最后回复
                  0
                  • TideT Tide

                    你们用过win的lmstudio很吃内存吗?Ubuntu里安装lmstudio这个问题好些吗?

                    S 离线
                    S 离线
                    stakira
                    编写于 最后由 stakira 编辑
                    #9

                    @Tide 说:

                    很吃内存

                    LM studio 节省资源的推荐配置

                    deb5f677-dc09-4aad-9667-e154e1283990-image.jpeg

                    第1项修改减少并发数减少显存使用,第2、3项修改减少内存使用,后面两项修改量化kv cache减少显存使用

                    terryT TideT 2 条回复 最后回复
                    0
                    • S stakira

                      @Tide 说:

                      很吃内存

                      LM studio 节省资源的推荐配置

                      deb5f677-dc09-4aad-9667-e154e1283990-image.jpeg

                      第1项修改减少并发数减少显存使用,第2、3项修改减少内存使用,后面两项修改量化kv cache减少显存使用

                      terryT 在线
                      terryT 在线
                      terry
                      编写于 最后由 编辑
                      #10

                      @stakira 很好,该优化的都优化了。

                      1 条回复 最后回复
                      0
                      • S stakira

                        @Tide 说:

                        很吃内存

                        LM studio 节省资源的推荐配置

                        deb5f677-dc09-4aad-9667-e154e1283990-image.jpeg

                        第1项修改减少并发数减少显存使用,第2、3项修改减少内存使用,后面两项修改量化kv cache减少显存使用

                        TideT 离线
                        TideT 离线
                        Tide
                        编写于 最后由 编辑
                        #11

                        stakira 谢谢,我试试。

                        1 条回复 最后回复
                        0
                        • bily jB 离线
                          bily jB 离线
                          bily j
                          编写于 最后由 编辑
                          #12

                          这个图片识别是不是跟模型有关,qwen3.6-27B我问AI说Q4.GGUF是文本模型,让我下载带VL的,我下载了确实能识别
                          ,也不知道是量化作者脱了图片识别能力还是模型本身就不支持

                          terryT 1 条回复 最后回复
                          0
                          • bily jB bily j

                            这个图片识别是不是跟模型有关,qwen3.6-27B我问AI说Q4.GGUF是文本模型,让我下载带VL的,我下载了确实能识别
                            ,也不知道是量化作者脱了图片识别能力还是模型本身就不支持

                            terryT 在线
                            terryT 在线
                            terry
                            编写于 最后由 编辑
                            #13

                            @bily-j 同样的模型,文件,lmstudio就支持,所以和模型文件格式无关,就是要mmproj

                            1 条回复 最后回复
                            0

                            你好!看起来您对这段对话很感兴趣,但您还没有一个账号。

                            厌倦了每次访问都刷到同样的帖子?您注册账号后,您每次返回时都能精准定位到您上次浏览的位置,并可选择接收新回复通知(通过邮件或推送通知)。您还能收藏书签、为帖子顶,向社区成员表达您的欣赏。

                            有了你的建议,这篇帖子会更精彩哦 💗

                            注册 登录
                            回复
                            • 在新帖中回复
                            登录后回复
                            • 从旧到新
                            • 从新到旧
                            • 最多赞同


                            • 登录

                            • 没有帐号? 注册

                            • 登录或注册以进行搜索。
                            • 第一个帖子
                              最后一个帖子
                            0
                            • 版块
                            • 最新
                            • 标签
                            • 热门
                            • 用户
                            • 群组