in src/gif_maker/index.ts [152:190]
for await (const chunk of response) {
if (chunk.candidates && chunk.candidates[0].content?.parts) {
for (const part of chunk.candidates[0].content.parts) {
if (part.inlineData && framesContainer) {
frameCount++;
updateStatus(`Generated frame ${frameCount}`);
// Create a frame element for our UI
const frameElement = document.createElement('div');
frameElement.className = 'frame';
// Create and add the frame number
const frameNumber = document.createElement('div');
frameNumber.className = 'frame-number';
frameNumber.textContent = frameCount.toString();
frameElement.appendChild(frameNumber);
// Create the image as in the original
const src = `data:image/png;base64,${part.inlineData.data}`;
const img = document.createElement('img');
img.width = 1024;
img.height = 1024;
img.src = src;
// Add it to our frame element
frameElement.appendChild(img);
framesContainer.appendChild(frameElement);
// Store URL for GIF creation
images.push(src);
// Animate the frame appearance
setTimeout(() => {
frameElement.classList.add('appear');
}, 50);
}
}
}
}