Commit 375960f7 authored by 周成波's avatar 周成波

改回场景关键词

parent 56058cca
......@@ -24,6 +24,7 @@ declare module 'vue' {
ElSwitch: typeof import('element-plus/es')['ElSwitch']
ElTable: typeof import('element-plus/es')['ElTable']
ElTableColumn: typeof import('element-plus/es')['ElTableColumn']
ElText: typeof import('element-plus/es')['ElText']
ElUpload: typeof import('element-plus/es')['ElUpload']
HelloWorld: typeof import('./src/components/HelloWorld.vue')['default']
IconCommunity: typeof import('./src/components/icons/IconCommunity.vue')['default']
......
......@@ -133,7 +133,7 @@ const onAdaptRoles = async () => {
"角色关键词": keywords.trim()+",穿着衣服",
// "属性": attribute.trim(),
"属性": "",
"角色英文关键词": "",
"角色关键词英文": "",
});
}
}
......@@ -180,8 +180,10 @@ const onAdapt = async () => {
"编号": (i + 1).toString(),
"场景描述": sentences[i].trim(),
"场景关键词": "",
"场景关键词英文": "",
"角色": "",
"角色关键词": "",
"角色关键词英文": "",
"画面描述词": "",
"本镜配图": "src/assets/loading.gif",
"local_image_path": "",
......
......@@ -103,7 +103,7 @@ const onAdaptRoles = async () => {
form.chatgpt_answer_roles.push({
"角色": one_role.trim(),
"角色关键词": "",
"角色英文关键词": "",
"角色关键词英文": "",
"属性": attribute,
});
}
......@@ -158,7 +158,7 @@ const onAdaptRolesKeywords = async () => {
let keywords_en = await text2videoService.submitTranslateToEn(keywords);
console.log(keywords_en)
keywords_en = utils.filterChineseAndPunctuation(keywords_en.replace(/"/g, ''));
one_role.角色英文关键词 = keywords_en;
one_role.角色关键词英文 = keywords_en;
}
}
try {
......@@ -202,8 +202,10 @@ const onAdapt = async () => {
"编号": (i + 1).toString(),
"场景描述": sentences[i].trim(),
"场景关键词": "",
"场景关键词英文": "",
"角色": "",
"角色关键词": "",
"角色关键词英文": "",
"画面描述词": "",
"本镜配图": "src/assets/waiting.png",
"local_image_path": "",
......@@ -255,11 +257,23 @@ const onAdaptOneScene = async (item: any) => {
}
// 推理场景
try {
// const adapt_restrict = `你现在扮演专业的英语翻译的角色。请将这段文字“${item.场景描述}”翻译为英语。\n要求:只返回英语即可,不要返回其他内容。`;
// const keywords_en = await text2videoService.submitLLM(adapt_restrict, tuili_llm.api);
let keywords_en = await text2videoService.submitTranslateToEn(item.场景描述);
const adapt_restrict = `故事:\n${form.chatgpt_answer}\n
指令:
请理解这个故事,给出这个场景“${item.场景描述}”的关键词(年代(可以发挥想象进行补充,但一定要有),空间(可以发挥想象进行补充,但一定要有),
时间段(可以发挥想象进行补充,但一定要有),地理环境(可以发挥想象进行补充,但一定要有),天气(可以发挥想象进行补充,但一定要有),
物品(可以发挥想象进行补充,但一定要有),人物(可以发挥想象进行补充,但一定要有),镜头角度(可以发挥想象进行补充,但一定要有))。
要求:
关键词以逗号分隔。
只要返回关键词,不需要其他的说明文字。`;
const keywords = await text2videoService.submitLLM(adapt_restrict, tuili_llm.api);
console.log(keywords)
item.场景关键词 = keywords;
// const adapt_restrict_en = `你现在扮演专业的英语翻译的角色。请将这段文字“${item.场景描述}”翻译为英语。\n要求:只返回英语即可,不要返回其他内容。`;
// const keywords_en = await text2videoService.submitLLM(adapt_restrict_en, tuili_llm.api);
let keywords_en = await text2videoService.submitTranslateToEn(keywords);
console.log(keywords_en)
item.场景关键词 = utils.filterChineseAndPunctuation(keywords_en);
item.场景关键词英文 = utils.filterChineseAndPunctuation(keywords_en);
} catch (error) {
ElMessage({
message: String(error),
......@@ -334,13 +348,16 @@ const onAdaptOneSceneRoles = async (item: any) => {
// console.log(item_roles)
item.角色 = item_roles.trim();
let role_kws = ""
let role_kws_en = ""
const item_roles_arr = item_roles.split(/[,,、]/);
item_roles_arr.forEach( one_item_role => {
let temp_role_kws = ""
let temp_role_kws_en = ""
// 人工匹配角色关键词,先找想同的
for (const i of form.chatgpt_answer_roles) {
if (i["角色"].trim() == one_item_role.trim()) {
temp_role_kws = `[${i["角色英文关键词"]}]`;
temp_role_kws = `[${i["角色关键词"]}]`;
temp_role_kws_en = `[${i["角色关键词英文"]}]`;
// 找到就ok
break;
}
......@@ -349,15 +366,18 @@ const onAdaptOneSceneRoles = async (item: any) => {
if (! temp_role_kws) {
for (const i of form.chatgpt_answer_roles) {
if (i["角色"].includes(one_item_role.trim()) || one_item_role.includes(i["角色"].trim())) {
temp_role_kws = `[${i["角色英文关键词"]}]`;
temp_role_kws = `[${i["角色关键词"]}]`;
temp_role_kws_en = `[${i["角色关键词英文"]}]`;
// 匹配到一个就ok
break;
}
}
}
role_kws = `${role_kws}${temp_role_kws}`;
role_kws_en = `${role_kws_en}${temp_role_kws_en}`;
})
item.角色关键词 = role_kws;
item.角色关键词英文 = role_kws_en;
}
} catch (error) {
ElMessage({
......@@ -421,7 +441,7 @@ const onDrawOne = async (item: any) => {
// 请理解以上内容,并返回一段英文的描述。`, fanyi_llm.api
// );
// item.画面描述词 = sd_describe;
item.画面描述词 = item.场景关键词 + "," + item.角色关键词;
item.画面描述词 = item.场景关键词英文 + "," + item.角色关键词英文;
const sd_prompt = item.画面描述词 + "," + sd_prompt_prefix;
let width = "960";
......@@ -549,7 +569,7 @@ const onChangeScreen = (val: string) => {
const showsdprompt = (item: any) => {
// alert(item.画面描述词)
// dialogData.value = `${item.画面描述词},${sd_prompt_prefix}===== 反向提示词 =====${sd_negative_prompt_prefix}`;
dialogData.value = `${item.场景关键词},${item.角色关键词},${sd_prompt_prefix}===== 反向提示词 =====${sd_negative_prompt_prefix}`;
dialogData.value = `${item.场景关键词英文},${item.角色关键词英文},${sd_prompt_prefix}===== 反向提示词 =====${sd_negative_prompt_prefix}`;
dialogVisible.value = true; // 打开对话框
}
......@@ -683,9 +703,9 @@ const onDeleteOne = (item: any) => {
<el-input v-model="scope.row.角色关键词" :autosize="true" type="textarea"></el-input>
</template>
</el-table-column>
<el-table-column prop="角色英文关键词" label="角色英文关键词">
<el-table-column prop="角色关键词英文" label="角色关键词英文">
<template v-slot="scope">
<el-input v-model="scope.row.角色英文关键词" :autosize="true" type="textarea"></el-input>
<el-input v-model="scope.row.角色关键词英文" :autosize="true" type="textarea"></el-input>
</template>
</el-table-column>
</el-table>
......@@ -706,19 +726,23 @@ const onDeleteOne = (item: any) => {
<el-input v-model="scope.row.场景描述" :autosize="true" type="textarea"></el-input>
</template>
</el-table-column>
<el-table-column prop="场景关键词" label="场景英文描述">
<el-table-column prop="场景关键词" label="场景关键词">
<template v-slot="scope">
<el-input v-model="scope.row.场景关键词" :autosize="true" type="textarea"></el-input>
<el-text class="mx-1" size="small">{{ scope.row.场景关键词 }}</el-text>
<hr style="border: none;border-top: 1px dashed #999;">
<el-text class="mx-1" size="small">{{ scope.row.场景关键词英文 }}</el-text>
</template>
</el-table-column>
<el-table-column prop="角色" label="角色">
<template v-slot="scope">
<el-input v-model="scope.row.角色" :autosize="true" type="textarea"></el-input>
<el-text class="mx-1" size="small">{{ scope.row.角色 }}</el-text>
</template>
</el-table-column>
<el-table-column prop="角色关键词" label="角色关键词">
<template v-slot="scope">
<el-input v-model="scope.row.角色关键词" :autosize="true" type="textarea"></el-input>
<el-text class="mx-1" size="small">{{ scope.row.角色关键词 }}</el-text>
<hr style="border: none;border-top: 1px dashed #999;">
<el-text class="mx-1" size="small">{{ scope.row.角色关键词英文 }}</el-text>
</template>
</el-table-column>
<el-table-column prop="本镜配图" label="本镜配图" width="300">
......
......@@ -123,7 +123,7 @@ const onAdaptRoles = async () => {
form.chatgpt_answer_roles.push({
"角色": one_role.trim(),
"角色关键词": keywords.trim()+",dressed",
"角色英文关键词": "",
"角色关键词英文": "",
"属性": "",
});
}
......@@ -171,8 +171,10 @@ const onAdapt = async () => {
"编号": (i + 1).toString(),
"场景描述": sentences[i].trim(),
"场景关键词": "",
"场景关键词英文": "",
"角色": "",
"角色关键词": "",
"角色关键词英文": "",
"画面描述词": "",
"本镜配图": "src/assets/loading.gif",
"local_image_path": "",
......
......@@ -3,8 +3,10 @@ declare namespace Wm {
"编号": string,
"场景描述": string,
"场景关键词": string,
"场景关键词英文": string,
"角色": string,
"角色关键词": string,
"角色关键词英文": string,
"画面描述词": string,
"本镜配图": string,
"local_image_path": string,
......@@ -24,7 +26,7 @@ declare namespace Wm {
interface RolesItem {
"角色": string,
"角色关键词": string,
"角色英文关键词": string,
"角色关键词英文": string,
"属性": string,
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment