最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python結合wxPython實現(xiàn)AI繪圖提示詞生成器

 更新時間:2025年12月01日 08:46:44   作者:winfredzhang  
這篇文章主要為大家詳細介紹了Python如何基于wxPython開發(fā)一個AI繪圖提示詞生成器,專門用于幫助用戶快速構建和管理Stable?Diffusion、Midjourney等AI繪圖工具的提示詞,感興趣的小伙伴可以了解下

項目概述

這是一個基于wxPython開發(fā)的AI繪圖提示詞(Prompt)生成器,專門用于幫助用戶快速構建和管理Stable Diffusion、Midjourney等AI繪圖工具的提示詞。程序提供了兩種生成模式:隨機生成和手動選擇,極大提升了提示詞創(chuàng)作效率。

運行結果如下:

核心功能

1. 雙模式生成系統(tǒng)

隨機生成模式

  • 用戶設置每行抽取數量(1-5個詞組)
  • 程序從每行隨機選擇指定數量的詞組
  • 自動組合成完整的提示詞

手動選擇模式

  • 為每一行生成獨立的下拉框
  • 實時預覽選擇效果
  • 支持空選項,靈活控制輸出

2. 智能分類系統(tǒng)

程序能夠自動識別提示詞類型,并為每個下拉框添加有意義的分類標簽:

def get_category_name(self, words):
    """根據詞組內容推斷分類名稱"""
    first_words = ' '.join(words[:3]).lower()
    
    if any(kw in first_words for kw in ['masterpiece', 'quality', 'detailed']):
        return "畫質質量"
    elif any(kw in first_words for kw in ['face', 'skin', 'eyes']):
        return "面部特征"
    # ... 更多分類邏輯

支持的分類包括:

  • 畫質質量(masterpiece, 8k, HDR等)
  • 面部特征(perfect face, smooth skin等)
  • 光照效果(soft lighting, cinematic lighting等)
  • 賽博朋克(cyberpunk, neon lights等)
  • 景深效果(depth of field, bokeh等)
  • 背景設置(simple background, white background等)
  • 風格類別(anime style, oil painting, sketch等)
  • 人物特征(服裝、發(fā)型等)
  • 場景環(huán)境(scenery, forest等)

3. 雙語顯示機制

這是程序的一大亮點:下拉框顯示中英文,但輸出純英文。

def translate_to_chinese(self, text):
    """將英文提示詞翻譯成中文"""
    translations = {
        'masterpiece': '杰作',
        'best quality': '最佳質量',
        'soft lighting': '柔和光照',
        # ... 50+個翻譯條目
    }
    return translations.get(text, text)

實現(xiàn)原理:

  • 創(chuàng)建兩個列表:combo_choices_display(顯示用)和combo_choices_value(值用)
  • 顯示格式:masterpiece (杰作)
  • 選擇時獲取索引,從值列表中提取純英文
  • 最終輸出:masterpiece, best quality, soft lighting
# 構建下拉框選項
for word in words:
    chinese = self.translate_to_chinese(word)
    display_text = f'{word} ({chinese})'  # 顯示:英文(中文)
    combo_choices_display.append(display_text)
    combo_choices_value.append(word)  # 保存:純英文

# 獲取選擇時使用英文值
english_value = combo.combo_values[selection_index]

技術架構詳解

界面布局結構

Frame (主窗口)
├── Panel (主面板)
    ├── StaticText (輸入區(qū)標簽)
    ├── TextCtrl (memo1 - 多行輸入框)
    ├── BoxSizer (控制區(qū)域)
    │   ├── SpinCtrl (數量選擇器)
    │   ├── Button (隨機生成)
    │   └── Button (生成下拉框)
    ├── ScrolledWindow (可滾動下拉框區(qū)域)
    │   └── BoxSizer (垂直布局)
    │       ├── BoxSizer (每行水平布局)
    │       │   ├── StaticText (分類標簽)
    │       │   └── ComboBox (下拉選擇框)
    │       └── ... (多行重復)
    ├── TextCtrl (memo2 - 只讀輸出框)
    └── Button (復制按鈕)

核心類設計

class RandomWordPicker(wx.Frame):
    def __init__(self):
        # 初始化窗口和控件
        self.combo_boxes = []      # 存儲所有下拉框
        self.line_data = []        # 存儲每行的詞組數據
        
    # 翻譯系統(tǒng)
    def translate_to_chinese(self, text)
    
    # 分類識別
    def get_category_name(self, words)
    
    # 生成下拉框
    def on_create_combos(self, event)
    
    # 監(jiān)聽下拉框變化
    def on_combo_change(self, event)
    
    # 更新輸出區(qū)域
    def update_memo2(self)
    
    # 隨機生成
    def on_generate(self, event)
    
    # 復制到剪貼板
    def on_copy(self, event)

