国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

谷歌首個(gè)nana-banana多模態(tài)RAG實(shí)戰(zhàn):徹底告別關(guān)鍵詞搜索,讓AI為電商游戲提效 原創(chuàng) 精華

發(fā)布于 2025-9-8 07:15
瀏覽
0收藏

最新的AI生圖模型已經(jīng)能做到驚人的效果。給它一句話,它就能生成逼真的圖片。告訴它想怎么改,它就能精準(zhǔn)編輯細(xì)節(jié)。速度還快得離譜。

但對(duì)企業(yè)來(lái)說(shuō),光有個(gè)生圖模型還不夠。

我之前碰到一個(gè)公司,他們想讓用戶上傳照片后,從素材庫(kù)選配飾和道具進(jìn)行換裝。另一家電商平臺(tái)想給模特?fù)Q裝、換發(fā)型、換配飾,實(shí)現(xiàn)一次拍攝,反復(fù)使用。

問(wèn)題來(lái)了:這些公司都有海量的歷史素材。服裝、配飾、道具、背景,全是圖片文件。怎么快速找到想要的素材?傳統(tǒng)搜索根本不行。

他們真正需要的,是一套能理解圖片內(nèi)容的智能檢索系統(tǒng)。輸入文字描述,就能找到對(duì)應(yīng)的圖片素材。再配合AI生圖模型,才能實(shí)現(xiàn)真正的生產(chǎn)級(jí)應(yīng)用。

這就是多模態(tài)RAG系統(tǒng)的價(jià)值所在。

企業(yè)生圖的真正痛點(diǎn)

快消品公司每年積累數(shù)萬(wàn)張產(chǎn)品圖。游戲公司的素材庫(kù)里躺著幾十萬(wàn)個(gè)道具模型。這些非結(jié)構(gòu)化數(shù)據(jù)就像一座金山,卻無(wú)法高效利用。

傳統(tǒng)的文件名搜索?太原始了。手動(dòng)打標(biāo)簽?人力成本高得嚇人,還容易出錯(cuò)。

現(xiàn)實(shí)中,設(shè)計(jì)師要找一個(gè)"金色復(fù)古懷表"的素材,可能要翻幾十個(gè)文件夾。產(chǎn)品經(jīng)理想找"穿西裝的男模特"照片,得靠記憶和運(yùn)氣。

更糟糕的是,即使找到了合適的素材,怎么和AI生圖模型無(wú)縫對(duì)接?怎么確保生成的圖片風(fēng)格統(tǒng)一?怎么批量處理上千個(gè)SKU的產(chǎn)品圖?

這些問(wèn)題,單靠一個(gè)AI模型解決不了。你需要一套完整的系統(tǒng)。

技術(shù)方案:向量化

解決方案其實(shí)不復(fù)雜。

核心是把圖片和文字都轉(zhuǎn)換成向量。同一個(gè)概念的圖片和文字,轉(zhuǎn)換后的向量很相似。比如"金色手表"這段文字的向量,和一張金表圖片的向量,在向量空間里距離很近。

向量化方案選擇

你有三種選擇,各有優(yōu)劣:

方案一:CLIP本地部署(免費(fèi)但需要GPU)

import clip
model, preprocess = clip.load("ViT-B/32")  # 512維向量
# 或者用更強(qiáng)的模型
model, preprocess = clip.load("ViT-L/14")  # 768維向量

方案二:OpenAI API(效果最好但按次收費(fèi))

from openai import OpenAI
client = OpenAI(api_key="your-key")
response = client.embeddings.create(
    model="text-embedding-3-large",
    input="金色手表"
)

方案三:國(guó)內(nèi)大廠API(穩(wěn)定且中文優(yōu)化好)

# 阿里云 DashScope
from dashscope import MultiModalEmbedding
response = MultiModalEmbedding.call(
    model='multimodal-embedding-one-peace-v1',
    input=[{"image": "watch.jpg"}]
)

Milvus向量數(shù)據(jù)庫(kù)

