ly0303521

修改视频的参数显示

... ... @@ -58,6 +58,7 @@ class GalleryImage(GalleryItem):
class GalleryVideo(GalleryItem):
generation_time: Optional[float] = Field(default=None, alias="generationTime")
seed: Optional[int] = Field(default=None, ge=0)
class ImageGenerationResponse(BaseModel):
image: Optional[str] = None
... ...
... ... @@ -114,7 +114,7 @@ const App: React.FC = () => {
setVideoStatus({ status: 'submitting', message: '提交中...', task_id: 'temp' });
try {
const taskId = await submitVideoJob(params.prompt, imageFile, currentUser.employeeId);
const taskId = await submitVideoJob(params.prompt, imageFile, currentUser.employeeId, params.seed);
const finalStatus = await pollVideoStatus(taskId, setVideoStatus);
if (!finalStatus.video_filename) {
... ...
... ... @@ -91,18 +91,16 @@ const DetailModal: React.FC<DetailModalProps> = ({ image, onClose, onEdit, onGen
<div className="grid grid-cols-2 gap-4">
<div>
<label className="block text-xs font-semibold text-gray-400 uppercase mb-1">分辨率</label>
<p className="text-gray-800 dark:text-gray-200 font-mono">
{image.width || (isVideo ? 1280 : 'N/A')} x {image.height || (isVideo ? 720 : 'N/A')}
</p>
</div>
<div>
<label className="block text-xs font-semibold text-gray-400 uppercase mb-1">随机种子</label>
<p className="text-gray-800 dark:text-gray-200 font-mono">{image.seed !== undefined ? image.seed : 'N/A'}</p>
</div>
{!isVideo && (
<>
<div>
<label className="block text-xs font-semibold text-gray-400 uppercase mb-1">分辨率</label>
<p className="text-gray-800 dark:text-gray-200 font-mono">{image.width} x {image.height}</p>
</div>
<div>
<label className="block text-xs font-semibold text-gray-400 uppercase mb-1">生成步数</label>
<p className="text-gray-800 dark:text-gray-200 font-mono">{image.num_inference_steps || 'N/A'}</p>
</div>
... ...
... ... @@ -5,11 +5,12 @@ import { VideoStatus } from '../types';
* Submits a video generation job to the backend.
* @returns The task ID for the submitted job.
*/
export const submitVideoJob = async (prompt: string, image: File, authorId: string): Promise<string> => {
export const submitVideoJob = async (prompt: string, image: File, authorId: string, seed: number): Promise<string> => {
const formData = new FormData();
formData.append('prompt', prompt);
formData.append('image', image, image.name);
formData.append('author_id', authorId);
formData.append('seed', seed.toString());
const submitRes = await fetch(`${TURBO_DIFFUSION_API_URL}/submit-job/`, {
method: 'POST',
... ...