關鍵技術點

1. 動態(tài)創(chuàng)建控件

def on_create_combos(self, event):
    # 清空現(xiàn)有控件
    self.combo_sizer.Clear(True)
    self.combo_boxes = []
    
    # 動態(tài)創(chuàng)建每行的下拉框
    for i, line in enumerate(lines):
        words = [w.strip() for w in line.split(',') if w.strip()]
        
        # 創(chuàng)建布局和控件
        row_sizer = wx.BoxSizer(wx.HORIZONTAL)
        label = wx.StaticText(...)
        combo = wx.ComboBox(...)
        
        # 綁定事件
        combo.Bind(wx.EVT_COMBOBOX, self.on_combo_change)
        
        self.combo_boxes.append(combo)

要點:

  • 使用Clear(True)清空并銷毀舊控件
  • 循環(huán)創(chuàng)建控件并綁定事件
  • 使用列表存儲控件引用,便于后續(xù)訪問

2. 實時更新機制

def on_combo_change(self, event):
    # 任何下拉框改變都觸發(fā)此函數
    self.update_memo2()

def update_memo2(self):
    selected_words = []
    for combo in self.combo_boxes:
        selection_index = combo.GetSelection()
        if selection_index > 0:  # 跳過空選項
            english_value = combo.combo_values[selection_index]
            selected_words.append(english_value)
    
    result = ', '.join(selected_words)
    self.memo2.SetValue(result)

實現(xiàn)邏輯:

  • 所有下拉框共享同一個事件處理函數
  • 事件觸發(fā)時遍歷所有下拉框
  • 提取選中項的英文值
  • 組合成字符串更新到memo2

3. 隨機生成算法

def on_generate(self, event):
    num_to_pick = self.spin_ctrl.GetValue()
    all_selected = []
    
    for line in lines:
        words = [w.strip() for w in line.split(',') if w.strip()]
        
        if len(words) < num_to_pick:
            selected = words  # 不足時全選
        else:
            selected = random.sample(words, num_to_pick)  # 隨機抽取
        
        all_selected.extend(selected)
    
    result_text = ', '.join(all_selected)

特點:

  • 使用random.sample()保證不重復
  • 處理詞組數量不足的邊界情況
  • 按行順序組合結果

4. 剪貼板操作

def on_copy(self, event):
    text = self.memo2.GetValue()
    
    if wx.TheClipboard.Open():
        wx.TheClipboard.SetData(wx.TextDataObject(text))
        wx.TheClipboard.Close()
        wx.MessageBox('已復制到剪貼板!', '成功', wx.OK | wx.ICON_INFORMATION)

wxPython剪貼板API:

  • wx.TheClipboard.Open() - 打開剪貼板
  • wx.TextDataObject(text) - 創(chuàng)建文本數據對象
  • SetData() - 設置數據
  • Close() - 關閉剪貼板

數據流程圖

用戶輸入文本
    ↓
點擊"生成下拉框"
    ↓
解析每行文本 → 分割詞組 → 識別分類
    ↓
創(chuàng)建下拉框 + 添加翻譯 → 綁定事件
    ↓
用戶選擇詞組
    ↓
觸發(fā)on_combo_change事件
    ↓
遍歷所有下拉框 → 提取英文值
    ↓
更新memo2顯示
    ↓
用戶點擊復制 → 寫入剪貼板

使用場景示例

AI繪圖工作流

步驟1:準備提示詞庫

masterpiece, best quality, ultra-detailed, 8k
anime style, cel shaded, flat color
soft lighting, natural light, cinematic lighting
red hair, vibrant red hair, detailed hair

步驟2:生成下拉框

  • 畫質質量:masterpiece (杰作)
  • 動漫風格:anime style (動漫風格)
  • 光照效果:soft lighting (柔和光照)
  • 發(fā)型發(fā)色:red hair (紅發(fā))

步驟3:選擇組合

點擊下拉框選擇想要的效果

步驟4:導出使用

masterpiece, anime style, soft lighting, red hair

復制到Stable Diffusion或Midjourney使用

擴展建議

1. 增加提示詞權重

# 支持(word:1.2)格式
combo_choices_display.append(f'{word} ({chinese}) [權重]')

2. 保存/加載配置

def save_config(self):
    config = {
        'selections': [combo.GetSelection() for combo in self.combo_boxes]
    }
    with open('config.json', 'w') as f:
        json.dump(config, f)

3. 負面提示詞支持

添加第二個memo區(qū)域用于生成negative prompts。

4. 預設模板系統(tǒng)