不管用哪種向量化方案,存儲(chǔ)和檢索都用Milvus。它能在毫秒內(nèi)從百萬(wàn)個(gè)向量中找出最相似的。

工作流程:

  1. 把所有歷史圖片轉(zhuǎn)成向量,存到Milvus
  2. 用戶輸入文字描述時(shí),同樣轉(zhuǎn)成向量
  3. Milvus找出最相似的圖片向量
  4. 返回對(duì)應(yīng)的原始圖片

實(shí)戰(zhàn):搭建以文搜圖系統(tǒng)

三種實(shí)現(xiàn)方式,你選一個(gè)合適的。

方式一:CLIP本地部署

環(huán)境準(zhǔn)備

pip install pymilvus pillow matplotlib
pip install git+https://github.com/openai/CLIP.git

完整代碼

import clip
import torch
from PIL import Image
from pymilvus import MilvusClient
from glob import glob

# 初始化
client = MilvusClient(uri="http://localhost:19530")
device = "cuda"if torch.cuda.is_available() else"cpu"
model, preprocess = clip.load("ViT-B/32", device=device)

# 創(chuàng)建集合
collection_name = "product_images"
if client.has_collection(collection_name):
    client.drop_collection(collection_name)
    
client.create_collection(
    collection_name=collection_name,
    dimension=512,
    metric_type="COSINE"
)

# 圖片向量化
def encode_image(image_path):
    image = preprocess(Image.open(image_path)).unsqueeze(0).to(device)
    with torch.no_grad():
        features = model.encode_image(image)
        features /= features.norm(dim=-1, keepdim=True)
    return features.squeeze().cpu().tolist()

# 批量處理
image_paths = glob("./images/*.jpg")
data = []
for path in image_paths:
    vector = encode_image(path)
    data.append({"vector": vector, "filepath": path})
    
client.insert(collection_name=collection_name, data=data)

# 搜索功能
def search_by_text(query, top_k=3):
    text = clip.tokenize([query]).to(device)
    with torch.no_grad():
        text_features = model.encode_text(text)
        text_features /= text_features.norm(dim=-1, keepdim=True)
    
    results = client.search(
        collection_name=collection_name,
        data=[text_features.squeeze().cpu().tolist()],
        limit=top_k,
        output_fields=["filepath"]
    )
    return results[0]

方式二:OpenAI API

from openai import OpenAI
from pymilvus import MilvusClient
import base64

# 初始化
openai_client = OpenAI(api_key="your-key")
milvus_client = MilvusClient(uri="http://localhost:19530")

# 創(chuàng)建集合(注意維度不同)
collection_name = "product_images_openai"
milvus_client.create_collection(
    collection_name=collection_name,
    dimension=1536,  # OpenAI的維度
    metric_type="COSINE"
)

def encode_text_openai(text):
    """文本向量化"""
    response = openai_client.embeddings.create(
        model="text-embedding-3-large",
        input=text,
        dimensions=1536
    )
    return response.data[0].embedding

def encode_image_openai(image_path):
    """圖片先描述再向量化"""
    with open(image_path, "rb") as f:
        base64_image = base64.b64encode(f.read()).decode('utf-8')
    
    # GPT-4V描述圖片
    response = openai_client.chat.completions.create(
        model="gpt-4-vision-preview",
        messages=[{
            "role": "user",
            "content": [
                {"type": "text", "text": "Describe this image concisely"},
                {"type": "image_url", "image_url": {"url": f"data:image/jpeg;base64,{base64_image}"}}
            ]
        }]
    )
    
    description = response.choices[0].message.content
    return encode_text_openai(description)

# 批量處理(注意成本)
from glob import glob
image_paths = glob("./images/*.jpg")[:100]  # 先處理100張?jiān)囋?data = []

for path in image_paths:
    print(f"Processing {path}...")
    vector = encode_image_openai(path)
    data.append({"vector": vector, "filepath": path})
    
milvus_client.insert(collection_name=collection_name, data=data)

方式三:混合方案

