Merge branch 'dev_vite' of ssh://18.167.251.121:10002/aidlab/aida_front into dev_vite

This commit is contained in:
X1627315083
2025-11-20 14:00:15 +08:00
13 changed files with 320 additions and 155 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 404 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 709 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 521 KiB

View File

@@ -379,7 +379,7 @@
<div class="mark_loading" v-show="loadingShow">
<a-spin size="large" />
</div>
<Prompt v-model:showModal="showPromptAssist" :promptList="promptTextList" />
<Prompt v-model:showModal="showPromptAssist" isDesignPage />
<Product
v-model:showModal="showProductList"
:frameList="fullProductImages"
@@ -574,6 +574,13 @@ export default defineComponent({
})
const showPromptAssist = ref(false)
const handleClickAssistBtn = () => {
const { httpType } = store.state.Workspace.probjects
const isSingleDesign = httpType === 'SINGLE_DESIGN'
if (!isSingleDesign) {
const promptText = t('ProductImg.Series')
productimg.productimgSearchName = promptText
return
}
showPromptAssist.value = true
}
@@ -635,9 +642,7 @@ export default defineComponent({
const params: any = {
poseId: productimg.selectPose,
projectId: productimg.selectObject.id,
productImage: getMinioUrl(
currentImage.sourceUrl || currentImage.productImage
),
productImage: getMinioUrl(currentImage.sourceUrl || currentImage.productImage),
modelName: speed.speedData.value,
mode: videoType.value,
parentId:
@@ -1325,11 +1330,11 @@ export default defineComponent({
showProductList,
fullProductImages,
isPoseTransfer,
showCompare,
newVideoList,
setNewVideoRef,
handlePlayNewVideo,
isNewVideoPlaying
showCompare,
newVideoList,
setNewVideoRef,
handlePlayNewVideo,
isNewVideoPlaying
}
},
data() {
@@ -1826,7 +1831,7 @@ export default defineComponent({
display: flex;
align-items: center;
justify-content: center;
&.new-video-container{
&.new-video-container {
margin-left: 2rem;
column-gap: 2rem;
}
@@ -1995,7 +2000,7 @@ export default defineComponent({
}
}
}
.posetransfer{
.posetransfer {
.loadBox {
.imgBox {
overflow-x: auto;

View File

@@ -174,9 +174,13 @@
locale == 'CHINESE_SIMPLIFIED'?
'https://aida-user-manual-chinese.super.site/2b08f755cedd80a985cffdf2af80c538':
'https://aida-user-manual.super.site/advanced-tool/animated-product-image/to-product-video-prompt-assist '" target="_blank">
<SvgIcon name="CHelp" fontSize="30" color="#000"></SvgIcon>
<i class="fi fi-rs-interrogation tips-icon" style="font-size: 1.8rem; color: #000;"/>
</a>
</div>
<!-- <div class="title">
<span>{{ $t('ProductImg.Prompt') }}</span>
<i class="fi fi-rs-interrogation tips-icon" />
</div> -->
<promptInput :content="inputPrompt" ref="promptInput" />
</div>
<div class="poses" v-show="showMotion">
@@ -1535,6 +1539,15 @@ export default defineComponent({
}
.prompt-input-container {
margin-top: 4rem;
.title{
display: flex;
align-items: center;
column-gap: 1rem;
i{
display: flex;
cursor: pointer;
}
}
}
.title {
font-size: 1.8rem;

View File

@@ -2,6 +2,7 @@
<!-- <div ref="modalContainer"></div> -->
<a-modal
class="prompt-modal generalModel"
:class="{ design: isDesignPage }"
v-model:visible="showModal"
:footer="null"
width="78%"
@@ -82,44 +83,102 @@
</template>
<script lang="ts" setup>
import { ref, useTemplateRef, onMounted } from 'vue'
import { ref, useTemplateRef, onMounted, computed } from 'vue'
import { message } from 'ant-design-vue'
import originalDress from '@/assets/images/product/original_dress.png'
import generatedDress from '@/assets/images/product/geneated_dress.png'
import originalModel from '@/assets/images/product/original_model.png'
import generatedModel from '@/assets/images/product/generated_model.png'
import generatedSketch from '@/assets/images/product/generated_sketch.png'
import maleSingleGarmentSketch from '@/assets/images/product/male_single_garment_sketch.png'
import maleSingleGarmentResult from '@/assets/images/product/male_single_garment_result.png'
import maleSingleModelSketch from '@/assets/images/product/male_single_garment_model_sketch.png'
import maleSingleModelResult from '@/assets/images/product/male_single_garment_model_sketch.png'
import femaleChildModelResult from '@/assets/images/product/single_female_child_model_result.png'
import maleSingleChildSketch from '@/assets/images/product/single_male_child_model_sketch.png'
import maleSingleChildResult from '@/assets/images/product/single_male_child_model_result.png'
import { downloadIamge } from '@/tool/util'
import { useI18n } from 'vue-i18n'
import { useStore } from 'vuex'
const { t, locale } = useI18n()
const store = useStore()
const props = defineProps<{
promptList: string[]
isDesignPage: boolean
}>()
const promptList = computed(() => {
const isFromDesignPage = props.source === 'design' || props.isDesignPage
const { ageGroup, httpType, sex } = store.state.Workspace.probjects
const isSingleDesign = httpType === 'SINGLE_DESIGN'
const isAdult = ageGroup === 'Adult'
const isFemale = sex === 'Female'
if (!isFromDesignPage) {
// 如果不是从design来的返回两个提示词
return [t('ProductImg.UploadWithoutModel'), t('ProductImg.UploadWithModel')]
} else {
// 如果是从design来的
if (isSingleDesign) {
// SINGLE_DESIGN: 两个提示词
// 根据年龄和性别选择对应的提示词
let firstPrompt: string // 不带模特的提示词
let secondPrompt: string // 带模特的提示词
if (isAdult) {
// 成人
if (isFemale) {
// 成人女
firstPrompt = t('ProductImg.SingleAdultFemaleWithoutModel')
secondPrompt = t('ProductImg.SingleAdultFemaleWithModel')
} else {
// 成人男
firstPrompt = t('ProductImg.SingleAdultMaleWithoutModel')
secondPrompt = t('ProductImg.SingleAdultMaleWithModel')
}
} else {
// 儿童
if (isFemale) {
// 儿童女
firstPrompt = t('ProductImg.SingleChildFemaleWithoutModel')
secondPrompt = t('ProductImg.SingleChildFemaleWithModel')
} else {
// 儿童男
firstPrompt = t('ProductImg.SingleChildMaleWithoutModel')
secondPrompt = t('ProductImg.SingleChildMaleWithModel')
}
}
return [firstPrompt, secondPrompt]
}
}
})
const modalContainer = useTemplateRef('modalContainer')
const showModal = defineModel<boolean>('showModal', { required: true })
const garmentExample = [
{
title: 'originalDress',
title: 'Original Dress',
src: originalDress,
isOriginal: true
},
{
title: 'generatedDress',
title: 'Generated Result',
src: generatedDress
}
]
const sketchExample = [
{
title: 'origianlDress',
title: 'Origianl Sketch',
src: originalDress,
isOriginal: true
},
{
title: 'generatedSketch',
title: 'Generated Sketch',
src: generatedSketch
}
]
@@ -136,11 +195,98 @@ const modelExample = [
}
]
const exampleList = {
garmentExample,
sketchExample,
modelExample
}
const femaleAdultGarment = [...garmentExample]
const femaleAdultWithModel = [...modelExample]
const maleAdultGarment = [
{
title: 'originalDress',
src: maleSingleGarmentSketch,
isOriginal: true
},
{
title: 'generated male sketch',
src: maleSingleGarmentResult
}
]
const maleAdultWithModel = [
{
title: 'original male model',
src: maleSingleModelSketch,
isOriginal: true
},
{
title: 'generated male model',
src: maleSingleModelResult
}
]
const childFemaleGarment = [...garmentExample]
const childFemaleWithModel = [
{
title: 'Origianl Sketch',
src: originalDress,
isOriginal: true
},
{
title: 'Generated female girl Sketch',
src: femaleChildModelResult
}
]
const childMaleGarment = [...maleAdultGarment]
const childMaleWithModel = [
{
title: 'original sketch',
src: maleSingleChildSketch,
isOriginal: true
},
{
title: 'generate child male model',
src: maleSingleChildResult
}
]
const exampleList = computed(() => {
let obj = {}
if (!props.isDesignPage) {
obj = {
garmentExample,
sketchExample,
modelExample
}
} else {
const { ageGroup, httpType, sex } = store.state.Workspace.probjects
const isSingleDesign = httpType === 'SINGLE_DESIGN'
if (!isSingleDesign) return {}
const isAdult = ageGroup === 'Adult'
const isFemale = sex === 'Female'
if (isAdult) {
if (isFemale) {
obj = {
femaleAdultGarment,
femaleAdultWithModel
}
} else {
obj = {
maleAdultGarment,
maleAdultWithModel
}
}
} else {
if (isFemale) {
obj = {
childFemaleGarment,
childFemaleWithModel
}
} else {
obj = {
childMaleGarment,
childMaleWithModel
}
}
}
}
return obj
})
const handleClose = () => {
showModal.value = false
@@ -200,6 +346,7 @@ const handleCopy = async (value: string) => {
justify-content: space-between;
overflow-x: auto;
overflow-y: hidden;
.example-wrapper {
display: flex;
gap: 0;
@@ -227,6 +374,7 @@ const handleCopy = async (value: string) => {
}
}
}
.prompt-list {
margin-top: 3.5rem;
display: flex;
@@ -252,6 +400,18 @@ const handleCopy = async (value: string) => {
}
}
}
&.design {
.example-content {
padding-left: 0;
justify-content: space-around;
}
.prompt-list {
justify-content: space-around;
.prompt-item {
width: 40%;
}
}
}
}
:deep(.generalModel .ant-modal-body) {
padding: 5rem 4.4rem 8rem 4.6rem;

View File

@@ -320,8 +320,15 @@
}"
:isProductimg="true"
></scaleImage>
<Prompt v-if="productimgMenu.value == 'ToProductImage'" v-model:showModal="showPromptAssist" :promptList="promptTextList" />
<PromptEditProduct v-if="productimgMenu.value == 'Relight'" v-model:showModal="showPromptAssist"></PromptEditProduct>
<Prompt
v-if="productimgMenu.value == 'ToProductImage'"
v-model:showModal="showPromptAssist"
:isDesignPage="isDesignPage"
/>
<PromptEditProduct
v-if="productimgMenu.value == 'Relight'"
v-model:showModal="showPromptAssist"
></PromptEditProduct>
</div>
</template>
@@ -364,7 +371,7 @@ export default defineComponent({
generalMenu,
generalDrag,
Prompt,
PromptEditProduct
PromptEditProduct
},
props: {
setTask: {
@@ -727,8 +734,8 @@ export default defineComponent({
let remPrductimgTime: any = null
let prductimgTime: any = null
let getPrductimg = () => {
// 未输入prompt时不可生成
if (!productImgData.searchName[props.productimgMenu.value]) {
// 非高级工具 未输入prompt时不可生成
if (!productImgData.searchName[props.productimgMenu.value] && !props.isDesignPage) {
message.info(t('ProductImg.noPrompt'))
return
}
@@ -784,22 +791,6 @@ export default defineComponent({
}
productImgData.isProductimg = true
// 设置默认prompt
if (!productImgData.searchName[props.productimgMenu.value]) {
const isFromDesignPage = props.source == 'design' || props.isDesignPage
const { ageGroup, httpType } = store.state.Workspace.probjects
const isSingleDesign = httpType === 'SINGLE_DESIGN'
if (!isFromDesignPage) {
data.prompt = t('poseTransfer.UploadWithModel')
} else if (ageGroup === 'Adult') {
data.prompt = isSingleDesign
? t('poseTransfer.SingleAdultTryOn')
: t('poseTransfer.SeriesAdultTryOn')
} else if (isSingleDesign) {
data.prompt = t('poseTransfer.SingleGarment')
}
}
let url = Https.httpUrls.toProduct
if (props.productimgMenu.value == 'Relight') {
url = Https.httpUrls.relight
@@ -1107,36 +1098,16 @@ export default defineComponent({
})
// 计算属性:根据条件生成提示词列表
const promptTextList = computed(() => {
const isFromDesignPage = props.source === 'design' || props.isDesignPage
const { ageGroup, httpType } = store.state.Workspace.probjects
const isSingleDesign = httpType === 'SINGLE_DESIGN'
const isAdult = ageGroup === 'Adult'
if (!isFromDesignPage) {
// 如果不是从design来的返回两个提示词
return [t('poseTransfer.UploadWithoutModel'), t('poseTransfer.UploadWithModel')]
} else {
// 如果是从design来的
if (isSingleDesign) {
// SINGLE_DESIGN: 两个提示词
const secondPrompt = isAdult
? t('poseTransfer.SingleAdultTryOn')
: t('poseTransfer.SingleChildTryOn')
return [t('poseTransfer.SingleGarment'), secondPrompt]
} else {
// SERIES_DESIGN: 一个提示词
return [
isAdult
? t('poseTransfer.SeriesAdultTryOn')
: t('poseTransfer.SeriesChildTryOn')
]
}
}
})
const showPromptAssist = ref(false)
const handleClickAssistBtn = () => {
const { httpType } = store.state.Workspace.probjects
const isSingleDesign = httpType === 'SINGLE_DESIGN'
if (props.isDesignPage && !isSingleDesign) {
const promptText = t('ProductImg.Series')
productImgData.searchName[props.productimgMenu.value] = promptText
return
}
showPromptAssist.value = true
}
@@ -1150,7 +1121,6 @@ export default defineComponent({
productimgMenuList,
RelightDirectionList,
RelightDirection,
promptTextList,
showPromptAssist,
setproduct,

View File

@@ -287,34 +287,57 @@ export default {
CopySuccess: '已复制到剪贴板',
CopyFiled: '复制失败',
noPrompt: '请输入提示词',
OriginalImage: '原始图像',
EditGarmen: '您可以编辑这件模型',
EditGarmen2: '您可以编辑这件场景',
Background: '色背景',
BackgroundColor: '纯色背景',
ComplexBackground: '复杂背景',
Changeview: '改为背面视角',
ChangeviewInfo: '切换视角',
Changepose: '将姿势改为坐下并交叉脚踝\n的姿势',
ChangeposeInfo: '改变姿势',
Changehair: '将发型改为金色直发。',
ChangehairInfo: '改变发型',
ChangeAsian: '将模特改为亚洲人。',
ChangeAsianInfo: '改变面部特征',
Changedemin: '将黑色西装改为黄色牛仔...',
ChangedeminInfo: '替换服装纹理和颜色',
ChaRemove: '移除黑色西装。',
ChaRemoveInfo: '移除服装',
ChangeSunglasses: '为模特添加棕色牛仔帽和\n太阳镜',
ChangeSunglassesInfo: '添加配饰',
ChangeHeels: '将白色鞋子改为黑色高跟鞋。',
ChangeHeelsInfo: '更换鞋子',
ChangeUrban: '在城市街道,正午时分。',
ChangeUrbanInfo: '替换服装纹理和颜色',
ChangeBar: '在酒吧,傍晚时分。',
ChangeBarInfo: '移除服装',
ChangeGarden: '在花园,清晨时分。',
ChangeGardenInfo: '添加配饰',
OriginalImage: '原始图像',
EditGarmen: '您可以编辑这件服装',
Background: '白色背景',
BackgroundColor: '色背景',
ComplexBackground: '复杂背景',
Changeview: '改为背面视角。',
ChangeviewInfo: '切换视角',
Changepose: '将姿势改为坐下并交叉脚踝\n的姿势。',
ChangeposeInfo: '改变姿势',
Changehair: '将发型改为金色直发。',
ChangehairInfo: '改变发型',
ChangeAsian: '将模特改为亚洲人。',
ChangeAsianInfo: '改变面部特征',
Changedemin: '将黑色西装改为黄色牛仔...',
ChangedeminInfo: '替换服装纹理和颜色',
ChaRemove: '移除黑色西装。',
ChaRemoveInfo: '移除服装',
ChangeSunglasses: '为模特添加棕色牛仔帽和\n太阳镜',
ChangeSunglassesInfo: '添加配饰',
ChangeHeels: '将白色鞋子改为黑色高跟鞋。',
ChangeHeelsInfo: '更换鞋子',
ChangeUrban: '在城市街道,正午时分。',
ChangeUrbanInfo: '替换服装纹理和颜色',
ChangeBar: '在酒吧,傍晚时分。',
ChangeBarInfo: '移除服装',
ChangeGarden: '在花园,清晨时分。',
ChangeGardenInfo: '添加配饰',
SingleGarment:
'专业产品摄影:服装展示于隐形模特上,模特不可见。完整保留设计细节——所有图案、颜色、质地及细节特征。', // 单品样衣
SingleChildMaleWithoutModel:
'将此图像转换为真实服装,展示于白色工作室中:服装悬挂于隐形人体模型上。',
SingleChildMaleWithModel:
'将这张图片转换为真实儿童模特,模特身着该服装,在白色摄影棚内以站立姿势面向镜头。',
SingleChildFemaleWithoutModel:
'将此图像转换为真实服装,展示于白色工作室中:服装悬挂于隐形人体模型上。',
SingleChildFemaleWithModel:
'将此图像转化为真实儿童模特,穿着该服装,置于白色摄影棚内,面向镜头,保持站立姿势。',
SingleAdultMaleWithoutModel:
'将此图像转换为真实服装,展示于白色工作室中:服装悬挂于隐形人体模型上。',
SingleAdultMaleWithModel:
'将此图像转化为真实模特,让模特身着该服装,在白色摄影棚内面向镜头保持站立姿势。',
SingleAdultFemaleWithoutModel:
'将此图像转换为真实服装,展示于白色工作室中:服装悬挂于隐形人体模型上。',
SingleAdultFemaleWithModel:
'将此图像转化为真实模特,让模特身着该服装,在白色摄影棚内面向镜头保持站立姿势。',
Series: '在白色摄影棚内,面向镜头,站立姿势。',
UploadWithModel:
'创建真实感十足的摄影棚照片,模特需身着该服装站立于白色摄影棚中。若原有模特存在则保留,否则生成合适模特。保持站立姿势,面向镜头。', // 上传线稿,带模特
UploadWithoutModel:
'将此图像转换为真实服装,展示于白色工作室中:服装悬挂于隐形人体模型上。' // 上传线稿,不带模特
},
poseTransfer: {
SelectDesign: '产品图',
@@ -326,20 +349,6 @@ export default {
jsContent1: '生成视频预计需要三分钟,请问是否继续',
NeedFirstFrame: '请选择首帧图片',
NeedLastFrame: '请选择尾帧图片',
SingleGarment:
'专业产品摄影:服装展示于隐形模特上,模特不可见。完整保留设计细节——所有图案、颜色、质地及细节特征。', // 单品样衣
SingleChildTryOn:
'生成一名儿童模特穿着该服装的逼真工作室照片。采用站姿,面向镜头。保留服装的精确细节——所有图案、颜色、纹理及装饰元素。', // 单品儿童试穿
SingleAdultTryOn:
'生成模特穿着该服装的逼真摄影棚照片。采用站姿面向镜头。保留服装的精确细节——所有图案、颜色、纹理及装饰元素。', // 单品成人试穿
SeriesAdultTryOn:
'制作真实感十足的摄影棚照片:模特保持站立姿势,面向镜头,服装细节完全保留原貌。', // 系列成人试穿
SeriesChildTryOn:
'将此图像转化为逼真的真实儿童模特,保持站立姿势并直面镜头,保留服装的原有图案、风格和色彩,呈现工作室级别的照片质量。', // 系列儿童试穿
UploadWithModel:
'生成真实模特穿着该服装的逼真摄影棚照片采用站立姿势面向镜头。保留服装所有细节——包括图案、颜色、纹理、装饰元素呈现摄影棚级别的8K分辨率照片支持HDR效果、景深控制、柔光效果及高细节呈现。请勿返还原始图像。', // 上传线稿,带模特
UploadWithoutModel:
'专业产品摄影:服装以自然形态展示,无模特。采用影棚灯光。保留精确细节——图案、色彩、质感、装饰元素。', // 上传线稿,不带模特
VideoType: '视频类型',
FirstFrame: '首帧',
LastFrame: '尾帧',

View File

@@ -298,33 +298,55 @@ export default {
CopyFiled: 'Failed to copy',
noPrompt: 'Please enter prompt',
OriginalImage: 'Original Image',
EditGarmen: 'You can edit the Model',
EditGarmen2: 'You can edit the Scene',
Background: 'White Background',
BackgroundColor: 'Background with Pure Color',
ComplexBackground: 'with Complex Background',
Changeview: 'Change to back view.',
ChangeviewInfo: 'Alter View',
Changepose: 'Change the pose to sit\ndown and cross ankle pose.',
ChangeposeInfo: 'Change Pose',
Changehair: 'Change the haircut to\nblonde straight hair.',
ChangehairInfo: 'Change Haircut',
ChangeAsian: 'Change model to Asian.',
ChangeAsianInfo: 'Change Facial',
Changedemin: 'Change the black\nsuit to yellow demin...',
ChangedeminInfo: 'Replace Garment Texture and Color',
ChaRemove: 'ChaRemove the black suit.',
ChaRemoveInfo: 'Remove Garment',
ChangeSunglasses: 'Change this model with\nbrown cowboy hat and sunglasses',
ChangeSunglassesInfo: 'Add Accessories',
ChangeHeels: 'Change white shoes to\nblack high heels.',
ChangeHeelsInfo: 'Change Shoes',
ChangeUrban: 'In the urban street,\nat noon.',
ChangeUrbanInfo: 'Replace Garment Texture and Color',
ChangeBar: 'In the bar, in the evening.',
ChangeBarInfo: 'Remove Garment',
ChangeGarden: 'In the garden, in the morning.',
ChangeGardenInfo: 'Add Accessories',
EditGarmen: 'You can edit the garmen',
Background: 'White Background',
BackgroundColor: 'Background with Pure Color',
ComplexBackground: 'with Complex Background',
Changeview: 'Change to back view.',
ChangeviewInfo: 'Alter View',
Changepose: 'Change the pose to sit\ndown and cross ankle pose.',
ChangeposeInfo: 'Change Pose',
Changehair: 'Change the haircut to\nblonde straight hair.',
ChangehairInfo: 'Change Haircut',
ChangeAsian: 'Change model to Asian.',
ChangeAsianInfo: 'Change Facial',
Changedemin: 'Change the black\nsuit to yellow demin...',
ChangedeminInfo: 'Replace Garment Texture and Color',
ChaRemove: 'ChaRemove the black suit.',
ChaRemoveInfo: 'Remove Garment',
ChangeSunglasses: 'Change this model with\nbrown cowboy hat and sunglasses',
ChangeSunglassesInfo: 'Add Accessories',
ChangeHeels: 'Change white shoes to\nblack high heels.',
ChangeHeelsInfo: 'Change Shoes',
ChangeUrban: 'In the urban street,\nat noon.',
ChangeUrbanInfo: 'Replace Garment Texture and Color',
ChangeBar: 'In the bar, in the evening.',
ChangeBarInfo: 'Remove Garment',
ChangeGarden: 'In the garden, in the morning.',
ChangeGardenInfo: 'Add Accessories',
SingleGarment:
'Professional product photo: garment on invisible mannequin, no model visible. Preserve exact design - all patterns, colors, textures, details.', // 单品样衣
SingleChildMaleWithoutModel:
'Transform this image into a real garment showing in the white studio: garment on invisible mannequin.',
SingleChildMaleWithModel:
'Transform this image into a real child model stand and wear this garment, in the white studio, facing camera, standing posture.',
SingleChildFemaleWithoutModel:
'Transform this image into a real garment showing in the white studio: garment on invisible mannequin.',
SingleChildFemaleWithModel:
'Transform this image into a real child model stand and wear this garment, in the white studio, facing camera, standing posture.',
SingleAdultMaleWithoutModel:
'Transform this image into a real garment showing in the white studio: garment on invisible mannequin.',
SingleAdultMaleWithModel:
'Transform this image into a real model stand and wear this garment, in the white studio, facing camera, standing posture.',
SingleAdultFemaleWithoutModel:
'Transform this image into a real garment showing in the white studio: garment on invisible mannequin.',
SingleAdultFemaleWithModel:
'Transform this image into a real model stand and wear this garment, in the white studio, facing camera, standing posture.',
Series: 'In the white studio, facing camera, standing posture.',
UploadWithModel:
'Create realistic studio photo with real people model standing and wearing this garment, in white studio, Keep original model if present, or generate appropriate model, Standing pose, facing camera.', // 上传线稿,带模特
UploadWithoutModel:
'Transform this image into a real garment showing in the white studio: garment on invisible mannequin' // 上传线稿,不带模特
},
poseTransfer: {
SelectDesign: 'Product image',
@@ -336,20 +358,6 @@ export default {
jsContent1: 'Video generation will take approximately 3 minutes. Continue?',
NeedFirstFrame: 'Please select the first frame image',
NeedLastFrame: 'Please select the last frame image',
SingleGarment:
'Professional product photo: garment on invisible mannequin, no model visible. Preserve exact design - all patterns, colors, textures, details.', // 单品样衣
SingleChildTryOn:
'Generate realistic studio photo of a child model wearing this garment. Standing pose, facing camera. Preserve exact garment details - all patterns, colors, textures, embellishments.', // 单品儿童试穿
SingleAdultTryOn:
'Generate realistic studio photo of a model wearing this garment. Standing pose, facing camera. Preserve exact garment details - all patterns, colors, textures, embellishments.', // 单品成人试穿
SeriesAdultTryOn:
'Create a realistic studio photo: same model standing, facing camera, exact same garment details preserved.', // 系列成人
SeriesChildTryOn:
'Transform this image into a realistic, the same real child model , Maintain a standing posture and face the camera directly, keep the same pattern, style and colour of these garment, studio-quality photograph.', // 系列儿童
UploadWithModel:
'Generate realistic studio photo of a real model wearing this garment, standing pose, facing camera. Preserve exact garment details - all patterns, colors, textures, embellishments, studio-quality photograph, 8K, HDR, DOF, soft lighting, high detail. Do not return the original image.', // 上传线稿,带模特
UploadWithoutModel:
'Professional product photo: garment displayed with natural shape, no model. Studio lighting. Preserve exact details - patterns, colors, textures, embellishments.', // 上传线稿,不带模特
VideoType: 'Video Type',
FirstFrame: 'First frame',
LastFrame: 'Last frame',