templates = {
    '人物肖像': ['masterpiece', 'perfect face', 'soft lighting'],
    '風景場景': ['scenery', 'detailed environment', 'natural light'],
}

5. 批量生成

添加循環(huán)生成功能,一次生成多組不同的提示詞。

性能優(yōu)化

1. 控件復用

對于頻繁切換的場景,考慮復用控件而不是銷毀重建:

# 只更新choices而不是重建控件
combo.Clear()
combo.Append(new_choices)

2. 延遲更新

用戶快速切換下拉框時避免頻繁更新:

def on_combo_change(self, event):
    if hasattr(self, 'update_timer'):
        self.update_timer.Stop()
    
    self.update_timer = wx.CallLater(300, self.update_memo2)

3. 虛擬滾動

當行數超過100時,考慮使用虛擬列表控件。

代碼規(guī)范亮點

  • 清晰的職責分離:翻譯、分類、UI邏輯分別封裝
  • 防御性編程:處理空輸入、邊界情況
  • 用戶友好:提供提示消息、默認值、示例數據
  • 數據與顯示分離combo_values存儲實際值,顯示中英文

以上就是Python結合wxPython實現(xiàn)AI繪圖提示詞生成器的詳細內容,更多關于Python AI繪圖提示詞生成器的資料請關注腳本之家其它相關文章!

相關文章

  • Python基礎之賦值,淺拷貝,深拷貝的區(qū)別

    Python基礎之賦值,淺拷貝,深拷貝的區(qū)別

    這篇文章主要介紹了Python基礎之賦值,淺拷貝,深拷貝的區(qū)別,文中有非常詳細的代碼示例,對正在學習python基礎的小伙伴們也有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • python中的deque雙向隊列詳解

    python中的deque雙向隊列詳解

    這篇文章主要介紹了python中的deque雙向隊列詳解,相比 list 實現(xiàn)的隊列,deque 擁有更低的時間和空間復雜度,list 實現(xiàn)在出隊(pop)和插入(insert)時的空間復雜度大約為O(n),需要的朋友可以參考下
    2023-09-09
  • 詳解Python裝飾器

    詳解Python裝飾器

    這篇文章主要介紹了Python裝飾器,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-03-03
  • Python腳本提取fasta文件單序列信息實現(xiàn)

    Python腳本提取fasta文件單序列信息實現(xiàn)

    這篇文章主要為大家介紹了Python腳本提取fasta文件單序列信息實現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • python編寫一個GUI倒計時器

    python編寫一個GUI倒計時器

    這篇文章主要為大家詳細介紹了python編寫一個GUI倒計時器,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • python做反被爬保護的方法

    python做反被爬保護的方法

    在本文里小編給大家整理了一篇關于python做反被爬保護的方法的方法,由此需求的同學參考學習下。
    2019-07-07
  • python實現(xiàn)圖像拼接

    python實現(xiàn)圖像拼接

    這篇文章主要為大家詳細介紹了python實現(xiàn)圖像拼接,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • Pandas如何操作Excel

    Pandas如何操作Excel

    Pandas提供了便捷的方法來處理Excel文件,主要通過pandas.read_excel()和DataFrame.to_excel()函數,這些函數支持多種參數來定制讀取和寫入的行為,包括文件路徑、工作表名稱、數據類型、日期解析等
    2025-01-01
  • python的pandas工具包,保存.csv文件時不要表頭的實例

    python的pandas工具包,保存.csv文件時不要表頭的實例

    今天小編小編就為大家分享一篇python的pandas工具包,保存.csv文件時不要表頭的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • Python爬蟲請求模塊Urllib及Requests庫安裝使用教程

    Python爬蟲請求模塊Urllib及Requests庫安裝使用教程

    requests和urllib都是Python中常用的HTTP請求庫,使用時需要根據實際情況選擇,如果要求使用簡單、功能完善、性能高的HTTP請求庫,可以選擇requests,如果需要兼容性更好、功能更加靈活的HTTP請求庫,可以選擇urllib
    2023-11-11

最新評論

三河市| 宁晋县| 安达市| 隆子县| 平泉县| 隆回县| 石河子市| 漯河市| 资溪县| 巴青县| 西城区| 三亚市| 泸水县| 英德市| 宁德市| 塔河县| 凤城市| 澜沧| 彭山县| 从化市| 海宁市| 大连市| 布拖县| 通山县| 苏尼特右旗| 阿拉善左旗| 西藏| 临高县| 乳源| 织金县| 浙江省| 台前县| 道孚县| 尖扎县| 抚顺市| 景德镇市| 昔阳县| 抚松县| 平武县| 石棉县| 镇远县|