class HybridEmbedding:
    """智能選擇最合適的向量化方案"""
    
    def __init__(self):
        # CLIP用于批量處理
        self.clip_model, self.preprocess = clip.load("ViT-B/32")
        
        # OpenAI用于高質(zhì)量需求
        self.openai_client = OpenAI(api_key="your-key")
        
        # Milvus連接
        self.milvus = MilvusClient(uri="http://localhost:19530")
        
        # 統(tǒng)一到1536維(通過(guò)填充或截?cái)啵?        self.dimension = 1536
        
    def encode(self, content, mode="fast"):
        """根據(jù)模式選擇編碼方式"""
        if mode == "fast":
            # 用CLIP,成本低
            if isinstance(content, str):
                tokens = clip.tokenize([content])
                features = self.clip_model.encode_text(tokens)
            else:  # 圖片路徑
                image = self.preprocess(Image.open(content)).unsqueeze(0)
                features = self.clip_model.encode_image(image)
            
            # 歸一化并填充到1536維
            features = features.squeeze().cpu().numpy()
            features = features / np.linalg.norm(features)
            padded = np.zeros(self.dimension)
            padded[:len(features)] = features
            return padded.tolist()
            
        elif mode == "quality":
            # 用OpenAI,效果好
            response = self.openai_client.embeddings.create(
                model="text-embedding-3-large",
                input=content,
                dimensions=self.dimension
            )
            return response.data[0].embedding
    
    def smart_batch_process(self, items, budget=100):
        """智能批處理,控制成本"""
        results = []
        
        for i, item in enumerate(items):
            if i < budget:
                # 前100個(gè)用高質(zhì)量
                vector = self.encode(item, mode="quality")
            else:
                # 剩下的用快速模式
                vector = self.encode(item, mode="fast")
            
            results.append(vector)
            
        return results

集成AI生圖模型實(shí)現(xiàn)自動(dòng)化

找到素材只是第一步。接下來(lái)要把它和AI生圖模型打通。

這里用Gemini的圖像生成API做示范。你也可以換成Stable Diffusion、Midjourney或任何其他模型。

import google.generativeai as genai
from PIL import Image

# 配置API
genai.configure(api_key="your_api_key")
model = genai.GenerativeModel('gemini-2.0-flash-exp')

def generate_product_image(text_query, style_reference):
    """
    先搜索相似素材,再生成新圖
    """
    # 步驟1:從數(shù)據(jù)庫(kù)找參考圖
    similar_images = search_by_text(text_query, top_k=1)
    reference_path = similar_images[0]['entity']['filepath']
    
    # 步驟2:加載參考圖
    ref_image = Image.open(reference_path)
    
    # 步驟3:生成新圖
    prompt = f"{text_query}. Style should match the reference image."
    response = model.generate_content([prompt, ref_image])
    
    # 步驟4:保存結(jié)果
    for part in response.candidates[0].content.parts:
        if part.inline_data:
            new_image = Image.open(BytesIO(part.inline_data.data))
            new_image.save(f"generated_{text_query.replace(' ', '_')}.png")
            return new_image
    
# 實(shí)際使用
generate_product_image(
    "European male model wearing suit with gold watch",
    style_reference="luxury_fashion"
)

這套流程的妙處在于:

  • 自動(dòng)匹配風(fēng)格:從歷史素材找參考,保證視覺(jué)一致性
  • 批量處理:寫個(gè)循環(huán),一晚上能生成上千張產(chǎn)品圖
  • 精準(zhǔn)控制:通過(guò)調(diào)整prompt和參考圖,精確控制輸出效果

實(shí)際應(yīng)用場(chǎng)景和效果展示

電商換裝場(chǎng)景

一家服裝品牌,原本每個(gè)季度要拍攝500套新品。現(xiàn)在只需拍攝50套基礎(chǔ)款,剩下的全靠AI生成。

# 批量換裝示例
base_models = ["model_001.jpg", "model_002.jpg"]
clothing_items = search_by_text("summer dress collection", top_k=50)

for model in base_models:
    for item in clothing_items:
        generate_outfit_combination(model, item)

游戲道具定制

某款卡牌游戲,玩家可以自定義角色裝備。系統(tǒng)從10萬(wàn)個(gè)道具素材中實(shí)時(shí)檢索,然后生成獨(dú)一無(wú)二的角色形象。

玩家描述:"戴著火焰皇冠的精靈弓箭手" 系統(tǒng)操作:

  1. 檢索"火焰皇冠"素材
  2. 檢索"精靈弓箭手"基礎(chǔ)形象
  3. AI融合生成最終角色

產(chǎn)品展示自動(dòng)化

一個(gè)3C品牌,新品發(fā)布需要大量場(chǎng)景圖。以前要搭建實(shí)景、請(qǐng)攝影師。現(xiàn)在:

products = ["smartphone_x1.jpg", "earbuds_pro.jpg", "smartwatch_v2.jpg"]
scenes = ["modern office", "outdoor adventure", "home living room"]

for product in products:
    for scene in scenes:
        prompt = f"Place {product} in {scene} setting"
        generate_scene_image(prompt, product)

一天生成1000張場(chǎng)景圖。每張成本不到1元。

總結(jié)

向量化技術(shù)還在快速進(jìn)化。Google的Gemini已經(jīng)原生支持多模態(tài)。Meta的ImageBind能處理6種模態(tài)。但不管技術(shù)怎么變,核心邏輯不變:把非結(jié)構(gòu)化數(shù)據(jù)變成向量,用向量相似度做檢索。


本文轉(zhuǎn)載自??AI 博物院?? 作者:longyunfeigu

?著作權(quán)歸作者所有,如需轉(zhuǎn)載,請(qǐng)注明出處,否則將追究法律責(zé)任
已于2025-9-8 07:15:11修改
收藏
回復(fù)
舉報(bào)
回復(fù)
相關(guān)推薦
国产精品情趣视频| 国产精品久久久久久吹潮| 欧美激情在线播放| 国产成人在线视频免费播放| 一个人www视频在线免费观看| 久久天堂国产精品| 欧美日韩电影在线播放| 国内在线观看一区二区三区| 成人动漫在线免费观看| 国产美女在线精品免费观看| 69精品人人人人| 91麻豆精品视频| 久久婷婷成人综合色| a在线视频v视频| 欧美精品一区二区三区久久| 欧美日韩三级视频| 久久亚洲风情| 亚洲美女尤物影院| 黄色网在线视频| 日日噜噜噜夜夜爽亚洲精品| 99久久伊人网影院| 97色成人综合网站| 97热精品视频官网| 国产精品1luya在线播放| 五月婷婷六月丁香激情| 2019国产精品自在线拍国产不卡| 亚洲图片你懂的| 成人一二三区| 亚洲xxxxxx| 欧美亚洲一级二级| 日韩国产在线播放| 粉嫩一区二区三区在线看| 久久国际精品| 激情se五月| 国产精品一区二区免费看| 欧美大片在线观看一区二区| 国产成人午夜精品5599| 亚洲精品不卡在线观看| 影院免费视频| 国产精品久久久久久久久久久久冷 | 日韩大片b站免费观看直播| 99re在线播放| 精品捆绑美女sm三区 | 色a资源在线| 青青青在线观看视频| 午夜精品99久久免费| 色婷婷久久一区二区三区麻豆| 丝袜诱惑亚洲看片| 欧美aaaaaa| 日本高清中文字幕| 欧美久久在线| 美女福利视频一区| 欧美体内谢she精2性欧美| 久久97超碰国产精品超碰| 99这里只有精品视频| 黄色av网站在线| 日本丰满少妇黄大片在线观看| 欧美激情一区二区三区高清视频| 精品美女国产在线| 麻豆精品新av中文字幕| 91精品啪在线观看国产爱臀| 久久久久久青草| 第九区2中文字幕| 国产精品激情自拍| 精品国产乱码久久久久久1区2区 | 先锋影音久久| 95精品视频| 青青操视频在线| 福利视频免费在线观看| 国产精品扒开腿做| 亚洲福利在线观看| 亚洲精品老司机| 日韩黄色免费电影| 神马日本精品| 欧美激情网站| 在线播放的av| 国产特级淫片高清视频| 肥熟一91porny丨九色丨| 久久精品视频一| 欧美日韩一卡二卡三卡| 国产拍欧美日韩视频二区| 51xtv成人影院| 日韩在线观看av| 色哟哟一区二区在线观看| 成人国产精品视频| 欧美日韩综合| 国产精品任我爽爆在线播放| 国产白丝在线观看| 污导航在线观看| 黄色一级片播放| 久久精品午夜一区二区福利| 992tv成人免费影院| 日韩电影免费在线观看中文字幕 | 精品亚洲成a人在线观看| 亚洲+变态+欧美+另类+精品| 高潮一区二区| 青青免费在线视频| 国产精品久久久久9999小说| 日本成人三级| 国产精品成人v| 色悠悠久久88| 91精品在线麻豆| 欧美韩国日本综合| 国产一区二区三区久久悠悠色av| 中文字幕免费一区二区| 欧美黑白配在线| 深夜视频一区二区| 51xtv成人影院| 伊人国产在线| 成人亚洲在线观看| 一女被多男玩喷潮视频| 亚洲高清乱码| 成人av资源| 国产欧美一区二区三区在线| 久久久久久久久国产| 亚洲男子天堂网| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 欧美激情在线观看视频免费| 国产一区二区电影| 午夜综合激情| 精品99视频| 久久久久久久久国产一区| 六月丁香久久丫| 九九热这里有精品| 免费一二一二在线视频| av激情在线| 免费看a在线观看| 成年在线电影| 毛片在线免费| 永久在线免费观看| 精精国产xxxx视频在线动漫| 杨幂毛片午夜性生毛片| 久久久久久久午夜| 日本高清xxxx| 成年人黄色在线观看| 亚洲成人自拍视频| 日日骚一区二区网站| 欧美一区2区三区4区公司二百| 91在线精品观看| 91精品国产综合久久香蕉最新版| 日韩av色综合| 日本一区二区不卡| 2018日韩中文字幕| 97视频在线播放| 国产91精品青草社区| 欧美一级视频在线观看| 2019中文字幕全在线观看| 91国语精品自产拍在线观看性色 | 成人免费在线视频观看| 国产区在线观看成人精品| 久久久久国色av免费看影院| 丝袜美腿玉足3d专区一区| 久久九九全国免费精品观看| 一区二区欧美日韩视频| 日韩中文字幕在线视频播放| 久久综合伊人77777尤物| 欧美大奶子在线| 国内精品久久久| 日本欧美中文字幕| 国产成人亚洲精品| 国产精品亚洲视频在线观看| 国产精品午夜一区二区欲梦| 国产精品毛片| 日韩精品电影| 欧美国产激情| 日韩午夜激情| 日本成人中文字幕在线视频| 久久国产精品99精品国产| 国产精品中文字幕一区二区三区| 成人一二三区视频| 国产色婷婷亚洲99精品小说| 亚洲黄网站在线观看| 天天影视涩香欲综合网| 欧美一区二区日韩| 一区二区三区四区视频| 国模私拍一区二区三区| 国产精品揄拍一区二区| 欧美成人dvd在线视频| 乱熟女高潮一区二区在线| 少妇一级淫免费放| 在线影视一区| 91小视频xxxx网站在线| 裤袜国产欧美精品一区| 99re热精品视频| 99视频精品全部免费在线视频| 中文一区在线| 成人av免费观看| 亚洲国产精品嫩草影院| 欧美成人精品福利| 久久久精品一区二区三区| 日韩美女免费线视频| 999在线观看免费大全电视剧| 日本高清视频一区二区三区| 成人免费性视频| 91午夜在线| а√在线中文网新版地址在线| 136福利精品导航| 日韩视频一区| 久久久久亚洲蜜桃| 欧美日韩综合一区|